zrobiłem skrypt na podstawie skrypty NOV_1330_...
ale nie wiem jak go poprawic zeby mój NPC VLK_5008_rafal prowadził nas do punktu SPAWN_MOLERAT02_SPAWN01
oto kod dialogów
[codebox]// **************************************************
// EXIT
// **************************************************
INSTANCE DIA_Rafal_Exit (C_INFO)
{
npc = Vlk_5008_Rafal;
nr = 999;
condition = DIA_Rafal_Exit_Condition;
information = DIA_Rafal_Exit_Info;
permanent = 1;
description = DIALOG_ENDE;
};
FUNC INT DIA_Rafal_Exit_Condition()
{
return 1;
};
FUNC VOID DIA_Rafal_Exit_Info()
{
AI_StopProcessInfos ( self );
};
// **************************************************
// Was machst du?
// **************************************************
INSTANCE DIA_Rafal_Hello (C_INFO)
{
npc = Vlk_5008_Rafal;
nr = 1;
condition = DIA_Rafal_Hello_Condition;
information = DIA_Rafal_Hello_Info;
permanent = 0;
description = "Cześć!";
};
FUNC INT DIA_Rafal_Hello_Condition()
{
return 1;
};
FUNC VOID DIA_Rafal_Hello_Info()
{
AI_Output (other, self,"DIA_Rafal_Hello_15_00"); //Cześć! Myślałem ze nie przerzyjemy upadku a jednak
AI_Output (self, other,"DIA_Rafal_Hello_03_01"); //Cóż, teraz już jesteśmy w koloni
AI_Output (other, self,"DIA_Rafal_Hello_15_02"); //Masz racje jak my sobie poradzimy !!!
AI_Output (self, other,"DIA_Rafal_Hello_03_03"); //Spokojnie jestem jednym z magów tworzacych tę bariere
AI_Output (self, other,"DIA_Rafal_Hello_03_04"); //osodzono MNIE o naruszenie struktury magicznej bariery zdorzyłem uciec a i tak trafiłem tutaj
AI_Output (other, self,"DIA_Rafal_Hello_15_05"); //Masz jakiś pomysł od czego zacząć ?
AI_Output (self, other,"DIA_Rafal_Hello_03_06"); //najlepiej znajdzi nam jakąs broń bo kilofem dużo nie zdziałamy
Log_CreateTopic (CH1_swordlol, LOG_MISSION);
Log_SetTopicStatus (CH1_swordlol, LOG_RUNNING);
B_LogEntry (CH1_swordlol, "Musze znalesc dla mnie i maga rafała jakies miecze !!!");
};
INSTANCE DIA_Rafal_zadanie (C_INFO)
{
npc = Vlk_5008_Rafal;
nr = 2;
condition = DIA_Rafal_zadanie_Condition;
information = DIA_Rafal_zadanie_Info;
permanent = 0;
description = "mam bron";
};
FUNC INT DIA_Rafal_zadanie_Condition()
{
if (npc_knowsInfo(other, DIA_Rafal_Hello))
{
return TRUE;
};
};
FUNC VOID DIA_Rafal_zadanie_Info()
{
AI_Output (other, self,"DIA_Rafal_zadanie_15_00"); //Mam broń !
AI_Output (self, other,"DIA_Rafal_zadanie_03_01"); //ok pokarz co tam masz
Info_ClearChoices (DIA_Rafal_zadanie);
Info_AddChoice (DIA_Rafal_zadanie,DIALOG_BACK , DIA_Rafal_zadanie_BACK);
Info_AddChoice (DIA_Rafal_zadanie,"prosze miecz" , DIA_Rafal_zadanie_OK);
Info_AddChoice (DIA_Rafal_zadanie,"oto runa" , DIA_Rafal_zadanie_WO);
Info_AddChoice (DIA_Rafal_zadanie,"nie moge niczego znaleść" , DIA_Rafal_zadanie_FOKUS);
};
func void DIA_Rafal_zadanie_BACK ()
{
Info_ClearChoices (DIA_Rafal_zadanie);
};
func void DIA_Rafal_zadanie_OK ()
{
if (npc_hasitems (other,ItMw_1H_Sword_Short_01) >=1)
{
AI_Output (other, self,"Sit_2_PSI_Rafal_zadanie_OK_15_01"); //prosze miecz
AI_Output (self, other,"Sit_2_PSI_Rafal_zadanie_OK_03_02"); //dzieki to mozemy zacząć
AI_Output (other, self,"Sit_2_PSI_Rafal_zadanie_OK_15_03"); //Zacząć ?
AI_Output (self, other,"Sit_2_PSI_Rafal_zadanie_OK_03_04"); //NIEWAZNE
b_giveinvitems (other, self, ItMw_1H_Sword_Short_01,1);
B_LogEntry (CH1_swordlol, "Oddałem Rafałowi miecz mam nadzieje ze wyciągnie nas z tad");
Log_SetTopicStatus (CH1_swordlol, LOG_SUCCESS);
B_GiveXP (XP_DeliverSecondFocus);
};
};
func void DIA_Rafal_zadanie_WO ()
{
if (npc_hasitems (other,ItArRuneFireball) >=1)
{
AI_Output (other, self,"Sit_2_PSI_Rafal_zadanie_WO_15_01"); //Prosze oto runa.
AI_Output (self, other,"Sit_2_PSI_Rafal_zadanie_WO_03_02"); //o cholera jak ci sie udało ja zdobyć. zresztą niewarzne.
AI_Output (other, self,"Sit_2_PSI_Rafal_zadanie_WO_15_03"); //to proste udało mi sie okraści tego maga co wreczał mi list he he he.
AI_Output (self, other,"Sit_2_PSI_Rafal_zadanie_WO_03_04"); //dobra idzmy poszukac miejsca na obuz chodz za mną
b_giveinvitems (other, self, ItArRuneFireball,1);
B_LogEntry (CH1_swordlol, "Oddałem Rafałowi rune teraz musimy znaleśc miejsce na obuz ciekawe ila nam to zajmie");
Log_SetTopicStatus (CH1_swordlol, LOG_SUCCESS);
B_GiveXP (XP_DeliverSecondFocus);
Log_CreateTopic (CH1_naszoboz, LOG_MISSION);
Log_SetTopicStatus (CH1_naszoboz, LOG_RUNNING);
B_LogEntry (CH1_naszoboz, "Musze znaleść dobre miejsce na obuz takie gdzie mogligysmy sie skrycz z tajemniczym magiem");
};
};
func void DIA_Rafal_zadanie_FOKUS ()
{
AI_Output (other, self,"Sit_2_PSI_Rafal_zadanie_FOKUS_15_01"); //Dlaczego ten kamień jest taki ważny?
AI_Output (self, other,"Sit_2_PSI_Rafal_zadanie_FOKUS_03_02"); //Ten magiczny artefakt
AI_Output (self, other,"Sit_2_PSI_Rafal_zadanie_FOKUS_03_03"); //To jeden z pięciu kamieni
AI_Output (self, other,"Sit_2_PSI_Rafal_zadanie_FOKUS_03_04"); //Jedna z moich wizji
AI_Output (other, self,"Sit_2_PSI_Rafal_zadanie_FOKUS_15_05"); //To musiała być niezwykle
AI_Output (self, other,"Sit_2_PSI_Rafal_zadanie_FOKUS_03_06"); //Zesłał mi ją sam Śniący!
};
FUNC VOID DIA_Rafal_GotoPSI_Info()
{
AI_Output (other, self,"DIA_Rafal_GotoPSI_15_00"); //Prowadz !!!
if (Psi_Walk == 0)
{
if (Npc_GetTrueGuild(hero) == GIL_NONE)
{
Log_SetTopicStatus (CH1_naszoboz, LOG_RUNNING);
};
B_LogEntry (CH1_naszoboz, "Mag rafał wyrusza na poszukiwanie obozu !!");
Psi_Walk = 1;
};
AI_Output (self, other,"DIA_Rafal_GotoPSI_03_01"); //To wspaniale. Chodź za mną!
Rafal_GotoPSI_Day = Wld_GetDay();
self.aivar[AIV_PARTYMEMBER] = TRUE;
Npc_SetRefuseTalk (self, 300);
AI_StopProcessInfos (self);
Npc_SetPermAttitude(self,ATT_FRIENDLY);
Npc_ExchangeRoutine(self,"GUIDE");
};
[/codebox]
a tu postaci NPC VLK_5008_rafal
[codebox]instance VLK_5008_Rafal (Npc_Default)
{
//-------- primary data --------
name = "Rafal";
npctype = npctype_mine_ambient;
guild = GIL_NONE;
level = 3;
voice = 3;
id = 5008;
//-------- abilities --------
attribute[ATR_STRENGTH] = 15;
attribute[ATR_DEXTERITY] = 10;
attribute[ATR_MANA_MAX] = 100;
attribute[ATR_MANA] = 100;
attribute[ATR_HITPOINTS_MAX] = 76;
attribute[ATR_HITPOINTS] = 76;
//-------- visuals --------
Npc_SetTalentSkill ( self, NPC_TALENT_MAGE, 6);
// animations
Mdl_SetVisual (self,"HUMANS.MDS");
Mdl_ApplyOverlayMds (self,"Humans_Tired.mds");
// body mesh, head mesh, hairmesh, face-tex, hair-tex, skin
Mdl_SetVisualBody (self,"hum_body_Naked0",3,1,"Hum_Head_Fighter", 70, 3, VLK_ARMOR_L);
B_Scale (self);
Mdl_SetModelFatness (self, 0);
fight_tactic = FAI_HUMAN_COWARD;
//-------- Talents --------
Npc_SetTalentSkill (self, NPC_TALENT_1H,1);
//-------- inventory --------
EquipItem (self,ItArRuneWindfist);
CreateInvItem (self, ItMwPickaxe);
CreateInvItem (self, ItFoLoaf);
CreateInvItem (self, ItFoBeer);
CreateInvItem (self, ItLsTorch);
CreateInvItems(self,ItFo_mutton_01,20);
CreateInvItems(self,ItFoApple,5);
CreateInvItems(self,ItFoLoaf,5);
CreateInvItems(self,ItFoMutton,10);
CreateInvItems(self,ItFoMuttonRaw,20);
CreateInvItems(self,ItFoCheese,5);
CreateInvItems(self,ItFoRice,5);
CreateInvItems(self,ItFoSoup,5);
CreateInvItems(self,ItFoMeatbugragout,5);
CreateInvItems(self,ItFoCrawlersoup,5);
CreateInvItems(self,ItFoBooze,10);
CreateInvItems(self,ItFoWine,5);
CreateInvItems(self,ItFo_wineberrys_01,5);
CreateInvItems(self,ItFoBeer,5);
CreateInvItem(self,ItMw_1H_Sword_Short_01);
CreateInvItem(self,ItArRuneFireball);
//-------------Daily Routine-------------
daily_routine = Rtn_FMstart_5008;
};
FUNC VOID Rtn_FMstart_5008 () //FM
{
TA_SitAround (00,00,23,00,"WP_INTRO_WI06");
TA_SitAround (23,00,24,00,"WP_INTRO_WI06");
};
FUNC VOID Rtn_Guide_5008 ()
{
TA_GuidePC (08,00,20,00,"SPAWN_MOLERAT02_SPAWN01");
TA_GuidePC (20,00,08,00,"SPAWN_MOLERAT02_SPAWN01");
};
[/codebox]
nie patrzcie na ortografie tylko na dialog o dawaniu runy kula ognia !!!!
Dzięki za wszelkie odpowiedzi