Феневое API

Персонаж: моб или игрок

Доступ к API изнутри мира

  • eval ptc(api())
  • eval ptc(get_char_world("xxx").api())

Поля, доступные только для чтения [ro] и для записи [rw]

Статус Поле Описание
rwPK_flagKILLER, SLAIN, VIOLENT, GHOST, THIEF
rwPK_time_skсколько висит slain и killer
rwPK_time_tсколько висит thief
rwPK_time_vсколько висит violent
rwactact флаги для мобов и plr для игроков (таблицы .tables.act_flags и plr_flags)
rwadd_affected_byрасширение флагов аффектов (таблица .tables.affect_flags)
rwadd_commрасширение поля comm (таблица .tables.add_comm_flags)
roaffectedсписок всех аффектов (List из структур Affect)
rwaffected_byфлаги аффектов (таблица .tables.affect_flags)
roalignMaxназвание самого доброго характера для расы и класса персонажа
roalignMinназвание самого злого характера для расы и класса персонажа
roalignNameназвание характера
rwalignmentхарактер, от -1000 до 1000
roaltarvnum комнаты-алтаря в родном городе персонажа
rwanti_killedсколько жертв не моего align убито
rwarmor0класс брони
rwarmor1класс брони
rwarmor2класс брони
rwarmor3класс брони
rwbank_gзолота в банке
rwbank_sсеребра в банке
rwbatle_promptстрока состояния в бою
rwblessблагословение богов
roboatобъект лодки
rwcarry_numberколичество вещей которое несет чар
rwcarry_weightвес который несет чар
rocarryingпервый объект в списке инвентаря/экипировки
roclanклан (структура .Clan)
rwcommcomm флаги (таблица .tables.comm_flags)
rwcond_bloodlustизменить 'жажда крови' на указанное число баллов
rwcond_drunkизменить 'опьянение' на указанное число баллов
rwcond_fullизменить 'заполненность желудка' на указанное число баллов
rwcond_hungerизменить 'голод' на указанное число баллов
rwcond_thirstизменить 'жажда' на указанное число баллов
rwconfigнастройки чара (таблица .tables.config_flags)
roconnectedtrue если есть связь
rocraftProfessionsmap из названия->уровень мастерства для дополнительных профессий
rocur_chaтекущий параметр: харизма
rocur_conтекущий параметр: телосложение
rocur_dexтекущий параметр: ловкость
rocur_intтекущий параметр: ум
rocur_strтекущий параметр: сила
rocur_wisтекущий параметр: мудрость
rwcurseпроклятье богов
rwdam_typeтип повреждения (таблица .tables.weapon_flags)
rwdamage_numberповреждения моба: сколько раз кидать кубик
rwdamage_typeповреждения моба: кол-во граней кубика
rwdamrollурон
rwdazedaze state (в пульсах, 1 пульс = четверть секунды)
rodeadtrue, если персонаж полностью уничтожен (suicide/remort для pc, смерть для npc)
rwdeathсколько раз умирал
rwdeath_ground_delayсчетчик ловушки
rwdescriptionто что видно по look mob
rwdetectionфлаги детектов (таблица .tables.detect_flags)
rodoppelигрок, которому подражаем с помощью doppelganger. для зеркал - игрок, который их создал
rwethosдобропорядочность
rwexpсуммарный опыт
roexpToLevelсколько опыта осталось набрать до след уровня
rofightingтот, с кем сражаемся
roflyingtrue если мы GHOST, летаем или верхом на летающем скакуне
rwformформа тела (таблица .tables.form_flags)
rwghost_timeсколько висит ghost
rwgoldзолото
roguarded_byигрок, который нас охраняет
roguardingигрок, которого охраняем с помощью умения guard
rohasDestinyмоб имеет предназначение (квестовые и спец-мобы)
rwhas_killedсколько жертв убито всего
rwhitтекущее здоровье (hit points)
rwhitrollточность
rwhometownродной город (структура .Hometown)
rohostnameIP-адрес соединения
roidуникальный идентификатор персонажа
rwimm_flagsфлаги иммунитета (таблица .tables.imm_flags)
roin_roomкомната, в которой сейчас находимся
rwincog_levelуровень для incognito
roinventoryсписок всех предметов в инвентаре
rwinvis_levelуровень для wisinvis
roisInInterprettrue если игрок в состоянии ввода команд (не ed, не olc, не pager, etc)
rolastAccessTimeвремя последнего захода в мир
rwlast_death_timeкогда последний раз был убит
rwlast_foughtчар, с которым сражались последний раз
rwlast_levelкакой был played, когда набили последний левел
rwleaderлидер группы или тот, кто очаровал
rwlevelнастоящий уровень
rwlinesкол-во строк в буфере вывода
rwlogonвремя последнего захода в мир
rwlong_descrдлинное описание моба
rwloyaltyлояльность по отношению к закону (рулеровскому)
rwmanaтекущая mana
romasterтот, за кем следуем
rwmax_hitмаксимальное здоровье
rwmax_manaмаксимальная mana
rwmax_moveмаксимальные moves
rwmax_skill_pointsкол-во скилпоинтов у чара
romax_train_chaмаксимум тренировки для параметра: харизма
romax_train_conмаксимум тренировки для параметра: телосложение
romax_train_dexмаксимум тренировки для параметра: ловкость
romax_train_intмаксимум тренировки для параметра: ум
romax_train_strмаксимум тренировки для параметра: сила
romax_train_wisмаксимум тренировки для параметра: мудрость
romountна ком мы верхом или кто верхом на нас
rwmoveтекущие moves
rwnameимя
ronextследующий чар в глобальном списке всех чаров, .char_list
ronext_in_roomследующий чар в этой комнате, в списке people у комнаты
rwoff_flagsфлаги поведения моба (таблица .tables.off_flags)
rwonобъект, мебель, на которой сидим
roonlinetrue, если персонаж в мире
ropIndexDataструктура с прототипом для всех мобов с данным vnum(mob index data, т.е. то, редактируется с помощью OLC)
rwpartsчасти тела (таблица .tables.part_flags)
rwpasswordпароль
ropcэкземпляр игрока
rwperm_chaперманентный параметр: харизма
rwperm_conперманентный параметр: телосложение
rwperm_dexперманентный параметр: ловкость
rwperm_hitmax hp без шмота
rwperm_intперманентный параметр: ум
rwperm_manamax mana без шмота
rwperm_movemax move без шмота
rwperm_strперманентный параметр: сила
rwperm_wisперманентный параметр: мудрость
ropetмоб, домашнее животное
rwpositionпозиция (таблица .tables.position_table)
rwpracticeсколько практик
rwpretitleпретитул
rwprofessionкласс (структура .Profession)
rwpromptстрока состояния
rwquestpointsqp
rwraceраса (структура .Race)
roremort_countкол-во ремортов
roreplyчар, который последний говорил с нами. по команде reply реплика отправится именно ему
rwres_flagsфлаги сопротивляемости (таблица .tables.res_flags)
rwridingесли mount!=null: true - мы верхом, false - мы оседланы
rwrussianNameрусские имена с падежами
rwsaving_throwсавесы
rwsexпол (таблица .tables.sex_table)
rwshadowсколько висеть тени (shadowlife) в секундах
rwshort_descrкороткое описание моба
rwsilverсеребро
rwsizeразмер (таблица .tables.size_table)
rwspec_funспец-процедура
rwstart_roomв какой комнате вошли в мир
roswitchedToв какого моба вселились
roterminal_typeтип терминала у mud-клиента
rwtimerсколько секунд прошло с последней команды
rwtitleтитул
rwtrainсколько тренировок
rwtrapфлаги ловушки (таблица .tables.trap_flags)
rotrustуровень привилегий
rwuniclassпод-профессия универсала (.Profession)
rwvuln_flagsфлаги уязвимости (таблица .tables.res_flags)
rwwaitwait state (в пульсах, 1 пульс = четверть секунды)
rowas_in_roomкомната, в которой находились перед закапыванием в могилу
rwwearlocсписок слотов экипировки
rwwimpyтрусость. при скольки hp чар будет убегать автоматически

Методы

Метод Описание
act(fmt, args): печатает нам отформатированную строку (с символом конца строки).
addDarkShroud(): повесить темную ауру
add_charmed(victim,time): очаровать victim на время time и добавить нам в последователи
add_follower(master): делает нас последователем master-а
add_pet(pet): добавить пета нам в последователи
affectAdd(.Affect): повесить новый аффект
affectBitStrip(where,bit): снять все аффекты, устанавливающие в поле where (.tables.affwhere_flags) значение bit
affectJoin(.Affect): повесить новый аффект или усилить существующий
affectStrip(skillName): снять все аффекты с именем skillName
api(): печатает этот api
canRecall(): может ли прямо сейчас воспользоваться возвратом
can_drop_obj(obj): может ли избавиться от предмета obj в инвентаре
can_get_obj(obj): может ли поднять предмет obj с земли
can_see_exit(door): видим ли выход под номером door
can_see_mob(ch): видим ли персонажа ch
can_see_obj(obj): видим ли предмет obj
can_see_room(room): видим ли комнату room
char_to_room(room): поместить в комнату room
clear(): очистка всех runtime полей
clearBehavior(): сбросить поведение моба до обычного
damage(vict,dam,skillName,damtype): нанести vict повреждения в размере dam умением skillName и типом damtype (таблица .tables.damage_table)
drink(obj,amount): заполнить желудок так, будто от obj отхлебнули amount глотков
eat(ob): заполнить желудок так, будто obj был съеден
echoOff(): выключает отображение введенного текста в терминале
echoOn(): включает отображение введенного текста в терминале
edReg([ndx[, txt]]): возвращает/устанавливает содержимое регистров редактора
edit(): переводит this в режим редактирования
eraseAttribute(attr): удаляет аттрибут с именем attr
extract(bool): уничтожить полностью (suicide/remort игрока или смерть моба) или не полностью как при выходе из мира
gainExp(exp): добавляет exp очков опыта
getClan(): строка с названием клана
getClanLevel(): клановый уровень, число от 0 до 8
getClass(): строка с названием профессии
getModifyLevel(): уровень, с учетом плюшек от ремортов
getName(): имя игрока или список имен моба
getRace(): строка с названием расы
getRealLevel(): настоящий уровень
getSex(): номер пола (0 neutral, 1 male, 2 female, 3 random - только у прототипов)
get_char_room(name): поиск по имени видимого персонажа в той же комнате
get_char_world(name): видимый для нас чар с именем name в мире
get_eq_char(wearloc): предмет экипировки, надетый на эту локацию
get_liquid_carry(liqname): вернет емкость в инвентаре с заданной жидкостью
get_obj_carry(name): поиск по имени видимого объекта в экипировке или инвентаре
get_obj_carry_type(type): видимый нам объект в инвентаре или equipment с этим типом (таблица .tables.item_table)
get_obj_carry_vnum(vnum): поиск по внуму предмета в инвентаре или экипировке
get_obj_here(name): видимый нам объект в комнате, инвентаре или equipment
get_obj_room(name): поиск по имени видимого объекта в комнате
get_obj_wear(name): поиск по имени видимого объекта в экипировке
get_obj_wear_vnum(vnum): поиск объекта в экипировке по внуму
get_random_room(): случайная комната, куда можно зайти
get_recipe_carry(flag): вернет рецепт в инвентаре с заданным флагом (таблица .tables.recipe_flags)
hasAttribute(attr): true если установлен аттрибут с именем attr
hasOccupation(): моб имеет занятие (shopper,practicer,repairman,quest_trader,quest_master,healer,smithman,trainer,clanguard)
hasWearloc(wearloc): обладает ли данным слотом в экипировке
interpret(msg): интерпретирует строку msg, как будто чар ее набрал сам
interpret_cmd(cmd, args): выполняет команду с аргументами от имени чара
interpret_raw(cmd, arg): выполняет команду с аргументами от имени чара, без предварительных проверок
isAffected(skillName): находится ли под воздействием аффекта с именем skillName
isDead(): умер ли моб
isLawProtected(): охраняется ли моб законом
is_immortal(): true, если this бессмертный или кодер
is_npc(): true для мобов, false для игроков
is_safe(vict): защищают ли боги vict от нас
look_auto(room): вывести описание комнаты room, будто там набрали look
mortality(): включает-выключает бессмертие для кодеров
move_char(door[,movetype]): переместить персонажа в дверь door, с типом движения movetype('running','crawl'). Вернет true если переместили.
multi_hit(vict): нанести один раунд повреждений жертве
print(fmt, args): возвращает отформатированную строку (см. статью вики про ф-ии вывода)
psay(ch, format, args...): произносит вслух реплику, отформатированную как в методе act и видимую только для ch
ptc(msg): print to char, печатает строку msg
raw_kill([bodypart[,killer]]): убить. часть тела из таблицы .tables.part_flags или -1
rawdamage(vict,dam,damtype): нанести vict повреждения в размере dam с типом damtype (таблица .tables.damage_table)
recho(fmt, args): выводит отформатированную строку всем в комнате, кроме нас
restring(skill,key,names,short,long): установить аттрибут для рестринга результатов заклинаний
rtapi(): печатает все поля и методы, установленные в runtime
rvecho(vict, fmt, args...): выводит отформатированную строку всем в комнате, кроме нас и vict
save(): сохранить профайл на диск
say(format, args...): произносит вслух реплику, отформатированную как в методе act
seeName(ch[, case]): как мы видим имя и претитул ch в падеже case
setClan(name): устанавливает клан по строке с именем
setDead(): пометить моба как умершего
setLevel(level): установить уровень мобу
setName(name): устанавливает имена моба
spell(skillName,level,vict,spellbane): скастовать на vict заклинание skillName уровне level, с возможным spellbane
stop_fighting(): прекратить битву
stop_follower(): прекращает следование, снимает очарование
switchFrom(): выселиться из моба обратно
switchTo(mob): вселиться в тело моба
transfer(room,actor,msgRoomLeave,msgSelfLeave,msgRoomEnter,msgSelfEnter): actor переносит нас в комнату room
updateSkills(): освежить разученность умений (при входе в мир)
writeWSCommand(cmd,args...): отправить в веб-клиент команду с аргументами

Предмет, объект

Доступ к API изнутри мира

  • eval ptc(get_obj_world("barrel").api())

Поля, доступные только для чтения [ro] и для записи [rw]

Статус Поле Описание
roaffectedсписок (List) всех аффектов на предмете (структура .Affect)
rocarried_byперсонаж, несущий предмет в инвентаре-экипировке, или null
rwconditionсостояние, от 0 [уж.] до 100
rocontainsуказывает на первый предмет, содержащийся внутри этого
rwcostцена в серебре
rodeadtrue если предмет уничтожен
rwdescriptionописание, видимое на земле
rwenchantedвисят ли на предмете аффекты, меняющие его свойства
rwextra_flagsдополнительные флаги (таблица .tables.extra_flags)
roidуникальный идентификатор предмета
roin_objвнутри какого предмета находится этот, или null
roin_roomкомната, на полу которой лежит предмет, или null
roitem_typeтип предмета (таблица .tables.item_table)
roitemsсписок (List) всех предметов внутри этого
rwlevelуровень предмета
rwmaterialназвание материала, из которого сделан предмет
rwnameимена предмета, на которые он откликается
ronextуказывает на следующий предмет в глобальном списке .object_list
ronext_contentуказывает на следующий предмет в том же контейнере или инвентаре
roonlineпредмет сейчас в мире (а не в профайлах)
rwownerимя персонажа-владельца (для трупов и личных вещей)
ropIndexDataпрототип предмета
rwpocketназвание кармана, в котором лежит предмет, или пустая строка
roreal_short_descrописание без учета restring-а
rwshort_descrописание, видимое в инвентаре и при манипуляциях
rwtimerчерез сколько тиков исчезнет или -1
rwvalue0поле value0, смысл зависит от типа предмета
rwvalue1поле value1, смысл зависит от типа предмета
rwvalue2поле value2, смысл зависит от типа предмета
rwvalue3поле value3, смысл зависит от типа предмета
rwvalue4поле value4, смысл зависит от типа предмета
rovnumномер прототипа предмета из арии
rwwear_flagsкуда можно надеть предмет (таблица .tables.wear_flags)
rowear_locимя локации, куда надет сейчас, или none
roweightвес предмета
roweightTotalвес предмета с учетом содержимого

Методы

Метод Описание
affectAdd(aff): повесить на предмет указанный аффект (.Affect)
affectStrip(skill): снять с предмета все аффекты от умения по имени skill
affectStripAll(): снять все аффекты
api(): печатает этот API
clear(): очистка всех runtime полей
equip(wearloc): надеть в указанную локацию тому, кто несет предмет
extract(): полностью уничтожить предмет
getCarrier(): персонаж, который несет предмет с учетом вложенности, или null
getRoom(): комната, в которой находится предмет с учетом вложенности, или null
get_extra_descr(key): найти экстра-описание с ключевым словом key
get_obj_content_vnum(vnum): поиск объекта внутри этого по внуму
isAffected(skill): находится ли предмет под воздействием аффекта с данным именем
list_obj_content_vnum(vnum): поиск списка (List) объектов внутри этого по внуму
madeOfMetal(): предмет сделан из металла
madeOfWood(): предмет сделан из дерева
materialBurns(): сколько тиков горит (-1 если тушит огонь)
obj_from_char(): deprecated
obj_from_obj(): deprecated
obj_from_room(): deprecated
obj_to_char(ch): дать предмет в руки персонажу ch
obj_to_obj(obj): положить предмет внутрь другого предмета obj
obj_to_room(room): положить предмет на пол в комнате room
random_obj_list([item_type]): случайный объект из списка, начинающегося с этого объекта. поиск ограничивается типом item_type, если задан
rtapi(): печатает все поля и методы, установленные в runtime
set_extra_descr(key, text): установить экстра-описание text по ключевому слову key
unequip(): снимает предмет и кладет в инвентарь тому, кто несет

Комната

Доступ к API изнутри мира

  • eval ptc(in_room.api())

Поля, доступные только для чтения [ro] и для записи [rw]

Статус Поле Описание
rwaffected_byбиты аффектов на комнате (таблица .tables.affect_flags)
roareaэкземпляр Area для этой комнаты
roareanameимя арии
roclanимя клана, которому принадлежит комната
rocontentsуказывает на первый предмет на полу комнаты
rodescriptionописание комнаты
rodownкомната вниз отсюда или null
roeastкомната на восток отсюда или null
roitemsсписок (List) всех предметов на полу
rwlightколичество источников света в комнате
ronameназвание комнаты
ronorthкомната на север отсюда или null
ropeopleуказывает на первого чара в комнате
ropplсписок (List) всех чаров в комнате
roresetMobilesсписок внумов мобов, которые ресетятся в этой комнате
rornextуказывает на след. комнату в глобальном списке .room_list
rwroom_flagsфлаги комнаты (таблица .tables.room_flags)
rosector_typeзначение типа местности (таблица .sector_table)
rosouthкомната на юг отсюда или null
roupкомната вверх отсюда или null
rovnumномер комнаты в арии
rowestкомната на запад отсюда или null

Методы

Метод Описание
api(): печатает этот API
clear(): очистка всех runtime полей
close(имя или номер выхода): закрыть дверь по указанному направлению
dirMsgEnter(имя или номер выхода): сообщение при заходе через этот выход (с юга, с запада)
dirMsgLeave(имя или номер выхода): сообщение при уходе через этот выход (на север, на восток)
doorName(номер выхода): вернет имя выхода
doorNumber(имя выхода): вернет номер выхода
doorTo(room): номер двери, ведущей из этой комнаты в room
echo(fmt, args): выводит отформатированную строку всем неспящим в комнате
exitKeyword(имя или номер выхода): ключевые слова, на которые откликается эта дверь или выход
exitShortDescr(имя или номер выхода): название выхода с падежами
exits(ch): список номеров всех доступных выходов для персонажа ch
getExitFlags(имя или номер выхода): флаги этого выхода (таблица .tables.exit_flags)
getRevDoor(имя или номер выхода): вернет номер противоположного направления
getRoom(имя или номер выхода): комната по этому направлению
get_mob_vnum(vnum): поиск первого моба в комнате по его внуму
get_obj_type(type): поиск первого объекта в комнате по его типу (таблица .tables.item_table)
get_obj_vnum(vnum): поиск первого объекта в комнате по его внуму
isCommon(): true если комната доступна всем (т.е. не приватная/клановая/newbie-only/...)
isDark(): true если в комнате темно
list_mob_vnum(vnum): поиск списка мобов в комнате по внуму
list_obj_vnum(vnum): поиск списка объектов в комнате по внуму
lock(имя или номер выхода): запереть дверь по указанному направлению
open(имя или номер выхода): открыть дверь по указанному направлению
rtapi(): печатает все поля и методы, установленные в runtime
traverse(depth, walker, sectorsAllow, sectorsDeny): построит путь (список комнат) для чара walker глубины depth, с разрешенными-запрещенными типами местности в виде битовых масок
traverseTo(target, walker, sectorsAllow, sectorsDeny): построит путь до цели target для чара walker, с разрешенными-запрещенными типами местности в виде битовых масок
unlock(имя или номер выхода): отпереть дверь по указанному направлению
zecho(msg): выведет сообщение msg для всех в этой арии

Прототипы предметов и мобов

Доступ к API изнутри мира

  • eval ptc(get_char_world("mermaid").pIndexData.api())
  • eval ptc(get_obj_world("barrel").pIndexData.api())

Примечание

Все поля прототипов доступны только для чтения.

Поля и методы прототипа предмета (obj index data)

Поле/Метод Описание
costцена в серебре
countкол-во экземпляров предметов этого прототипа
descriptionописание, видимое на земле
instancesсписок (List) всех предметов с этим прототипом
item_typeтип предмета (таблица .tables.item_table)
limitмаксимальное кол-во экземпляров существующих одновременно или -1
materialназвание материала, из которого сделан предмет
nameимена предмета, на которые он откликается
reset_numсколько раз этот прототип встречается в ресетах
short_descrописание, видимое в инвентаре и при манипуляциях
value0поле value0, смысл зависит от типа предмета
value1поле value1, смысл зависит от типа предмета
value2поле value2, смысл зависит от типа предмета
value3поле value3, смысл зависит от типа предмета
value4поле value4, смысл зависит от типа предмета
vnumвнум, уникальный номер прототипа
api(): печатает этот API
clear(): очистка всех runtime полей
create(): создать экземпляр предмета
property(name, defaultValue): свойство прототипа с именем name или значение по умолчанию
rtapi(): печатает все поля и методы, установленные в runtime

Поля и методы прототипа моба (mob index data)

Поле/Метод Описание
countкол-во экземпляров мобов этого прототипа
descriptionописание, видное если посмотреть на моба
groupк какой группе принадлежит моб (нужно для assist)
imm_flagsфлаги иммунитета (таблица .tables.imm_flags)
instancesсписок всех экземпляров мобов с этим прототипом
long_descrкак моба видно в комнате
nameимена, на которые откликается моб
practicerкакие группы умений может практиковать (glist или olchelp groups)
repopPlacesсписок внумов комнат, в которых ресетится моб
short_descrимя, которое видно когда моб совершает действия
spec_funспец-процедура
vnumвнум, уникальный номер прототипа
api(): печатает этот API
clear(): очистка всех runtime полей
create(): создать экземпляр моба
rtapi(): печатает все поля и методы, установленные в runtime

Корневой объект (root)

Доступ к API изнутри мира

  • eval ptc(.api())

Примечание

Поля и методы корневого объекта начинаются с точки.

Поля, доступные только для чтения [ro] и для записи [rw]

Статус Поле Описание
robuildplottrue для мира-стройплощадки
rochar_listсписок всех чаров, поле чара next указывает на следующего
rocurrent_timeтекущее время в секундах
rwdayтекущий день месяца, 0..34
rofeniadbStatsстатистика базы данных скриптовых объектов
rohometownsсписок всех хометаунов
rwhourтекущий час суток, 0..23
romob_index_listсписок (List) всех прототипов мобов
rwmonthтекущий месяц, 0..16
ronannyдоступ к методам 'няни', для процесса создания персонажа
roobj_index_listсписок (List) всех прототипов предметов
roobject_listсписок всех предметов, поле предмета next указывает на следующий
ropcracesсписок рас, доступных игрокам
roplayersсписок (List) всех игроков
roprofessionsсписок всех профессий, доступных игрокам
roracesсписок всех рас
roroom_listсписок всех комнат, поле комнаты rnext указывает на следующую
roschedulerобъект-планировщик
rwskyтекущая погода: 0=безоблачно, 1=облачно, 2=дождь, 3=молнии
rwsunlightвремя суток: 0=ночь, 1=рассвет, 2=день, 3=закат
rotablesдоступ ко всем таблицам
rwtmpструктура где можно хранить глобальные переменные
rwworld_timeвнутримировое время в секундах
rwyearтекущий год

Методы

Метод Описание
Affect([skill]): конструктор для аффекта умения skill или пустого
Area(filename): конструктор для зоны по имени файла
Array(): конструктор для массива
Clan(name): конструктор для клана по имени
Command(): конструктор для команды
CraftProfession(name): конструктор для дополнительной профессии по имени
Hometown(name): конструктор для хометауна по имени
Liquid(name): конструктор для жидкости по имени
List(): конструктор для списка
Map(): конструктор для структуры
Profession(name): конструктор для профессии (класса) по имени
Race(name): конструктор для расы по имени
Skill(name): конструктор для умения по имени
abs(n): модуль числа n
api(): печатает этот API
chance(x): true если x < .number_percent()
chanceOneOf(x): true если .number_range(1, x) == 1
create_money(gold, silver): создает объект-деньги указанной стоимости
date(): строка с датой, как ее видно по команде time
dice(x, y): x раз кинуть кубик с y гранями
eval(expr): выполнить феневое выражение expr
findPlayer(name): поиск игрока по точному имени
find_profession(name): нестрогий поиск профессии по русскому или англ названию
fmt(args): отформатировать строку, см. статью вики про функции вывода
gecho(msg): выдать сообщение msg всем играющим
getCurrentTime(): текущее время в секундах
get_char_world(name): ищет в мире чара с указанным именем
get_mob_index(vnum): возвращает прототип моба с заданным vnum
get_obj_index(vnum): возвращает прототип предмета с заданным vnum
get_obj_world(name): ищет в мире предмет с указанным именем
get_random_room(): произвольная комната из числа общедоступных
get_room_index(vnum): возвращает комнату с заданным vnum
infonet(msg): выдать сообщение msg через хрустальный шар
isset_bit(mask, b): вернет логическое 'и' между mask и b
loadConfig(): считать конфигурацию DreamLand с диска
makeShort(s1,s2,...,s6): конструирует строку с палками из шести строк с падежами
max(a, b): максимальное из двух чисел a и b
min(a, b): минимальное из двух чисел a и b
number_percent(): произвольное число от 1 до 100
number_range(x, y): произвольное число в промежутке от x до y
obj_by_id(id): найти феневый объект по уникальному идентификатору
object(id): поиск феневого объекта по ID (cистемное)
player_attribute(playerName, attrName): значение данного аттрибута игрока
player_clan(name): название клана игрока по его имени
player_exists(name): существует ли в мире игрок с данным именем
player_name(name): английское имя игрока по его русскому/английскому имени
player_russian_name(name): русское имя игрока с падежами по его русскому/английскому имени
print(msg): вывести строку msg в системные логи
repr(obj): попытка привести феневый объект obj к строке
saveConfig(): сохранить конфигурацию DreamLand на диск
set_bit(mask, b): вернет логическое 'или' между mask и b
set_bit_number(mask, n): вернет mask с установленными битом под номером n (т.е. mask | 1<
sync(): test for objects sync (системное)
unset_bit(mask, b): вернет mask со сброшенными битами из b
wiznet(msg): выдать сообщение msg по wiznet

Различные структуры

Доступ к API изнутри мира

Можно посмотреть API для каждой структуры, создав ее и вызвав метод api(), например:

  • eval ptc(.Affect("none").api())
  • eval ptc(.Profession("cleric").api())
  • eval ptc(.Liquid("wine").api())

Affect: аффект, поля и методы

Все поля доступны для чтения и записи.

Поле/Метод Описание
bitvectorкакие биты добавятся полю, указанному в where
durationдлительность, -1 для вечных аффектов
globalсписок значений для where=locations (слоты экипировки) и where=liquids (жидкости)
levelуровень аффекта
locationполе, на которое аффект воздействует численно (таблица .tables.apply_flags)
modifierна сколько изменится поле, указанное в location
typeназвание умения, которым этот аффект вешается, или none
whereполе, у которого аффект изменяет биты (таблица .tables.affwhere_flags)
api(): печатает этот api

Command: команда, поля и методы

Все поля доступны для чтения и записи.

Поле/Метод Описание
funcфункция команды: function(ch, args)
nameназвание команды
rnameрусское название команды
api(): печатает этот api

Area: зона

Все поля доступны только для чтения.

Поле/Метод Описание
area_flagфлаги зоны (таблица .tables.area_flags)
filenameназвание файла зоны
nameимя зоны (как видно по 'where')
api(): печатает этот api

Hometown: родной город

Все поля доступны только для чтения.

Поле/Метод Описание
altnameальтернативное название арии
areanameполное название арии
creditsоригинальное англ название арии
nameанглийское название
recallvnum комнаты возврата (recall)
api(): печатает этот api
isAllowed(ch): доступен ли город персонажу ch

Profession: класс персонажа

Все поля доступны только для чтения.

Поле/Метод Описание
alignNameрусское имя подходящего характера или 'любой'
ethosсписок подходящих мировоззрений
nameанглийское название
nameMltрусское название во множ.числе с падежами
nameRusрусское название с падежами
pointsдополнительные очки опыта
statPlusкакие параметры увеличиваются у представителей этой профессии
api(): печатает этот api
bestWeapon(ch): vnum лучшего новичкового оружия для расы и класса персонажа ch
goodPersonality(ch): проверить ограничение на характер и этос на профессию для персонажа ch
goodRace(ch): проверить ограничения по расе на профессию для персонажа ch
goodSex(ch): проверить ограничения по полу на профессию для персонажа ch

Race: раса персонажа

Все поля доступны только для чтения.

Поле/Метод Описание
affврожденные аффекты (таблица .tables.affect_flags)
detврожденные детекты (таблица .tables.detect_flags)
formформы тела (таблица .tables.form_flags)
hpBonusбонус на здоровья при создании персонажа этой расы
immврожденный иммунитет (таблица .tables.imm_flags)
manaBonusбонус на ману при создании персонажа этой расы
nameанглийское название
nameFemaleрусское название в женском роде с падежами
nameMaleрусское название в мужском роде с падежами
nameMltрусское название во множ.числе с падежами
partsчасти тела (таблица .tables.part_flags)
pracBonusбонус на кол-во практик при создании персонажа этой расы
resврожденная сопротивляемость (таблица .tables.res_flags)
sizeразмер (таблица .tables.size_table)
vulnврожденные уязвимости (таблица .tables.vuln_flags)
wearlocсписок доступных wear locations
api(): печатает этот api
nameRus(ch): русское название в зависимости от пола персонажа ch

Clan: клан

Все поля доступны только для чтения.

Поле/Метод Описание
colorбуква цвета
indexвнутренний порядковый номер
nameанглийское название
api(): печатает этот api
diplomacy(clan): англ название дипломатии с кланом clan (clan dip list)

CraftProfession: дополнительная профессия

Все поля доступны только для чтения.

Поле/Метод Описание
nameанглийское название
nameMltназвание во множественном числе с падежами
nameRusрусское название с падежами
api(): печатает этот api
gainExp(ch, exp): заработать очков опыта в этой профессии
getExpToLevel(ch): кол-во опыта до следующего уровня мастерства в этой профессии
getLevel(ch): получить уровень мастерства персонажа в этой профессии
getTotalExp(ch): суммарный опыт персонажа в этой профессии
setLevel(ch, level): установить персонажу уровень мастерства в этой профессии

Liquid: жидкость

Все поля доступны только для чтения.

Поле/Метод Описание
colorприлагательное цвета с падежами
flagsфлаги жидкости (таблица .tables.liquid_flags)
fullкак хорошо насыщает
hungerкак хорошо утоляет голод
indexвнутренний порядковый номер
nameанглийское название
short_descrрусское название с цветами и падежами
sip_sizeразмер глотка
thirstкак хорошо утоляет жажду
api(): печатает этот api

Skill: умение или заклинание

Все поля доступны только для чтения.

Поле/Метод Описание
nameанглийское название
nameRusрусское название
adept(ch): вернуть максимальное значение, до которого можно практиковаться
api(): печатает этот api
effective(ch): узнать процент раскачки у персонажа
improve(ch,success[,victim]): попытаться улучшить знание умения на успехе/неудаче (true/false), применен на жертву
learned(ch[,percent]): вернуть разученность или установить ее в percent
usable(ch): доступно ли умение для использования прямо сейчас персонажу ch

Строка

Содержание

Доступ к API изнутри мира

  • eval ptc("".api())

Методы

Метод Описание
api(): печатает этот api
capitalize(): перевести 1й символ в верхний регистр, остальные в нижний
contains(words): true если эта строка содержит одно из слов из строки words
cutOneArgument(): возвращает строку без первого слова (или без первой фразы в кавычках)
format(width): превращает строку в абзац заданной ширины
getOneArgument(): возвращает первое слово или первую фразу в кавычках
isName(arg): является ли слова из arg одними из полных слов в строке
isRussian(): возвращает true если строка не пуста и содержит только русские буквы
is_name(arg): являются ли слова из arg подсловами в строке
match(regex): true если строка соответствует этому регулярному выражению
matchAndReplace(pattern, str): заменяет в данной строке все вхождения $1..$9 на соответствующие совпадения
matchCase(regex): true если строка соответствует этому регулярному выражению с учетом регистра
matchGroups(pattern): возвращает список (List) из всех групп шаблона
replace(s1,s2): заменяет все вхождения первой подстроки на вторую
ruscase(case): строка в указанном падеже
size(): длина строки
split(sep): возвращает List из подстрок, разбитых по разделителю sep
strPrefix(str): true если эта строка - префикс str
stripColour(): удаляет все символы цвета
substr(offset[,length]): возвращает подстроку начинающуюся с offset длины length или до конца
toLower(): переводит всю строку в нижний регистр
trim(): обрезать лишние пробелы по бокам
upperFirstChar(): возвращает ту же строку, но с большой буквы