Ezzel a kóddal meg lehet akadályozni, hogy az NPC-k az elso ID-ket foglalják le, így leghátulra rak minden npc-t.
#define MAX_LASTNPC 1 //MAX 100 NPC
forward KickTime();
forward NPCLoadUpdate();
new maxplcheck;
Ezzel állítsuk be hogy hány NPC-t rakunk be a szerverbe, a maxplcheck meg a maxplayers-et ellenorzi, amit a server.cfg-be írtunk.
A 100 azért a maximum, mert több veszélyes lehet.
public NPCLoadUpdate()
{
ConnectNPC...
return 1;
}
public OnFilterScriptInit()
{
SlotNPC();
return 1;
}
Az NPCLoadUpdateba kell megadni azokat az NPC-ket amiket a szerverre akarunk küldeni.
stock SlotNPC()
{
maxplcheck = GetServerVarAsInt(\"maxplayers\");
for(new i = 0; i <= maxplcheck-1-MAX_LASTNPC; i++)
{
new str[64];
format(str,sizeof(str),\"xyz%d,i);
ConnectNPC(str,\"npcidle\");
}
SetTimer(\"NPCLoadUpdate\",1000,0);
SetTimer(\"KickTime\",2000,0);
return 1;
}
public KickTime()
{
maxplcheck = GetServerVarAsInt(\"maxplayers\");
for(new i = 0; i <= maxplcheck-1-MAX_LASTNPC; i++)
{
Kick(i);
}
}
A SlotNPC függvény arra van, hogy felküldjön a szerverre xy darab npc-t és utána egy timerrel külön felküldi a sajátjainkat.
A második timer meg a maxplayersbol kivonja a megadott npc-ink számát, így csak a slot tölto botokat kickeli ki.
Hátránya: hogy kicsit induláskor belaggolhat a szerver mikor küld fel NPC-t és kickeli ki oket.
Szerk:Formattal van mostmár megoldva a sok NPC név