|
|
|
Помогите со скриптом |
|
|
Moll Dayer |
1.12.2021, 16:41
|
Registred
Сообщений: 9
Регистрация: 1.12.2021 Группа: Пользователи Наличность: 0
Пользователь №: 20.137
Возраст: 32
|
Всем привет ! Помогите пожалуйста со скриптом на армор. Вот часть скрипта, которая на ту или иную шмотку дает рандомный скилл из перечисленных (при крафте). Код ON=@Create Color=Color_o_darksteel HitPoints=50 TAG.SKILL=<hval {SKILL_WRESTLING 1 SKILL_SWORDSMANSHIP 1 SKILL_FENCING 1 SKILL_PARRYING 1 SKILL_MACEFIGHTING 1}> ON=@Equip SRC.MAXHITS +=3 try SRC.<SERV.SKILL.<TAG0.SKILL>.KEY>=<hval <SRC.<SERV.SKILL.<TAG0.SKILL>.KEY>>+1>
ON=@UnEquip SRC.MAXHITS -=3 try SRC.<SERV.SKILL.<TAG0.SKILL>.KEY>=<hval <SRC.<SERV.SKILL.<TAG0.SKILL>.KEY>>-1> Пытаюсь сделать подобное на модификаторы такие как char_spell_critical_damage, char_speed_damage, modfizdamage а так же на статы STR INT DEX. Но ничего не выходит, так как эти модификаторы не являются скиллом. Подскажите, как правильно прописать, чтоб на создаваемую вещь, рандомно вешался один из модификаторов и статов. Заранее спасибо !
|
|
|
|
Moll Dayer |
3.12.2021, 0:37
|
Registred
Сообщений: 9
Регистрация: 1.12.2021 Группа: Пользователи Наличность: 0
Пользователь №: 20.137
Возраст: 32
|
Цитата(Sirocco @ 1.12.2021, 17:11) try SRC.<TAG0.SKILL>
Спасибо, но такой вариант тож к сожалению не работает
|
|
|
|
Moll Dayer |
5.12.2021, 20:28
|
Registred
Сообщений: 9
Регистрация: 1.12.2021 Группа: Пользователи Наличность: 0
Пользователь №: 20.137
Возраст: 32
|
Цитата(d`ArcZeal @ 4.12.2021, 10:56) Код [ITEMDEF I_TROPICAL_BRACELET] ID=I_BRACELET_GOLD NAME=Tropical bracelet VALUE=350
ON=@CREATE COLOR=0B7E TAG.SKILLBONUS=250 TAG.SKILLID=Wrestling
На игрока ивент: Код ON=@ITEMEQUIP IF !(<ACT.DTAG0.SKILLBONUS>==0) && !(<ISEMPTY <ACT.TAG.SKILLID>>) SRC.<ACT.TAG0.SKILLID>=<EVAL (<SRC.<ACT.TAG0.SKILLID>>+<ACT.TAG0.SKILLBONUS>)> ENDIF
Код ON=@ITEMUNEQUIP IF !(<ACT.DTAG0.SKILLBONUS>==0) && !(<ISEMPTY <ACT.TAG.SKILLID>>) SRC.<ACT.TAG0.SKILLID>=<EVAL <SRC.<ACT.TAG0.SKILLID>>-<ACT.TAG0.SKILLBONUS>> ENDIF
Я наверно не правильно изложил мысль, так как это не совсем то. Но все равно спасибо ! Цитата(Eternium @ 4.12.2021, 15:14) Насколько я понимаю автор просил реализовать (бонусы которых нет в дефолт сфере) Перечисляя пример выше: char_spell_critical_damage, char_speed_damage, modfizdamage Разумеется выше скрипт что он для примера скинул не будет работать, Нужно:
1) Создать Массив (коллекцию) “особых умений” 2) Сделать сценарий с событиями этих умений и взаимодействия с ними 3) Повесить события (прописать в сфере) 4) Уже потом написать метод (функцию) (рандома или чего он там желает) и ее привязать на Тригер экипировки и снятия PS: Это один из вариантов, уверен что есть и более простые решения.
Модификаторы char_spell_critical_damage, char_speed_damage, modfizdamage и другие прописаны в сфере и есть на других вещах. Их можно прописать напрямую, но как сделать чтоб рандомно выдавал один из этих модификаторов, пока не могу понять... Цитата(Sirocco @ 4.12.2021, 15:59) Вот только мне не рассказывайте...
TAG.SKILL = STR
Прописывал на сам item, прописывал на ON=@Create - эффекта нет. Можно конечно прописать на ON=@EQUIP / ON=@UNEQUIP через scr, но в таком случае рандом не слепишь. Возможно я что-то не то делаю.
|
|
|
|
Moll Dayer |
6.12.2021, 10:38
|
Registred
Сообщений: 9
Регистрация: 1.12.2021 Группа: Пользователи Наличность: 0
Пользователь №: 20.137
Возраст: 32
|
Цитата(d`ArcZeal @ 6.12.2021, 8:10)
Не понятно, почему у тебя не выходит. По этому примеру и примеру выше можно прописать любые бонусы.
P.S. char_spell_critical_damage, char_speed_damage, modfizdamage не использовал ранее.
Спасибо ! Уже больше похоже на правду. Во всяком случае сфера не плюется при создании вещей. Но почему-то при одевании, вещь + не дает. Код
[FUNCTION DARKSTEEL_ARMOR_GENERATOR] HITPOINTS=50 COLOR=COLOR_O_DARKSTEEL
TAG.EXPERIENCEBONUS=<EVAL {1 4 2 3 3 2 4 1}>
TAG.STATBONUS=<EVAL {1 10 2 9 3 8 4 7 5 6 6 5 7 4 8 3 9 2 10 1}> DORAND 3 TAG.BONUS_STAT=Str TAG.BONUS_STAT=Dex TAG.BONUS_STAT=Int ENDDO
Код [ITEMDEF 04577] DefName=i_DARKSTEEL_FEMALE_PLATEMAIL Name=Darksteel Female Platemail Chest Id=i_Armor_female_plate Armor=35 ReqStr=15 Weight=4 Value=47 CATEGORY=Provisions - Armor - Colored SUBSECTION=Darksteel DESCRIPTION=Female Platemail Resources=22 i_ingot_darksteel SkillMake=BLACKSMITHING 40.0
ON=@Create DARKSTEEL_ARMOR_GENERATOR
То есть, функция работает но почему не дает рандомный + к статам не пойму...
|
|
|
|
Moll Dayer |
6.12.2021, 11:24
|
Registred
Сообщений: 9
Регистрация: 1.12.2021 Группа: Пользователи Наличность: 0
Пользователь №: 20.137
Возраст: 32
|
Цитата(d`ArcZeal @ 6.12.2021, 9:47) Ивент на персонажа: Код ON=@ITEMUNEQUIP IF !(<ACT.DTAG0.STATBONUS>==0) && !(<ISEMPTY <ACT.TAG.BONUS_STAT>>) SRC.<ACT.TAG0.BONUS_STAT>=<EVAL <SRC.<ACT.TAG.BONUS_STAT>>+-<ACT.DTAG0.BONUS_STAT>> ENDIF
ON=@ITEMEQUIP IF (<ACT.DTAG0.STATBONUS> > 0) IF !(<ISEMPTY <ACT.TAG.BONUS_STAT>>) SRC.<ACT.TAG0.BONUS_STAT>=<EVAL (<SRC.<ACT.TAG.BONUS_STAT>>+<ACT.DTAG0.STATBONUS>)> ENDIF ENDIF
TAG название ты можешь дать какой удобно. Это не дефолт система. Дело в том, что у меня данный ивент прописывается через ON=@EQUIP / ON=@UNEQUIP. Если использовать ON=@ITEMEQUIP / ON=@ITEMUNEQUIP, то ничего не происходит, то есть статы не добавляются и сфера молчит. Но если поменять на ON=@EQUIP / ON=@UNEQUIP, то сфера начинает ругаться: Код 10:12:ERROR:(sphere_item_provisions_armor_color.scp,370)Can't resolve <ACT.DTAG0.STATBONUS> 10:12:ERROR:(sphere_item_provisions_armor_color.scp,370)Undefined symbol '' 10:12:ERROR:(sphere_item_provisions_armor_color.scp,377)Can't resolve <ACT.DTAG0.STATBONUS> 10:12:ERROR:(sphere_item_provisions_armor_color.scp,377)Can't resolve <ACT.TAG.BONUS_STAT> 10:12:ERROR:(sphere_item_provisions_armor_color.scp,377)Undefined symbol ''
|
|
|
|
corso |
6.12.2021, 12:04
|
Apprentice
Сообщений: 229
Регистрация: 24.2.2013 Группа: Пользователи Наличность: 2226 Из: Россия
Пользователь №: 15.835
|
все прекрасно поняли, что ты хочешь сделать, делается это достаточно легко. d`ArcZeal тебе всё сказал по сути, просто головой подумать осталось через tag - ты создаешь не дефолтную систему, можешь называть и писать, что хочешь. Создаешь на чаре tag, который будет отвечать за какие-то плюшки к магии. Например: tag.bonus_magery затем добавляешь этот "tag.bonus_magery" в формулы расчета магии в триггеры на чаре или в спеллах а через шмот уже меняешь этот самый "tag.bonus_magery" на чаре путем equip/unequip Код On=@Create dorand 2 tag.rand_bonus = bonus_magery tag.rand_bonus = bonus_healing enddo On=@Equip src.tag0.<tag0.rand_bonus> += 5 On=@UnEquip src.tag0.<tag0.rand_bonus> -= 5 что-то типа такого, синтаксис может гулять, наспех набросал для понимания
--------------------
return 1 🙏
|
|
|
|
Moll Dayer |
6.12.2021, 13:28
|
Registred
Сообщений: 9
Регистрация: 1.12.2021 Группа: Пользователи Наличность: 0
Пользователь №: 20.137
Возраст: 32
|
Цитата(corso @ 6.12.2021, 11:04) все прекрасно поняли, что ты хочешь сделать, делается это достаточно легко. d`ArcZeal тебе всё сказал по сути, просто головой подумать осталось
через tag - ты создаешь не дефолтную систему, можешь называть и писать, что хочешь.
Создаешь на чаре tag, который будет отвечать за какие-то плюшки к магии. Например: tag.bonus_magery
затем добавляешь этот "tag.bonus_magery" в формулы расчета магии в триггеры на чаре или в спеллах
а через шмот уже меняешь этот самый "tag.bonus_magery" на чаре путем equip/unequip
Я понял, спасибо огромное за помощь и тебе и d`ArcZeal ! Буду ковырять / изучать дальше !
|
|
|
|
Moll Dayer |
10.12.2021, 0:10
|
Registred
Сообщений: 9
Регистрация: 1.12.2021 Группа: Пользователи Наличность: 0
Пользователь №: 20.137
Возраст: 32
|
Ребят, всем привет. Я несколько дней был в отьезде и только сейчас добрался до сферы. Очень надеюсь что еще никому не надоел (IMG: style_emoticons/default/unsure.gif) Но есть вопрос по данной теме. Очень прошу подсказать (IMG: style_emoticons/default/rolleyes.gif) . Создал отдельно скрипт: Код [TYPEDEF e_stat_bonus]
ON=@ITEMUNEQUIP IF !(<ACT.DTAG0.STATBONUS>==0) && !(<ISEMPTY <ACT.TAG.BONUS_STAT>>) SRC.<ACT.TAG0.BONUS_STAT>=<EVAL <SRC.<ACT.TAG.BONUS_STAT>>+-<ACT.DTAG0.BONUS_STAT>> ENDIF
ON=@ITEMEQUIP IF (<ACT.DTAG0.STATBONUS> > 0) IF !(<ISEMPTY <ACT.TAG.BONUS_STAT>>) SRC.<ACT.TAG0.BONUS_STAT>=<EVAL (<SRC.<ACT.TAG.BONUS_STAT>>+<ACT.DTAG0.STATBONUS>)> ENDIF ENDIF
[FUNCTION DARKSTEEL_ARMOR_GENERATOR] HITPOINTS={10 80} COLOR=COLOR_O_DARKSTEEL
TAG.EXPERIENCEBONUS=<EVAL {1 4 2 3 3 2 4 1}>
TAG.STATBONUS=<EVAL {1 10 2 9 3 8 4 7 5 6 6 5 7 4 8 3 9 2 10 1}> DORAND 3 TAG.BONUS_STAT=Str TAG.BONUS_STAT=Dex TAG.BONUS_STAT=Int ENDDO
[EOF]
Ну и соответственно сам армор Код [ITEMDEF 04560] DefName=i_DARKSTEEL_PLATEMAIL_ARMS Name=Darksteel Platemail Arms Id=i_platemail_arms Armor=55 ReqStr=40 Weight=5 Value=43 CATEGORY=Provisions - Armor - Colored SUBSECTION=Darksteel DESCRIPTION=Platemail Arms Resources=18 i_ingot_darksteel SkillMake=BLACKSMITHING 63.5 TEVENTS=e_stat_bonus
ON=@Create DARKSTEEL_ARMOR_GENERATOR
Функция работает частично, дает армору Hitpoints и красит в нужный цвет, но все что дальше прописано не работает. Так же не работает [TYPEDEF e_stat_bonus], хотя, если этот бонус заменить к примеру на ON=@EQUIP SRC.MAXHITS +=5 ON=@UNEQUIP SRC.MAXHITS -=5 то все прекрасно работает и вещь дает + и - 5 хп. Подскажите, возможно я еще в какой-то скрипт что-то должен прописать, для нормальной работоспособности или может в скрипте что выше, косяк какой ? Буду очень благодарен ! PS Сфера никаких ошибок не выдает.
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|