|
|
08.09.2006, 20:55
|
#282
|
|
Re: М: Уроки скриптологии
2Ork Warrior:
Чета нефига не получаеться можешь поподробнее в какой именно папке какой файл чем его открывать
|
Если ты серьезно решил заняться скриптологией, последуй совету Ukur - прочитай тему с первой страницы. Если тебе заняться нечем, кроме как задавать вопросы сильно смахивающие на флуд, то рекомендую это занятие прекратить. Так что, сделай правильные выводы...
|
|
|
10.10.2006, 08:40
|
#283
|
|
Re: М: Уроки скриптологии
Уважаемый Vam! После долгих поисков в данной теме я попытался собрать воедино ваши советы по исправлению ошибок в скриптах аддона. Пожалуйста проверьте и если есть ошибки, укажите на них. Затем можно попросить модераторов дать ссылку на них в заголовке темы. Ошибки в скриптах Готики II Ночь Ворона v2.6 и способы их исправленияВнимание: Красным цветом выделены исправленные фрагменты скриптов. AI\Magic\C_CanNPCCollideWithSpell.d
if(C_BodyStateContains(self,BS_SWIM) || C_BodyStateContains(self,BS_DIVE)) { * * *return COLL_APPLYDOUBLEDAMAGE; }; return COLL_DOEVERYTHING;
|
AI\Magic\Spell_ProcessMana.d
* * *if(activeSpell == SPL_SummonMud) * * *{ * * * * * *return Spell_Logic_SummonMud(manaInvested); * * *}; * * *return SPL_SENDSTOP; };
|
AI\Magic\ZS_Magic\ZS_GreenTentacle.d
func void ZS_Greententacle()
|
AI\Magic\ZS_Magic\ZS_Inflate.d
AI\Magic\ZS_Magic\ZS_MagicBurn.d
AI\Magic\ZS_Magic\ZS_MagicBurnShort.d
func void ZS_MagicBurnShort()
|
AI\Magic\ZS_Magic\ZS_MagicFlee.d
func void B_StopMagicFlee() ... func int ZS_MagicFlee_Loop() { * * *if(Npc_GetStateTime(self) > SPL_TIME_Fear) * * *{ * * * * * *Npc_ClearAIQueue(self); * * * * * *B_StopMagicFlee(); * * * * * *return LOOP_END; * * *}; * * *return LOOP_CONTINUE; };
|
AI\Magic\ZS_Magic\ZS_MagicFreeze.d
func void ZS_MagicFreeze()
|
AI\Magic\ZS_Magic\ZS_MagicShrink.d
func void ZS_MagicShrink()
|
AI\Magic\ZS_Magic\ZS_MagicSleep.d
func void B_StopMagicSleep()
|
AI\Magic\ZS_Magic\ZS_Pyro.d
AI\Magic\ZS_Magic\ZS_ShortZapped.d
func void ZS_ShortZapped() ... func int ZS_ShortZapped_Loop() { * * *if(Npc_GetStateTime(self) > SPL_TIME_SHORTZAPPED) * * *{ * * * * * *B_StopShortZapped(); * * * * * *return LOOP_END; * * *}; * * *return LOOP_CONTINUE; };
|
AI\Magic\ZS_Magic\ZS_SuckEnergy.d
func void ZS_SuckEnergy()
|
AI\Magic\ZS_Magic\ZS_Swarm.d
AI\Magic\ZS_Magic\ZS_Whirlwind.d
AI\Magic\ZS_Magic\ZS_Zapped.d
Story\Dialoge\DAI_Djg_713_Biff.d
func int DIA_Biff_KOHLEWEGGEBEN_Condition() { * * *if((DJG_Biff_SCGold > Npc_HasItems(hero,ItMi_Gold)) && (DJG_Biff_HalbeHalbe == TRUE) && (DJG_BiffParty == TRUE) && (DJG_Biff_Stay == FALSE)) * * *{ * * * * * *return TRUE; * * *}; };
|
Story\Dialoge\DIA_Mil_311_Andre.d
func void DIA_Andre_CantharFalle_Info()
|
Story\Dialoge\DIA_PC_Thief_NW.d
if(Npc_HasItems(other,ItSe_DiegosTreasure_Mis) >= 1) { * * *B_GiveInvItems(other,self,ItSe_DiegosTreasure_Mis ,1); * * *b_diegonw_diegosrevenge(); * * *DiegosRevenge = TRUE; } else if (Npc_HasItems(other,ItMi_Gold) < DiegosTreasure)
|
Story\Dialoge\DIA_PC_ThiefOW.d
* * * * * *else * * * * * *{ * * * * * * * * *Diego_TooFarComment = FALSE; * * * * * *}; * * *}; * * *return FALSE; };
|
Story\Dialoge\DIA_Pir_1353_Addon_Morgan.d
func void DIA_Addon_Morgan_EXIT_Info() ... func void DIA_Addon_Morgan_Anheuern_Info()
|
Story\Dialoge\DIA_Sld_807_Bullco.d
* * *Bullco_HitCounter = Bullco_HitCounter + 1; * * *Bullco_Leave_Day = B_GetDayPlus(); * * *AI_StopProcessInfos(self); * * *B_Attack(self,other,AR_NONE,1);
|
Story\Dialoge\DIA_Sld_810_Dar.d
if(Dar_LostAgainstCipher == TRUE) { * * *self.aivar[AIV_LastFightComment] = FALSE; * * *return TRUE; };
|
Story\Dialoge\DIA_Vlk_413_Bosper.d
* * *AI_Output(self,other,"DIA_Bosper_SellFur_11_08"); * * *//Это... она стоит целое состояние. * * *Bosper_TrollFurSold = TRUE; }
|
Story\B_Content\B_Addon_PiratesGoHome.d
if(Npc_IsDead(TowerBandit1) && Npc_IsDead(TowerBandit2) && Npc_IsDead(TowerBandit3)) { * * *TowerBanditsDead = TRUE; * * *return TRUE; } * * *else { * * *return FALSE; };
|
Story\B_Content\B_RemoveQuarhodron.d
func void B_RemoveGhost()
|
Story\B_Content\B_DragonKillCounter.d
func void B_DragonKillCounter(var C_Npc current_dragon)
|
AI\Human\TA_Human\ZS_RunToWP.d
func void ZS_RunToWP_End()
|
AI\Human\TA_Human\ZS_AssessGuidePlayer.d
func void ZS_Guide_Player_End()
|
AI\Human\TA_Human\ZS_FleeToWP.d
func void ZS_FleeToWp_End()
|
AI\Monster\B_Monster\B_MM_DeSynchronize.d
func void B_MM_DeSynchronize()
|
Источник: VamДобавление от 10/10/06, в 08:00:16 ДополнениеПохоже, где-то есть скрытая ошибка, т.к. после внесения этих изменений перестают работать телепорты в Яркендаре - когда ГГ встаёт на активированный телепорт, вокруг него появляется синее сияние, НО перехода не происходит, герой остаётся на месте. :(
|
|
|
31.07.2008, 11:58
|
#285
|
|
Re: М: Уроки скриптологии
Пытаюсь скомпилировать файлы (аддон "Возвращение" на базе Г2НВ) и выскакивает такая гадость. Причем там я не изменял instance PAL_2002_Leiche *(Npc_Default) { * * *// ------ NSC ------ * * *name * * * * * *= "Silvestro"; * * *guild * * * * * *= GIL_NONE; * * *id * * * * * * * * *= 2002; * * *voice * * * * * *= 4; * * *flags * * * = 0; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *npctype * * * * * *= NPCTYPE_MAIN; * * * * * * * * // ------ Attribute ------ slf.attribute[ATR_STRENGTH] = 10; slf.attribute[ATR_DEXTERITY] = 10; slf.attribute[ATR_MANA_MAX] = 0; slf.attribute[ATR_MANA] = 0; slf.attribute[ATR_HITPOINTS_MAX] = 1; slf.attribute[ATR_HITPOINTS] = 1; * * * * * * * * * * * * * * * * * * * * * * *// ------ Kampf-Taktik ------ * * *fight_tactic = FAI_HUMAN_STRONG; * * * * * * * * *// ------ Equippte Waffen ------ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *// ------ Inventory ------ * * *CreateInvItems (self,ItWr_Silvestro_MIS,1); * * *CreateInvItems (self, ItPO_Mana_02,2); * * *CreateInvItems (self,ItmI_Gold,100); * * *CreateInvItems (self,ItPo_Health_02,2); * * * * * *// ------ visuals ------ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *B_SetNpcVisual * * * * * *(self, MALE, "Hum_Head_Bald", Face_N_Normal20, BodyTex_N, ITAR_PAL_M); * * * * * *Mdl_SetModelFatness * * *(self, 0); * * *Mdl_ApplyOverlayMds * * *(self, "Humans_Militia.mds"); * * * * * *// ------ NSC-relevante Talente vergeben ------ * * *B_GiveNpcTalents (self); * * * * * *// ------ Kampf-Talente ------ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *B_SetFightSkills (self, 70);
* * *// ------ TA anmelden ------ * * *daily_routine * * * * * *= Rtn_Start_2002; };
FUNC VOID Rtn_Start_2002 () { * * * * * *TA_Stand_Guarding * * * * * *(08,00,23,00,"OW_MINE3_LEICHE_01"); * *TA_Stand_Guarding * * * * * *(23,00,08,00,"OW_MINE3_LEICHE_01"); };
(ош: неизвестный индефикатор slf.attribute)
А также в других "функция должна возвращать значение" и "неожиданный return" надо образцы выложу
|
|
|
31.07.2008, 18:01
|
#288
|
|
Re: М: Уроки скриптологии
2Imir:
Вы думаете я такой фанат чтоб столько в ручную писать.
|
А вы думаете, что фанаты как раз этим и занимаются? Вам указали возможную проблему, потрудитесь вначале проверить, а затем уже грозитесь скрипты посылать.
|
|
|
31.07.2008, 23:04
|
#290
|
|
Re: М: Уроки скриптологии
2Imir:
Я в скрипте не силен. Это мой первый опыт.(первый раз решил открыть, потому как раздражает одна мелочь некритичная)
|
Не силен, слушай других, а не зафлуждай тему малоинтересными отмазками. 2Imir:
Но указание на возможную проблему слишком расплывчиво.
|
Указание на возможную проблему удивительно точное, заменить в данном файле slf на self, которое, как я понял вы даже не удосужились проверить. 2Imir:
Тем более slf есть в других местах.
|
В других местах оно уместно. 2Imir:
А вот насчет attribute сильно сомневаюсь.
|
Насчет этого сомневаться не стоит, там все правильно, а если будете также в дальнейшем голословно отвергать все "расплывчатые" ответы известных в определенных кругах скриптологов, типа 2360: рискуете и в дальнейшем познавать все в гордом одиночестве. 2Imir:
Поэтому и выложил чтоб подсказали.
|
Ну так вперед, для начала замени slf на self. P.S. Эта тема для ИЗУЧЕНИЯ Скриптологии, а не решения отдельных проблем, читай шапку темы, там написано куда с проблемами.
|
|
|
01.08.2008, 02:10
|
#292
|
|
Re: М: Уроки скриптологии
2Imir:
slf.attribute еще в паре десятке файлов причем в тех же местах но на них не ругается.
|
Там есть "небольшая разница". В конкретном файле персонажа self указывает на то, что мы этому персонажу (Сильвестро) присваиваем некие атрибуты в частности - физические. self.attribute[ATR_STRENGTH]=10 по человечеки можно прочитать как мои.атрибуты[сила]=10. Self вообще обозначет текущего персонажа в любом контексте. slf, о котором идет речь - видимо, определенная заранее переменная действующая только в пределах некой пользовательской функции, не глобально, впрочем, это уже другой разговор, слушайте Ukur'a и почитайте уроки скриптологии by Vam ;)
|
|
|
03.08.2008, 12:55
|
#293
|
|
Re: М: Уроки скриптологии
2Imir:
(ош: неизвестный индефикатор slf.attribute)
|
В данном контексте (блоке кода инстанции) производится инициализация переменных базового класса C_NPC, следовательно никакие префиксы (self, slf и прочее) вообще не нужны. Об этой ошибке писалось когда-то в теме декомпилятора.
|
|
|
03.10.2008, 19:54
|
#297
|
|
Re: М: Уроки скриптологии
|
|
|
08.01.2012, 23:10
|
#301
|
|
Re: М: Уроки скриптологии
помогите пожалуйста!
instance Bau_911_Elena(Npc_Default) { * * *name[0] = "Elena"; * * *guild = GIL_BAU; * * *id = 911; * * *voice = 16; * * *flags = NPC_FLAG_IMMORTAL; * * *npcType = NpcType_Friend; * * *B_SetAttributesToChapter(self,2); * * *fight_tactic = FAI_HUMAN_COWARD; * * *EquipItem(self,ItMw_1h_Bau_Axe); * * *B_CreateAmbientInv(self); * * *B_SetNpcVisual(self,FEMALE,"Hum_Head_Babe",FaceBa be_N_GreyCloth,BodyTexBabe_N,ITAR_BauBabe_L); * * *Mdl_SetModelFatness(self,0); * * *Mdl_ApplyOverlayMds(self,"Humans_Babe.mds"); * * *B_GiveNpcTalents(self); * * *B_SetFightSkills(self,25); * * *daily_routine = Rtn_Start_911; };
func void Rtn_Start_911() { * * *TA_Stand_ArmsCrossed(7,30,20,30,"NW_BIGFARM_STABL E_OUT_04"); * * *TA_Sit_Throne(20,30,7,30,"NW_BIGFARM_HOUSE_UP1_SE SSEL"); };
во время компиэляции пишет: "Story\NPC\BAU_911_Elena.d(2): Error: Неправильное имя класса или прототипа NPC_DEFAULT Что делать подскажите!!!!!!
|
|
|
09.01.2012, 16:27
|
#302
|
|
Re: М: Уроки скриптологии
2 Gjaser:В первую очередь проверить наличие в проекте файла Story\NPC_Scripts\Npc_Default.d:
Cпойлер(щелкните, чтобы прочесть):
prototype Npc_Default(C_Npc) { * * *attribute[ATR_STRENGTH] = 10; * * *aivar[REAL_STRENGTH] = 10; * * *attribute[ATR_DEXTERITY] = 10; * * *aivar[REAL_DEXTERITY] = 10; * * *attribute[ATR_MANA_MAX] = 10; * * *aivar[REAL_MANA_MAX] = 10; * * *attribute[ATR_MANA] = 10; * * *attribute[ATR_HITPOINTS_MAX] = 40; * * *attribute[ATR_HITPOINTS] = 40; * * *HitChance[NPC_TALENT_1H] = 0; * * *HitChance[NPC_TALENT_2H] = 0; * * *HitChance[NPC_TALENT_BOW] = 0; * * *HitChance[NPC_TALENT_CROSSBOW] = 0; * * *protection[PROT_EDGE] = 0; * * *protection[PROT_BLUNT] = 0; * * *protection[PROT_POINT] = 0; * * *protection[PROT_FIRE] = 0; * * *protection[PROT_MAGIC] = 0; * * *damagetype = DAM_BLUNT; * * *senses = SENSE_HEAR | SENSE_SEE; * * *senses_range = PERC_DIST_ACTIVE_MAX; * * *aivar[AIV_MM_FollowTime] = NPC_TIME_FOLLOW; * * *aivar[AIV_FightDistCancel] = FIGHT_DIST_CANCEL; * * *bodyStateInterruptableOverride = FALSE; };
а также место, где он прописан в файле Gothic.src:
Cпойлер(щелкните, чтобы прочесть):
Story\NPC_Scripts\B_CreateAmbientInv.d Story\NPC_Scripts\B_GiveNpcTalents.d Story\NPC_Scripts\B_SetAttributesToChapter.d Story\NPC_Scripts\B_SetNpcVisual.d Story\NPC_Scripts\Npc_Default.d
P.S.: Оказывается, что вам это уже подробно объяснили на форуме WoP.RU.
|
|
|
27.01.2012, 00:39
|
#303
|
|
Re: М: Уроки скриптологии
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
Опции темы |
Поиск в этой теме |
|
|
Ваши права в разделе
|
|
|
|
Текущее время: 01:12. Часовой пояс GMT +4.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|