Jeśli w okolicy WP orkowie nie żyją. 3795 8

O temacie

Autor TheKetrab

Zaczęty 24.07.2017 roku

Wyświetleń 3795

Odpowiedzi 8

TheKetrab

TheKetrab

Użytkownicy
posty334
Propsy217
ProfesjaProducent
  • Użytkownicy
Czołem,

siedzę na krześle i myślę już dość długo - nie umiem wpaść na proste rozwiązanie.
A więc jak w temacie: jeśli w okolicy WP wszyscy orkowie nie żyją, to zmienna zmienia się na TRUE.
Jak tego dokonać? Orków jest ze stu i bez sensu jest robić dla każdego nowe INSTANCE.

Najlepsze, na co udało mi się wpaść:

func void CzyOrkZyje (var c_npc orc)
{
if (orc.guild==GIL_ORC) && (Npc_GetDistToWP(orc,"WP")<=5000) //jesli npc jest orkiem i jest w poblizu wp
{
if (npc_isdead(orc)) //to jeśli jest martwy
{
zmienna = TRUE; //to zmienia zmienną na TRUE
}
else
{
zmienna = FALSE; //a jeśli jakiś inny nie jest, to wraca do FALSE
};

};

};

I tę funkcję później Broadcastuję. Problem pojawiłby się, gdyby DoForSphere pierwsze natrafiło na orka, który nie żyje, a kilkunastu ciągle by żyło. Dlatego ten sposób odpada.

Czy ktoś z Was ma pomysł jak się za to zabrać?

Pozdrawiam.
 

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
func void CzyOrkZyje (var c_npc orc)
{
if (orc.guild==GIL_ORC) && (Npc_GetDistToWP(orc,"WP")<=5000) //jesli npc jest orkiem i jest w poblizu wp
{
if zmienna >= 100
{
return;
};

if (npc_isdead(orc)) //to jeśli jest martwy
{
zmienna += 1; //zliczamy, ilu jest kaput
};
};
};


Zakładam, że funkcja jednorazowa.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

TheKetrab

TheKetrab

Użytkownicy
posty334
Propsy217
ProfesjaProducent
  • Użytkownicy
Funkcja w ticktocku wywolywana. Więc chyba klops, bo nie wiadomo, czy nie przejedzie kilka razy tego samego martwego orka. Da się to jakoś rozwiązać?

Edit: chyba ze dodam warunek ze jeśli zmienna jest większa od 100 to jest okej, a jeśli nie to zmienna się zeruje.
 

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Jeśli robisz tick tockiem i używasz loopy, to wypierdol ticka. Jeśli zaś funkcja ma być wywoływana tylko jeśli podejdziesz to wp, użyj ticka i wywołuj funkcję tak:

func tick tock
{
   if int once = 0
   && hero blisko wp
   {
       wywołaj funkcję
       once = true
   }
}


Kiedy zapominasz, ze ZS_Dead istnieje bo nie modowałeś Gothica ponad dwa lata...
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

Mikotsune

Mikotsune

Czas Honoru
posty365
Propsy289
Profesjabrak
  • Czas Honoru

Mikotsune
Czas Honoru

Jeśli w okolicy WP orkowie nie żyją.
#4 2017-07-25, 13:49(Ostatnia zmiana: 2017-07-25, 14:02)
Żadnego tik taka, dodaj to do ZS_Dead.d
var int wszyscy_orkowie_nie_zyja;
var int ork_zabity;

if (self.guild==GIL_ORC) && (Npc_GetDistToWP(self,"WP")<=5000)
{
ork_zabity += 1;
if(ork_zabity == 100)
{
wszyscy_orkowie_nie_zyja = true;
};
};
 
How can I see roses... and only feel thorns...

Zucklov

Zucklov

Quest Pack Team
Sztywniutko
posty1220
Propsy1241
ProfesjaSkrypter
  • Quest Pack Team
  • Sztywniutko
Jedno zastrzeżenie.
(Npc_GetDistToWP(orc,"WP")<=5000)skończy się błędem, bo nie istnieje taka wartość jak orc, funkcja ZS_Dead jej nie posiada. Zastąpienie tego hero czy innym uniwersalnym będzie wystarczające. W zasadzie każdy npc, który nie jest zmienną załatwi sprawę.
 
Lieb Vaterland magst ruhig sein

Mikotsune

Mikotsune

Czas Honoru
posty365
Propsy289
Profesjabrak
  • Czas Honoru
Zapomniałem zmienić:
orc = self
 
How can I see roses... and only feel thorns...

TheKetrab

TheKetrab

Użytkownicy
posty334
Propsy217
ProfesjaProducent
  • Użytkownicy
Wow rozwiązanie :D Dzięki!

Btw. Wie ktoś, czemu jakiś czas temu usunięto opcję 'temat rozwiązany' na forum? :O
 

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Żeby ludzie mogli odkopywać stare tematy a nie zakładać nowe, ale dosłownie identyczne. Takie tylko przypuszczenie. :P
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.


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