Red Опубликовано 12 июля, 2011 Жалоба Поделиться Опубликовано 12 июля, 2011 (изменено) Скачал фермерский мод (http://fullrest.ru/files/morrowind/gameplay/farmer-mod), дающий возможность завести свою собственную ферму. К которой прилагаются стражники. Они могут защищать игрока от крейчеров и NPC, напавших первыми. Но если он напал сам - пытаются его убить.Я попытался исправить это, вставив в скрипт охранников:if ( GetTarget, player ) StopCombat;endifНо при сохранении скрипта в моем моде, использующем esm и Farmer Mod во многих скриптах последнего появляются ошибки, которых до этого не было.При сохранении/рекомпиляции его в исходном моде - тоже.Причем, вне зависимости от добавления моих строчек кода."Syntax Error Line 341. Could not find variable or function "tower."" - В скрипте fm_guardscript (код ниже)if ( fm_cont_drom.tower == 1 ) - 341 строчкаОбращение к какому-то элементу класса, насколько я понял. begin fm_guardscript short state short DoOnce short wtower short intower short TowerSlot short foundtower short GuardType short GuardRan short BDay short owned short IsGuarding short Followed short GLCont short GLContID short cIsGuarding short StayOutside float GuardCounter if ( DoOnce != 1 ) set StayOutside to 0 set cIsGuarding to 0 set intower to 0 set wtower to 0 set state to 0 set foundtower to 0 set IsGuarding to 0 set GuardCounter to 0 set Followed to 0 set DoOnce to 1 set GLCont to 0 set GLContID to 0 set GuardRan to Random, 100 if ( GuardRan < 25 ) set GuardType to 1 elseif ( GuardRan < 45 ) set GuardType to 2 elseif ( GuardRan < 60 ) set GuardType to 3 elseif ( GuardRan < 75 ) set GuardType to 4 elseif ( GuardRan < 85 ) set GuardType to 5 elseif ( GuardRan < 92 ) set GuardType to 6 elseif ( GuardRan < 98 ) set GuardType to 7 elseif ( GuardRan <= 100 ) set GuardType to 8 endif if ( GuardType == 1 ) SetLevel 5 AddItem, "chitin cuirass" , 1 AddItem, "chitin pauldron - left" , 1 AddItem, "chitin pauldron - right" , 1 AddItem, "chitin greaves" , 1 AddItem, "chitin boots" , 1 AddItem, "chitin guantlet - left" , 1 AddItem, "chitin guantlet - right" , 1 AddItem, "chitin spear" , 1 ; Additem, "chitin short bow", 1 ; Additem, "chitin arrow", 25 elseif ( GuardType == 2 ) SetLevel 10 AddSpell "fm_guardspell_10" AddItem, "iron_cuirass" , 1 AddItem, "iron_pauldron_left" , 1 AddItem, "iron_pauldron_right" , 1 AddItem, "iron_greaves" , 1 AddItem, "iron boots" , 1 AddItem, "iron_gauntlet_left" , 1 AddItem, "iron_gauntlet_right" , 1 AddItem, "iron spear" , 1 ; Additem, "short bow", 1 ; Additem, "iron arrow", 25 elseif ( GuardType == 3 ) SetLevel 15 AddSpell "fm_guardspell_15" AddItem, "steel_cuirass" , 1 AddItem, "steel_pauldron_left" , 1 AddItem, "steel_pauldron_right" , 1 AddItem, "steel_greaves" , 1 AddItem, "steel_boots" , 1 AddItem, "steel_gauntlet_left" , 1 AddItem, "steel_gauntlet_right" , 1 AddItem, "steel spear" , 1 ; Additem, "long bow", 1 ; Additem, "iron arrow", 25 elseif ( GuardType == 4 ) SetLevel 20 AddSpell "fm_guardspell_20" AddItem, "silver_cuirass" , 1 AddItem, "imperial left pauldron" , 1 AddItem, "imperial right pauldron" , 1 AddItem, "imperial_greaves" , 1 AddItem, "imperial boots" , 1 AddItem, "imperial left gauntlet" , 1 AddItem, "imperial right gauntlet" , 1 AddItem, "silver spear" , 1 ; Additem, "long bow", 1 ; Additem, "steel arrow", 25 elseif ( GuardType == 5 ) SetLevel 25 AddSpell "fm_guardspell_25" AddItem, "bonemold_cuirass" , 1 AddItem, "bonemold_armun-an_pauldron_l" , 1 AddItem, "bonemold_armun-an_pauldron_r" , 1 AddItem, "bonemold_greaves" , 1 AddItem, "bonemold_boots" , 1 AddItem, "bonemold_bracer_left" , 1 AddItem, "bonemold_bracer_right" , 1 AddItem, "silver spear" , 1 ; Additem, "bonemold long bow", 1 ; Additem, "silver arrow", 25 elseif ( GuardType == 6 ) SetLevel 30 AddSpell "fm_guardspell_30" AddItem, "indoril cuirass" , 1 AddItem, "indoril pauldron left" , 1 AddItem, "indoril pauldron right" , 1 AddItem, "indoril boots" , 1 AddItem, "indoril left gauntlet" , 1 AddItem, "indoril right gauntlet" , 1 AddItem, "ebony spear" , 1 ; Additem, "bonemold long bow", 1 ; Additem, "glass arrow", 25 elseif ( GuardType == 7 ) SetLevel 40 AddSpell "fm_guardspell_40" AddItem, "Helsethguard_cuirass" , 1 AddItem, "Helsethguard_pauldron_left" , 1 AddItem, "Helsethguard_pauldron_right" , 1 AddItem, "Helsethguard_greaves" , 1 AddItem, "Helsethguard_boots" , 1 AddItem, "Helsethguard_gauntlet_left" , 1 AddItem, "Helsethguard_gauntlet_right" , 1 AddItem, "ebony spear" , 1 ; Additem, "bonemold long bow", 1 ; Additem, "daedric arrow", 25 elseif ( GuardType == 8 ) SetLevel 50 AddSpell "fm_guardspell_50" AddItem, "adamantium_cuirass" , 1 AddItem, "adamantium_pauldron_left" , 1 AddItem, "adamantium_pauldron_right" , 1 AddItem, "adamantium_greaves" , 1 AddItem, "adamantium boots" , 1 AddItem, "adamantium_bracer_left" , 1 AddItem, "adamantium_bracer_right" , 1 AddItem, "daedric spear" , 1 ; Additem, "daedric long bow", 1 ; Additem, "daedric arrow", 25 endif AddSpell "fm_guardspell_base" set BDay to DaysPassed set owned to 0 endif if ( GetDisabled == 1 ) return endif if ( owned == 0 ) if ( bday < DaysPassed ) Disable endif endif if ( cIsGuarding != 0 ) set IsGuarding to 0 set cIsGuarding to 0 set GuardCounter to 0.0 if ( GetItemCount "fm_heavy" > 0 ) RemoveItem, "fm_heavy", 1 StartScript "fm_c_EquipMelee" endif return endif if ( IsGuarding == 1 ) if ( GuardCounter >= 10 ) if ( cIsGuarding != 0 ) set IsGuarding to 0 set cIsGuarding to 0 set GuardCounter to 0.0 if ( GetItemCount "fm_heavy" > 0 ) RemoveItem, "fm_heavy", 1 StartScript "fm_c_EquipMelee" endif return endif if ( GetWeaponDrawn == 0 ) AiWander, 250,0,0,0,0,0,0,0,0 endif if ( GetItemCount "fm_heavy" > 0 ) StartScript "fm_c_EquipMelee" endif while ( GetItemCount "fm_heavy" > 0 ) RemoveItem, "fm_heavy" , 1 endwhile set GuardCounter to 0.0 set Followed to 0 elseif ( GuardCounter >= 5 ) if ( Followed == 0 ) if ( cIsGuarding != 0 ) set IsGuarding to 0 set cIsGuarding to 0 set GuardCounter to 0.0 if ( GetItemCount "fm_heavy" > 0 ) RemoveItem, "fm_heavy", 1 StartScript "fm_c_EquipMelee" endif return endif set Followed to 1 if ( GetWeaponDrawn == 0 ) AiFollow, Player, 0,0,0,0 AddItem, "fm_heavy" , 1 StartScript "fm_c_EquipBow" endif else if ( cIsGuarding == 0 ) if ( GetItemCount "fm_heavy" > 0 ) StartScript "fm_c_Refill" endif else set IsGuarding to 0 set cIsGuarding to 0 set GuardCounter to 0.0 if ( GetItemCount "fm_heavy" > 0 ) RemoveItem, "fm_heavy", 1 StartScript "fm_c_EquipMelee" endif return endif set GuardCounter to ( GuardCounter + GetSecondsPassed ) endif else ; if ( cIsGuarding != 0 ) ; set IsGuarding to 0 ; set cIsGuarding to 0 ; set GuardCounter to 0.0 ; if ( GetItemCount "fm_heavy" > 0 ) ; RemoveItem, "fm_heavy", 1 ; StartScript "fm_c_EquipMelee" ; endif ; return ; endif set GuardCounter to ( GuardCounter + GetSecondsPassed ) endif endif if ( cIsGuarding == 1 ) set cIsGuarding to 0 endif if ( GLCont == 0 ) if ( GetDistance, fm_cont_arano < 2000 ) set Arano_GuardLevel to ( Arano_GuardLevel + ( GuardType ) ) set GLCont to 1 set GLContID to 1 elseif ( GetDistance, fm_cont_ieneth < 2000 ) set Ieneth_GuardLevel to ( Ieneth_GuardLevel + ( GuardType ) ) set GLCont to 1 set GLContID to 2 elseif ( GetDistance, fm_cont_drom < 2000 ) set Drom_GuardLevel to ( Drom_GuardLevel + ( GuardType ) ) set GLCont to 1 set GLContID to 3 elseif ( GetDistance, fm_cont_new < 2000 ) set New_GuardLevel to ( New_GuardLevel + ( GuardType ) ) set GLCont to 1 set GLContID to 4 endif else if ( GLContID == 1 ) if ( GetDistance, fm_cont_arano >= 2000 ) set Arano_GuardLevel to ( Arano_GuardLevel - ( GuardType ) ) set GLCont to 0 endif elseif ( GLContID == 2 ) if ( GetDistance, fm_cont_ieneth >= 2000 ) set Ieneth_GuardLevel to ( Ieneth_GuardLevel - ( GuardType ) ) set GLCont to 0 endif elseif ( GLContID == 3 ) if ( GetDistance, fm_cont_drom >= 2000 ) set Drom_GuardLevel to ( Drom_GuardLevel - ( GuardType ) ) set GLCont to 0 endif elseif ( GLContID == 4 ) if ( GetDistance, fm_cont_new>= 2000 ) set New_GuardLevel to ( New_GuardLevel - ( GuardType ) ) set GLCont to 0 endif endif endif if ( state == 1 ) if ( GetDistance, fm_cont_drom < 3000 ) if ( fm_cont_drom.tower == 1 ) if ( Drom_GTO < 2 ) if ( Drom_GSlot1 == 0 ) set TowerSlot to 0 set Drom_GSlot1 to 1 else set TowerSlot to 1 set Drom_GSlot2 to 1 endif set foundtower to 1 set wtower to 1 set Drom_GTO to ( Drom_GTO + 1 ) AiTravel 47503, -59819, 902 else set foundtower to 1 MessageBox "Áëèæàéøàÿ Ñòîðîæåâàÿ áàøíÿ íå ìîæåò âìåñòèòü â ñåáÿ áîëüøå îõðàííèêîâ" endif endif elseif ( GetDistance, fm_cont_ieneth < 3000 ) if ( fm_cont_ieneth.tower == 1 ) if ( Ieneth_GTO < 2 ) if ( Ieneth_GSlot1 == 0 ) set TowerSlot to 0 set Ieneth_GSlot1 to 1 else set TowerSlot to 1 set Ieneth_GSlot2 to 1 endif set foundtower to 1 set wtower to 2 set Ieneth_GTO to ( Ieneth_GTO + 1 ) AiTravel 35267, -62677, 831 else set foundtower to 1 MessageBox "Áëèæàéøàÿ Ñòîðîæåâàÿ áàøíÿ íå ìîæåò âìåñòèòü â ñåáÿ áîëüøå îõðàííèêîâ" endif endif elseif ( GetDistance, fm_cont_arano < 3000 ) if ( fm_cont_arano.tower == 1 ) if ( Arano_GTO < 2 ) if ( Arano_GSlot1 == 0 ) set TowerSlot to 0 set Arano_GSlot1 to 1 else set TowerSlot to 1 set Arano_GSlot2 to 1 endif set foundtower to 1 set wtower to 3 set Arano_GTO to ( Arano_GTO + 1 ) AiTravel 36141, -51108, 804 else set foundtower to 1 MessageBox "Áëèæàéøàÿ Ñòîðîæåâàÿ áàøíÿ íå ìîæåò âìåñòèòü â ñåáÿ áîëüøå îõðàííèêîâ" endif endif endif if ( foundtower == 0 ) MessageBox "Ïîáëèçîñòè íåò Ñòîðîæåâûõ áàøåí" endif set foundtower to 0 set state to 0 endif if ( wtower != 0 ) if ( intower != 1 ) if ( GetAiPackageDone == 1 ) if ( wtower == 1 ) if ( TowerSlot == 0 ) position 47187, -60049, 1682, 97 else position 47129, -59952, 1682, 349 endif elseif ( wtower == 2 ) if ( TowerSlot == 0 ) position 34988, -62475, 1615, 57 else position 34930, -62580, 1615, 189 endif elseif ( wtower == 3 ) if ( TowerSlot == 0 ) position 36344, -51083, 1463, 200 else position 36338, -50958, 1463, 333 endif endif set intower to 1 AddItem, "fm_heavy", 1 AiFollow, player, 1,1,1,1 ; Levelled Section (Merged Scripts) if ( GetLevel == 5 ) removeitem, "chitin spear",1 additem, "chitin short bow",1 additem, "chitin arrow",25 elseif ( GetLevel == 10 ) removeitem,"iron spear",1 additem, "short bow",1 additem, "iron arrow",25 elseif ( GetLevel == 15 ) removeitem,"steel spear",1 additem, "long bow",1 additem, "iron arrow",25 elseif ( GetLevel == 20 ) removeitem,"silver spear",1 additem, "long bow",1 additem, "steel arrow",25 elseif ( GetLevel == 25 ) removeitem,"silver spear",1 additem, "bonemold long bow",1 additem, "silver arrow",25 elseif ( GetLevel == 30 ) removeitem,"ebony spear",1 additem, "bonemold long bow",1 additem, "glass arrow",25 elseif ( GetLevel == 40 ) removeitem,"ebony spear",1 additem, "bonemold long bow",1 additem, "daedric arrow",25 elseif ( GetLevel == 50 ) removeitem,"daedric spear",1 additem, "daedric long bow",1 additem, "daedric arrow",25 endif endif endif endif ; Give the guard an infinite supply of arrows ; And a constantly renewing bow (so it doesn't brake)' if ( intower == 1 ) ; Another Leveled Area if ( GetLevel == 5 ) if ( GetItemCount "chitin arrow" < 1 ) removeitem, "chitin short bow",1 additem, "chitin short bow",1 additem, "chitin arrow",25 endif elseif ( GetLevel == 10 ) if ( GetItemCount "iron arrow" < 1 ) removeitem, "short bow",1 additem, "short bow",1 additem, "iron arrow",25 endif elseif ( GetLevel == 15 ) if ( GetItemCount "iron arrow" < 1 ) removeitem, "long bow",1 additem, "long bow",1 additem, "iron arrow",25 endif elseif ( GetLevel == 20 ) if ( GetItemCount "steel arrow" < 1 ) removeitem, "long bow",1 additem, "long bow",1 additem, "steel arrow",25 endif elseif ( GetLevel == 25 ) if ( GetItemCount "silver arrow" < 1 ) removeitem, "bonemold long bow",1 additem, "bonemold long bow",1 additem, "silver arrow",25 endif elseif ( GetLevel == 30 ) if ( GetItemCount "glass arrow" < 1 ) removeitem, "bonemold long bow",1 additem, "bonemold long bow",1 additem, "glass arrow",25 endif elseif ( GetLevel == 40 ) if ( GetItemCount "daedric arrow" < 1 ) removeitem, "bonemold long bow",1 additem, "bonemold long bow",1 additem, "daedric arrow",25 endif elseif ( GetLevel == 50 ) if ( GetItemCount "daedric arrow" < 1 ) removeitem, "daedric long bow",1 additem, "daedric long bow",1 additem, "daedric arrow",25 endif endif endif if ( state == 2 ) set intower to 0 if ( GetLevel == 5 ) additem, "chitin spear",1 removeitem, "chitin short bow",1 while ( GetItemCount, "chitin arrow" > 0 ) removeitem, "chitin arrow",1 endwhile elseif ( GetLevel == 10 ) additem, "iron spear",1 removeitem, "short bow",1 while ( GetItemCount, "iron arrow" > 0 ) removeitem, "iron arrow",1 endwhile elseif ( GetLevel == 15 ) additem, "steel spear",1 removeitem, "long bow",1 while ( GetItemCount, "steel arrow" > 0 ) removeitem, "steel arrow",1 endwhile elseif ( GetLevel == 20 ) additem, "silver spear",1 removeitem, "long bow",1 while ( GetItemCount, "steel arrow" > 0 ) removeitem, "steel arrow",1 endwhile elseif ( GetLevel == 25 ) additem, "silver spear",1 removeitem, "bonemold long bow",1 while ( GetItemCount, "silver arrow" > 0 ) removeitem, "silver arrow",1 endwhile elseif ( GetLevel == 30 ) additem, "ebony spear",1 removeitem, "bonemold long bow",1 while ( GetItemCount, "glass arrow" > 0 ) removeitem, "glass arrow",1 endwhile elseif ( GetLevel == 40 ) additem, "ebony spear",1 removeitem, "bonemold long bow",1 while ( GetItemCount, "daedric arrow" > 0 ) removeitem, "daedric arrow",1 endwhile elseif ( GetLevel == 50 ) additem, "daedric spear",1 removeitem, "daedric long bow",1 while ( GetItemCount, "daedric arrow" > 0 ) removeitem, "daedric arrow",1 endwhile endif if ( wtower == 1 ) position 47409, -59804, 883, 46 set Drom_GTO to ( Drom_GTO - 1 ) if ( TowerSlot == 0 ) set Drom_GSlot1 to 0 else set Drom_GSlot2 to 0 endif elseif ( wtower == 2 ) position 35265, -62719, 831, 120 set Ieneth_GTO to ( Ieneth_GTO - 1 ) if ( TowerSlot == 0 ) set Ieneth_GSlot1 to 0 else set Ieneth_GSlot2 to 0 endif elseif ( wtower == 3 ) position 35977, -51160, 804, 263 set Arano_GTO to ( Arano_GTO - 1 ) if ( TowerSlot == 0 ) set Arano_GSlot1 to 0 else set Arano_GSlot2 to 0 endif endif set wtower to 0 set state to 0 RemoveItem, "fm_heavy",1 set IsGuarding to 1 endif if ( GetTarget, player ) StopCombat; endif end Как внести изменения в код, не угробив половину скриптов? Изменено 12 июля, 2011 пользователем Red Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 12 июля, 2011 Жалоба Поделиться Опубликовано 12 июля, 2011 (изменено) Можно сделать скрипт. Вешаешь скрипт на стражника.Begin myyrnguardscript short doonce if ( doonce == 0 ) startscript fm_guardscript set doonce to 1 endif if ( GetTarget, player )StopCombat;endif endПосле stopcombat у тебя накой-то комментарий. В Морроувинде функции и процедуры не заканчиваются ";". Изменено 12 июля, 2011 пользователем Муурн Шепард Ссылка на комментарий Поделиться на другие сайты Поделиться
Red Опубликовано 12 июля, 2011 Автор Жалоба Поделиться Опубликовано 12 июля, 2011 Можно сделать скрипт. Вешаешь скрипт на стражника.На стражнике уже висит то, что под катом. Проблема именно во внезапном появлении ошибок при пересохранении скрипта.После stopcombat у тебя накой-то комментарий. В Морроувинде функции и процедуры не заканчиваются ";".Знаю. Но врядли это вызвало глюки ) Ссылка на комментарий Поделиться на другие сайты Поделиться
Moorindal Опубликовано 12 июля, 2011 Жалоба Поделиться Опубликовано 12 июля, 2011 1) Надо писать не просто StopCombat, а StopCombat, Player.2) Можешь попробовать не пересохранять плагин в КС. Воспользуйся блокнотом. Ссылка на комментарий Поделиться на другие сайты Поделиться
Red Опубликовано 12 июля, 2011 Автор Жалоба Поделиться Опубликовано 12 июля, 2011 2) Можешь попробовать не пересохранять плагин в КС. Воспользуйся блокнотом. Если я изменю скрипт в блокноте, а потом вставлю в TES, надо будет сохранить скрипт.А чтобы оставить изменения в скрипте в силе, надо сохранить плагин. Ссылка на комментарий Поделиться на другие сайты Поделиться
Moorindal Опубликовано 12 июля, 2011 Жалоба Поделиться Опубликовано 12 июля, 2011 Сам плагин, блин, а не скрипт. Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 12 июля, 2011 Жалоба Поделиться Опубликовано 12 июля, 2011 На стражнике уже висит то, что под катом. Проблема именно во внезапном появлении ошибок при пересохранении скрипта.Так я предлагаю повесить другой скрипт. Который запускает уже записанный, но останавливает бой с игроком.Или вариант Moorindal'A. Ссылка на комментарий Поделиться на другие сайты Поделиться
Moorindal Опубликовано 12 июля, 2011 Жалоба Поделиться Опубликовано 12 июля, 2011 КС сохраняет плагины глючно - это факт. В блокноте я не пересохранял, но предполагаю, что можно безнаказанно отредактировать нужные данные через него и сохранить. По-идее, все будет в порядке, если не нацеплять лишнего. Ссылка на комментарий Поделиться на другие сайты Поделиться
bi-666 Опубликовано 12 июля, 2011 Жалоба Поделиться Опубликовано 12 июля, 2011 Сам плагин, блин, а не скрипт.Сейчас для теста скопировал Area Effect Arrows из базы, пересохранил копию в блокноте - File 'Копия Area Effect Arrows.esp' is not a valid TES file.при старте КС.Хотя в теории такое же можно сделать хекас-редактором, MEE или MWEdit Ссылка на комментарий Поделиться на другие сайты Поделиться
Moorindal Опубликовано 12 июля, 2011 Жалоба Поделиться Опубликовано 12 июля, 2011 Сейчас для теста скопировал Area Effect Arrows из базы, пересохранил копию в блокноте - при старте КС. bi-666, да, действительно, при пересохранении блокнотом появляется такая хрень. Но тут, скорее, косячность самого блокнота виновата, потому, что при пересохранении в Notepad++ все нормально. Сейчас отредактировал скрипт через него. Все работало. Ссылка на комментарий Поделиться на другие сайты Поделиться
Red Опубликовано 12 июля, 2011 Автор Жалоба Поделиться Опубликовано 12 июля, 2011 (изменено) File 'Farmer Mod v4.3.esp' is not a valid TES file. begin fm_guardscript short state short DoOnce short wtower short intower short TowerSlot short foundtower short GuardType short GuardRan short BDay short owned short IsGuarding short Followed short GLCont short GLContID short cIsGuarding short StayOutside float GuardCounter if ( GetTarget,player ) StopCombat,player;) endif if ( DoOnce != 1 ) set StayOutside to 0 set cIsGuarding to 0 set intower to 0 set wtower to 0 set state to 0 set foundtower to 0 set IsGuarding to 0 set GuardCounter to 0 set Followed to 0 set DoOnce to 1 set GLCont to 0 set GLContID to 0 set GuardRan to Random, 100 if ( GuardRan < 25 ) set GuardType to 1 elseif ( GuardRan < 45 ) set GuardType to 2 elseif ( GuardRan < 60 ) set GuardType to 3 elseif ( GuardRan < 75 ) set GuardType to 4 elseif ( GuardRan < 85 ) set GuardType to 5 elseif ( GuardRan < 92 ) set GuardType to 6 elseif ( GuardRan < 98 ) set GuardType to 7 elseif ( GuardRan <= 100 ) set GuardType to 8 endif if ( GuardType == 1 ) SetLevel 5 AddItem, "chitin cuirass" , 1 AddItem, "chitin pauldron - left" , 1 AddItem, "chitin pauldron - right" , 1 AddItem, "chitin greaves" , 1 AddItem, "chitin boots" , 1 AddItem, "chitin guantlet - left" , 1 AddItem, "chitin guantlet - right" , 1 AddItem, "chitin spear" , 1 ; Additem, "chitin short bow", 1 ; Additem, "chitin arrow", 25 elseif ( GuardType == 2 ) SetLevel 10 AddSpell "fm_guardspell_10" AddItem, "iron_cuirass" , 1 AddItem, "iron_pauldron_left" , 1 AddItem, "iron_pauldron_right" , 1 AddItem, "iron_greaves" , 1 AddItem, "iron boots" , 1 AddItem, "iron_gauntlet_left" , 1 AddItem, "iron_gauntlet_right" , 1 AddItem, "iron spear" , 1 ; Additem, "short bow", 1 ; Additem, "iron arrow", 25 elseif ( GuardType == 3 ) SetLevel 15 AddSpell "fm_guardspell_15" AddItem, "steel_cuirass" , 1 AddItem, "steel_pauldron_left" , 1 AddItem, "steel_pauldron_right" , 1 AddItem, "steel_greaves" , 1 AddItem, "steel_boots" , 1 AddItem, "steel_gauntlet_left" , 1 AddItem, "steel_gauntlet_right" , 1 AddItem, "steel spear" , 1 ; Additem, "long bow", 1 ; Additem, "iron arrow", 25 elseif ( GuardType == 4 ) SetLevel 20 AddSpell "fm_guardspell_20" AddItem, "silver_cuirass" , 1 AddItem, "imperial left pauldron" , 1 AddItem, "imperial right pauldron" , 1 AddItem, "imperial_greaves" , 1 AddItem, "imperial boots" , 1 AddItem, "imperial left gauntlet" , 1 AddItem, "imperial right gauntlet" , 1 AddItem, "silver spear" , 1 ; Additem, "long bow", 1 ; Additem, "steel arrow", 25 elseif ( GuardType == 5 ) SetLevel 25 AddSpell "fm_guardspell_25" AddItem, "bonemold_cuirass" , 1 AddItem, "bonemold_armun-an_pauldron_l" , 1 AddItem, "bonemold_armun-an_pauldron_r" , 1 AddItem, "bonemold_greaves" , 1 AddItem, "bonemold_boots" , 1 AddItem, "bonemold_bracer_left" , 1 AddItem, "bonemold_bracer_right" , 1 AddItem, "silver spear" , 1 ; Additem, "bonemold long bow", 1 ; Additem, "silver arrow", 25 elseif ( GuardType == 6 ) SetLevel 30 AddSpell "fm_guardspell_30" AddItem, "indoril cuirass" , 1 AddItem, "indoril pauldron left" , 1 AddItem, "indoril pauldron right" , 1 AddItem, "indoril boots" , 1 AddItem, "indoril left gauntlet" , 1 AddItem, "indoril right gauntlet" , 1 AddItem, "ebony spear" , 1 ; Additem, "bonemold long bow", 1 ; Additem, "glass arrow", 25 elseif ( GuardType == 7 ) SetLevel 40 AddSpell "fm_guardspell_40" AddItem, "Helsethguard_cuirass" , 1 AddItem, "Helsethguard_pauldron_left" , 1 AddItem, "Helsethguard_pauldron_right" , 1 AddItem, "Helsethguard_greaves" , 1 AddItem, "Helsethguard_boots" , 1 AddItem, "Helsethguard_gauntlet_left" , 1 AddItem, "Helsethguard_gauntlet_right" , 1 AddItem, "ebony spear" , 1 ; Additem, "bonemold long bow", 1 ; Additem, "daedric arrow", 25 elseif ( GuardType == 8 ) SetLevel 50 AddSpell "fm_guardspell_50" AddItem, "adamantium_cuirass" , 1 AddItem, "adamantium_pauldron_left" , 1 AddItem, "adamantium_pauldron_right" , 1 AddItem, "adamantium_greaves" , 1 AddItem, "adamantium boots" , 1 AddItem, "adamantium_bracer_left" , 1 AddItem, "adamantium_bracer_right" , 1 AddItem, "daedric spear" , 1 ; Additem, "daedric long bow", 1 ; Additem, "daedric arrow", 25 endif AddSpell "fm_guardspell_base" set BDay to DaysPassed set owned to 0 endif if ( GetDisabled == 1 ) return endif if ( owned == 0 ) if ( bday < DaysPassed ) Disable endif endif if ( cIsGuarding != 0 ) set IsGuarding to 0 set cIsGuarding to 0 set GuardCounter to 0.0 if ( GetItemCount "fm_heavy" > 0 ) RemoveItem, "fm_heavy", 1 StartScript "fm_c_EquipMelee" endif return endif if ( IsGuarding == 1 ) if ( GuardCounter >= 10 ) if ( cIsGuarding != 0 ) set IsGuarding to 0 set cIsGuarding to 0 set GuardCounter to 0.0 if ( GetItemCount "fm_heavy" > 0 ) RemoveItem, "fm_heavy", 1 StartScript "fm_c_EquipMelee" endif return endif if ( GetWeaponDrawn == 0 ) AiWander, 250,0,0,0,0,0,0,0,0 endif if ( GetItemCount "fm_heavy" > 0 ) StartScript "fm_c_EquipMelee" endif while ( GetItemCount "fm_heavy" > 0 ) RemoveItem, "fm_heavy" , 1 endwhile set GuardCounter to 0.0 set Followed to 0 elseif ( GuardCounter >= 5 ) if ( Followed == 0 ) if ( cIsGuarding != 0 ) set IsGuarding to 0 set cIsGuarding to 0 set GuardCounter to 0.0 if ( GetItemCount "fm_heavy" > 0 ) RemoveItem, "fm_heavy", 1 StartScript "fm_c_EquipMelee" endif return endif set Followed to 1 if ( GetWeaponDrawn == 0 ) AiFollow, Player, 0,0,0,0 AddItem, "fm_heavy" , 1 StartScript "fm_c_EquipBow" endif else if ( cIsGuarding == 0 ) if ( GetItemCount "fm_heavy" > 0 ) StartScript "fm_c_Refill" endif else set IsGuarding to 0 set cIsGuarding to 0 set GuardCounter to 0.0 if ( GetItemCount "fm_heavy" > 0 ) RemoveItem, "fm_heavy", 1 StartScript "fm_c_EquipMelee" endif return endif set GuardCounter to ( GuardCounter + GetSecondsPassed ) endif else ; if ( cIsGuarding != 0 ) ; set IsGuarding to 0 ; set cIsGuarding to 0 ; set GuardCounter to 0.0 ; if ( GetItemCount "fm_heavy" > 0 ) ; RemoveItem, "fm_heavy", 1 ; StartScript "fm_c_EquipMelee" ; endif ; return ; endif set GuardCounter to ( GuardCounter + GetSecondsPassed ) endif endif if ( cIsGuarding == 1 ) set cIsGuarding to 0 endif if ( GLCont == 0 ) if ( GetDistance, fm_cont_arano < 2000 ) set Arano_GuardLevel to ( Arano_GuardLevel + ( GuardType ) ) set GLCont to 1 set GLContID to 1 elseif ( GetDistance, fm_cont_ieneth < 2000 ) set Ieneth_GuardLevel to ( Ieneth_GuardLevel + ( GuardType ) ) set GLCont to 1 set GLContID to 2 elseif ( GetDistance, fm_cont_drom < 2000 ) set Drom_GuardLevel to ( Drom_GuardLevel + ( GuardType ) ) set GLCont to 1 set GLContID to 3 elseif ( GetDistance, fm_cont_new < 2000 ) set New_GuardLevel to ( New_GuardLevel + ( GuardType ) ) set GLCont to 1 set GLContID to 4 endif else if ( GLContID == 1 ) if ( GetDistance, fm_cont_arano >= 2000 ) set Arano_GuardLevel to ( Arano_GuardLevel - ( GuardType ) ) set GLCont to 0 endif elseif ( GLContID == 2 ) if ( GetDistance, fm_cont_ieneth >= 2000 ) set Ieneth_GuardLevel to ( Ieneth_GuardLevel - ( GuardType ) ) set GLCont to 0 endif elseif ( GLContID == 3 ) if ( GetDistance, fm_cont_drom >= 2000 ) set Drom_GuardLevel to ( Drom_GuardLevel - ( GuardType ) ) set GLCont to 0 endif elseif ( GLContID == 4 ) if ( GetDistance, fm_cont_new>= 2000 ) set New_GuardLevel to ( New_GuardLevel - ( GuardType ) ) set GLCont to 0 endif endif endif if ( state == 1 ) if ( GetDistance, fm_cont_drom < 3000 ) if ( fm_cont_drom.tower == 1 ) if ( Drom_GTO < 2 ) if ( Drom_GSlot1 == 0 ) set TowerSlot to 0 set Drom_GSlot1 to 1 else set TowerSlot to 1 set Drom_GSlot2 to 1 endif set foundtower to 1 set wtower to 1 set Drom_GTO to ( Drom_GTO + 1 ) AiTravel 47503, -59819, 902 else set foundtower to 1 MessageBox "Ближайшая Сторожевая башня не может вместить в себя больше охранников" endif endif elseif ( GetDistance, fm_cont_ieneth < 3000 ) if ( fm_cont_ieneth.tower == 1 ) if ( Ieneth_GTO < 2 ) if ( Ieneth_GSlot1 == 0 ) set TowerSlot to 0 set Ieneth_GSlot1 to 1 else set TowerSlot to 1 set Ieneth_GSlot2 to 1 endif set foundtower to 1 set wtower to 2 set Ieneth_GTO to ( Ieneth_GTO + 1 ) AiTravel 35267, -62677, 831 else set foundtower to 1 MessageBox "Ближайшая Сторожевая башня не может вместить в себя больше охранников" endif endif elseif ( GetDistance, fm_cont_arano < 3000 ) if ( fm_cont_arano.tower == 1 ) if ( Arano_GTO < 2 ) if ( Arano_GSlot1 == 0 ) set TowerSlot to 0 set Arano_GSlot1 to 1 else set TowerSlot to 1 set Arano_GSlot2 to 1 endif set foundtower to 1 set wtower to 3 set Arano_GTO to ( Arano_GTO + 1 ) AiTravel 36141, -51108, 804 else set foundtower to 1 MessageBox "Ближайшая Сторожевая башня не может вместить в себя больше охранников" endif endif endif if ( foundtower == 0 ) MessageBox "Поблизости нет Сторожевых башен" endif set foundtower to 0 set state to 0 endif if ( wtower != 0 ) if ( intower != 1 ) if ( GetAiPackageDone == 1 ) if ( wtower == 1 ) if ( TowerSlot == 0 ) position 47187, -60049, 1682, 97 else position 47129, -59952, 1682, 349 endif elseif ( wtower == 2 ) if ( TowerSlot == 0 ) position 34988, -62475, 1615, 57 else position 34930, -62580, 1615, 189 endif elseif ( wtower == 3 ) if ( TowerSlot == 0 ) position 36344, -51083, 1463, 200 else position 36338, -50958, 1463, 333 endif endif set intower to 1 AddItem, "fm_heavy", 1 AiFollow, player, 1,1,1,1 ; Levelled Section (Merged Scripts) if ( GetLevel == 5 ) removeitem, "chitin spear",1 additem, "chitin short bow",1 additem, "chitin arrow",25 elseif ( GetLevel == 10 ) removeitem,"iron spear",1 additem, "short bow",1 additem, "iron arrow",25 elseif ( GetLevel == 15 ) removeitem,"steel spear",1 additem, "long bow",1 additem, "iron arrow",25 elseif ( GetLevel == 20 ) removeitem,"silver spear",1 additem, "long bow",1 additem, "steel arrow",25 elseif ( GetLevel == 25 ) removeitem,"silver spear",1 additem, "bonemold long bow",1 additem, "silver arrow",25 elseif ( GetLevel == 30 ) removeitem,"ebony spear",1 additem, "bonemold long bow",1 additem, "glass arrow",25 elseif ( GetLevel == 40 ) removeitem,"ebony spear",1 additem, "bonemold long bow",1 additem, "daedric arrow",25 elseif ( GetLevel == 50 ) removeitem,"daedric spear",1 additem, "daedric long bow",1 additem, "daedric arrow",25 endif endif endif endif ; Give the guard an infinite supply of arrows ; And a constantly renewing bow (so it doesn't brake)' if ( intower == 1 ) ; Another Leveled Area if ( GetLevel == 5 ) if ( GetItemCount "chitin arrow" < 1 ) removeitem, "chitin short bow",1 additem, "chitin short bow",1 additem, "chitin arrow",25 endif elseif ( GetLevel == 10 ) if ( GetItemCount "iron arrow" < 1 ) removeitem, "short bow",1 additem, "short bow",1 additem, "iron arrow",25 endif elseif ( GetLevel == 15 ) if ( GetItemCount "iron arrow" < 1 ) removeitem, "long bow",1 additem, "long bow",1 additem, "iron arrow",25 endif elseif ( GetLevel == 20 ) if ( GetItemCount "steel arrow" < 1 ) removeitem, "long bow",1 additem, "long bow",1 additem, "steel arrow",25 endif elseif ( GetLevel == 25 ) if ( GetItemCount "silver arrow" < 1 ) removeitem, "bonemold long bow",1 additem, "bonemold long bow",1 additem, "silver arrow",25 endif elseif ( GetLevel == 30 ) if ( GetItemCount "glass arrow" < 1 ) removeitem, "bonemold long bow",1 additem, "bonemold long bow",1 additem, "glass arrow",25 endif elseif ( GetLevel == 40 ) if ( GetItemCount "daedric arrow" < 1 ) removeitem, "bonemold long bow",1 additem, "bonemold long bow",1 additem, "daedric arrow",25 endif elseif ( GetLevel == 50 ) if ( GetItemCount "daedric arrow" < 1 ) removeitem, "daedric long bow",1 additem, "daedric long bow",1 additem, "daedric arrow",25 endif endif endif if ( state == 2 ) set intower to 0 if ( GetLevel == 5 ) additem, "chitin spear",1 removeitem, "chitin short bow",1 while ( GetItemCount, "chitin arrow" > 0 ) removeitem, "chitin arrow",1 endwhile elseif ( GetLevel == 10 ) additem, "iron spear",1 removeitem, "short bow",1 while ( GetItemCount, "iron arrow" > 0 ) removeitem, "iron arrow",1 endwhile elseif ( GetLevel == 15 ) additem, "steel spear",1 removeitem, "long bow",1 while ( GetItemCount, "steel arrow" > 0 ) removeitem, "steel arrow",1 endwhile elseif ( GetLevel == 20 ) additem, "silver spear",1 removeitem, "long bow",1 while ( GetItemCount, "steel arrow" > 0 ) removeitem, "steel arrow",1 endwhile elseif ( GetLevel == 25 ) additem, "silver spear",1 removeitem, "bonemold long bow",1 while ( GetItemCount, "silver arrow" > 0 ) removeitem, "silver arrow",1 endwhile elseif ( GetLevel == 30 ) additem, "ebony spear",1 removeitem, "bonemold long bow",1 while ( GetItemCount, "glass arrow" > 0 ) removeitem, "glass arrow",1 endwhile elseif ( GetLevel == 40 ) additem, "ebony spear",1 removeitem, "bonemold long bow",1 while ( GetItemCount, "daedric arrow" > 0 ) removeitem, "daedric arrow",1 endwhile elseif ( GetLevel == 50 ) additem, "daedric spear",1 removeitem, "daedric long bow",1 while ( GetItemCount, "daedric arrow" > 0 ) removeitem, "daedric arrow",1 endwhile endif if ( wtower == 1 ) position 47409, -59804, 883, 46 set Drom_GTO to ( Drom_GTO - 1 ) if ( TowerSlot == 0 ) set Drom_GSlot1 to 0 else set Drom_GSlot2 to 0 endif elseif ( wtower == 2 ) position 35265, -62719, 831, 120 set Ieneth_GTO to ( Ieneth_GTO - 1 ) if ( TowerSlot == 0 ) set Ieneth_GSlot1 to 0 else set Ieneth_GSlot2 to 0 endif elseif ( wtower == 3 ) position 35977, -51160, 804, 263 set Arano_GTO to ( Arano_GTO - 1 ) if ( TowerSlot == 0 ) set Arano_GSlot1 to 0 else set Arano_GSlot2 to 0 endif endif set wtower to 0 set state to 0 RemoveItem, "fm_heavy",1 set IsGuarding to 1 endif end Но перед этим есть еще: SCPTZ SCHD4 fm_guardscript SCVR state DoOnce wtower intower TowerSlot foundtower GuardType GuardRan BDay owned IsGuarding Followed GLCont GLContID cIsGuarding StayOutside GuardCounter SCDT x s != 1s 0s 0s 0s 0s 0s 0s 0f 0s 0s 1s 0s 0s X!d 00 s < 25s 1 s < 45s 2 s < 60s 3 s < 75s 4 s < 85s 5 s < 92s 6 s < 98s 7 s <= 100s 8 s == 1V Фchitin cuirass Фchitin pauldron - left Фchitin pauldron - right Фchitin greaves Фchitin boots Фchitin guantlet - left Фchitin guantlet - right Фchitin spear s == 2V fm_guardspell_10Фiron_cuirass Фiron_pauldron_left Фiron_pauldron_right Фiron_greaves Ф iron boots Фiron_gauntlet_left Фiron_gauntlet_right Ф iron spear s == 3V fm_guardspell_15Ф steel_cuirass Фsteel_pauldron_left Фsteel_pauldron_right Ф steel_greaves Фsteel_boots Фsteel_gauntlet_left Фsteel_gauntlet_right Фsteel spear s == 4V fm_guardspell_20Фsilver_cuirass Фimperial left pauldron Фimperial right pauldron Фimperial_greaves Фimperial boots Фimperial left gauntlet Фimperial right gauntlet Фsilver spear s == 5V fm_guardspell_25Фbonemold_cuirass Фbonemold_armun-an_pauldron_l Фbonemold_armun-an_pauldron_r Фbonemold_greaves Фbonemold_boots Фbonemold_bracer_left Фbonemold_bracer_right Фsilver spear s == 6V fm_guardspell_30Фindoril cuirass Фindoril pauldron left Фindoril pauldron right Ф indoril boots Фindoril left gauntlet Фindoril right gauntlet Фebony spear s == 7V( fm_guardspell_40ФHelsethguard_cuirass ФHelsethguard_pauldron_left ФHelsethguard_pauldron_right ФHelsethguard_greaves ФHelsethguard_boots ФHelsethguard_gauntlet_left ФHelsethguard_gauntlet_right Фebony spear s == 8V2 fm_guardspell_50Фadamantium_cuirass Фadamantium_pauldron_left Фadamantium_pauldron_right Фadamantium_greaves Фadamantium boots Фadamantium_bracer_left Фadamantium_bracer_right Ф daedric spear fm_guardspell_bases G DaysPassed s 0 XЬ == 1$ s == 0 s < G DaysPassed Ы s != 0s 0s 0f 0.0 Xэ ofm_heavy > 0Хfm_heavy fm_c_EquipMelee $ < s == 1 f >= 10 s != 0s 0s 0f 0.0 Xэ ofm_heavy > 0Хfm_heavy fm_c_EquipMelee $ X® == 0щ zC Xэ ofm_heavy > 0fm_c_EquipMelee Xэ ofm_heavy > 0Хfm_heavy f 0.0s 0" f >= 5 s == 0 s != 0s 0s 0f 0.0 Xэ ofm_heavy > 0Хfm_heavy fm_c_EquipMelee $ s 1 X® == 0цPlayer Фfm_heavy fm_c_EquipBow s == 0 Xэ ofm_heavy > 0fm_c_Refill s 0s 0f 0.0 Xэ ofm_heavy > 0Хfm_heavy fm_c_EquipMelee $ f f X + f f X + s == 1s 0 s == 0 X, r fm_cont_arano < 2000GArano_GuardLevel GArano_GuardLevel s +s 1s 1 X, rfm_cont_ieneth < 2000GIeneth_GuardLevel GIeneth_GuardLevel s +s 1s 2 X, rfm_cont_drom < 2000GDrom_GuardLevel GDrom_GuardLevel s +s 1s 3 X, rfm_cont_new < 2000GNew_GuardLevel GNew_GuardLevel s +s 1s 4 s == 1 X, r fm_cont_arano >= 2000GArano_GuardLevel GArano_GuardLevel s -s 0 s == 2 X, rfm_cont_ieneth >= 2000GIeneth_GuardLevel GIeneth_GuardLevel s -s 0 s == 3 X, rfm_cont_drom >= 2000GDrom_GuardLevel GDrom_GuardLevel s -s 0 s == 4 X, rfm_cont_new>= 2000GNew_GuardLevel GNew_GuardLevel s -s 0 ? s == 1 X, rfm_cont_drom < 3000 rfm_cont_droms == 1 GDrom_GTO < 2 GDrom_GSlot1 == 0s 0GDrom_GSlot1 1s 1GDrom_GSlot2 1 s 1s 1GDrom_GTO GDrom_GTO 1 +ш Џ9G «iЗ ЂaD s 1 1 Ближайшая башня не может содержать больше охраны. X, rfm_cont_ieneth < 3000 rfm_cont_ieneths == 1 G Ieneth_GTO < 2 G Ieneth_GSlot1 == 0s 0G Ieneth_GSlot1 1s 1G Ieneth_GSlot2 1 s 1s 2G Ieneth_GTO G Ieneth_GTO 1 +ш Г G ХtЗ АOD s 1 1 Ближайшая башня не может содержать больше охраны. X, r fm_cont_arano < 3000 r fm_cont_aranos == 1 G Arano_GTO < 2 GArano_GSlot1 == 0s 0GArano_GSlot1 1s 1GArano_GSlot2 1 s 1s 3G Arano_GTO G Arano_GTO 1 +ш - G ¤GЗ ID s 1 1 Ближайшая башня не может содержать больше охраны. s == 0 ! Поблизости нет башен охраны! s 0s 0 ; s != 09 s != 17 Xы == 1 s == 1 s == 0 S8G ‘jЗ @ТD ВB 8G 0jЗ @ТD Ђ®C s == 2 s == 0 ¬G tЗ аЙD dB rG ttЗ аЙD =C s == 3 s == 0 ш G ‹GЗ а¶D HC т G GЗ а¶D Ђ¦C s 1Фfm_heavy цplayer Ђ? Ђ? Ђ? XW == 5Хchitin spear Фchitin short bow Фchitin arrow XW == 10Х iron spear Ф short bow Ф iron arrow XW == 15Хsteel spear Фlong bow Ф iron arrow XW == 20Хsilver spear Фlong bow Фsteel arrow XW == 25Хsilver spear Фbonemold long bow Фsilver arrow XW == 30Хebony spear Фbonemold long bow Фglass arrow XW == 40Хebony spear Фbonemold long bow Ф daedric arrow XW == 50Х daedric spear Фdaedric long bow Ф daedric arrow 1 s == 1 XW == 5 Xэ ochitin arrow < 1Хchitin short bow Фchitin short bow Фchitin arrow XW == 10 Xэ o iron arrow < 1Х short bow Ф short bow Ф iron arrow XW == 15 Xэ o iron arrow < 1Хlong bow Фlong bow Ф iron arrow XW == 20 Xэ osteel arrow < 1Хlong bow Фlong bow Фsteel arrow XW == 25 Xэ osilver arrow < 1Хbonemold long bow Фbonemold long bow Фsilver arrow XW == 30 Xэ oglass arrow < 1Хbonemold long bow Фbonemold long bow Фglass arrow XW == 40 Xэ o daedric arrow < 1Хbonemold long bow Фbonemold long bow Ф daedric arrow XW == 50 Xэ o daedric arrow < 1Хdaedric long bow Фdaedric long bow Ф daedric arrow O s == 2s 0 XW == 5Фchitin spear Хchitin short bow Xэ, ochitin arrow > 0Хchitin arrow XW == 10Ф iron spear Х short bow Xэ, o iron arrow > 0Х iron arrow XW == 15Фsteel spear Хlong bow Xэ, osteel arrow > 0Хsteel arrow XW == 20Фsilver spear Хlong bow Xэ, osteel arrow > 0Хsteel arrow XW == 25Фsilver spear Хbonemold long bow Xэ, osilver arrow > 0Хsilver arrow XW == 30Фebony spear Хbonemold long bow Xэ, oglass arrow > 0Хglass arrow XW == 40Фebony spear Хbonemold long bow Xэ, o daedric arrow > 0Х daedric arrow XW == 50Ф daedric spear Хdaedric long bow Xэ, o daedric arrow > 0Х daedric arrow s == 1 19G њiЗ А\D 8BGDrom_GTO GDrom_GTO 1 - s == 0GDrom_GSlot1 0GDrom_GSlot2 0 s == 2 Б G яtЗ АOD рBG Ieneth_GTO G Ieneth_GTO 1 - s == 0G Ieneth_GSlot1 0G Ieneth_GSlot2 0 s == 3 ‰G ШGЗ ID ЂѓCG Arano_GTO G Arano_GTO 1 - s == 0GArano_GSlot1 0GArano_GSlot2 0 s 0s 0Хfm_heavy s 1 SCTXщ; Где мне сложно продублировать изменения )Хотя в теории такое же можно сделать хекас-редактором MEE - cейчас пробую.Стражник нападает.[buspoiler]begin fm_guardscript short state short DoOnce short wtower short intower short TowerSlot short foundtower short GuardType short GuardRan short BDay short owned short IsGuarding short Followed short GLCont short GLContID short cIsGuarding short StayOutside float GuardCounter if ( GetTarget,player ) StopCombat,player;) endif if ( DoOnce != 1 ) set StayOutside to 0 set cIsGuarding to 0 set intower to 0 set wtower to 0 set state to 0 set foundtower to 0 set IsGuarding to 0 set GuardCounter to 0 set Followed to 0 set DoOnce to 1 set GLCont to 0 set GLContID to 0 set GuardRan to Random, 100 if ( GuardRan < 25 ) set GuardType to 1 elseif ( GuardRan < 45 ) set GuardType to 2 elseif ( GuardRan < 60 ) set GuardType to 3 elseif ( GuardRan < 75 ) set GuardType to 4 elseif ( GuardRan < 85 ) set GuardType to 5 elseif ( GuardRan < 92 ) set GuardType to 6 elseif ( GuardRan < 98 ) set GuardType to 7 elseif ( GuardRan <= 100 ) set GuardType to 8 endif if ( GuardType == 1 ) SetLevel 5 AddItem, "chitin cuirass" , 1 AddItem, "chitin pauldron - left" , 1 AddItem, "chitin pauldron - right" , 1 AddItem, "chitin greaves" , 1 AddItem, "chitin boots" , 1 AddItem, "chitin guantlet - left" , 1 AddItem, "chitin guantlet - right" , 1 AddItem, "chitin spear" , 1 ; Additem, "chitin short bow", 1 ; Additem, "chitin arrow", 25 elseif ( GuardType == 2 ) SetLevel 10 AddSpell "fm_guardspell_10" AddItem, "iron_cuirass" , 1 AddItem, "iron_pauldron_left" , 1 AddItem, "iron_pauldron_right" , 1 AddItem, "iron_greaves" , 1 AddItem, "iron boots" , 1 AddItem, "iron_gauntlet_left" , 1 AddItem, "iron_gauntlet_right" , 1 AddItem, "iron spear" , 1 ; Additem, "short bow", 1 ; Additem, "iron arrow", 25 elseif ( GuardType == 3 ) SetLevel 15 AddSpell "fm_guardspell_15" AddItem, "steel_cuirass" , 1 AddItem, "steel_pauldron_left" , 1 AddItem, "steel_pauldron_right" , 1 AddItem, "steel_greaves" , 1 AddItem, "steel_boots" , 1 AddItem, "steel_gauntlet_left" , 1 AddItem, "steel_gauntlet_right" , 1 AddItem, "steel spear" , 1 ; Additem, "long bow", 1 ; Additem, "iron arrow", 25 elseif ( GuardType == 4 ) SetLevel 20 AddSpell "fm_guardspell_20" AddItem, "silver_cuirass" , 1 AddItem, "imperial left pauldron" , 1 AddItem, "imperial right pauldron" , 1 AddItem, "imperial_greaves" , 1 AddItem, "imperial boots" , 1 AddItem, "imperial left gauntlet" , 1 AddItem, "imperial right gauntlet" , 1 AddItem, "silver spear" , 1 ; Additem, "long bow", 1 ; Additem, "steel arrow", 25 elseif ( GuardType == 5 ) SetLevel 25 AddSpell "fm_guardspell_25" AddItem, "bonemold_cuirass" , 1 AddItem, "bonemold_armun-an_pauldron_l" , 1 AddItem, "bonemold_armun-an_pauldron_r" , 1 AddItem, "bonemold_greaves" , 1 AddItem, "bonemold_boots" , 1 AddItem, "bonemold_bracer_left" , 1 AddItem, "bonemold_bracer_right" , 1 AddItem, "silver spear" , 1 ; Additem, "bonemold long bow", 1 ; Additem, "silver arrow", 25 elseif ( GuardType == 6 ) SetLevel 30 AddSpell "fm_guardspell_30" AddItem, "indoril cuirass" , 1 AddItem, "indoril pauldron left" , 1 AddItem, "indoril pauldron right" , 1 AddItem, "indoril boots" , 1 AddItem, "indoril left gauntlet" , 1 AddItem, "indoril right gauntlet" , 1 AddItem, "ebony spear" , 1 ; Additem, "bonemold long bow", 1 ; Additem, "glass arrow", 25 elseif ( GuardType == 7 ) SetLevel 40 AddSpell "fm_guardspell_40" AddItem, "Helsethguard_cuirass" , 1 AddItem, "Helsethguard_pauldron_left" , 1 AddItem, "Helsethguard_pauldron_right" , 1 AddItem, "Helsethguard_greaves" , 1 AddItem, "Helsethguard_boots" , 1 AddItem, "Helsethguard_gauntlet_left" , 1 AddItem, "Helsethguard_gauntlet_right" , 1 AddItem, "ebony spear" , 1 ; Additem, "bonemold long bow", 1 ; Additem, "daedric arrow", 25 elseif ( GuardType == 8 ) SetLevel 50 AddSpell "fm_guardspell_50" AddItem, "adamantium_cuirass" , 1 AddItem, "adamantium_pauldron_left" , 1 AddItem, "adamantium_pauldron_right" , 1 AddItem, "adamantium_greaves" , 1 AddItem, "adamantium boots" , 1 AddItem, "adamantium_bracer_left" , 1 AddItem, "adamantium_bracer_right" , 1 AddItem, "daedric spear" , 1 ; Additem, "daedric long bow", 1 ; Additem, "daedric arrow", 25 endif AddSpell "fm_guardspell_base" set BDay to DaysPassed set owned to 0 endif if ( GetDisabled == 1 ) return endif if ( owned == 0 ) if ( bday < DaysPassed ) Disable endif endif if ( cIsGuarding != 0 ) set IsGuarding to 0 set cIsGuarding to 0 set GuardCounter to 0.0 if ( GetItemCount "fm_heavy" > 0 ) RemoveItem, "fm_heavy", 1 StartScript "fm_c_EquipMelee" endif return endif if ( IsGuarding == 1 ) if ( GuardCounter >= 10 ) if ( cIsGuarding != 0 ) set IsGuarding to 0 set cIsGuarding to 0 set GuardCounter to 0.0 if ( GetItemCount "fm_heavy" > 0 ) RemoveItem, "fm_heavy", 1 StartScript "fm_c_EquipMelee" endif return endif if ( GetWeaponDrawn == 0 ) AiWander, 250,0,0,0,0,0,0,0,0 endif if ( GetItemCount "fm_heavy" > 0 ) StartScript "fm_c_EquipMelee" endif while ( GetItemCount "fm_heavy" > 0 ) RemoveItem, "fm_heavy" , 1 endwhile set GuardCounter to 0.0 set Followed to 0 elseif ( GuardCounter >= 5 ) if ( Followed == 0 ) if ( cIsGuarding != 0 ) set IsGuarding to 0 set cIsGuarding to 0 set GuardCounter to 0.0 if ( GetItemCount "fm_heavy" > 0 ) RemoveItem, "fm_heavy", 1 StartScript "fm_c_EquipMelee" endif return endif set Followed to 1 if ( GetWeaponDrawn == 0 ) AiFollow, Player, 0,0,0,0 AddItem, "fm_heavy" , 1 StartScript "fm_c_EquipBow" endif else if ( cIsGuarding == 0 ) if ( GetItemCount "fm_heavy" > 0 ) StartScript "fm_c_Refill" endif else set IsGuarding to 0 set cIsGuarding to 0 set GuardCounter to 0.0 if ( GetItemCount "fm_heavy" > 0 ) RemoveItem, "fm_heavy", 1 StartScript "fm_c_EquipMelee" endif return endif set GuardCounter to ( GuardCounter + GetSecondsPassed ) endif else ; if ( cIsGuarding != 0 ) ; set IsGuarding to 0 ; set cIsGuarding to 0 ; set GuardCounter to 0.0 ; if ( GetItemCount "fm_heavy" > 0 ) ; RemoveItem, "fm_heavy", 1 ; StartScript "fm_c_EquipMelee" ; endif ; return ; endif set GuardCounter to ( GuardCounter + GetSecondsPassed ) endif endif if ( cIsGuarding == 1 ) set cIsGuarding to 0 endif if ( GLCont == 0 ) if ( GetDistance, fm_cont_arano < 2000 ) set Arano_GuardLevel to ( Arano_GuardLevel + ( GuardType ) ) set GLCont to 1 set GLContID to 1 elseif ( GetDistance, fm_cont_ieneth < 2000 ) set Ieneth_GuardLevel to ( Ieneth_GuardLevel + ( GuardType ) ) set GLCont to 1 set GLContID to 2 elseif ( GetDistance, fm_cont_drom < 2000 ) set Drom_GuardLevel to ( Drom_GuardLevel + ( GuardType ) ) set GLCont to 1 set GLContID to 3 elseif ( GetDistance, fm_cont_new < 2000 ) set New_GuardLevel to ( New_GuardLevel + ( GuardType ) ) set GLCont to 1 set GLContID to 4 endif else if ( GLContID == 1 ) if ( GetDistance, fm_cont_arano >= 2000 ) set Arano_GuardLevel to ( Arano_GuardLevel - ( GuardType ) ) set GLCont to 0 endif elseif ( GLContID == 2 ) if ( GetDistance, fm_cont_ieneth >= 2000 ) set Ieneth_GuardLevel to ( Ieneth_GuardLevel - ( GuardType ) ) set GLCont to 0 endif elseif ( GLContID == 3 ) if ( GetDistance, fm_cont_drom >= 2000 ) set Drom_GuardLevel to ( Drom_GuardLevel - ( GuardType ) ) set GLCont to 0 endif elseif ( GLContID == 4 ) if ( GetDistance, fm_cont_new>= 2000 ) set New_GuardLevel to ( New_GuardLevel - ( GuardType ) ) set GLCont to 0 endif endif endif if ( state == 1 ) if ( GetDistance, fm_cont_drom < 3000 ) if ( fm_cont_drom.tower == 1 ) if ( Drom_GTO < 2 ) if ( Drom_GSlot1 == 0 ) set TowerSlot to 0 set Drom_GSlot1 to 1 else set TowerSlot to 1 set Drom_GSlot2 to 1 endif set foundtower to 1 set wtower to 1 set Drom_GTO to ( Drom_GTO + 1 ) AiTravel 47503, -59819, 902 else set foundtower to 1 MessageBox "Ближайшая Сторожевая башня не может вместить в себя больше охранников" endif endif elseif ( GetDistance, fm_cont_ieneth < 3000 ) if ( fm_cont_ieneth.tower == 1 ) if ( Ieneth_GTO < 2 ) if ( Ieneth_GSlot1 == 0 ) set TowerSlot to 0 set Ieneth_GSlot1 to 1 else set TowerSlot to 1 set Ieneth_GSlot2 to 1 endif set foundtower to 1 set wtower to 2 set Ieneth_GTO to ( Ieneth_GTO + 1 ) AiTravel 35267, -62677, 831 else set foundtower to 1 MessageBox "Ближайшая Сторожевая башня не может вместить в себя больше охранников" endif endif elseif ( GetDistance, fm_cont_arano < 3000 ) if ( fm_cont_arano.tower == 1 ) if ( Arano_GTO < 2 ) if ( Arano_GSlot1 == 0 ) set TowerSlot to 0 set Arano_GSlot1 to 1 else set TowerSlot to 1 set Arano_GSlot2 to 1 endif set foundtower to 1 set wtower to 3 set Arano_GTO to ( Arano_GTO + 1 ) AiTravel 36141, -51108, 804 else set foundtower to 1 MessageBox "Ближайшая Сторожевая башня не может вместить в себя больше охранников" endif endif endif if ( foundtower == 0 ) MessageBox "Поблизости нет Сторожевых башен" endif set foundtower to 0 set state to 0 endif if ( wtower != 0 ) if ( intower != 1 ) if ( GetAiPackageDone == 1 ) if ( wtower == 1 ) if ( TowerSlot == 0 ) position 47187, -60049, 1682, 97 else position 47129, -59952, 1682, 349 endif elseif ( wtower == 2 ) if ( TowerSlot == 0 ) position 34988, -62475, 1615, 57 else position 34930, -62580, 1615, 189 endif elseif ( wtower == 3 ) if ( TowerSlot == 0 ) position 36344, -51083, 1463, 200 else position 36338, -50958, 1463, 333 endif endif set intower to 1 AddItem, "fm_heavy", 1 AiFollow, player, 1,1,1,1 ; Levelled Section (Merged Scripts) if ( GetLevel == 5 ) removeitem, "chitin spear",1 additem, "chitin short bow",1 additem, "chitin arrow",25 elseif ( GetLevel == 10 ) removeitem,"iron spear",1 additem, "short bow",1 additem, "iron arrow",25 elseif ( GetLevel == 15 ) removeitem,"steel spear",1 additem, "long bow",1 additem, "iron arrow",25 elseif ( GetLevel == 20 ) removeitem,"silver spear",1 additem, "long bow",1 additem, "steel arrow",25 elseif ( GetLevel == 25 ) removeitem,"silver spear",1 additem, "bonemold long bow",1 additem, "silver arrow",25 elseif ( GetLevel == 30 ) removeitem,"ebony spear",1 additem, "bonemold long bow",1 additem, "glass arrow",25 elseif ( GetLevel == 40 ) removeitem,"ebony spear",1 additem, "bonemold long bow",1 additem, "daedric arrow",25 elseif ( GetLevel == 50 ) removeitem,"daedric spear",1 additem, "daedric long bow",1 additem, "daedric arrow",25 endif endif endif endif ; Give the guard an infinite supply of arrows ; And a constantly renewing bow (so it doesn't brake) if ( intower == 1 ) ; Another Leveled Area if ( GetLevel == 5 ) if ( GetItemCount "chitin arrow" < 1 ) removeitem, "chitin short bow",1 additem, "chitin short bow",1 additem, "chitin arrow",25 endif elseif ( GetLevel == 10 ) if ( GetItemCount "iron arrow" < 1 ) removeitem, "short bow",1 additem, "short bow",1 additem, "iron arrow",25 endif elseif ( GetLevel == 15 ) if ( GetItemCount "iron arrow" < 1 ) removeitem, "long bow",1 additem, "long bow",1 additem, "iron arrow",25 endif elseif ( GetLevel == 20 ) if ( GetItemCount "steel arrow" < 1 ) removeitem, "long bow",1 additem, "long bow",1 additem, "steel arrow",25 endif elseif ( GetLevel == 25 ) if ( GetItemCount "silver arrow" < 1 ) removeitem, "bonemold long bow",1 additem, "bonemold long bow",1 additem, "silver arrow",25 endif elseif ( GetLevel == 30 ) if ( GetItemCount "glass arrow" < 1 ) removeitem, "bonemold long bow",1 additem, "bonemold long bow",1 additem, "glass arrow",25 endif elseif ( GetLevel == 40 ) if ( GetItemCount "daedric arrow" < 1 ) removeitem, "bonemold long bow",1 additem, "bonemold long bow",1 additem, "daedric arrow",25 endif elseif ( GetLevel == 50 ) if ( GetItemCount "daedric arrow" < 1 ) removeitem, "daedric long bow",1 additem, "daedric long bow",1 additem, "daedric arrow",25 endif endif endif if ( state == 2 ) set intower to 0 if ( GetLevel == 5 ) additem, "chitin spear",1 removeitem, "chitin short bow",1 while ( GetItemCount, "chitin arrow" > 0 ) removeitem, "chitin arrow",1 endwhile elseif ( GetLevel == 10 ) additem, "iron spear",1 removeitem, "short bow",1 while ( GetItemCount, "iron arrow" > 0 ) removeitem, "iron arrow",1 endwhile elseif ( GetLevel == 15 ) additem, "steel spear",1 removeitem, "long bow",1 while ( GetItemCount, "steel arrow" > 0 ) removeitem, "steel arrow",1 endwhile elseif ( GetLevel == 20 ) additem, "silver spear",1 removeitem, "long bow",1 while ( GetItemCount, "steel arrow" > 0 ) removeitem, "steel arrow",1 endwhile elseif ( GetLevel == 25 ) additem, "silver spear",1 removeitem, "bonemold long bow",1 while ( GetItemCount, "silver arrow" > 0 ) removeitem, "silver arrow",1 endwhile elseif ( GetLevel == 30 ) additem, "ebony spear",1 removeitem, "bonemold long bow",1 while ( GetItemCount, "glass arrow" > 0 ) removeitem, "glass arrow",1 endwhile elseif ( GetLevel == 40 ) additem, "ebony spear",1 removeitem, "bonemold long bow",1 while ( GetItemCount, "daedric arrow" > 0 ) removeitem, "daedric arrow",1 endwhile elseif ( GetLevel == 50 ) additem, "daedric spear",1 removeitem, "daedric long bow",1 while ( GetItemCount, "daedric arrow" > 0 ) removeitem, "daedric arrow",1 endwhile endif if ( wtower == 1 ) position 47409, -59804, 883, 46 set Drom_GTO to ( Drom_GTO - 1 ) if ( TowerSlot == 0 ) set Drom_GSlot1 to 0 else set Drom_GSlot2 to 0 endif elseif ( wtower == 2 ) position 35265, -62719, 831, 120 set Ieneth_GTO to ( Ieneth_GTO - 1 ) if ( TowerSlot == 0 ) set Ieneth_GSlot1 to 0 else set Ieneth_GSlot2 to 0 endif elseif ( wtower == 3 ) position 35977, -51160, 804, 263 set Arano_GTO to ( Arano_GTO - 1 ) if ( TowerSlot == 0 ) set Arano_GSlot1 to 0 else set Arano_GSlot2 to 0 endif endif set wtower to 0 set state to 0 RemoveItem, "fm_heavy",1 set IsGuarding to 1 endif end[/buspoiler]Скрипт вбит через MEE. if ( GetTarget,player ) StopCombat,player;) endifМожет в каком-то случае не срабатывать, если находится сразу после объявления переменных? Изменено 13 июля, 2011 пользователем Red Ссылка на комментарий Поделиться на другие сайты Поделиться
Moorindal Опубликовано 13 июля, 2011 Жалоба Поделиться Опубликовано 13 июля, 2011 1) StopCombat, player ;) 2) Поставь сразу после SetFight 303) Попробуй отредактировать и пересохранить в Notepad++ - любопытно, что получится. Ссылка на комментарий Поделиться на другие сайты Поделиться
Red Опубликовано 13 июля, 2011 Автор Жалоба Поделиться Опубликовано 13 июля, 2011 (изменено) 1) StopCombat, player ;) 2) Поставь сразу после SetFight 303) Попробуй отредактировать и пересохранить в Notepad++ - любопытно, что получится.if ( GetTarget Player == 1) setfight 30 messageBox"It works" StopCombat,playerВ if не заходит.С запятой - тот же эффект.Notepad++ у меня нет, но изменения отобразились даже в CS.Еще раз проверил - на стражнике висит именно этот скрипт, стражника тоже не перепутал.GetTarget - рабочая.Над локализацией мода работал кто-то с фулла? messageBox"Script works" if ( GetTarget Player == 1) setfight 30 messageBox"It works" StopCombat,player endifПервый messageBox не срабатывает.Локальные скрипты срабатывают каждый фрейм, при любом взаимодействии, или при взаимодействии указанном в скрипте? UPD: Скрипт работает при нападении на другого NPC, но не на самого охранника.По совету Муна сделал:begin fm_guardscript short doonce if ( doonce == 0 ) startscript red_guardscript set doonce to 1 endif if ( GetTarget, player ) StopCombat; endif if ( OnPCHitMe) StopCombat; endif endГде red_guardscipt - начальный скрипт.Вызывает сомнения doonce.С ним начальный скрипт вызовется только 1 раз за игру? Изменено 13 июля, 2011 пользователем Red Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 13 июля, 2011 Жалоба Поделиться Опубликовано 13 июля, 2011 (изменено) Локальные скрипты срабатывают каждый фрейм, при любом взаимодействии, или при взаимодействии указанном в скрипте? Каждый фрейм. Разумеется, если объект рядом.Вызывает сомнения doonce.Да. На каждого стражника один раз. А зачем перегружать комп? Изменено 13 июля, 2011 пользователем Муурн Шепард Ссылка на комментарий Поделиться на другие сайты Поделиться
Red Опубликовано 13 июля, 2011 Автор Жалоба Поделиться Опубликовано 13 июля, 2011 Да. На каждого стражника один раз. А зачем перегружать комп?Там есть вызов скрипта, восполняющий им запас стрел при стрельбе с башни. Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 13 июля, 2011 Жалоба Поделиться Опубликовано 13 июля, 2011 (изменено) Вы про этот блок? if ( intower == 1 ) ; Another Leveled Area if ( GetLevel == 5 ) if ( GetItemCount "chitin arrow" < 1 ) removeitem, "chitin short bow",1 additem, "chitin short bow",1 additem, "chitin arrow",25 endif elseif ( GetLevel == 10 ) if ( GetItemCount "iron arrow" < 1 ) removeitem, "short bow",1 additem, "short bow",1 additem, "iron arrow",25 endif elseif ( GetLevel == 15 ) if ( GetItemCount "iron arrow" < 1 ) removeitem, "long bow",1 additem, "long bow",1 additem, "iron arrow",25 endif elseif ( GetLevel == 20 ) if ( GetItemCount "steel arrow" < 1 ) removeitem, "long bow",1 additem, "long bow",1 additem, "steel arrow",25 endif elseif ( GetLevel == 25 ) if ( GetItemCount "silver arrow" < 1 ) removeitem, "bonemold long bow",1 additem, "bonemold long bow",1 additem, "silver arrow",25 endif elseif ( GetLevel == 30 ) if ( GetItemCount "glass arrow" < 1 ) removeitem, "bonemold long bow",1 additem, "bonemold long bow",1 additem, "glass arrow",25 endif elseif ( GetLevel == 40 ) if ( GetItemCount "daedric arrow" < 1 ) removeitem, "bonemold long bow",1 additem, "bonemold long bow",1 additem, "daedric arrow",25 endif elseif ( GetLevel == 50 ) if ( GetItemCount "daedric arrow" < 1 ) removeitem, "daedric long bow",1 additem, "daedric long bow",1 additem, "daedric arrow",25 endif endif endif Так в чем проблема? На стражнике запущен целевой скрипт, который тоже исполняется каждый фрейм. Правда, его можно остановить, а локальный нет. Изменено 13 июля, 2011 пользователем Муурн Шепард Ссылка на комментарий Поделиться на другие сайты Поделиться
Red Опубликовано 13 июля, 2011 Автор Жалоба Поделиться Опубликовано 13 июля, 2011 Так в чем проблема? На стражнике запущен целевой скрипт, который тоже исполняется каждый фрейм. Правда, его можно остановить, а локальный нет. begin fm_guardscript ;Начало скрипта short doonce ; объявление переменной. при первом запуске значение равно 0 if ( doonce == 0 ) ; если скрипт запущен впервые startscript red_guardscript ; запустить основной скрипт set doonce to 1 ; отметить, что скрипт уже был запущен endif ; if ( GetTarget, player ) ; если игрок выбран NPC для атаки StopCombat; остановить бой endif ; if ( OnPCHitMe) ; Если игрок ударил NPC StopCombat; остановить бой endif ; end ; Конец скрипта Допустим, скрипт запустился 1 раз, когда стражника нет в башне.doonce стало равно 1.Т.е., если стражник будет в башне, то скрипт на обновление стрел не выполнится.Это если переменная не инициализируется заново при запуске скрипта.Если она каждый раз становится равна 0, тогда doonce не имеет смысла, т.к. при следующем запуске счетчик использования скриптов обнуляется. Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 13 июля, 2011 Жалоба Поделиться Опубликовано 13 июля, 2011 (изменено) Допустим, скрипт запустился 1 раз, когда стражника нет в башне.Насколько я знаю, если вы не остановите скрипт, то он будет крутиться сколько угодно раз.Если обновление стрел -- блок приведенный мной выше, то оно в основном скрипте. А он запущен. Команды stopscript нет. Скрипт не остановится. Изменено 13 июля, 2011 пользователем Муурн Шепард Ссылка на комментарий Поделиться на другие сайты Поделиться
Red Опубликовано 13 июля, 2011 Автор Жалоба Поделиться Опубликовано 13 июля, 2011 (изменено) Насколько я знаю, если вы не остановите скрипт, то он будет крутиться сколько угодно раз.Если обновление стрел -- блок приведенный мной выше, то оно в основном скрипте. А он запущен. Команды stopscript нет. Скрипт не остановится. Понятно)Осталось понять, почему StopCombat не работает даже в таком виде: begin fm_guardscript short doonce if ( doonce == 0 ) startscript red_guardscript set doonce to 1 endif if ( GetTarget, player ) StopComba, playert; endif if ( OnPCHitMe) StopCombat, player; endif end Изменено 13 июля, 2011 пользователем Red Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти