DEAMON
Умник
Первая проблема:
Когда я телепортируюсь к игроку (командой /goto), в админ-чат отправляется сообщение типа" Ник телепортировался к игроку ник" два раза. Хотя должно это делаться один раз. Собственно,я не знаю как решить эту проблему. :c Вот команда "/goto":
PHP:
if(strcmp(cmd, "/goto", true) == 0)
{
if(PlayerInfo[playerid][pAdmin]<2) return SendClientMessage(playerid,COLOR_GRAD1,"Нельзя.");
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "Используй: /goto [ID ]");
return 1;
}
new Float:plocx,Float:plocy,Float:plocz;
new plo;
new plow[MAX_PLAYER_NAME];
plo = ReturnUser(tmp);
if(!IsPlayerConnected(plo)) return SendClientMessage(playerid, COLOR_GRAD1, "Такого игрока нет");
if(PlayerInfo[plo][pAdmin] >= 4) return SendClientMessage(playerid,COLOR_GRAD2,"Нельзя телепортироваться к админу.");
{
if(plo != INVALID_PLAYER_ID)
{
if (PlayerInfo[playerid][pAdmin] >= 1)
{
GetPlayerPos(plo, plocx, plocy, plocz);
GetPlayerName(plo, plow, sizeof(plow));
if (GetPlayerState(playerid) == 2)
{
new tmpcar = GetPlayerVehicleID(playerid);
SetVehiclePos(tmpcar, plocx, plocy+4, plocz);
TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0;
}
else
{
SetPlayerPos(playerid,plocx,plocy+2, plocz);
}
for(new i=0; i<GetMaxPlayers(); i++)
{
if(IsPlayerConnected(i))
{
new admin[MAX_PLAYER_NAME]; new player[MAX_PLAYER_NAME];
GetPlayerName(playerid, admin,sizeof(admin));
GetPlayerName(plo, player,sizeof(player));
format(string,sizeof(string),"%s телепортировался к игроку %s.",admin,player);
SendAdminMessage(COLOR_RED, string);
}
}
}
}
}
}
return 1;
}
Вторая проблема:
Эта проблема касается команды /spec(следить за игроком).Дело в том,что когда я ввожу /spec id игрока вот что у меня происходит:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Вот /spec:
PHP:
if(strcmp(cmd, "/spec", true) == 0)
{
if(PlayerInfo[playerid][pAdmin]<1) return SendClientMessage(playerid,COLOR_GRAD1,"Нельзя.");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "Используй: /spec [ID]");
return 1;
}
GetPlayerName(specplayerid, giveplayer, sizeof(giveplayer));
specplayerid = strval(tmp);
if(!IsPlayerConnected(specplayerid)) return SendClientMessage(playerid, COLOR_GRAD1, "Такого игрока нет");
if(PlayerInfo[specplayerid][pAdmin]==4) return SendClientMessage(playerid, COLOR_GRAD1, "Следить за адм нельзя.");
//else if(specplayerid == playerid) return SendClientMessage(playerid, COLOR_GRAD1, "нельзя следить за собой!");
else if(GetPlayerState(specplayerid) == PLAYER_STATE_SPECTATING && gSpectateID[specplayerid] != INVALID_PLAYER_ID)
{
SendClientMessage(playerid, COLOR_GRAD1, "Этот модер наблюдает уже!");
return 1;
}
spectry[playerid]=1;
PlayerSpectatePlayer(playerid, specplayerid);
SetPlayerInterior(playerid,GetPlayerInterior(specplayerid));
SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(specplayerid));
TogglePlayerSpectating(playerid, 1);
gSpectateID[playerid] = specplayerid;
gSpectateType[playerid] = ADMIN_SPEC_TYPE_PLAYER;
SpecHATimer[playerid] = SetTimerEx("SpecHArefresh",500,true,"ff",playerid,specplayerid);
TextDrawShowForPlayer(playerid, SM_HA[playerid]);//высвечиваем TextDraw
if(IsPlayerInAnyVehicle(specplayerid))//если игрок в транспорте, то слежка за машиной
{
SetPlayerInterior(playerid,GetPlayerInterior(specplayerid));
SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(specplayerid));
TogglePlayerSpectating(playerid, 1);
PlayerSpectateVehicle(playerid, GetPlayerVehicleID(specplayerid));
gSpectateID[playerid] = specplayerid;
gSpectateType[playerid] = ADMIN_SPEC_TYPE_VEHICLE;
}
return 1;
}
Помогите пожалуйста. Плюсики гарантированы.
