1.) Nem lényeges szerintem.
2.) Szerintem egy ciklus hibásan vagy megírva, vagy egy timer, nemtom mivan az onplayerspawn alatt.
3.) Nemtudom hogy mûködik e, de egy próbát megér:
strcmp-vel lekéred a játékos nevét és ha a neve megegyezik egy bizonyos bot nevével akkor ezmegaz gondolom így van...
Na... A nevek alá írod a sorrendet:
playerid = 0;
playerid = 1;
stb..
Pl van 3 bot, nevük pl...
bot1 , bot2 , bot3
Azt akarod, hogy bot2 id-je 0, bot3 id-je 1, bot1 id-je pedig 2 legyen mindenképp...
Ezt elvileg úgy oldhatod meg, hogy:
[pawn]#include <a_samp>
public OnPlayerSpawn(playerid)
{
if(IsPlayerNPC(playerid))
{
new npcname[MAX_PLAYER_NAME];
GetPlayerName(playerid, npcname, sizeof(npcname));
if(!strcmp(npcname, \"bot1\", true)) //ha bot1 a neve
{
if(IsPlayerConnected(2))/ha id 2 csatlakozva van
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i))playerid = random(i); //véletlenszerû id-t adni a játékosnak, olyat ami nincs csatlakozva
}
}
playerid = 2; //a bot id-je mostmár 2
}
if(!strcmp(npcname, \"bot2\", true)) //ha bot2 a neve
{
if(IsPlayerConnected(0))//ha id 0 csatlakozva van
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i))playerid = random(i);//véletlenszerû id-t adni a játékosnak, olyat ami nincs csatlakozva
}
}
playerid = 0; //a bot id-je mostmár 0
}
if(!strcmp(npcname, \"bot3\", true)) //ha bot3 a neve
{
if(IsPlayerConnected(1)) //ha id 1 csatlakozva van
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i))playerid = random(i); //véletlenszerû id-t adni a játékosnak, olyat ami nincs csatlakozva
}
}
playerid = 1; //a bot id-je mostmár 1
}
}
return 1;
}[/pawn]
Lehet hogy ez egy kurvanagy hülyeség amit írtam, de az is lehet hogy mûködik. Próbáld ki.