Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Почему не записывает бан игроку? + ошибка

Статус
В этой теме нельзя размещать новые ответы.

Alexand78

Новичок
Привет поцаны. Сделал систему бана по мануалу http://pawno-info.ru/threads/115278 и у меня не приписывает бан игроку в файле. + ошибка, когда я делаю, что, если ввел неправильный ИД писало, что ввел неправильно. Вот короче сама команда.

PHP:
    if(strcmp(cmd, "/ban", true) == 0)
    {
		if(PlayerInfo[playerid][pAdmin] != 1) return SendClientMessage(playerid,COLOR_RED,"*Вы не можете использовать эту команду, т.к не являетесь администратором");
		if(IsPlayerConnected(playerid))
        {
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GREY, "*Подсказка: /ban [ID] [Причина]");
                return 1;
            }
            giveplayerid = ReturnUser(tmp);
            {
                if(IsPlayerConnected(giveplayerid))
                {
                    if(giveplayerid != INVALID_PLAYER_ID)
                    {
                        GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                        GetPlayerName(playerid, sendername, sizeof(sendername));
                        new length = strlen(cmdtext);
                        while ((idx < length) && (cmdtext[idx] <= ' '))
                        {
                            idx++;
                        }
                        new offset = idx;
                        new result[64];
                        new id;
						GetPlayerName(id, giveplayer, sizeof(giveplayer));
                        while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
                        {
                            result[idx - offset] = cmdtext[idx];
                            idx++;
                        }
                        result[idx - offset] = EOS;
                        if(!strlen(result))
                        {
                            SendClientMessage(playerid, COLOR_GREY, "*Подсказка: /ban [ID] [Причина]");
                            return 1;
                        }
                        format(string, sizeof(string), "Игрок %s был забанен администратором %s, причина: %s", giveplayer, sendername, (result));
                        SendClientMessageToAll(COLOR_RED, string);
                        PlayerInfo[id][pBanned] = 1; // Кажись в этом соль
                        Kick(giveplayerid);
                    }
                }//not connected
            }
            else
            {
                format(string, sizeof(string), "[%d] нет в сети", giveplayerid);
                SendClientMessage(playerid, COLOR_YELLOW, string);
            }
        }
        return 1;
    }
Вот ошибка с неправильным идом

PHP:
D:\Games\SampServer\gamemodes\RDP.pwn(965) : error 029: invalid expression, assumed zero
Может еще нужен паблик обновления (он же у меня с сохранением). В нем есть таймер, который пишет каждую секунду.

PHP:
public OnPlayerUpdate(playerid)
{
    new string[128];
    format(string,sizeof(string),"score %07d",PlayerInfo[playerid][pDrift]);
    TextDrawSetString(Score[playerid],string);
    format(string,sizeof(string),"%08d",PlayerInfo[playerid][pMoney]);
    new playername[MAX_PLAYER_NAME];
    UpdatePlayerPosition(playerid);
    GetPlayerName(playerid, playername, sizeof(playername));
    format(string, sizeof(string), "players/%s.ini", playername);
    new iniFile = ini_openFile(string);
    ini_setInteger(iniFile, "Money", GetPlayerMoney(playerid));
    GetPlayerHealth(playerid,PlayerInfo[playerid][pHeal]);
    ini_setFloat(iniFile, "Heal", PlayerInfo[playerid][pHeal]);
    GetPlayerArmour(playerid,PlayerInfo[playerid][pArmour]);
    ini_setFloat(iniFile, "Armour", PlayerInfo[playerid][pArmour]);
    ini_setInteger(iniFile, "Drift",PlayerInfo[playerid][pDrift]);
    ini_setFloat(iniFile, "Pos_x", PlayerInfo[playerid][pPos_x]);
    ini_setFloat(iniFile, "Pos_y", PlayerInfo[playerid][pPos_y]);
    ini_setFloat(iniFile, "Pos_z", PlayerInfo[playerid][pPos_z]);
    ini_setInteger(iniFile, "Int", PlayerInfo[playerid][pInt]);
    ini_setInteger(iniFile, "World", PlayerInfo[playerid][pWorld]);
    ini_setInteger(iniFile,"Banned",PlayerInfo[playerid][pBanned]);
    ini_closeFile(iniFile);
    return 1;
}
Заранее спасибо.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу