DreamLand MUD - Мир Грёз, Феневое API

Феневое API

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

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

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

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

Статус Поле Описание
rw PK_flag KILLER, SLAIN, VIOLENT, GHOST, THIEF
rw PK_time_sk сколько висит slain и killer
rw PK_time_t сколько висит thief
rw PK_time_v сколько висит violent
rw act act флаги для мобов и plr для игроков (таблицы .tables.act_flags и plr_flags)
rw add_affected_by расширение флагов аффектов (таблица .tables.affect_flags)
rw add_comm расширение поля comm (таблица .tables.add_comm_flags)
ro adrenaline полна ли кровь адреналина
ro affected список всех аффектов (List из структур Affect)
rw affected_by флаги аффектов (таблица .tables.affect_flags)
ro alignMax название самой доброй натуры для расы и класса персонажа
ro alignMin название самой злой натуры для расы и класса персонажа
ro alignName название натуры
rw alignment натура, от -1000 до 1000
ro altar vnum комнаты-алтаря в родном городе персонажа
rw ambushing строка, на кого сидим в засаде
rw anti_killed сколько жертв не моего align убито
rw armor0 класс брони
rw armor1 класс брони
rw armor2 класс брони
rw armor3 класс брони
rw bank_g золота в банке
rw bank_s серебра в банке
rw batle_prompt строка состояния в бою
ro boat объект лодки
rw carry_number количество вещей которое несет чар
rw carry_weight вес который несет чар
ro carrying первый объект в списке инвентаря/экипировки
ro clan клан (структура .Clan)
rw comm comm флаги (таблица .tables.comm_flags)
rw cond_bloodlust изменить 'жажда крови' на указанное число баллов
rw cond_drunk изменить 'опьянение' на указанное число баллов
rw cond_full изменить 'заполненность желудка' на указанное число баллов
rw cond_hunger изменить 'голод' на указанное число баллов
rw cond_thirst изменить 'жажда' на указанное число баллов
rw config настройки чара (таблица .tables.config_flags)
ro connected true если есть связь
ro craftProfessions map из названия->уровень мастерства для дополнительных профессий
ro cur_cha текущий параметр: харизма
ro cur_con текущий параметр: телосложение
ro cur_dex текущий параметр: ловкость
ro cur_int текущий параметр: ум
ro cur_str текущий параметр: сила
ro cur_wis текущий параметр: мудрость
rw dam_type тип повреждения (таблица .tables.weapon_flags)
rw damage_number повреждения моба: сколько раз кидать кубик
rw damage_type повреждения моба: кол-во граней кубика
rw damroll урон
rw daze daze state (в пульсах, 1 пульс = четверть секунды)
ro dead true, если персонаж полностью уничтожен (suicide/remort для pc, смерть для npc)
rw death сколько раз умирал
rw death_ground_delay счетчик ловушки
rw description то что видно по look mob
rw detection флаги детектов (таблица .tables.detect_flags)
ro doppel игрок, которому подражаем с помощью doppelganger. для зеркал - игрок, который их создал
ro equipment список всех предметов в экипировке
rw ethos добропорядочность
ro evil true если персонаж злой
rw exp суммарный опыт
ro expToLevel сколько опыта осталось набрать до след уровня
ro fighting тот, с кем сражаемся
ro flying true если мы GHOST, летаем или верхом на летающем скакуне
rw form форма тела (таблица .tables.form_flags)
rw ghost_time сколько висит ghost
rw gold золото
ro good true если персонаж добрый
ro groupHere список (List) всех согруппников в комнате
ro guarded_by игрок, который нас охраняет
ro guarding игрок, которого охраняем с помощью умения guard
ro hasDestiny моб имеет предназначение (квестовые и спец-мобы)
rw has_killed сколько жертв убито всего
rw hit текущее здоровье (hit points)
rw hitroll точность
rw hometown родной город (структура .Hometown)
ro hostname IP-адрес соединения
ro id уникальный идентификатор персонажа
rw imm_flags флаги иммунитета (таблица .tables.imm_flags)
ro in_room комната, в которой сейчас находимся
rw incog_level уровень для incognito
ro inventory список всех предметов в инвентаре
rw invis_level уровень для wisinvis
ro isInInterpret true если игрок в состоянии ввода команд (не ed, не olc, не pager, etc)
ro items список всех предметов в инвентаре или экипировке
ro lastAccessTime время последнего захода в мир
rw last_death_time когда последний раз был убит
ro last_fight_delay задержка после боя в секундах
rw last_fought чар, с которым сражались последний раз
rw last_level какой был played, когда набили последний левел
rw leader лидер группы или тот, кто очаровал
rw level настоящий уровень
rw lines кол-во строк в буфере вывода
rw logon время последнего захода в мир
rw long_descr длинное описание моба
rw loyalty лояльность по отношению к закону (рулеровскому)
rw mana текущая mana
ro master тот, за кем следуем
rw max_hit максимальное здоровье
rw max_mana максимальная mana
rw max_move максимальные moves
ro max_train_cha максимум тренировки для параметра: харизма
ro max_train_con максимум тренировки для параметра: телосложение
ro max_train_dex максимум тренировки для параметра: ловкость
ro max_train_int максимум тренировки для параметра: ум
ro max_train_str максимум тренировки для параметра: сила
ro max_train_wis максимум тренировки для параметра: мудрость
ro modifyLevel уровень с учетом бонусов от ремортов
ro mount на ком мы верхом или кто верхом на нас
rw move текущие moves
rw name имя
ro neutral true если персонаж нейтральный
ro next следующий чар в глобальном списке всех чаров, .char_list
ro next_in_room следующий чар в этой комнате, в списке people у комнаты
rw off_flags флаги поведения моба (таблица .tables.off_flags)
rw on объект, мебель, на которой сидим
ro online true, если персонаж в мире
ro pIndexData структура с прототипом для всех мобов с данным vnum(mob index data, т.е. то, редактируется с помощью OLC)
rw parts части тела (таблица .tables.part_flags)
rw password пароль
ro pc экземпляр игрока
rw perm_cha перманентный параметр: харизма
rw perm_con перманентный параметр: телосложение
rw perm_dex перманентный параметр: ловкость
rw perm_hit max hp без шмота
rw perm_int перманентный параметр: ум
rw perm_mana max mana без шмота
rw perm_move max move без шмота
rw perm_str перманентный параметр: сила
rw perm_wis перманентный параметр: мудрость
ro pet моб, домашнее животное
rw position позиция (таблица .tables.position_table)
rw practice сколько практик
rw pretitle претитул
rw profession класс (структура .Profession)
rw prompt строка состояния
rw questpoints qp
ro quick true если есть бит haste/fast и нету slow
rw race раса (структура .Race)
rw religion религия (структура .Religion)
ro remort_count кол-во ремортов
ro reply чар, который последний говорил с нами. по команде reply реплика отправится именно ему
rw res_flags флаги сопротивляемости (таблица .tables.res_flags)
rw riding если mount!=null: true - мы верхом, false - мы оседланы
rw russianName русские имена с падежами
rw saving_throw савесы
rw sex пол (таблица .tables.sex_table)
rw shadow сколько висеть тени (shadowlife) в секундах
rw short_descr короткое описание моба
rw silver серебро
rw size размер (таблица .tables.size_table)
ro slow true если есть бит slow, нету хасты и (в случае мобов) бита fast
rw spec_fun спец-процедура
rw start_room в какой комнате вошли в мир
ro switchedTo в какого моба вселились
ro terminal_type тип терминала у mud-клиента
rw timer сколько минут прошло с последней команды
rw title титул
ro totems список всех тотемов, созданных персонажем
rw train сколько тренировок
rw trap флаги ловушки (таблица .tables.trap_flags)
ro trust уровень привилегий
rw vuln_flags флаги уязвимости (таблица .tables.res_flags)
rw wait wait state (в пульсах, 1 пульс = четверть секунды)
ro was_in_room комната, в которой находились перед закапыванием в могилу
rw wearloc названия всех слотов экипировки через пробел
rw wimpy трусость. при скольки 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): повесить новый аффект или усилить существующий
affectRemoveAll(): снять все аффекты
affectReplace(.Affect): удалить все аффекты этого типа и повесить новый
affectStrip(skillName[,verbose]): снять все аффекты с именем skillName, показав сообщение о спадании (verbose)
api(): печатает этот api
attribute(name): вернуть аттрибут с данным именем, в виде строки или структуры, либо null
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,damflags]): нанести vict повреждения в размере dam умением skillName и типом damtype (таблица .tables.damage_table)
drink(obj,amount): заполнить желудок так, будто от obj отхлебнули amount глотков
eat(ob): заполнить желудок так, будто obj был съеден
echoMaster(fmt, args): выдать строку хозяину, если он есть
echoOff(): выключает отображение введенного текста в терминале
echoOn(): включает отображение введенного текста в терминале
edReg([ndx[, txt]]): возвращает/устанавливает содержимое регистров редактора
edit(): переводит this в режим редактирования
eraseAttribute(attr): удаляет аттрибут с именем attr
extract(bool): уничтожить полностью (suicide/remort игрока или смерть моба) или не полностью как при выходе из мира
flydownопуститься на землю без задержек, вернет true если до этого летали
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): поиск объекта в экипировке или видимого объекта в инвентаре, по имени или ID
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)
give(vict,vnum|obj): дать персонажу vict предмет obj, создав его, если указан внум
giveBack(vict,obj): вернуть персонажу vict предмет obj
hasAttribute(attr): true если установлен аттрибут с именем attr
hasOccupation(): моб имеет занятие (shopper,practicer,repairman,quest_trader,quest_master,healer,smithman,trainer,clanguard,adept)
hasWearloc(wearloc): обладает ли данным слотом в экипировке
hash(mod): вернуть ключ к хеш-таблице по модулю mod
interpret(msg): интерпретирует строку msg, как будто чар ее набрал сам
interpret_cmd(cmd, args): выполняет команду с аргументами от имени чара
interpret_raw(cmd, arg): выполняет команду с аргументами от имени чара, без предварительных проверок
isAffected(skillName): находится ли под воздействием аффекта с именем skillName
isDead(): умер ли моб
isImmune(damtype, damflag): есть ли иммунитет к типу повреждений из .tables.damage_table с флагом повреждений из .tables.damage_flags
isLawProtected(): охраняется ли моб законом
isVulnerable(damtype, damflag): есть ли уязвимость к типу повреждений из .tables.damage_table с флагом повреждений из .tables.damage_flags
is_immortal(): true, если this бессмертный или кодер
is_npc(): true для мобов, false для игроков
is_safe(vict): защищают ли боги vict от нас
is_safe_rspell(af): защищают ли боги от действия заклинания аf на комнате
is_safe_spell(vict): защищают ли боги vict от наших арийных заклинаний
is_same_group(gch): вернет true если мы с персонажем gch в одной группе
list_obj_world(arg): поиск по миру видимых персонажу предметов с уровнем не выше персонажа
look_auto(room): вывести описание комнаты room, будто там набрали look
menu([number, action]): очистить меню или установить пункт number с действием action
mortality(): включает-выключает бессмертие для кодеров
move_char(door[,movetype]): переместить персонажа в дверь door, с типом движения movetype('running','crawl'). Вернет true если переместили.
multi_hit(vict): нанести один раунд повреждений жертве
one_hit(vict): нанести vict один удар оружием
print(fmt, args): возвращает отформатированную строку (см. статью вики про ф-ии вывода)
psay(ch, format, args...): произносит вслух реплику, отформатированную как в методе act и видимую только для ch
ptc(msg): print to char, печатает строку msg
quaff(obj): получить эффекты от пилюли или зелья
raw_kill([bodypart[,killer]]): убить. часть тела из таблицы .tables.part_flags или -1
rawdamage(vict,dam,damtype): нанести vict повреждения в размере dam с типом damtype (таблица .tables.damage_table)
recho(fmt, args): выводит отформатированную строку всем в комнате, кроме нас
rememberFought(ch): запомнить персонажа ch как будто с ним сражались
restring(skill,key,names,short,long,extra): установить аттрибут для рестринга результатов заклинаний
rtapi(): печатает все поля и методы, установленные в runtime
rvecho(vict, fmt, args...): выводит отформатированную строку всем в комнате, кроме нас и vict
save(): сохранить профайл на диск
saves_spell(caster,level,dam_type[,dam_flag]): спас-бросок против типа повреждения (.tables.damage_table) с флагом повреждения (.tables.damage_flags)
say(format, args...): произносит вслух реплику, отформатированную как в методе act
seeName(ch[, case]): как мы видим имя и претитул ch в падеже case
setClan(name): устанавливает клан по строке с именем
setClanLevel(уровень): клановый уровень, число от 0 до 8
setDead(): пометить моба как умершего
setLevel(level): установить уровень мобу
setName(name): устанавливает имена моба
skills([origin]): список названий доступных скилов, всех или с данным происхождением (.tables.skill_origin_table)
spell(skillName,level[,vict|argument[,spellbane[,verbose]]]): скастовать заклинания на всю комнату, на vict или с аргументом
stop_fighting(): прекратить битву
stop_follower([verbose]): прекращает следование, снимает очарование
switchFrom(): выселиться из моба обратно
switchTo(mob): вселиться в тело моба
transfer(room,actor,msgRoomLeave,msgSelfLeave,msgRoomEnter,msgSelfEnter): actor переносит нас в комнату room
updateSkills(): освежить разученность умений (при входе в мир)
visible(): проявиться из невидимости
writeWSCommand(cmd,args...): отправить в веб-клиент команду с аргументами

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

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

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

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

Статус Поле Описание
ro affected список (List) всех аффектов на предмете (структура .Affect)
ro ave среднее повреждение оружия или 0
ro carried_by персонаж, несущий предмет в инвентаре-экипировке, или null
rw condition состояние, от 0 [уж.] до 100
ro contains указывает на первый предмет, содержащийся внутри этого
rw cost цена в серебре
ro dead true если предмет уничтожен
rw description описание, видимое на земле
rw enchanted висят ли на предмете аффекты, меняющие его свойства
rw extra_flags дополнительные флаги (таблица .tables.extra_flags)
rw gender грамматический род и число (n, m, f, p или null)
ro id уникальный идентификатор предмета
ro in_obj внутри какого предмета находится этот, или null
ro in_room комната, на полу которой лежит предмет, или null
ro item_type тип предмета (таблица .tables.item_table)
ro items список (List) всех предметов внутри этого
rw level уровень предмета
ro material материалы (.Material), из которых сделан предмет
rw name имена предмета, на которые он откликается
ro next указывает на следующий предмет в глобальном списке .object_list
ro next_content указывает на следующий предмет в том же контейнере или инвентаре
ro online предмет сейчас в мире (а не в профайлах)
rw owner имя персонажа-владельца (для трупов и личных вещей)
ro pIndexData прототип предмета
rw personal установить или вернуть англ. имя собственника для личной вещи (или null)
rw pocket название кармана, в котором лежит предмет, или пустая строка
ro real_short_descr описание без учета restring-а
rw short_descr описание, видимое в инвентаре и при манипуляциях
ro special обладает ли прототип предмета сложным поведением (через феню или код)
rw timer через сколько тиков исчезнет или -1
rw value0 поле value0, смысл зависит от типа предмета
rw value1 поле value1, смысл зависит от типа предмета
rw value2 поле value2, смысл зависит от типа предмета
rw value3 поле value3, смысл зависит от типа предмета
rw value4 поле value4, смысл зависит от типа предмета
ro vnum номер прототипа предмета из арии
rw wear_flags куда можно надеть предмет (таблица .tables.wear_flags)
ro wear_loc имя локации, куда надет сейчас, или none
ro weight вес предмета
ro weightTotal вес предмета с учетом содержимого
ro worn true если надето, но не на хвост и не в волосы

Методы

Метод Описание
affectAdd(aff): повесить на предмет указанный аффект (.Affect)
affectJoin(aff): усилить существующий аффект или повесить новый (.Affect)
affectReplace(.Affect): удалить все аффекты этого типа и повесить новый
affectStrip(skill[,verbose]): снять с предмета все аффекты от умения по имени skill, показав сообщение о спадании (verbose)
affectStripAll(): снять все аффекты
api(): печатает этот API
clear(): очистка всех runtime полей
equip(wearloc): надеть в указанную локацию тому, кто несет предмет
extract(): полностью уничтожить предмет
getCarrier(): персонаж, который несет предмет с учетом вложенности, или null
getRoom(): комната, в которой находится предмет с учетом вложенности, или null
get_extra_descr(key): найти экстра-описание с ключевым словом key
get_obj_content_vnum(vnum): поиск объекта внутри этого по внуму
get_owner_here(): вернуть персонажа-владельца в той же комнате
hasWeaponFlag(flags): выставлен ли хотя бы один из флагов на оружии (таблица .tables.weapon_type2 или строка)
isAffected(skill): находится ли предмет под воздействием аффекта с данным именем
list_obj_content_vnum(vnum): поиск списка (List) объектов внутри этого по внуму
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
pour_out(): вылить жидкость из контейнера, создав лужу
random_obj_list([item_type]): случайный объект из списка, начинающегося с этого объекта. поиск ограничивается типом item_type, если задан
remove([verbose]): снимает предмет, если возможно, и кладет в инвентарь тому, кто несет
rtapi(): печатает все поля и методы, установленные в runtime
set_extra_descr(key, text): установить экстра-описание text по ключевому слову key
unequip(): снимает предмет без проверок и сообщений, кладет в инвентарь тому, кто несет

Комната

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

  • eval ptc(in_room.api())

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

Статус Поле Описание
ro affected список (List) всех аффектов на комнате (структура .Affect)
rw affected_by биты аффектов на комнате (таблица .tables.affect_flags)
ro area экземпляр AreaIndex для этой комнаты
ro areaname имя арии
ro clan имя клана, которому принадлежит комната
ro contents указывает на первый предмет на полу комнаты
ro description описание комнаты
ro down комната вниз отсюда или null
ro east комната на восток отсюда или null
ro items список (List) всех предметов на полу
ro light количество источников света в комнате
ro name название комнаты
ro north комната на север отсюда или null
ro people указывает на первого чара в комнате
ro players список (List) всех игроков в комнате
ro ppl список (List) всех чаров в комнате
ro resetMobiles список внумов мобов, которые ресетятся в этой комнате
rw room_flags флаги комнаты (таблица .tables.room_flags)
ro sector_type значение типа местности (таблица .sector_table)
ro south комната на юг отсюда или null
ro up комната вверх отсюда или null
ro vnum номер комнаты в арии
ro west комната на запад отсюда или null

Методы

Метод Описание
affectAdd(aff): повесить новый аффект (.Affect)
affectFind(skill,ch): найти аффект с данным именем и владельцем-персонажем
affectJoin(aff): усилить существующий аффект или повесить новый (.Affect)
affectReplace(.Affect): удалить все аффекты этого типа и повесить новый
affectStrip(skill[,verbose]): снять с комнаты все аффекты от умения по имени skill, показав сообщение о спадании (verbose)
api(): печатает этот API
clear(): очистка всех runtime полей
close(имя или номер выхода): закрыть дверь по указанному направлению
count_enemies(ch): кол-во персонажей, сражающихся с ch
dirMsgEnter(имя или номер выхода): сообщение при заходе через этот выход (с юга, с запада)
dirMsgLeave(имя или номер выхода): сообщение при уходе через этот выход (на север, на восток)
doorName(номер выхода): вернет имя выхода
doorNumber(имя выхода): вернет номер выхода
doorTo(room): номер двери, ведущей из этой комнаты в room
echo(fmt, args): выводит отформатированную строку всем неспящим в комнате
echoAround(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[,owner]): поиск первого объекта в комнате по его внуму (с владельцем owner)
hasDust(): достаточно ли пыли или песка в комнате
hasParticles(): достаточно ли разных частиц в комнате
hasWaterParticles(): достаточно ли водяных паров в комнате
isAffected(skill): находится ли комната под воздействием аффекта с данным именем
isCommon(): true если комната доступна всем (т.е. не приватная/клановая/newbie-only/...)
isDark(): true если в комнате темно
isNature(): является ли комната дикой местностью
isOutside(): находится ли комната снаружи помещения
isWater(): является ли эта комната водной или подводной
list_mob_vnum(vnum): поиск списка мобов в комнате по внуму
list_obj_type(type): поиск списка объектов в комнате по его типу (имя или номер из .tables.item_table)
list_obj_vnum(vnum): поиск списка объектов в комнате по внуму
lock(имя или номер выхода): запереть дверь по указанному направлению
open(имя или номер выхода): открыть дверь по указанному направлению
playersWithPosition(pos): список (List) всех игроков в комнате в определенном положении
roomAt(ch,arg): доступная ch комната по направлению, указанному в аргументе (2.n, 3.e и т.д.)
rtapi(): печатает все поля и методы, установленные в runtime
saveItemsсохраняет все предметы на полу в комнате на диск
saveMobsсохраняет всех мобов в комнате на диск
traverse(depth, walker, sectorsAllow, sectorsDeny): построит путь (список комнат) для чара walker глубины depth, с разрешенными-запрещенными типами местности в виде битовых масок
traverseTo(target, walker, sectorsAllow, sectorsDeny): построит путь до цели target для чара walker, с разрешенными-запрещенными типами местности в виде битовых масок
unlock(имя или номер выхода): отпереть дверь по указанному направлению
zecho(msg): выведет сообщение msg для всех в этой арии

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

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

  • eval ptc(.get_mob_index(3000).api())
  • eval ptc(.get_obj_index(3000).api())
  • eval ptc(.get_area_index("midgaard.are").api())

Примечание

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

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

Поле/Метод Описание
affectedсписок (List) всех аффектов на прототипе (структура .Affect)
areaзона, в которой прописан предмет
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)

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

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

Поле/Метод Описание
area_flagфлаги зоны (таблица .tables.area_flags)
filenameназвание файла зоны
high_rangeверхний диапазон уровней зоны
low_rangeнижний диапазон уровней зоны
max_vnumверхняя граница диапазона внумов зоны
min_vnumнижняя граница диапазона внумов зоны
nameназвание зоны
playersсписок (List) всех игроков в экземпляре зоны по умолчанию
api(): печатает этот API
clear(): очистка всех runtime полей
reset(): обновить экземпляр(ы) этой зоны
rtapi(): печатает все поля и методы, установленные в runtime

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

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

  • eval ptc(.api())

Примечание

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

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

Статус Поле Описание
ro buildplot true для мира-стройплощадки
ro char_list список всех чаров, поле чара next указывает на следующего
ro current_time текущее время в секундах
rw day текущий день месяца, 0..34
ro day_of_epoch сколько дней прошло со дня сотворения мира
ro feniadbStats статистика базы данных скриптовых объектов
ro hometowns список всех хометаунов
rw hour текущий час суток, 0..23
ro mob_index_list список (List) всех прототипов мобов
rw month текущий месяц, 0..16
ro nanny доступ к методам 'няни', для процесса создания персонажа
ro obj_index_list список (List) всех прототипов предметов
ro object_list список всех предметов, поле предмета next указывает на следующий
ro pcraces список рас, доступных игрокам
ro players список (List) всех игроков
ro professions список всех классов, доступных игрокам
ro races список всех рас
ro religions список всех религий
ro rooms список всех комнат
ro scheduler объект-планировщик
ro season время года (winter,autumn,summer,spring), зависит от текущего месяца
rw sky текущая погода: 0=безоблачно, 1=облачно, 2=дождь, 3=молнии
rw sunlight время суток: 0=ночь, 1=рассвет, 2=день, 3=закат
ro tables доступ ко всем таблицам
rw tmp структура где можно хранить глобальные переменные
rw world_time внутримировое время в секундах
rw year текущий год

Методы

Метод Описание
Affect([skill[,level,duration,location,mod,where,bits]]): конструктор для аффекта умения skill или пустого
AffectHandler(name): находит обработчик аффекта с заданным именем
Area(filename): конструктор для зоны по имени файла
Array(): конструктор для массива
Bonus(name): конструктор для бонусов по имени
Clan(name): конструктор для клана по имени
Command(): конструктор для команды
CraftProfession(name): конструктор для дополнительной профессии по имени
FeniaSkill(name): конструктор для нового умения
Hometown(name): конструктор для хометауна по имени
Language(name): конструктор для древнего языка по имени
Liquid(name): конструктор для жидкости по имени
List(): конструктор для списка
Map(): конструктор для структуры
Material(names): конструктор для материалов по имени или именам через запятую
Profession(name): конструктор для класса по имени
Race(name): конструктор для расы по имени
Religion(name): конструктор для религии по имени
Skill(name|gsn): конструктор для умения по имени или числу
SkillCommand(name): находит команду для умения с заданным именем
SkillGroup(name): конструктор для группы умений по имени
Spell(name): находит заклинание с заданным именем
abs(n): модуль числа n
api(): печатает этот API
apply(func, this, args): вызвать func с указанным this и списком аргументов args
chance(x): true если x < .number_percent()
chanceOneOf(x): true если .number_range(1, x) == 1
codesource(func): номер сценария, в котором объявлена данная функция
create_money(gold, silver): создает объект-деньги указанной стоимости
date(): строка с датой, как ее видно по команде time
dice(x, y): x раз кинуть кубик с y гранями
discord(msg): послать сообщение в чат Discord
eval(expr): выполнить феневое выражение expr
findPlayer(name): поиск игрока по точному имени
find_profession(name): нестрогий поиск класса по русскому или англ названию
fmt(args): отформатировать строку, см. статью вики про функции вывода
gecho(fmt, args): выдать отформатированное сообщение msg всем играющим
generateWeapon(weapon, ch, skill, tier[, penalty, increment]): выставить статы для weapon или улучшить в бою
getCurrentTime(): текущее время в секундах
get_area_index(filename): возвращает зону с этим именем файла
get_char_world(name): ищет в мире чара с указанным именем
get_mob_index(vnum): возвращает прототип моба с заданным vnum
get_obj_index(vnum): возвращает прототип предмета с заданным vnum
get_obj_world(name): ищет в мире предмет с указанным именем
get_obj_world_unique(vnum, ch): ищет в мире предмет с этим внумом, принадлежащий ch
get_random_room(): произвольная комната из числа общедоступных
get_random_room_vanish(ch): произвольная комната, куда разрешен vanish персонажу ch
get_room_index(vnum): возвращает комнату с заданным vnum
infonet(msg, ch): выдать сообщение msg через хрустальный шар с участием ch
interpolate(x, x1, x2, y1, y2): линейно интерполировать значение Y в промежутке от Y1 до Y2, для данной координаты X из промежутка X1, X2
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истемное)
object2(id): поиск феневого объекта по СТРОКЕ с глобальным ID (cистемное)
player_attribute(playerName, attrName): значение данного аттрибута игрока
player_clan(name): название клана игрока по его имени
player_description(playerName[, descr]): вернуть или установить описание персонажа в оффлайне
player_exists(name): существует ли в мире игрок с данным именем
player_name(name): английское имя игрока по его русскому/английскому имени
player_russian_name(name): русское имя игрока с падежами по его русскому/английскому имени
print(msg): вывести строку msg в системные логи
randomizeWeapon(obj, ch, tier[, stats]): применить rand_all [или rand_stat] к этому оружию для данного персонажа и tier
repr(obj): попытка привести феневый объект obj к строке
saveConfig(): сохранить конфигурацию DreamLand на диск
set_bit(mask, b): вернет логическое 'или' между mask и b
set_bit_number(mask, n): вернет mask с установленными битом под номером n (т.е. mask | 1<<n)
skills(group): вернуть названия всех умений, принадлежащих этой группе (olchelp prac)
spells(targets): вернуть названия всех заклинаний, действующих на цели (.tables.target_table)
sqrt(n): квадратный корень положительного числа n, округленный вниз
sync(): test for objects sync (системное)
telegram(msg): послать сообщение в Telegram
unset_bit(mask, b): вернет mask со сброшенными битами из b
urange(a, x, b): ограничить число х сверху и снизу
webcmd(ch,cmd,label): создать линку для веб-клиента, выглядящую как label и выполняющую по клику команду cmd
wiznet(msg[, trust[, wiztype]]): выдать сообщение msg по wiznet

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

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

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

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

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

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

Поле/Метод Описание
bitvectorчисленное значение флагов, которые установит аффект
bitvectorTableтаблица для флагов, которые установит аффект
durationдлительность, -1 для вечных аффектов
globalсписок значений для where=locations (слоты экипировки), liquids (жидкости), skills, skill groups
levelуровень аффекта
locationполе, на которое аффект воздействует численно (таблица .tables.apply_flags)
modifierна сколько изменится поле, указанное в location
source(ch|obj|room): запомнить ch, obj или room как источник этого аффекта
typeназвание умения, которым этот аффект вешается, или none
whereна какую таблицу применен bitvector или на что воздействует global (.tables.affwhere_flags)
api(): печатает этот api
apply(ch): применить действие аффекта на ch, не вешая его
bitvector(table,flags): какие флаги и по какой таблице устанавливает аффект; table - таблица или название, flags - биты или строка с их названиями
damage(vict,dam,skillName[,damtype,damflags]): нанести vict повреждения в размере dam умением skillName и типом damtype (таблица .tables.damage_table)

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

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

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

Area: зона

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

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

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

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

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

Bonus: календарный или религиозные бонус

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

Поле/Метод Описание
colorбуква цвета в календаре
nameанглийское название
nameRusрусское название
api(): печатает этот api
give(ch,days): дать бонус на days дней. Вернет true, если присвоено успешно.
remove(ch): очистить бонус у персонажа. Вернет true, если было что очищать.

Religion: религия

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

Поле/Метод Описание
alignразрешенные натуры или пустая строка (таблица .tables.align_table)
clansразрешенные кланы или пустая строка (olchelp clan)
classesразрешенные классы или пустая строка (olchelp class)
descriptionописание (бог чего именно)
ethosразрешенные этосы или пустая строка (таблица .tables.ethos_table)
flagsфлаги религий (таблица .tables.religion_flags)
minstatсписок параметров, по которым ограничено сверху
nameанглийское название с маленькой буквы
nameRusрусское название с падежами
racesразрешенные расы или пустая строка (olchelp race)
sexпол божества (таблица .tables.sex_table)
shortDescrанглийское название с большой буквы
tattooVnumvnum объекта-знака религии
api(): печатает этот api
available(ch): НОВАЯ ЛОГИКА - доступна ли религия персонажу
reasonWhy(ch): НОВАЯ ЛОГИКА - причина почему недоступна или пустая строка

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

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

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

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буква цвета
dispersedtrue для разрозненных кланов (одиночки,изгои,внеклановые)
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
isBoozeалкоголь ли это

Material: материал(ы)

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

Поле/Метод Описание
burnsсколько тиков горит (-1 если тушит огонь)
gemсреди материалов есть драгоценный камень
indestructibleсреди материалов есть неуничтожимый (dragonskin, platinum)
metalсреди материалов есть металл
mineralсреди материалов есть камень или минерал
nameанглийские названия
nameRusрусские названия с падежами
woodсреди материалов есть дерево
api(): печатает этот api

Умения

Умение: .Skill()

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

Поле/Метод Описание
groupпервая, часто и единственная, группа умения (.SkillGroup)
groupsсписок групп умения (.SkillGroup)
indexпорядковый номер (для value у волшебных предметов)
nameанглийское название
nameRusрусское название
spellTargetфлаги целей заклинания (.tables.target_table)
spellTypeвид заклинания (.tables.spell_types)
adept(ch): вернуть максимальное значение, до которого можно практиковаться
api(): печатает этот api
apply(ch,vict|obj|room|arg,level): выполнить умение без проверок и сообщений
beats(ch): длина задержки в пульсах для персонажа с учетом бонусов
dressItem(obj,ch[,key]): рестрингнуть предмет согласно аттрибутам персонажа
effective(ch): узнать процент раскачки у персонажа
giveTemporary(ch[,learned[,days[,origin]]]): присвоить временное умение персонажу, разученное на learned % (или на 75%), работающее days дней (или вечно), помеченное как origin (или fenia). Вернет true, если присвоено успешно.
improve(ch,success[,victim]): попытаться улучшить знание умения на успехе/неудаче (true/false), применен на жертву
learned(ch[,percent]): вернуть разученность или установить ее в percent
level(ch): уровень умения для персонажа с учетом бонусов
mana(ch): цена этого умения в мане для персонажа ch
moves(ch): цена этого умения в шагах для персонажа ch [пока что одинакова для всех]
removeTemporary(ch[,origin]): очистить временное умение у персонажа, помеченное как origin (.tables.skill_origin_table). Вернет true, если было что очищать.
usable(ch): доступно ли умение для использования прямо сейчас персонажу ch
visible(ch): видно ли это умение ch, независимо от уровня, включая временные скилы

Группа умений: .SkillGroup()

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

Поле/Метод Описание
nameанглийское название
nameRusрусское название
api(): печатает этот api

Умение, созданное в фене: .FeniaSkill()

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

Поле/Метод Описание
dammsgсообщение о повреждении с падежами через |
dammsg_genderграм.род сообщения о повреждении (m, f, n, p)
nameназвание умения
nameRusрусское название умения
api(): печатает этот api

Заклинание: .Spell()

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

Поле/Метод Описание
nameназвание заклинания
rnameрусское название заклинания
skillнавык, внутри которого объявлено заклинание (.Skill)
api(): печатает этот API
clear(): очистка всех runtime полей
rtapi(): печатает все поля и методы, установленные в runtime

Контекст вызова заклинания (что доступно изнутри runVict, runObj)

Поле/Метод Описание
argстрока, цель заклинания для runArg
chперсонаж, произносящий заклинание
damрасчетные повреждения
levelуровень заклинания
objпредмет, цель заклинания для runObj
relрелигия кастера, случайный бог для неопределившихся или строка 'бог|и|ов...' для мобов
roomкомната, цель заклинания для runRoom
sectназвания типа местности в комнате кастера - как синоним sector
sectorназвания типа местности в комнате кастера - как синоним sect
skillпрототип умения для этого заклинания (.Skill())
spellпрототип заклинания (.Spell())
stateструктура для хранения временных переменных
victперсонаж, цель заклинания для runVict - как синоним victim
victimперсонаж, цель заклинания для runVict - как синоним vict
calcDamage(): пересчитать повреждения согласно текущему level и tier
checkDispel(skill): попробовать сбить с victim аффект с указанным именем
damage([damtype,damflags]): нанести повреждения жертве, по умолчанию damtype и damflags берутся из профайла
damageItems(func): вызвать ф-ию для всех предметов жертвы, предмет доступен в переменной obj
damageRoom(func): вызвать ф-ию для всех в комнате, кто не защищен от заклинания
effectAcid(): применить кислотный эффект на жертву, предмет или комнату
effectBlind(): применить на жертву заклинание слепоты
effectCold(): применить холодный эффект на жертву, предмет или комнату
effectCurse(): применить на жертву заклинание проклятия
effectFire(): применить огненный эффект на жертву, предмет или комнату
effectPoison(): применить эффект яда на жертву, предмет или комнату
effectSand(): применить эффект песчаной бури на жертву, предмет или комнату
effectScream(): применить эффект песчаной бури на жертву, предмет или комнату
effectShock(): применить шоковый эффект на жертву, предмет или комнату
graveDestroy(): выкопать вампира из могилы в комнате кастера
graveFind(): найти в комнате кастера могилу вампира в ПК-диапазоне
graveOwner(): вернуть владельца могилы в комнате кастера
groupCast(func): вызвать ф-ию для всех согруппников в той же комнате, у кого не сработал spellbane
hasDust(): достаточно ли пыли или песка в комнате кастера
hasParticles(): достаточно ли разных частиц в комнате кастера
hasWaterParticles(): достаточно ли водяных паров в комнате кастера
isNature(): находится ли кастер в дикой местности
isOutside(): находится ли кастер снаружи помещения
isWater(): находится ли кастер в воде или под водой
msgAll(fmt[,args]): выдать сообщение всем в комнате; кастер 1й аргумент, цель 2й аргумент
msgArea(fmt[,args]): выдать сообщение всем в той же зоне, кроме кастера
msgChar(fmt[,args]): выдать сообщение кастеру; кастер 1й аргумент, цель 2й аргумент
msgNotVict(fmt[,args]): выдать сообщение всем, кроме кастера и жертвы; кастер 1й аргумент, цель 2й аргумент
msgRoom(fmt[,args]): выдать сообщение всем, кроме кастера; кастер 1й аргумент, цель 2й аргумент
msgVict(fmt[,args]): выдать сообщение жертве; кастер 1й аргумент, цель 2й аргумент
savesSpell([damtype,damflags]): уменьшить повреждения вдвое, если прошел спассбросок у жертвы; по умолчанию damtype и damflags берутся из профайла
start(func[, args...]): запустить в новом потоке функцию с аргументами
wait(seconds): пауза на указанное кол-во секунд
waitSameRoom(seconds): пауза на указанное кол-во секунд или пока кастер в той же комнате
yellPanic(): новая жертва заклинания кричит 'помогите'

Обработчик аффекта: .AffectHandler()

Поле/Метод Описание
nameназвание аффекта
rnameрусское название аффекта
skillнавык, внутри которого объявлен аффект (.Skill)
api(): печатает этот API
clear(): очистка всех runtime полей
rtapi(): печатает все поля и методы, установленные в runtime

Команда умения: .SkillCommand()

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

Поле/Метод Описание
nameназвание команды
rnameрусское название команды
skillнавык, внутри которого объявлена команда (.Skill)
api(): печатает этот API
clear(): очистка всех runtime полей
rtapi(): печатает все поля и методы, установленные в runtime

Контекст вызова команды (что доступно изнутри метода run)

Поле/Метод Описание
argAllаргумент команды целиком
argOneпервый аргумент команды
argTwoвторой аргумент команды
chперсонаж, выполняющий команду
commandпрототип команды умения (.SkillCommand())
levelуровень, с которым вызвали apply
objпредмет, цель команды
skillпрототип умения для этой команды (.Skill())
stateструктура для хранения временных переменных
victперсонаж, цель команды - как синоним victim
victimперсонаж, цель команды - как синоним vict
cooldown(duration): наложить пост-аффект на выполняющего команду, указанной длительности
takeMana(value): уменьшить ману персонажа на value; вернет false если не получилось

Строка

Содержание

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

  • eval ptc("".api())

Методы

Метод Описание
api(): печатает этот api
arguments(): разбивает строку на список аргументов (слова или фразы в кавычках)
at(i): возвращает символ в позиции i
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) из всех групп шаблона
quote(): вернуть строку в кавычках, если в ней есть пробелы
replace(s1,s2): заменяет все вхождения первой подстроки на вторую
ruscase(case): строка в указанном падеже
size(): длина строки
split(sep): возвращает List из подстрок, разбитых по разделителю sep
strPrefix(str): true если эта строка - префикс str
stripColour(): удаляет все символы цвета
substr(offset[,length]): возвращает подстроку начинающуюся с offset длины length или до конца
toLower(): переводит всю строку в нижний регистр
toUpper(): переводит всю строку в верхний регистр
trim(): обрезать лишние пробелы по бокам
upperFirstChar(): возвращает ту же строку, но с большой буквы

Таблицы

Доступ ко всем таблицам флагов или значений осущестляется через поле корневого объекта .tables. Список таблиц также можно увидеть по команде olchelp.

Методы всех таблиц (.tables)

  • .tables.api(): вывести список всех полей .tables, то есть всех доступных таблиц

Методы отдельной таблицы (например, .tables.affect_flags)

Каждая из таблиц имеет такие методы:

  • .tables.affect_flag.api(): вывести список всех полей таблицы и их русский перевод.
  • .tables.affect_flag.names(число): вернет строку из названий флагов, которым соответствует это число.
  • .tables.affect_flag.values(строка): вернет числовое значение флага (флагов) по их английскому названию в строке .
  • .tables.affect_flag.флаг: численное значени того или иного флага, например, .tables.affect_flag.curse.