Kilka prostych questów 4599 2

O temacie

Autor trall

Zaczęty 21.12.2008 roku

Wyświetleń 4599

Odpowiedzi 2

trall

trall

Użytkownicy
posty21
  • Użytkownicy
Potrzebny mi skrypt na proste zadanie. Prosiłbym o wyjaśnienie każdej linijki skryptu. Będę Używał tego jako podstawe do robienia innych. Chodzi mi o taki Q:
Rozmawiasz z Kolesiem:
Witaj. Masz dla mnie jakoś pracę?
Tak. Ostatnio w okolicy pojawiło się wiele topielców. NIE DAJĄ MI SPAĆ!
Co mam zrobić?
Zabij powiedzmy 10 i przyjdź po nagrodę.

Nie chodzi mi jak zabić konkretne 10 bo do tego tutek jest a zabić poprostu 10 topielców i przyjść do niego po nagrodę.

Zabiłem twoje topielce.
Chwała Inosowi. Masz nagrodę.

I tu otrzymujesz powiedzmy 100 sztuk zł i potę na manę(Największą)
 

Buła

Buła

Użytkownicy
wyłącz komputer i wyjdź z domu
posty2402
Propsy3163
NagrodyV
Profesjabrak
  • Użytkownicy
  • wyłącz komputer i wyjdź z domu

Buła

Kilka prostych questów
#1 2008-12-21, 18:02(Ostatnia zmiana: 2008-12-21, 18:20)
Średnio zrozumiałem o co ci chodzi więc daje 2 rozwiązania:

1. Zabicie 10 określonych topielców

Robisz 10 nowych topielców, innymi instace i dajesz IF.

Cytuj
INSTANCE MOD_Lurker1   (Mst_Default_Lurker)
{
   Set_Lurker_Visuals();
   Npc_SetToFistMode(self);
   
   CreateInvItem      (self,ItFoMeattop);
};

Cytuj
INSTANCE MOD_Lurker2   (Mst_Default_Lurker)
{
   Set_Lurker_Visuals();
   Npc_SetToFistMode(self);
   
   CreateInvItem      (self,ItFoMeattop);
};

Cytuj
INSTANCE MOD_Lurker3   (Mst_Default_Lurker)
{
   Set_Lurker_Visuals();
   Npc_SetToFistMode(self);
   
   CreateInvItem      (self,ItFoMeattop);
};

[...]

Cytuj
INSTANCE MOD_Lurker10   (Mst_Default_Lurker)
{
   Set_Lurker_Visuals();
   Npc_SetToFistMode(self);
   
   CreateInvItem      (self,ItFoMeattop);
};

Dodajesz do pliku
D:\Gry\Windows\Gothic Gniew Beliara\_Work\Data\Scripts\Content\AI\Monster\Mst_Lurker.d



2. Zabicie 10 jakichkolwiek topielców.

Ja bym to zrobił w tick tocku.

Do Story_Globals.d:
Cytuj
var int licznik_top;

Do startupa (musisz jeszcze zrobić tick tocka w spacerze, gdzieś na forum był tutek)
Cytuj
func void SKRIPTTRIGGER()
{

VAR C_NPC TOPIELEC;
TOPIELEC = Hlp_GetNpc(Lurker);
   
if (Npc_IsDead(TOPIELEC))
{
licznik_top=licznik_top+1;
};
};

I teraz wystarczy w dialogu warunek:

Cytuj
IF (licznik_top >= 10)


Reszty budowy takiego questa nie będę tłumaczyć, bo na forum jest o tym sporo tutków.
Skrypt pisałem na wyczucie, ale powinien działać.
 

Zysk

Zysk

Użytkownicy
posty606
Propsy451
  • Użytkownicy
rozwiązanie 1 jest niepotrzebnie skomplikowane. zamiast oddzielnych instance, można sprawdać, czy są topielce w określonym obszarze. patrz rozmowa z gościem na bagnach.

rozwiązanie 2 jest niepoprawne. konkretny topielec może być wybierany w ten sposób dowolnie wiele razy lub nie liczony wcale. żeby działało trzebaby rozszerzyć funkcję ZS_Dead:
if(Hlp_GetInstanceID(self)==Lurker && Npc_IsPlayer(other))
{
  licznik+=1;
};
Oczywiście najprostszym rozwiązaniem jest zarządanie od gracza dowodów na zabicie stworów w postaci itemów.
 


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