20.01.2018, 05:09
(20.01.2018, 02:32)Ozaru Wrote: Ale ten kod działa:
function onPlayerDead(pid, kid)
{
if (kid == -1)
setLevel(pid, 1);
}
addEventHandler("onPlayerDead", onPlayerDead);
Kiedy wilczek nas ubije to mamy lv,tylko nie rozumiem co oznacza -1 bo np kiedy chcę dodać pid zamiast tego -1 to nic się nie dzieje,tak jakby działało to tylko w jedną stronę.
Em. Nie zauważyłem wtedy tego callbacka, sorry mój błąd.
Ta funkcja nie działa, nie wiem dlaczego sądzisz że działa, ale sprawdzałem z ciekawości i nie działa

w plikach serwera w example/npc.nut masz przykład użycia tego callbacka po stronie klienta, a wygląda on tak:
Code:
local function deadHandler(pid)
{
print ("Die: " + pid);
if (pid == wolf)
{
unspawnNpc(pid);
spawnWolf();
}
}
addEventHandler("onPlayerDead", deadHandler);
To znaczy że: Jeśli wilk zabije ciebie, to wyprintuje ci "Die: twoje id" a jeśli ty zabijesz wilka to wyprintuje ci "Die: id wilka"
no i masz warunek że jeśli ID zabitego to id wilka. To wtedy go odspawni i wywoła spawn spowrotem.
przykładowo:
robisz sobie zmienną local wolf = null; to jest zmienna twojego wilka.
potem w onInit czyli po wejściu do gry sobie robisz takie coś:
wolf = createNpc("wilk");
print("ID wilka to: "+wolf);
wyświetli "ID wilka to: id wilka"
czyli zmienna do której przypisujesz NPC zwraca jego id.
przeanalizuj se ten plik npc.nut
Ogólnie to Marko dobrze cie nakierował, aczkolwiek nie wiem czy serwer odczyta ID wyższe od max slotów skoro npc nie są zsynchronizowane.