• 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!

Creaturescript onThink

Ulti

New Member
Joined
Oct 2, 2011
Messages
17
Reaction score
0
Cześć, mam pytanie

Czy creaturescript onThink może lagować serwer przy kilkuset graczach online?

prosty skrypt, w stylu:

PHP:
function onThink(cid, interval)
	if(not isCreature(cid)) then
		return
	end
local playerid = getPlayerGUID(cid)
if (getPlayerSlotItem(cid, 5).actionid > 0) and (getPlayerSlotItem(cid, 5).actionid ~= playerid) then doRemoveItem(getPlayerSlotItem(cid, 5).uid) 
doPlayerSendTextMessage(cid, 22, "Item removed.") end
end
 
A dlaczego miałby to robić? I jaki jest interval?
 
interval jest ustawiony na 0,5 sekundy.

dlaczego?

np. gdy jest 1000 graczy online to wykona ten skrypt 2000 razy w ciągu sekundy, nie wiem dokładnie ile może wytrzymać procesor

edit: chociaż nie bardzo wiem jak to wygląda z tym interval 0,5 sekundy

creature.h

#define EVENT_CREATURECOUNT 10
#define EVENT_CREATURE_THINK_INTERVAL 500
#define EVENT_CHECK_CREATURE_INTERVAL (EVENT_CREATURE_THINK_INTERVAL / EVENT_CREATURECOUNT)

EVENT_CREATURECOUNT nie bardzo wiem o co chodzi
 
Last edited:
To lepiej to w źródłach zrobić.
 
ale co zrobić? interval czy cały ten skrypt bo nie rozumiem.


teraz do mojego kodu dorobiłem

while i > 0 then
[kod]
i = i - 1
end


i z ps ux widzę, że cpu podskoczył z 5.5% do 7.2%, ale dziwne jest to że gdy wyłączyłem skrypt zużycie CPU wgl. nie malało, to normalne?

moje zaopatrzenie: 4x 2(HT)x 2.66+ GHz
 
nie lepiej to dodać w onLogin i w custom funkcji onMove ?

że jeśli typ zakłada item z actionid innym niż jego playerid to wtedy kasuje item i to samo robi przy loginie >?

ewentualnie przy globalevencie z sms shopa też tak dodać

????
 
Back
Top