Witam, siemka itd.
Próbuję zrobić moda, mam 52NPC i dialogi do nich ( robiłem, kiedy miałem odcięty internet. )
Skrypty postaci nie mają, żadnego błędu. Dajmy na to SLD_888_Kasztan ( nazwa pliku )
Spoiler
//*********************************************************************
// Info EXIT
//*********************************************************************
INSTANCE DIA_SLD_888_Kasztan_EXIT (C_INFO)
{
npc = SLD_888_Kasztan;
nr = 888;
condition = DIA_SLD_888_Kasztan_EXIT_Condition;
information = DIA_SLD_888_Kasztan_EXIT_Info;
permanent = TRUE;
description = DIALOG_ENDE;
};
FUNC INT DIA_SLD_888_Kasztan_EXIT_Condition()
{
return TRUE;
};
FUNC VOID DIA_SLD_888_Kasztan_EXIT_Info()
{
AI_StopProcessInfos (self);
};
//*********************************************************************
// Info Hello
//*********************************************************************
INSTANCE DIA_SLD_888_Kasztan_powitanie (C_INFO)
{
npc = SLD_888_Kasztan;
nr = 1;
condition = DIA_SLD_888_Kasztan_powitanie_Condition;
information = DIA_SLD_888_Kasztan_powitanie_Info;
permanent = FALSE;
description = "Kim jesteś ?";
};
FUNC INT DIA_SLD_888_Kasztan_powitanie_Condition()
{
return TRUE;
};
FUNC VOID DIA_SLD_888_Kasztan_powitanie_Info()
{
AI_Output (other,self ,"DIA_SLD_888_Kasztan_powitanie_15_00"); //Kim jesteś ?
AI_Output (self ,other,"DIA_SLD_888_Kasztan_powitanie_55_01"); //Jestem Olaf, ale każdy mówi na mnie kasztan. Jestem, także
AI_Output (self ,other,"DIA_SLD_888_Kasztan_powitanie_55_02"); //przywódcą najemników, którzy nadal nie poddają się wojską
AI_Output (self ,other,"DIA_SLD_888_Kasztan_powitanie_55_03"); //Króla... Wybił wszystkich na Khorinis przeklęty bydlak!
AI_Output (self ,other,"DIA_SLD_888_Kasztan_powitanie_55_04"); //Mamy także mały oddział zwiadowczy pod miastem... Jest to
AI_Output (self ,other,"DIA_SLD_888_Kasztan_powitanie_55_05"); //około 3 osób... Jeżeli jeszcze żyją...
AI_Output (other,self,"DIA_SLD_888_Kasztan_powitanie_15_06"); //Ale mówiłeś, że wybił wszystkich.
AI_Output (self ,other,"DIA_SLD_888_Kasztan_powitanie_55_07"); //Myślałeś, że wybił najbogatszych obywateli i swoich
AI_Output (self ,other,"DIA_SLD_888_Kasztan_powitanie_55_08"); //ludzi? Ha! Gdybyś zapłacił paladynom 50tys. to
AI_Output (self ,other,"DIA_SLD_888_Kasztan_powitanie_55_09"); //oddadzą Ci nawet własny statek! Głupi ludzie...
AI_Output (other,self,"DIA_SLD_888_Kasztan_powitanie_15_10"); //Hmm.. Macie jakiegoś szpiega wśród Paladynów ?
AI_Output (self ,other,"DIA_SLD_888_Kasztan_powitanie_55_11"); //Był kiedyś jeden śmiałek, ale wątpie, żeby
AI_Output (self ,other,"DIA_SLD_888_Kasztan_powitanie_55_12"); //zdołał do nich dołączyć.. Najpewniej wybili go zanim zdążył
AI_Output (self ,other,"DIA_SLD_888_Kasztan_powitanie_55_13"); //wejść do miasta... Bydlaki! Mamy jeszcze jednego maga
AI_Output (self ,other,"DIA_SLD_888_Kasztan_powitanie_55_14"); //wody, ale nie wiadomo gdzie się podziewa.. Szedł na samotną
AI_Output (self ,other,"DIA_SLD_888_Kasztan_powitanie_55_15"); //misję.. Chciał skontaktować się z królem, za pomocą kamienii
AI_Output (self ,other,"DIA_SLD_888_Kasztan_powitanie_55_16"); //ogniskujących.. Miał je Max - może On z nim rozmawiał. Nie wiem
AI_Output (self ,other,"DIA_SLD_888_Kasztan_powitanie_55_17"); //na pewno... Dobra, koniec pogaduszek.
};
//*********************************************************************
// Quest
//*********************************************************************
INSTANCE DIA_SLD_888_Kasztan_quest (C_INFO)
{
npc = SLD_888_Kasztan;
nr = 2;
condition = DIA_SLD_888_Kasztan_quest_Condition;
information = DIA_SLD_888_Kasztan_quest_Info;
permanent = FALSE;
description = "Mogę coś dla Ciebie zrobić ?";
};
FUNC INT DIA_SLD_888_Kasztan_quest_Condition()
{
if (Npc_KnowsInfo (other,DIA_SLD_888_Kasztan))
{
return TRUE;
};
};
FUNC VOID DIA_SLD_888_Kasztan_quest_Info()
{
AI_Output (other,self ,"DIA_SLD_888_Kasztan_quest_15_00"); //Mogę coś dla Ciebie zrobić?
AI_Output (self ,other,"DIA_SLD_888_Kasztan_quest_55_01"); //Tak. W zasadzie jest jedna taka sprawa... Musisz przynieść
AI_Output (self ,other,"DIA_SLD_888_Kasztan_quest_55_02"); //nam 10 sztuk surowego mięsa. To nie będzie takie trudne prawda ?
AI_Output (self ,other,"DIA_SLD_888_Kasztan_quest_55_03"); //W tym tutaj domu, przy łóżku, leży typowy miecz oraz skórzany pancerz.
AI_Output (self ,other,"DIA_SLD_888_Kasztan_quest_55_04"); //Niestety - nie mamy łuku do polowań, więc musisz pozostać przy
AI_Output (self ,other,"DIA_SLD_888_Kasztan_quest_55_05"); //walce w zwarciu... Uważaj tylko, na to, aby te bestie Cię nie otoczyły...
AI_Output (self ,other,"DIA_SLD_888_Kasztan_quest_55_06"); //Naprawdę - skończyło by się to katastrofą ... Więc idź!
AI_Output (self ,other,"DIA_SLD_888_Kasztan_quest_55_07"); //A! I jeżeli pomyślnie wykonasz zadanie dostaniesz
AI_Output (self ,other,"DIA_SLD_888_Kasztan_quest_55_08"); //2500 sztuk złota.. Jeżeli wypłyniesz kiedyś na
AI_Output (self ,other,"DIA_SLD_888_Kasztan_quest_55_09"); //kontynent, lub Khorinis znów będzie tętniło życiem, to
AI_Output (self ,other,"DIA_SLD_888_Kasztan_quest_55_10"); //będziesz miał niezły majątek! Za każde zadanie otrzymasz
AI_Output (self ,other,"DIA_SLD_888_Kasztan_quest_55_11"); //po dwóch tysiącach monet w górę! Więc opłaca się
AI_Output (self ,other,"DIA_SLD_888_Kasztan_quest_55_12"); //pracować dla nas - najemników. Ale pamiętaj :
AI_Output (self ,other,"DIA_SLD_888_Kasztan_quest_55_13"); //Jeżeli zginiesz, to nie będzie to nasza wina.
AI_Output (other,self ,"DIA_SLD_888_Kasztan_quest_55_14"); //Dobra - Idę, zanim się rozmyślę.
Log_CreateTopic (TOPIC_Mieso, LOG_MISSION);
Log_SetTopicStatus (TOPIC_Mieso, LOG_RUNNING);
B_LogEntry (TOPIC_Mieso,"Najemnicy nie mają co jeść i potrzebują miejsca. Za farmą jest pełno ścierwojadów.");
};
//*********************************************************************
// Koniec Questa
//*********************************************************************
INSTANCE DIA_SLD_888_Kasztan_miestomam (C_INFO)
{
npc = SLD_888_Kasztan;
nr = 2;
condition = DIA_SLD_888_Kasztan_miestomam_Condition;
information = DIA_SLD_888_Kasztan_miestomam_Info;
permanent = FALSE;
description = "Proszę! Oto 10 sztuk mięsa.";
};
FUNC INT DIA_SLD_888_Kasztan_miestomam_Condition()
{
if (Npc_KnowsInfo (other,DIA_SLD_888_quest))
&& (npc_hasitems (other, ITFOMUTTONRAW) >= 10)
{
return TRUE;
};
};
FUNC VOID DIA_SLD_888_Kasztan_miestomam_Info()
{
AI_Output (other,self ,"DIA_SLD_888_Kasztan_miestomam_15_00"); //Proszę! Oto 10 kawałków mięsa!
AI_Output (self ,other,"DIA_SLD_888_Kasztan_miestomam_55_01"); //O! Tego nam było trzeba!
AI_Output (self ,other,"DIA_SLD_888_Kasztan_miestomam_55_02"); //Oto Twoje 2500 sztuk złota! Można na Ciebie liczyć!
AI_Output (self ,other,"DIA_SLD_888_Kasztan_miestomam_55_02"); //Popytaj innych chłopaków o zadania. Powiedz, że ja Cię przysyłam.
B_giveinvitems (other, self, ITFOMUTTONRAW, 10);
Createinvitems (self, itmi_gold, 2500);
B_giveinvitems (self, other, ItMi_Gold, 2500);
B_LogEntry (TOPIC_Mieso,"Najemnicy otrzymali zapasy żywności, a ja dostałem 2500 Sztuk Złota! To nie lada interes!");
Log_SetTopicStatus (TOPIC_Mieso, LOG_SUCCESS);
};
Spoiler
instance SLD_888_Kasztan (Npc_Default)
{
// ------ NSC ------
name = "Kasztan";
guild = GIL_SLD;
id = 888;
voice = 11;
flags = 2; //NPC_FLAG_IMMORTAL oder 0
npctype = NPCTYPE_MAIN;
// ------ Attribute ------
B_SetAttributesToChapter (self, 5); //setzt Attribute und LEVEL entsprechend dem angegebenen Kapitel (1-6)
// ------ Kampf-Taktik ------
fight_tactic = FAI_HUMAN_MASTER; // MASTER / STRONG / NORMAL / COWARD
// ------ Equippte Waffen ------ //Munition wird automatisch generiert, darf aber angegeben werden
EquipItem (self, ItMw_1H_Pal_Sword);
EquipItem (self, ItRw_Sld_Bow);
CreateInvItems (self, ItRw_Arrow, 999);
CreateInvItems (self, ItFo_Stew, 1);
// ------ Inventory ------
B_CreateAmbientInv (self);
// ------ visuals ------ //Muss NACH Attributen kommen, weil in B_SetNpcVisual die Breite abh. v. STR skaliert wird
B_SetNpcVisual (self, MALE, "Hum_Head_Pony", Face_N_Lee, BodyTex_N, ITAR_SLD_H);
Mdl_SetModelFatness (self, 2);
Mdl_ApplyOverlayMds (self, "Humans_Militia.mds"); // Tired / Militia / Mage / Arrogance / Relaxed
// ------ NSC-relevante Talente vergeben ------
B_GiveNpcTalents (self);
// ------ Kampf-Talente ------ //Der enthaltene B_AddFightSkill setzt Talent-Ani abhängig von TrefferChance% - alle Kampftalente werden gleichhoch gesetzt
B_SetFightSkills (self, 80); //Grenzen für Talent-Level liegen bei 30 und 60
// ------ TA anmelden ------
daily_routine = Rtn_Start_888;
};
FUNC VOID Rtn_Start_888 ()
{
TA_Stand_Eating (07,00,21,00,"NW_FARM4_TILL");
TA_Stand_ArmsCrossed (21,00,07,00,"NW_FARM4_TILL");
};
Klikam w spacer "Napraw Skrypty" i error wyskakuje ( Błąd aplikacji "Spacer 2.6.1 PL" tam jest "Nie wysyłaj" i "Wyślij raport o błędach."