Witam. Jestem...
Mam pewnien problem(zapewne banalny). 4 godziny siedzę(serio) próbuję coś z tym zrobić, ogólnie z błędami. Zrobiłem co potrafiłem(po drodze była jeszcze reinstalka gothika, bo używałem kopii oryginalnie zainstalowanych plików i nagle gothic stwiedził, że tak być nie może, i że plik MSSFAST.M3D z system jest kopią i wywalało błąd). Przejdę lepiej do sedna :naughty:
Więc... zrobiłem za pomocą EDM dialog(chociaż pewny nie jestem, być może był to skrypt dialogu 2-3 letni, z drugiej strony to i wtedy chyba używałem trochę EDM, nieważne). W każdym razie ten dodany fragment dialogu wygląda tak:
// **************************************************
// Wo Karte?
// **************************************************
instance Org_818_Ratford_WoKarte (C_INFO)
{
npc = Org_818_Ratford;
nr = 1;
condition = Org_818_Ratford_WoKarte_Condition;
information = Org_818_Ratford_WoKarte_Info;
permanent = 0;
description = "Gdzie mogę zdobyć jakąś mapę?";
};
var int MIS_CH1_MapaDlaRatforda;
FUNC int Org_818_Ratford_WoKarte_Condition()
{
if ( Npc_KnowsInfo(hero,Org_818_Ratford_WhyDangerous) )
{
return 1;
};
};
FUNC void Org_818_Ratford_WoKarte_Info()
{
AI_Output (other, self,"Org_818_Ratford_WoKarte_15_00"); //Gdzie mogę zdobyć jakąś mapę?
AI_Output (self, other,"Org_818_Ratford_WoKarte_07_01"); //Popytaj ludzi w Starym Obozie. Mieszka tam jeden kartograf.
AI_Output (self, other,"Org_818_Ratford_WoKarte_07_02"); //Może uda ci się gwizdnąć mu jakąś mapę. Przy okazji mógłbyś zwinąć także jedną dla mnie!
Info_ClearChoices(Org_818_Ratford_WoKarte);
Info_AddChoice (Org_818_Ratford_WoKarte, "Jeśli uda mi się zdobyć je bez płacenia, wezmę ile tylko dam radę udźwignąć!" ,Org_818_Ratford_WoKarte_Stehlen);
Info_AddChoice (Org_818_Ratford_WoKarte, "Dlaczego? Jego mapy nie są na sprzedaż?" ,Org_818_Ratford_WoKarte_Kaufen);
};
func void Org_818_Ratford_WoKarte_Stehlen()
{
AI_Output (other, self,"Org_818_Ratford_WoKarte_Stehlen_15_00"); //Jeśli uda mi się zdobyć je bez płacenia, wezmę ile tylko dam radę udźwignąć!
AI_Output (self, other,"Org_818_Ratford_WoKarte_Stehlen_07_01"); //Równy z ciebie gość! Powinieneś pomyśleć o dołączeniu do Nowego Obozu. Gdybyś kiedyś tam trafił, pytaj o Laresa. To on zajmuje się nowymi. Na pewno znajdzie dla ciebie jakieś zajęcie!
VAR C_NPC Lares; Lares = Hlp_GetNpc(ORG_801_LARES);
Lares.aivar[AIV_FINDABLE]=TRUE;
Log_CreateTopic (CH1_MapaDlaRatforda, LOG_MISSION);<<-tu pierwszy raz pojawia się CH1_MapaDlaRatforda
Log_SetTopicStatus (CH1_MapaDlaRatforda, LOG_RUNNING);
B_LogEntry (CH1_MapaDlaRatforda,"Ratfordowi przydałaby się mapa kolonii. Można taką kupić w starym obozie, jedank jest dość droga, być może lepiej będzie ją ukraść...");
Info_ClearChoices(Org_818_Ratford_WoKarte);
};
func void Org_818_Ratford_WoKarte_Kaufen()
{
AI_Output (other, self,"Org_818_Ratford_WoKarte_Kaufen_15_00"); //Dlaczego? Jego mapy nie są na sprzedaż?
AI_Output (self, other,"Org_818_Ratford_WoKarte_Kaufen_07_01"); //Jeśli stać cię na tak ogromny wydatek...
Info_ClearChoices(Org_818_Ratford_WoKarte);
};
// **************************************************
// Danke
// **************************************************
instance Org_818_Ratford_Thanks (C_INFO)
{
npc = Org_818_Ratford;
nr = 888;
condition = Org_818_Ratford_Thanks_Condition;
information = Org_818_Ratford_Thanks_Info;
permanent = 0;
description = "Dzięki za pomoc.";
};
FUNC int Org_818_Ratford_Thanks_Condition()
{
return 1;
};
FUNC VOID Org_818_Ratford_Thanks_Info()
{
AI_Output (other, self,"Org_818_Ratford_Thanks_15_00"); //Dzięki za pomoc.
AI_Output (self, other,"Org_818_Ratford_Thanks_07_01"); //Tylko nie myśl, że wszyscy tutaj są tacy mili!
AI_Output (self, other,"Org_818_Ratford_Thanks_07_02"); //Niewiele można znaleźć w kieszeniach Nowego, ale w kolonii są ludzie, którzy rozłupaliby ci czaszkę za stary kilof.
AI_Output (other, self,"Org_818_Ratford_Thanks_15_04"); //Będę o tym pamiętał.
};
//========================================
//-----------------> mapa
//========================================
INSTANCE DIA_Ratford_mapa (C_INFO)
{
npc = Org_818_Ratford;
nr = 10;
condition = DIA_Ratford_mapa_Condition;
information = DIA_Ratford_mapa_Info;
permanent = FALSE;
description = "Zdobyłem mapę.";
};
FUNC INT DIA_Ratford_mapa_Condition()
{
if (CH1_MapaDlaRatforda == LOG_RUNNING)
&& (Npc_HasItems (other, ItWrWorldmap) >=1)
{
return TRUE;
};
};
FUNC VOID DIA_Ratford_mapa_Info()
{
AI_Output (other, self ,"DIA_Ratford_mapa_15_01"); //Zdobyłem mapę.
B_GiveXP (200);
B_GiveInvItems (other, self, ItWrWorldmap, 1);
AI_Output (self, other ,"DIA_Ratford_mapa_03_02"); //Dzięki!
B_UseFakeScroll ();
AI_Output (self, other ,"DIA_Ratford_mapa_03_03"); //Szkoda tylko, że brakuje orkowych terenów.
AI_Output (self, other ,"DIA_Ratford_mapa_03_04"); //Chciałbym dowiedzieć się co tam jest, gdyby kiedyś wpadła ci mapa z tamtymi terenami to oddam ci wszystko co posiadam, dobra?
B_LogEntry (CH1_MapaDlaRatforda,"Dałem mu mapę. Powiedział, że wynagrodzi mnie jeśli zdobędę mu mapę orkowego terytorium.");
AI_Output (other, self ,"DIA_Ratford_mapa_15_05"); //Jasne. Tylko skąd zdobędę taką mapę?
AI_Output (self, other ,"DIA_Ratford_mapa_03_06"); //A bo ja wiem, najszybciej pewnie u orków (chachachacha).
AI_Output (self, other ,"DIA_Ratford_mapa_03_07"); //A tak w ogóle to ta mapa się przyda. Trzymaj za fatygę.
CreateInvItems (self, ItMiNugget, 30);
B_GiveInvItems (self, other, ItMiNugget, 30);
CreateInvItems (self, ItAmArrow, 7);
B_GiveInvItems (self, other, ItAmArrow, 7);
};
//========================================
//-----------------> lepsza_mapa
//========================================
INSTANCE DIA_Ratford_lepsza_mapa (C_INFO)
{
npc = Org_818_Ratford;
nr = 11;
condition = DIA_Ratford_lepsza_mapa_Condition;
information = DIA_Ratford_lepsza_mapa_Info;
permanent = FALSE;
description = "O taką mapę ci chodziło?";
};
FUNC INT DIA_Ratford_lepsza_mapa_Condition()
{
if (Npc_KnowsInfo (other, DIA_Ratford_mapa))
&& (Npc_HasItems (other, ItWrWorldmap_Orc) >=1)
{
return TRUE;
};
};
FUNC VOID DIA_Ratford_lepsza_mapa_Info()
{
AI_Output (other, self ,"DIA_Ratford_lepsza_mapa_15_01"); //O taką mapę ci chodziło?
B_GiveInvItems (other, self, ItMiNugget, 1);
AI_Output (other, self ,"DIA_Ratford_lepsza_mapa_15_02"); //Pokaż!
B_UseFakeScroll ();
AI_Output (self, other ,"DIA_Ratford_lepsza_mapa_03_03"); //Tak! Właśnie o taką.
AI_Output (self, other ,"DIA_Ratford_lepsza_mapa_03_04"); //Oto obiecana nagroda.
CreateInvItems (self, ItAt_Teeth_01, 3);
B_GiveInvItems (self, other, ItAt_Teeth_01, 3);
CreateInvItems (self, ItFoMuttonRaw, 7);
B_GiveInvItems (self, other, ItFoMuttonRaw, 7);
CreateInvItems (self, ItMw_1H_Axe_Old_01, 1);
B_GiveInvItems (self, other, ItMw_1H_Axe_Old_01, 1);
CreateInvItems (self, ItMiNugget, 40);
B_GiveInvItems (self, other, ItMiNugget, 40);
B_GiveInvItems (self, other, ItMiNugget, 10);
AI_Output (other, self ,"DIA_Ratford_lepsza_mapa_15_05"); //Sterta śmieci...
AI_Output (self, other ,"DIA_Ratford_lepsza_mapa_03_06"); //Nie marudź.
B_LogEntry (CH1_MapaDlaRatforda,"Dałem Ratfordowi mapę terenów orków. Trochę inaczej wyobrażałem sobie nagrodę.");
Log_SetTopicStatus (TOPIC_CH1_MapaDlaRatforda, LOG_SUCCESS);
CH1_MapaDlaRatforda = LOG_SUCCESS;
B_GiveXP (300);
};
No..., w dużej mierze to oryginalny dialog z Ratfordem. Ale nie chodzi o to. Oryginalnie mówi, że chcę mapę, ale takiej misji nie ma, więc chciałem ją dodać.
Ja tu błedu nie widzę. O co chodzi. Acha, jeszcze treść errora:
[F] 00:39 Fatal:-1 U: PAR: CONTENT\STORY\MISSIONS\DIA_ORG_818_RATFORD.D: Wrong type : CH1_MAPADLARATFORDA .... <zParser.cpp,#599>
EDM dodaje jeszcze coś takiego: MIS_mapa_dla_ratforda = LOG_RUNNING;
, ale to wywaliłem, bo błąd na tym wskazywało, a pamiętam coś z bardzo dawna, że to potrzebne nie jest(no i w innych dialogach tego nie ma). Właśnie, co to jest? Coś do stałych\zmiennych?
A no tak, jeszcze wcześniej wywaliłem var int MIS_mapa_dla_ratforda;
ze Story_Globals, bo też "errorowało".