Помогите не понятный мне винтиплюйка
#1

Доброе время суток.
Перестали просто так работать некоторые команды сервера, ну точнее не показывает ТОЛЬКО имена.
Вот например вот эта команда НЕ работает
PHP код:
CMD:members(playeridparams[]){
    if(
PlayerLogged[playerid] == 0) return 1;
    if(
PlayerInfo[playerid][pMember] == 0) return SendClientMessage(playeridCOLOR_GREYYouCanNot);
    
SendClientMessage(playerid0x33AAFFFF"×ëåíû îðãàíèçàöèè â ñåòè:");
    new 
name[24];
    foreach(new 
i:Player)
    {
        if(!
IsPlayerConnected(i) || PlayerLogged[i] == 0) continue;
        
GetPlayerName(i,name,MAX_PLAYER_NAME);
        if(
PlayerInfo[i][pMember] == PlayerInfo[playerid][pMember]) SendMes(playeridCOLOR_WHITE"%s » {66ff00}%s",nameFracRank[PlayerInfo[i][pMember]][PlayerInfo[i][pRank]]);
    }
    return 
1;} 
А вот эта команда РАБОТАЕТ. Не понятно почему я вообще все перерыл!
PHP код:
CMD:admins(playeridparams[]){
    if(
PlayerLogged[playerid] == 0) return true;
    if(
PlayerInfo[playerid][pAdmin] > || PlayerInfo[playerid][pVIP] == true)
    {
        new 
str[256],full 0;
        
SendClientMessage(playeridCOLOR_BLUE"Àäìèíèñòðàöèÿ â ñåòè:");
        foreach(new 
i:Player)
        {
            if(!
IsPlayerConnected(i) || PlayerLogged[i] == 0) continue;
            if(
PlayerInfo[i][pAdmin] > 0)
            {
                new 
admrank[70];
                if(
PlayerInfo[i][pAdmin] == 1){format(admrank,70,"{FF0000}» {0000ff}Ìë.Àäìèíèñòðàòîð");}
                else if(
PlayerInfo[i][pAdmin] == 2){format(admrank,70,"{FF0000}» {735184}Àäìèíèñòðàòîð");}
                else if(
PlayerInfo[i][pAdmin] == 3){format(admrank,70,"{FF0000}» {660099}Ñò.Àäìèíèñòðàòîð");}
                else if(
PlayerInfo[i][pAdmin] == 4){format(admrank,70,"{FF0000}» {997a8d}Çàì.Ãë.Àäìèíèñòðàòîðà");}
                else if(
PlayerInfo[i][pAdmin] == 5){format(admrank,70,"{FF0000}» {d53e07}Ãë.Àäìèíèñòðàòîð");}
                else if(
PlayerInfo[i][pAdmin] == 6){format(admrank,70,"{FF0000}» {FF0000}Ðóêîâîäèòåëü Ïðîåêòà");}
                else if(
PlayerInfo[i][pAdmin] == 7){format(admrank,70,"{FF0000}» {000000}Developer");}
                
full++;
                
format(str,sizeof(str),"%s [ID: %d] - %s\n",PlayerInfo[i][pSendername],i,admrank);
                
SendClientMessage(playeridCOLOR_WHITEstr);
            }
        }
        if(
full == 0SendClientMessage(playeridCOLOR_WHITE"Àäìèíèñòðàòîðîâ íåò â ñåòè!");
    }
    else 
SendClientMessage(playeridCOLOR_GREYYouCanNot);
    return 
true;} 
Помогите пожалуйста
Reply
#2

Для начала: в foreach проверка IsPlayerConnected не нужна.

На счет имен: в первой команде GetPlayerName вызывается, а во второй PlayerInfo[i][pSendername].
И в первой команде вы используете SendMes, а во второй format + SendClientMessage.

Это все разные вещи.

Попробуйте вот такой вариант команды:

pawn Код:
CMD:members(playerid, params[])
{
    if(PlayerLogged[playerid])
    {
        if(PlayerInfo[playerid][pMember] == 0)
        {
            SendClientMessage(playerid, COLOR_GREY, YouCanNot);  
            return 0;
        }      
        SendClientMessage(playerid, 0x33AAFFFF, "×ëåíû îðãàíèçàöèè â ñåòè:");
        new name[21], str[64];
        foreach(new i:Player)
        {
            if(PlayerLogged[i] != 0 && PlayerInfo[i][pMember] == PlayerInfo[playerid][pMember])
            {
                GetPlayerName(i,name,21);
                format(str, 64, "%s » {66ff00}%s", name, FracRank[PlayerInfo[i][pMember]][PlayerInfo[i][pRank]]);
                SendClientMessage(playerid, COLOR_WHITE, str);
            }
        }
    }
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)