Jak zrobić bonus po zabiciu bossa?
2025-07-12, 15:39

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

Jak zrobić bonus po zabiciu bossa? Przeczytany 10015 razy

Offline paweu

  • Użytkownicy
  • Offline
  • Posty64
  • Propsy4
  • Profesjabrak
0 Pokaż propsujących
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?
« Ostatnia zmiana: 2017-07-28, 10:25 wysłany przez: gothic1210 »

Offline Kempix

  • Użytkownicy
  • Offline
  • Posty171
  • Propsy12
  • ProfesjaSkrypter
0 Pokaż propsujących
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.

Offline paweu

  • Użytkownicy
  • Offline
  • Posty64
  • Propsy4
  • Profesjabrak
0 Pokaż propsujących
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?

Offline Kempix

  • Użytkownicy
  • Offline
  • Posty171
  • Propsy12
  • ProfesjaSkrypter
0 Pokaż propsujących
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

Offline paweu

  • Użytkownicy
  • Offline
  • Posty64
  • Propsy4
  • Profesjabrak
0 Pokaż propsujących
Spróbuję jutro, i dam odpowiedź.

Offline Vanarius

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

Offline Halicor

  • Użytkownicy
  • Hauptsturmfuhrer
  • Offline
  • Posty365
  • Propsy57
  • ProfesjaNierób
0 Pokaż propsujących
@Vanarius ale prawdopodobnie używa Tick-Tocka

Offline Mikotsune

  • Czas Honoru
  • Offline
  • Posty365
  • Propsy289
  • Profesjabrak
1 Pokaż propsujących
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...

Offline Zucklov

  • Quest Pack Team
  • Sztywniutko
  • Offline
  • Posty1220
  • Propsy1241
  • ProfesjaSkrypter
0 Pokaż propsujących
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

Offline Halicor

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

Offline paweu

  • Użytkownicy
  • Offline
  • Posty64
  • Propsy4
  • Profesjabrak
0 Pokaż propsujących
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;
   };
};

Offline Mikotsune

  • Czas Honoru
  • Offline
  • Posty365
  • Propsy289
  • Profesjabrak
0 Pokaż propsujących
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...

Offline Siemekk

  • Złote Wrota
  • Offline
  • Posty2143
  • Propsy1154
  • ProfesjaProgramista
0 Pokaż propsujących
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.

Offline Zucklov

  • Quest Pack Team
  • Sztywniutko
  • Offline
  • Posty1220
  • Propsy1241
  • ProfesjaSkrypter
0 Pokaż propsujących
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

Offline Mikotsune

  • Czas Honoru
  • Offline
  • Posty365
  • Propsy289
  • Profesjabrak
0 Pokaż propsujących
@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...

Offline paweu

  • Użytkownicy
  • Offline
  • Posty64
  • Propsy4
  • Profesjabrak
0 Pokaż propsujących
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;
   };
};

Offline Siemekk

  • Złote Wrota
  • Offline
  • Posty2143
  • Propsy1154
  • ProfesjaProgramista
0 Pokaż propsujących
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.

Offline Zucklov

  • Quest Pack Team
  • Sztywniutko
  • Offline
  • Posty1220
  • Propsy1241
  • ProfesjaSkrypter
0 Pokaż propsujących
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

Offline paweu

  • Użytkownicy
  • Offline
  • Posty64
  • Propsy4
  • Profesjabrak
0 Pokaż propsujących
Chodzi mi dokładnie o to, to tu jest ten syntax error.

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

Offline Mikotsune

  • Czas Honoru
  • Offline
  • Posty365
  • Propsy289
  • Profesjabrak
0 Pokaż propsujących
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...