• 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!
  • 2026 staff recruitment is open! Check it out and consider applying!

ustalenie zasięgu chodzenia npc'a przyzwanego skryptem gdy server już online

Seminari

Banned User
Joined
Dec 13, 2009
Messages
1,496
Reaction score
34
Location
Poland
robie npc'a w skrypcie funkcją
LUA:
doCreateNpc(nazwa npc'a, pozycja)

i mam pytanie, jak określić jego zasięg chodzenia? jakiś parametr czy dodatkowa funkcja czy w xml'u tego npc'a? (zwykle to się robi na mapie)
 
Ja używałem kiedyś takiego rozwiązania:
LUA:
local spawnPos
function onThink()
	npcHandler:onThink()
	if not spawnPos then
		spawnPos = getThingPosition(getNpcCid())
	else
		if getDistanceBetween(getThingPosition(getNpcCid()), spawnPos) > 5 then
			doSendMagicEffect(getPlayerPosition(getNpcCid()), CONST_ME_TELEPORT)
			doTeleportThing(getNpcCid(), spawnPos)
			doSendMagicEffect(getPlayerPosition(getNpcCid()), CONST_ME_TELEPORT)
		end
	end
end
- - - Updated - - -
lib npc
Jak doCreateNpc stworzy NPC to powinno zwrócić TRUE.
 
Last edited:
Koci to jest globalevent tak? i ten globalevent ustawiałeś co X sekund i wtedy teleportowało go spowrotem, to niby dobre jest, żeby zbytnio się nie oddalił, ale to bym musiał dla każdego npc;a robić taki skrypt, a mi chodzi o jakąś funkcje, która by to zrobiła xd niby mogę zrobić

że
function spawnujNPC(npcname,pozycja,spawnSize)

i tutaj dać normalne stawianie npc + zeby do jakiejs tablicy dodal nam npc;a do sprawdzania ale to mysle ze zle to zrobie




aha i Koci, to jest globalevent czy do npc liba czy co bo nie jestem pewien

- - - Updated - - -

aha i jeszcze druga rzecz, mam pytanie, jak sprawdzić czy spawnowanie npc;a przebiegło prawidłowo ? wiem, że wyrzuci nam błąd w konsoli, że go nie przyzwało ale czy można zrobić
x = doCreateNpc(npc, pos)
if x ~= RETURNVALUE_NOERROR then
msg = "udalo sie bez error"
else
msg = "nie przyzwalo npc, wystapily bledy, sprawdz w konsoli jaki to blad"
end


ewentualnie da sie zrobic

by wypisalo nam tresc tego bledu nie tylko w konsoli ale i w grze?
 
Code:
if(tonumber(doCreateNpc(name, pos)) == nil) then
    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'nie udao sie')
end

ok, a mógłbyś mi wytłumaczyć? sprawdzając tonumber wyświetli nam CID npc';a czy co?
 
Back
Top