Удаления из рауда
#1

Code:
new Float:pos[3];
GetPlayerPos(i,pos[0],pos[1],pos[2]);
if(Zone[Current][ZoneMaxX] > pos[0] && Zone[Current][ZoneMinX] < pos[0] && Zone[Current][ZoneMaxY] > pos[1] && Zone[Current][ZoneMinY] < pos[1])
{
TextDrawHideForPlayer(i, yxod[i]);
TimZone[i] = TimeZone;
}
else
{
format(string, sizeof(string), "Come Back in %d", TimZone[i]);
TextDrawSetString(yxod[i],string);
TextDrawShowForPlayer(i, yxod[i]);
TimZone[i]--;
PlayerPlaySound(i,1057,0.0,0.0,0.0);
if(TimZone[i] <= -1)
{
ResetPlayerWeapons(i);
SetPlayerHealth(i,100.0);
SetPlayerInterior(i,MAIN_INTERIOR);
Player[i][pPlaying] = false;
new rand = random(sizeof(MainSpawns));
SetPlayerPos(i,MainSpawns[rand][0],MainSpawns[rand][1],MainSpawns[rand][2]);
if(Player[i][pTeam] == DEF) {mySetPlayerColor(i,DEFENDER);}
if(Player[i][pTeam] == ATT) {mySetPlayerColor(i,ATTACKER);}
SetPlayerScore(i, 0);
GetPlayerName(i,name,24);
format(string, sizeof(string), "Игрок %s удален из раунда (Вне Зоны)",name);
SendClientMessageToAll(AAD_COLOR_GREY,string);
TextDrawHideForPlayer(i, yxod[i]);
}
return 0;
}
}
}
return 1;
}
У меня такая проблема, когда игрок зашел за зону и вышел серва, то спустя 15 секунд пишет в чат сообщения, игрок удален из раунда. Иногда берет тот ник, который в данный момент в раунде, а иногда и не пишет ник игрока, а просто удален. Как исправить этот баг? Чтоб когда игрок зашел за зоны и вышел серва, в чат не писала, что удалило из раунда.
Reply
#2

Nikid, возьми нормальную рабочую лигу от Алона или ещё кого, но перестать редактировать эти рамблы делая их ещё в 5 раз кривее.
Reply
#3

У меня и моя норм работает, ток вот как эт баг убрать не могу понять
Reply
#4

Quote:

GetPlayerName(i,name,24);
format(string, sizeof(string), "Игрок %s удален из раунда (Вне Зоны)",name);
SendClientMessageToAll(AAD_COLOR_GREY,string);

Заметь, в этой строке GetPlayerName(i,name,24); ты написал 'i' вместо 'playerid', т.е. 'i' означает - Все игроки, а посколько оно может взять не больше 1 ника, оно берёт любой, что попадёться.
Если ты кончно i не закодировал как playerid.
Reply
#5

K-911, у него цикл в котором i является ID всех игроков по порядку.
Reply
#6

Quote:
Originally Posted by Nikid
View Post
Code:
new Float:pos[3];
GetPlayerPos(i,pos[0],pos[1],pos[2]);
if(Zone[Current][ZoneMaxX] > pos[0] && Zone[Current][ZoneMinX] < pos[0] && Zone[Current][ZoneMaxY] > pos[1] && Zone[Current][ZoneMinY] < pos[1])
{
TextDrawHideForPlayer(i, yxod[i]);
TimZone[i] = TimeZone;
}
else
{
format(string, sizeof(string), "Come Back in %d", TimZone[i]);
TextDrawSetString(yxod[i],string);
TextDrawShowForPlayer(i, yxod[i]);
TimZone[i]--;
PlayerPlaySound(i,1057,0.0,0.0,0.0);
if(TimZone[i] <= -1)
{
ResetPlayerWeapons(i);
SetPlayerHealth(i,100.0);
SetPlayerInterior(i,MAIN_INTERIOR);
Player[i][pPlaying] = false;
new rand = random(sizeof(MainSpawns));
SetPlayerPos(i,MainSpawns[rand][0],MainSpawns[rand][1],MainSpawns[rand][2]);
if(Player[i][pTeam] == DEF) {mySetPlayerColor(i,DEFENDER);}
if(Player[i][pTeam] == ATT) {mySetPlayerColor(i,ATTACKER);}
SetPlayerScore(i, 0);
GetPlayerName(i,name,24);
format(string, sizeof(string), "Игрок %s удален из раунда (Вне Зоны)",name);
SendClientMessageToAll(AAD_COLOR_GREY,string);
TextDrawHideForPlayer(i, yxod[i]);
}
return 0;
}
}
}
return 1;
}
У меня такая проблема, когда игрок зашел за зону и вышел серва, то спустя 15 секунд пишет в чат сообщения, игрок удален из раунда. Иногда берет тот ник, который в данный момент в раунде, а иногда и не пишет ник игрока, а просто удален. Как исправить этот баг? Чтоб когда игрок зашел за зоны и вышел серва, в чат не писала, что удалило из раунда.
Добавь проверку на конект игрока к серверу и проверку на то что игрок в раунде Player[i][pPlaying] вроде(по крайней мере у меня так) и убери return 0; ибо он не даёт циклу проверять игроков которые находятся дальше удалённого игрока
Reply
#7

о Вроде разабрался ONIXS Спасибо тебе. Почти также получилось как ты и говорил про определения игрока не в раунде
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)