Jak zrobić bonus po zabiciu bossa? 9920 36

O temacie

Autor paweu

Zaczęty 19.07.2017 roku

Wyświetleń 9920

Odpowiedzi 36

paweu

paweu

Użytkownicy
posty64
Propsy4
Profesjabrak
  • Użytkownicy
Witam, czy da się zrobić tak jak w Returningu, czyli po zabiciu bossa dostajemy np. 3 pkt nauki i napis "bohaterski bonus"? Zrobiłem parę nowych potworków w Khorinis znacznie silniejszych od pozostałych i chciałem to wprowadzić do gry.

Oraz pytanie, jak zrobić naukę, gdzie trzeba płacić złotem, a z większym progiem kosztu PN musimy płacić więcej?
 

Kempix

Kempix

Użytkownicy
posty171
Propsy12
ProfesjaSkrypter
  • Użytkownicy
Cytuj
Witam, czy da się zrobić tak jak w Returningu, czyli po zabiciu bossa dostajemy np. 3 pkt nauki i napis "bohaterski bonus"? Zrobiłem parę nowych potworków w Khorinis znacznie silniejszych od pozostałych i chciałem to wprowadzić do gry.
Jasne, że się da i to nie jest wcale trudne :D Funkcja sprawdzająca czy dany mob żyje czy nie jeśli nie żyję to pokazuje PrintScreen "Bohaterski bonus" dodaje Pkt.nauki  itp.. Oczywiście musisz napisać tę funkcję tak aby się nie powielała, po każdym wejściu do gry gdy mob nie żyję :) I wywoływać w odpowiednim czasie.
 

paweu

paweu

Użytkownicy
posty64
Propsy4
Profesjabrak
  • Użytkownicy
Cytuj
Oczywiście musisz napisać tę funkcję tak aby się nie powielała, po każdym wejściu do gry gdy mob nie żyję :) I wywoływać w odpowiednim czasie.

To znaczy jak?
 

Kempix

Kempix

Użytkownicy
posty171
Propsy12
ProfesjaSkrypter
  • Użytkownicy
Powiem ci to tak. Jeśli nie rozumiesz jak to zrobić czyli.. chociażby zrobić warunek  że mob nie żyję to wtedy pojawia się napis:
PrintScreen     ("Bohaterski bonus!", -1,-1,"font_old_20_white.tga",3);oraz dodaje PN:
hero.lp = hero.lp + 3;to nie bierz się za to.. Zajmij się czymś prostszym. Pozatym musisz to wywoływać np: za pomocą pakietów skryptowych. Oraz zrobić żeby się to nie powielało przy wczytaniu gry, np: na zmiennej chociażby.
Jednak jak chcesz się w to bawić to:
http://themodders.org/index.php?topic=25484.0 - Poradnik używania Frame Function
http://themodders.org/index.php?topic=16580.0 - Inicjowanie Lego i Ikarusa.
PS: Wywołuj tę funkcję co sekundę :P
 

paweu

paweu

Użytkownicy
posty64
Propsy4
Profesjabrak
  • Użytkownicy
Spróbuję jutro, i dam odpowiedź.
 

Vanarius

Vanarius

Riquer Team
Początkujący Modder
posty332
Propsy62
ProfesjaGrafik 3D
  • Riquer Team
  • Początkujący Modder
@Kempix Dałoby się to zrobić to bez Ikarus i LeGo ponieważ ReBalance 2.1 nie używa tych zasobów.
 

Halicor

Halicor

Użytkownicy
Hauptsturmfuhrer
posty365
Propsy57
ProfesjaNierób
  • Użytkownicy
  • Hauptsturmfuhrer
@Vanarius ale prawdopodobnie używa Tick-Tocka

Mikotsune

Mikotsune

Czas Honoru
posty365
Propsy289
Profesjabrak
  • Czas Honoru
ZS_Dead.d
var int Potworek_Zabity;
Potwór = Hlp_GetNpc (instance_Potwór);

if (Hlp_GetInstanceID(self) == Hlp_GetInstanceID(Potwór))
{
if(Potworek_Zabity == TRUE)
{
hero.LP = hero.LP + 3;

PrintScreen("Bohaterski wyczyn!",-1,50,FONT_Screen,3);
PrintScreen("Punkty nauki +3",-1,53,FONT_Screen,3);
//FONT_ScreenSmall - Mala czcionka

Snd_Play ("MFX_HEAL_CAST");

Potworek_Zabity = TRUE;
};
};




Dodaj to do dialogu i pozmieniaj. Tym razem musisz poradzić sobie sam - to nie jest takie trudne.

Info_AddChoice   (Org_859_Aidan_Creatures, "Usuwanie kłów (koszt: 1 punkt umiejętności, 50 bryłek rudy)" ,Org_859_Aidan_Creatures_Zahn);
func void Org_859_Aidan_Creatures_Zahn()
{
AI_Output (other, self,"Org_859_Aidan_Creatures_Zahn_15_00"); //Jak mogę zdobyć kły upolowanej zwierzyny?

if (Npc_HasItems(other,itminugget)>=50)
{
if (other.lp >= 1)
{
other.lp = other.lp - 1;

B_GiveInvItems (other, self,itminugget,50);

PrintScreen ("Nowa umiejętność: Zdobywanie kłów", -1,-1,"FONT_OLD_20_WHITE.TGA",2);

AI_Output (self, other,"Org_859_Aidan_Creatures_Zahn_13_01"); //Przede wszystkim musisz uważać, żeby kły nie popękały podczas wyciągania. W tym celu wbij nóż w pobliżu środka zęba i delikatnie go podważaj.
AI_Output (self, other,"Org_859_Aidan_Creatures_Zahn_13_02"); //Warto zabierać kły wilków, cieniostworów i zębaczy.

Knows_GetTeeth = TRUE;
Log_CreateTopic (GE_AnimalTrophies,LOG_NOTE);
B_LogEntry (GE_AnimalTrophies,"Umiejętność zdobywania kłów wilków, orkowych psów, zębaczy, kąsaczy, ogarów i cieniostworów.");
}
else
{
AI_Output (self, other,"Org_859_Aidan_Creatures_KEINE_LP_13_00"); //
PrintScreen ("Za mało punktów umiejętności!", -1,-1,"FONT_OLD_20_WHITE.TGA",2);
};
}
else
{
AI_Output (self, other,"Org_859_Aidan_Creatures_KEIN_ERZ_13_00"); //
};
};
 
How can I see roses... and only feel thorns...

Zucklov

Zucklov

Quest Pack Team
Sztywniutko
posty1220
Propsy1241
ProfesjaSkrypter
  • Quest Pack Team
  • Sztywniutko
Jakie znowu FrameFunctions i ticktocki, ja pierdolę xD
Jak wyżej wspominano, ZS_Dead to odpowiedź. A żeby raz wywołać funkcję, wystarczy dodać zmienną, która musiałaby mieć wartość false przy wywoływaniu napisu i lp, a potem zmieniała wartość na true. Chyba, że to powtarzalny boss. Imo łatwiej dla autora byłoby zrobić to w ten sposób, bez wchodzenia w jakieś zaawansowane skrypty i funkcje.
 
Lieb Vaterland magst ruhig sein

Halicor

Halicor

Użytkownicy
Hauptsturmfuhrer
posty365
Propsy57
ProfesjaNierób
  • Użytkownicy
  • Hauptsturmfuhrer
@Zucklov napisałem prawdopodobnie, więc sorry za wprowadzanie w błąd. Szczerze to zapomniałem o ZS_Dead.

paweu

paweu

Użytkownicy
posty64
Propsy4
Profesjabrak
  • Użytkownicy
Przy wstawianiu punktów nauki do potwora, mam taki błąd:

Syntax error: GIANTBUG (line 148)

Cytuj
var int Giantbug_Dead;
Giantbug    =   Hlp_GetNpc (giantbug_uniq);

if (Hlp_GetInstanceID(self) == Hlp_GetInstanceID(giantbug_uniq))
{
   if(Giantbug_Dead ==   TRUE)
   {
      hero.LP   =   hero.LP   +   2;

      PrintScreen("Bohaterski wyczyn!",-1,50,FONT_Screen,3);
      PrintScreen("Punkty nauki + 3",-1,53,FONT_Screen,3);
      //FONT_ScreenSmall - Mala czcionka

      Snd_Play ("MFX_HEAL_CAST");

      Giantbug_Dead = TRUE;
   };
};
 

Mikotsune

Mikotsune

Czas Honoru
posty365
Propsy289
Profesjabrak
  • Czas Honoru
Jeśli zmieniasz pkt nauki, zmień też napis w PrintScreen.
Cytuj
var int Giantbug_Dead;
Giantbug    =   Hlp_GetNpc (giantbug_uniq);

if (Hlp_GetInstanceID(self) == Hlp_GetInstanceID(Kod_Na_Potwora))
{
   if(Giantbug_Dead ==   TRUE FALSE)
   {
      hero.LP   =   hero.LP   +   2;

      PrintScreen("Bohaterski wyczyn!",-1,50,FONT_Screen,3);
      PrintScreen("Punkty nauki + 3",-1,53,FONT_Screen,3);
      //FONT_ScreenSmall - Mala czcionka

      Snd_Play ("MFX_HEAL_CAST");

      Giantbug_Dead = TRUE;
   };
};
 
How can I see roses... and only feel thorns...

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Coś ty odjebał :F Wystarczy tylko ten pierwszy warunek. Reszta do bezsensowne użycie zmiennych.
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Zucklov

Zucklov

Quest Pack Team
Sztywniutko
posty1220
Propsy1241
ProfesjaSkrypter
  • Quest Pack Team
  • Sztywniutko
Ta zmienna nie jest bezsensowna, ten napis powinien się pojawić tylko raz w całej grze, tak zrozumiałem przynajmniej.
 
Lieb Vaterland magst ruhig sein

Mikotsune

Mikotsune

Czas Honoru
posty365
Propsy289
Profesjabrak
  • Czas Honoru
@Siemekk Spadaj, napruty byłem w 3 tyłki. Godzinę to wczoraj pisałem XD

@Zucklov Jeśli będzie tylko jeden taki potwór w grze, to bez sensu dawać drugi warunek :F
 
How can I see roses... and only feel thorns...

paweu

paweu

Użytkownicy
posty64
Propsy4
Profesjabrak
  • Użytkownicy
Syntax error: IF (line 150)

Cytuj
if (Hlp_GetInstanceID(self) == Hlp_GetInstanceID(giantbug_uniq))
{
      hero.LP   =   hero.LP   +   2;

      PrintScreen("Bohaterski wyczyn!",-1,50,FONT_Screen,3);
      PrintScreen("Punkty nauki + 2",-1,53,FONT_Screen,3);
 

      Snd_Play ("MFX_HEAL_CAST");

      Giantbug_Dead = TRUE;
   };
};
 

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Faktycznie czytam z fusów. Ten kod jest poprawny, źle wkleiłeś i tyle.
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Zucklov

Zucklov

Quest Pack Team
Sztywniutko
posty1220
Propsy1241
ProfesjaSkrypter
  • Quest Pack Team
  • Sztywniutko
Jak kasujesz 2 warunek (który nic nie zmienia w takim razie XD), to musisz oprócz klamry otwierającej skasować zamykającą. Widać, że używasz Notatnika, zamiast Notepada++, który jest jedynym słusznym narzędziem edycji skryptów.
 
Lieb Vaterland magst ruhig sein

paweu

paweu

Użytkownicy
posty64
Propsy4
Profesjabrak
  • Użytkownicy
Chodzi mi dokładnie o to, to tu jest ten syntax error.

Cytuj
if (Hlp_GetInstanceID(self) == Hlp_GetInstanceID(giantbug_uniq))
 

Mikotsune

Mikotsune

Czas Honoru
posty365
Propsy289
Profesjabrak
  • Czas Honoru
Moim zdaniem lepiej wygląda mała czcionka, ale zrób jak uważasz.
Cytuj
var int Giantbug_Dead;

if (Hlp_GetInstanceID(self) == Hlp_GetInstanceID(giantbug_uniq))
{
      hero.LP   =   hero.LP   +   2;

      PrintScreen("Bohaterski wyczyn!",-1,50,FONT_Screen,3);
      PrintScreen("Punkty nauki + 2",-1,53,FONT_ScreenSmall,3);

      Snd_Play ("MFX_HEAL_CAST");

      Giantbug_Dead = TRUE;
   };
};

func void ZS_Dead()
{
Wklej tutaj

Zgadzam się z Zucklov. Używaj Notepad++. Możesz na przykład pokolorować składnię i wszystko ładniej widać, po kliknięciu w klamrę/nawias pokażę Ci gdzie on się kończy...
 
How can I see roses... and only feel thorns...


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