Многопользовательский мир АЛАДОН



Страницы: (2) 1 [2]   ( Перейти к первому непрочитанному сообщению ) Reply to this topicStart new topicStart Poll

> Alua, Новости Alua и обсуждение
Калевала
Отправлено: Mar 3 2017, 10:13
Quote Post


Хозяин Хелльстада
******

Группа: Администраторы
Сообщений: 1893
Пользователь №: 55
Регистрация: 15-April 04



Для объекта ch добавлено новое поле

remort (get) - получает количество ремортов персонажа, только считывание.


--------------------
Кодерус Аладонус
PMEmail PosterUsers Website
Top
Калевала
Отправлено: Oct 19 2017, 22:26
Quote Post


Хозяин Хелльстада
******

Группа: Администраторы
Сообщений: 1893
Пользователь №: 55
Регистрация: 15-April 04



Для объекта ch добавлено три новых поля

hitgain (get) - получает количество единиц жизни добавляемое персонажу в секунду.

managain (get) - получает количество единиц маны добавляемое персонажу в секунду.

movegain (get) - получает количество единиц ходов добавляемое персонажу в секунду.


--------------------
Кодерус Аладонус
PMEmail PosterUsers Website
Top
Калевала
Отправлено: Dec 14 2017, 15:34
Quote Post


Хозяин Хелльстада
******

Группа: Администраторы
Сообщений: 1893
Пользователь №: 55
Регистрация: 15-April 04



Добавлены функции

lookup_skill(номер) - возвращает имя умения/заклинания по номеру. В том числе и луашное
lookup_damtype(номер) - Возвращает имя дамага по номеру
damtype_lookup("имя") - возвращает номер дамага по имени


--------------------
Кодерус Аладонус
PMEmail PosterUsers Website
Top
Калевала
Отправлено: Apr 6 2018, 13:52
Quote Post


Хозяин Хелльстада
******

Группа: Администраторы
Сообщений: 1893
Пользователь №: 55
Регистрация: 15-April 04



Добавлено поле deity(get)
Пример:
CODE

echoat(ch.deity,ch)




--------------------
Кодерус Аладонус
PMEmail PosterUsers Website
Top
Калевала
Отправлено: Mar 18 2019, 13:56
Quote Post


Хозяин Хелльстада
******

Группа: Администраторы
Сообщений: 1893
Пользователь №: 55
Регистрация: 15-April 04



Для мобов добавлена работа с полем off и spec
Для работы с полем off два варианта

off_flags - (get set) получение или установка флагов off (см ниже) на мобе. Проверка через функцию is_set
off_flags_ptype - (get) получение флагов off (см ниже) на прототипе моба. Проверка через функцию is_set
Пример:
CODE

if(is_set(ch.off_flags,CONST.OFF_DODGE)) then
 echo('У меня установлена увертка -'..ch.im,ch.room)
end
ch.off_flags=remove_bit(ch.off_flags,CONST.OFF_DODGE)
if(!is_set(ch.off_flags,CONST.OFF_DODGE)) then
 echo('А теперь у меня НЕ установлена увертка -'..ch.im,ch.room)
end
if(is_set(ch.off_flags_ptype,CONST.OFF_DODGE)) then
 echo('Но на прототипе у меня все равно установлена увертка -'..ch.im,ch.room)
end


Программа на мобе может стоять только одна то есть не может быть программ CONST.SPEC_BREATH_ANY и CONST.SPEC_CAST_CLERIC только что-то одно
Установка CONST.SPEC_NONE означает, что у моба не будет никаких специальных программ
spec - (get set) получение или установка специальной программы моба (список см ниже)
spec_ptype - (get) получение специальной программы на протортипе моба (список см ниже)
Пример:
CODE

if(ch.spec==CONST.SPEC_PATROLMAN)) then
 echo('У меня программа патрульного -'..ch.im,ch.room)
end
ch.spec=CONST.SPEC_THIEF
if(ch.spec==CONST.SPEC_THIEF)) then
 echo('А теперь у меня программа вора -'..ch.im,ch.room)
end
if(ch.spec_ptype==CONST.SPEC_PATROLMAN)) then
 echo('Но на прототипе у меня все равно установлена программа патрульного -'..ch.im,ch.room)
end


Примечание в справке неверно указана работа с функциями set_bit и remove_bit берите из примера выше

Добавлены константы для флагов offensive в ALUA

CONST.OFF_AREA_ATTACK
CONST.OFF_BACKSTAB
CONST.OFF_BASH
CONST.OFF_BERSERK
CONST.OFF_DISARM
CONST.OFF_DODGE
CONST.OFF_FADE
CONST.OFF_FAST
CONST.OFF_KICK
CONST.OFF_KICK_DIRT
CONST.OFF_PARRY
CONST.OFF_RESCUE
CONST.OFF_TAIL
CONST.OFF_TRIP
CONST.OFF_CRUSH
CONST.ASSIST_ALL
CONST.ASSIST_ALIGN
CONST.ASSIST_RACE
CONST.ASSIST_PLAYERS
CONST.ASSIST_GUARD
CONST.ASSIST_VNUM

--------------------------------------------------------
Добавлены имена spec функций для ALUA

CONST.SPEC_BREATH_ANY
CONST.SPEC_BREATH_ACID
CONST.SPEC_BREATH_FIRE
CONST.SPEC_BREATH_FROST
CONST.SPEC_BREATH_GAS
CONST.SPEC_BREATH_LIGHTNING
CONST.SPEC_CAST_ADEPT
CONST.SPEC_CAST_CLERIC
CONST.SPEC_CAST_JUDGE
CONST.SPEC_CAST_MAGE
CONST.SPEC_CAST_UNDEAD
CONST.SPEC_EXECUTIONER
CONST.SPEC_FIDO
CONST.SPEC_GUARD
CONST.SPEC_EVIL_GUARD
CONST.SPEC_JANITOR
CONST.SPEC_JANITOR
CONST.SPEC_MAYOR
CONST.SPEC_MERCENARY
CONST.SPEC_POISON
CONST.SPEC_THIEF
CONST.SPEC_NASTY
CONST.SPEC_TROLL_MEMBER
CONST.SPEC_OGRE_MEMBER
CONST.SPEC_PATROLMAN
CONST.SPEC_PET
CONST.SPEC_NONE

-------------------------------------------------------


--------------------
Кодерус Аладонус
PMEmail PosterUsers Website
Top
Юлши
Отправлено: Mar 25 2019, 10:13
Quote Post


Синий Дракончик
****

Группа: Бессмертные
Сообщений: 392
Пользователь №: 46
Регистрация: 15-April 04



Сделали функцию произнесения заклинания l_say_spell

Пример:
CODE
l_say_spell(ch,'health recovery')


Как выглядит:
Юлши произносит слова, 'пзархп кандускуаззфл'. (для всех)
Юлши произносит слова, 'health recovery'. (у кого class совпадает)

Это сообщение отредактировал Юлши - Mar 25 2019, 10:40


--------------------
Слишком скучно быть бессмертным...
PMEmail Poster
Top
Фисара
Отправлено: Jan 11 2022, 14:28
Quote Post





Группа: Аватары
Сообщений: 8
Пользователь №: 3640
Регистрация: 12-January 18



Очень не хватает списка констант предметов (комнат и зон впридачу)

Уже чуток надоело спотыкаться в справке по Луа 🙂
Буду сюда постепенно скидывать ошибки.

При добавлении эффекта на персонажа:
CODE
af=new_affect()
af.where=CONST.TO_AFFECTS
af.type=skill_lookup("Ярость")         --тут любой закл можно, не суть
af.level=vic.level
af.dur=20
af.secdur=0
af.loc=CONST.APPLY_HIT
af.mod=100
affect_tochar(af,vic)


Смысл - добавить ХП персонажу эффектом. Но на деле повышаем хитролл.
CONST.APPLY_HIT присваивает почему-то CONST.APPLY_HITROLL (числовое значение 18)
Опытным путем было установлено что числовое значение константы CONST.APPLY_HIT - 13. Поэтому пока локацию задаю тупо числом (af.loc=13), а не обозначением константы (что может быть черевато в будущем при добавлении других констант).

Это сообщение отредактировал Фисара - Jan 11 2022, 14:46
PMEmail Poster
Top
Калевала
Отправлено: Jan 13 2022, 13:25
Quote Post


Хозяин Хелльстада
******

Группа: Администраторы
Сообщений: 1893
Пользователь №: 55
Регистрация: 15-April 04



Не используйте APPLY_HIT, это если мне память не изменяет заменено на APPLY_HEALTH поскольку APPLY_HIT Аладон расценивает как APPLY_HITROLL


--------------------
Кодерус Аладонус
PMEmail PosterUsers Website
Top
Калевала
Отправлено: Jan 13 2022, 13:36
Quote Post


Хозяин Хелльстада
******

Группа: Администраторы
Сообщений: 1893
Пользователь №: 55
Регистрация: 15-April 04



Эффекты комнат и зон
CONST.AFF_ROOM_SHOCKING
CONST.AFF_ROOM_L_SHIELD
CONST.AFF_ROOM_THIEF_TRAP
CONST.AFF_ROOM_RANDOMIZER
CONST.AFF_ROOM_ESPIRIT
CONST.AFF_ROOM_CURSE
CONST.AFF_ROOM_POISON
CONST.AFF_ROOM_SLEEP
CONST.AFF_ROOM_PLAGUE
CONST.AFF_ROOM_SLOW
CONST.AFF_ROOM_PORTALRESIST
CONST.AFF_AREA_PORTALRESIST

Константы дверей
CONST.EX_ISDOOR
CONST.EX_CLOSED
CONST.EX_LOCKED
CONST.EX_PICKPROOF
CONST.EX_NOPASS
CONST.EX_EASY
CONST.EX_HARD
CONST.EX_INFURIATING
CONST.EX_NOCLOSE
CONST.EX_NOLOCK
CONST.EX_HIDDEN

Константы типов местности
CONST.SECT_INSIDE
CONST.SECT_CITY
CONST.SECT_FIELD
CONST.SECT_FOREST
CONST.SECT_HILLS
CONST.SECT_MOUNTAIN
CONST.SECT_WATER_SWIM
CONST.SECT_WATER_NOSWIM
CONST.SECT_AIR
CONST.SECT_DESERT
CONST.SECT_DESERT
CONST.SECT_ROAD

Константы погоды, времени суток и года
CONST.SUN_RISE
CONST.SUN_DARK
CONST.SUN_LIGHT
CONST.SUN_SET
CONST.SUN_RISE
CONST.SKY_CLOUDLESS
CONST.SKY_CLOUDY
CONST.SKY_RAINING
CONST.SKY_LIGHTNING
CONST.SKY_SNOWING
CONST.SKY_SNOWSTORM
CONST.SKY_AFTERSNOW
CONST.SKY_AFTERRAIN
CONST.WEATHER_WINTER
CONST.WEATHER_SPRING
CONST.WEATHER_SUMMER
CONST.WEATHER_AUTUMN


--------------------
Кодерус Аладонус
PMEmail PosterUsers Website
Top
Калевала
Отправлено: Jan 13 2022, 13:36
Quote Post


Хозяин Хелльстада
******

Группа: Администраторы
Сообщений: 1893
Пользователь №: 55
Регистрация: 15-April 04



Больше никаких констант относительно зон и комнат пока не заложено.


--------------------
Кодерус Аладонус
PMEmail PosterUsers Website
Top
Фисара
Отправлено: Jan 17 2022, 06:56
Quote Post





Группа: Аватары
Сообщений: 8
Пользователь №: 3640
Регистрация: 12-January 18



Выявил особенность:

Имеем моба, на котором висит триггер (условно COMMAND), при котором выполняется код до вот этого момента:

CODE
ch.var0=ch.var0+1
if ch.var0>0 then
  order("say Привет",ch)
end


Переменная на мобе ch.var0 имеет уже числовое значение, присвоеное раньше в другом прогсе.
В этом коде это значение увеличивается на 1. Присвоение идет (это я проверял).
На условии (if) и все что будет ниже код выполнятся не будет.
Могу только предположить, что переменная на мобе (var0, var1, и так далее до var5) имеет определенный тип, который не может сопоставляться с числовым значением (даже если в этих переменных содержится только число), да даже проверку на nil не проходит.

Выйти из ситуации смог только так:
CODE
local v = 0
ch.var0=ch.var0+1
v=v+ch.var0
if v>0 then
  order("say Привет",ch)
end


Т.е. создал локальную переменную, которой задал именно числовой тип, а потом уже "переписал" в нее числовое значение ch.var0.[/B]

Это сообщение отредактировал Фисара - Jan 17 2022, 09:11
PMEmail Poster
Top
Калевала
Отправлено: Mar 4 2022, 11:36
Quote Post


Хозяин Хелльстада
******

Группа: Администраторы
Сообщений: 1893
Пользователь №: 55
Регистрация: 15-April 04



Переменная на мобе имеет тип char причем длиной не более 20 символов. Соответственно для использование как число надо преобразовывать.


--------------------
Кодерус Аладонус
PMEmail PosterUsers Website
Top
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Topic Options Страницы: (2) 1 [2]  Reply to this topicStart new topicStart Poll

 



[ Script Execution time: 0.0383 ]   [ 13 queries used ]   [ GZIP включён ]