Problem z skryptem prostego questa 2763 6

O temacie

Autor Tomoo

Zaczęty 30.03.2010 roku

Wyświetleń 2763

Odpowiedzi 6

Tomoo

Tomoo

Użytkownicy
posty3
  • Użytkownicy
Witam. Swoją przygodę z modowaniem zacząłem od niedawna. Dla treningu robię małego moda. Już większość postaci i zadań mam zrobionych, mam jednak problem z jednym :
[codebox]//*********************************************************************
//   Zadanie
//*********************************************************************
INSTANCE DIA_SLD_716_Martin_zadanie   (C_INFO)
{
   npc         = SLD_716_Martin;
   nr          = 2;
   condition   = DIA_SLD_716_Martin_zadanie_Condition;
   information = DIA_SLD_716_Martin_zadanie_Info;
   permanent   = FALSE;
   description = "Masz może dla mnie jakieś zadanie?";
};

FUNC INT DIA_SLD_716_Martin_zadanie_Condition()

{
   return TRUE;
};

FUNC VOID DIA_SLD_716_Martin_zadanie_Info()
{
   AI_Output (other,self ,"DIA_SLD_716_Martin_zadanie_Info_15_00"); //Masz moze dla mnie jakieś zadanie?
   AI_Output (self,other ,"DIA_SLD_716_Martin_zadanie_Info_55_01"); //Hmm. Biały wygląda na silny człowiek. Biały mi pomoże.
   AI_Output (other,self ,"DIA_SLD_716_Martin_zadanie_Info_55_03"); //Mów dalej.
                   AI_Output (self,other ,"DIA_SLD_716_Martin_zadanie_Info_15_04"); //Brudne bandyta okraść Murzyna. Ja miał 200 sztuk złota. Bandyta zabrać złoto. Bandyta mieć obóz, siedzieć niedaleko. Ja zaprowadzić białego do bandyta obóz. My razem zabić bandyta. Biały i czarny potęga.
   AI_Output (other,self ,"DIA_SLD_716_Martin_zadanie_Info_55_05"); //Czyli w skrócie. Pójdziemy tam, zabijemy bandytów, zabierzemy im twoje złoto i się podzielimy. W takim razie w drogę!
   AI_Output (self,other ,"DIA_SLD_716_Martin_zadanie_Info_55_06"); //Czarnemu się to podoba! Chodźmy!

Npc_ExchangeRoutine(self,"Guide");

                   Log_CreateTopic (TOPIC_bandyci, LOG_MISSION);
                   Log_SetTopicStatus (TOPIC_bandyci, LOG_RUNNING);
                   B_LogEntry (TOPIC_bandyci, "Spotkałem w tawernie czarnucha. Powiedział, że okradli go bandyci. Mają obóz niedaleko. Pójdę z nim i ich zabiję. Podejrzewam, że dostane za to dużo kasy.");

                   AI_Output (self,other ,"DIA_SLD_716_Martin_zadanie_Info_15_07"); //No, w końcu ostatni padł.
   AI_Output (self,other ,"DIA_SLD_716_Martin_zadanie_Info_55_08"); //Czarny dziękować białemu. Teraz czarny poszukać pieniędzy.
   AI_Output (self,other ,"DIA_SLD_716_Martin_zadanie_Info_55_09"); //(szuka)
                   AI_Output (self,other ,"DIA_SLD_716_Martin_zadanie_Info_15_10"); //(szuka)
   AI_Output (self,other ,"DIA_SLD_716_Martin_zadanie_Info_55_11"); //(dalej szuka)
   AI_Output (self,other ,"DIA_SLD_716_Martin_zadanie_Info_55_12"); //(zgadnij co robi?)
                   AI_Output (self,other ,"DIA_SLD_716_Martin_zadanie_Info_15_13"); //(Brawo! Szuka)
   AI_Output (self,other ,"DIA_SLD_716_Martin_zadanie_Info_55_14"); //Znalazłem! Trzymaj, to dla białego. Czarny dziękować białemu. Biały uratować Murzyna.
   AI_Output (other,self ,"DIA_SLD_716_Martin_zadanie_Info_55_15"); //Nie ma za co Martin. Mam nadzieję, że jescze się spotkamy.

                   Createinvitems (self, itmi_gold, 100);
                   B_giveinvitems (self, other, itmi_gold, 100);
                   B_LogEntry (TOPIC_bandyci, "Z pomocą czarnego zabiłem bandytów. Murzyn dał mi za to połowę tego co tam znalazł - 100 sztuk złota.");
                   Log_SetTopicStatus (TOPIC_bandyci, LOG_SUCCESS);
};[/codebox]

Chodzi o to, że po rozmowie z postacią i wybraniem zadania postać prowadzi mnie do waypointu, jednak dostaję od razu 100 sztuk złota i wpis w dzienniku, który powinienem dostać na końcu drogi. Podejrzewam że muszę jakoś oddzielić jedną częśc od drugiej, nie wiem jednak jak.

PS. Wiem że dialog do dupy :D  Robie tego moda tylko po to, żeby się podszkolić i pokazać kumplowi  ^_^
 

Zysk

Zysk

Użytkownicy
posty606
Propsy451
  • Użytkownicy
Gothic tak ma. Akcje typu przekazywania przedmiotów są wykonywane natychmiast, a takie jak wypowiedzi są kolejkowane. Jeśli bardzo ci zależy to możesz dodać oddzielny dialog, ale i tak napis pojawi się w momencie wybrania opcji.
 

Tomoo

Tomoo

Użytkownicy
posty3
  • Użytkownicy
Dzięki za szybką odpowiedź ^_^  Czyli chyba zostawię to tak jak jest, bo moda muszę skończyć do środy. Jednak fajnie, gdyby ktoś mi na przyszłość powiedział jak robić coś takiego. Chodzi mi o to, żeby po tym jak NPC dojdzie do określonego waypointu (przyprowadzi bohatera) to odezwał się do nas kwestią. Dałbym important = TRUE, jednak jaki dać warunek if ? Z góry dzięki :D
 

Zysk

Zysk

Użytkownicy
posty606
Propsy451
  • Użytkownicy
zobacz dialog kogoś, kto tak robi
 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Cytuj
Gothic tak ma. Akcje typu przekazywania przedmiotów są wykonywane natychmiast, a takie jak wypowiedzi są kolejkowane. Jeśli bardzo ci zależy to możesz dodać oddzielny dialog, ale i tak napis pojawi się w momencie wybrania opcji.
Jeśli dobrze pamiętam, to można napisać funkcję B_daj() i wywołać ją w odpowiednim miejscu w dialogu.

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
Cytuj
//*********************************************************************
// Zadanie
//*********************************************************************
INSTANCE DIA_SLD_716_Martin_zadanie (C_INFO)
{
npc = SLD_716_Martin;
nr = 2;
condition = DIA_SLD_716_Martin_zadanie_Condition;
information = DIA_SLD_716_Martin_zadanie_Info;
permanent = FALSE;
description = "Masz może dla mnie jakieś zadanie?";
};

FUNC INT DIA_SLD_716_Martin_zadanie_Condition()

{
return TRUE;
};

FUNC VOID DIA_SLD_716_Martin_zadanie_Info()
{
AI_Output (other,self ,"DIA_SLD_716_Martin_zadanie_Info_15_00"); //Masz moze dla mnie jakieś zadanie?
AI_Output (self,other ,"DIA_SLD_716_Martin_zadanie_Info_55_01"); //Hmm. Biały wygląda na silny człowiek. Biały mi pomoże.
AI_Output (other,self ,"DIA_SLD_716_Martin_zadanie_Info_55_03"); //Mów dalej.
AI_Output (self,other ,"DIA_SLD_716_Martin_zadanie_Info_15_04"); //Brudne bandyta okraść Murzyna. Ja miał 200 sztuk złota. Bandyta zabrać złoto. Bandyta mieć obóz, siedzieć niedaleko. Ja zaprowadzić białego do bandyta obóz. My razem zabić bandyta. Biały i czarny potęga.
AI_Output (other,self ,"DIA_SLD_716_Martin_zadanie_Info_55_05"); //Czyli w skrócie. Pójdziemy tam, zabijemy bandytów, zabierzemy im twoje złoto i się podzielimy. W takim razie w drogę!
AI_Output (self,other ,"DIA_SLD_716_Martin_zadanie_Info_55_06"); //Czarnemu się to podoba! Chodźmy!

Npc_ExchangeRoutine(self,"Guide");

Log_CreateTopic (TOPIC_bandyci, LOG_MISSION);
Log_SetTopicStatus (TOPIC_bandyci, LOG_RUNNING);
B_LogEntry (TOPIC_bandyci, "Spotkałem w tawernie czarnucha. Powiedział, że okradli go bandyci. Mają obóz niedaleko. Pójdę z nim i ich zabiję. Podejrzewam, że dostane za to dużo kasy.");

};


/////////////
/////////////
/////////////


INSTANCE DIA_SLD_716_Martin_zadanie_koniec (C_INFO)
{
npc = SLD_716_Martin;
nr = 2;
condition = DIA_SLD_716_Martin_zadanie_koniec_Condition;
information = DIA_SLD_716_Martin_zadanie_koniec_Info;
permanent = TRUE;//wywoła ze npc sam do nas zagada
//description = "Masz może dla mnie jakieś zadanie?";
};

FUNC INT DIA_SLD_716_Martin_zadanie_koniec_Condition()

{
//jesli tego poniżej nie rozumiesz pisz
if ( Npc_GetDistToWp (hero,"Nazwa wp") < = odległość od wp do którego ma nas doprowadzić daj 1000 ja zawsze tak daje ) {
return TRUE;
};
};

FUNC VOID DIA_SLD_716_Martin_zadanie_koniec_Info()
{
AI_Output (self,other ,"DIA_SLD_716_Martin_zadanie_koniec_Info_15_00"); //No, w końcu ostatni padł.
AI_Output (self,other ,"DIA_SLD_716_Martin_zadanie_koniec_Info_55_01"); //Czarny dziękować białemu. Teraz czarny poszukać pieniędzy.
AI_Output (self,other ,"DIA_SLD_716_Martin_zadanie_koniec_Info_55_02"); //(szuka)
AI_Output (self,other ,"DIA_SLD_716_Martin_zadanie_koniec_Info_15_03"); //(szuka)
AI_Output (self,other ,"DIA_SLD_716_Martin_zadanie_koniec_Info_55_04"); //(dalej szuka)
AI_Output (self,other ,"DIA_SLD_716_Martin_zadanie_koniec_Info_55_05"); //(zgadnij co robi?)
AI_Output (self,other ,"DIA_SLD_716_Martin_zadanie_koniec_Info_15_06"); //(Brawo! Szuka)
AI_Output (self,other ,"DIA_SLD_716_Martin_zadanie_koniec_Info_55_07"); //Znalazłem! Trzymaj, to dla białego. Czarny dziękować białemu. Biały uratować Murzyna.
AI_Output (other,self ,"DIA_SLD_716_Martin_zadanie_koniec_Info_55_08"); //Nie ma za co Martin. Mam nadzieję, że jescze się spotkamy.

Createinvitems (self, itmi_gold, 100);
B_giveinvitems (self, other, itmi_gold, 100);
B_LogEntry (TOPIC_bandyci, "Z pomocą czarnego zabiłem bandytów. Murzyn dał mi za to połowę tego co tam znalazł - 100 sztuk złota.");
Log_SetTopicStatus (TOPIC_bandyci, LOG_SUCCESS);
};

nie reparsowałem ale powinno działać jak uzupełnisz

a przy okazji Tomoo witamy na forum :)

Tomoo

Tomoo

Użytkownicy
posty3
  • Użytkownicy
Dzięki za powitanie i za pomoc :P  Działa :P
 


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry