• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

[TFS] CreatureScripts - problem...

harry127

Member
Joined
Jul 19, 2009
Messages
435
Reaction score
5
Location
Poland
Witajcie.
Mam pewien problem z CreatureScripts w moim silniku. Niby wszystko dodaję, a i tak nie wszystko działa... Drabinka się pojawia, ale jak zabijam wszystkie inne potwory oprócz tego questowego, to one jakby nie umierają. Znika im pasek życia i nazwy, jak daję look to jest health 0 i nie można przez nie przejść... Załączę kod, jaki mam u siebie.

creaturescripts.xml
Code:
<event type="kill" name="LadderAppear" script="faraon.lua"/>

login.lua
Code:
registerCreatureEvent(cid, "LadderAppear")

faraon.lua
Code:
function createLadder(pos)
	doCreateItem(1386, 1, pos)
end

function onKill(cid, target, lastHit)
	if getCreatureName(target) == "Ashmunrah" then
		addEvent(createLadder, 5*1000, pos(5374, 3864, 6))
	end
	return true
end

Wiem, że niektórych zdziwi funkcja "pos" zamiast pozycji, ale mam ją dodaną do functions.lua, bo ułatwia mi życie. :)
 
Niestety (oczywiście) nie pomogło, bo i jak miało pomóc? Proszę o sensowne rozwiązania...
 
Sprobój zmienic to:
Code:
function createLadder(pos)
	doCreateItem(1386, 1, pos)
end
na
Code:
local function createLadder(pos)
	doCreateItem(1386, 1, pos)
        return true
end
 
Code:
function onKill(cid, target, lastHit)
	if getCreatureName(target) == "Ashmunrah" then
		addEvent(createLadder, 5*1000, pos(5374, 3864, 6))
		return true
	end
end

Moim zdaniem na 90% o to chodzi =P.
Przekręć i powiedz czy śmidży :)..
 
Ja :)?
Nie, po prostu uważam, że jeżeli funkcja nie zwróci wartości to nic nie "zatrzyma" - taka teoria żywcem z PAWN, gdzie jak coś było po returnie to nie było wykonywane.

Przepraszam, ale to mój chory tok myślenia. Skoro coś jest wykonywane po tymże onKill to znaczy, że return to blokuje. A jeżeli nie chcemy żeby to było blokowane (żeby było wykonane) to po prostu nie returnujemy :).

Brzmi to jakbym pierwszy raz na oczy widzial LUA, ale niestety ja jestem nieedukowalny :).
 
Oczywiście, jeśli dam return, a później coś napiszę, to to nie będzie wykonane. Widzisz w moim kodzie jakiś fragment, który nie zostanie wykonany ze względu na ten fakt? Bo ja nie...
 
No, albo po prostu spieprzył to pos(..) =)
Podziel się kodem to może coś zaradzimy.

to one jakby nie umierają
No i dlatego piszę, że może chodzić o tego returna =). Może ten return niejako "blokuje" ten proces.
 
W konsoli nie ma żadnych błędów, funkcja 'pos' też jest OK. Nawet, jak wpiszę pozycję w tradycyjnej tablicy, to jest to samo...
 
Back
Top Bottom