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

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

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

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

Система хелперов как на GalaxY. [GF]

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

Old

Новичок


В Enum pInfo.​

PHP:
pHelper
В public OnPlayerConnect​

PHP:
PlayerInfo[playerid][pHelper] = 0;
В public OnPlayerRegister​

PHP:
format(var, 32, "HelperLevel=%d\n",PlayerInfo[playerid][pHelper]);fwrite(hFile, var);
В public OnPlayerUpdate​

PHP:
format(var, 32, "HelperLevel=%d\n",PlayerInfo[playerid][pHelper]);fwrite(hFile, var);
В public OnPlayerLogin(playerid,password[])​

PHP:
if( strcmp( key , "HelperLevel" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pHelper] = strval( val ); }
К Командам. (Задать вопрос)​

PHP:
if(strcmp(cmd, "/n", true) == 0 || strcmp(cmd, "/support", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
            if(PlayerInfo[playerid][pHelper] < 0) return SendClientMessage(playerid, COLOR_WHITE, "Ты не хелпер!");
	        GetPlayerName(playerid, sendername, sizeof(sendername));
			new length = strlen(cmdtext);
			while ((idx < length) && (cmdtext[idx] <= ' '))
			{
				idx++;
			}
			new offset = idx;
			new result[64];
			while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
			{
				result[idx - offset] = cmdtext[idx];
				idx++;
			}
			result[idx - offset] = EOS;
			if(!strlen(result))
			{
				SendClientMessage(playerid, COLOR_WHITE, "Использование: /n [текст]");
				return 1;
			}
			format(string, sizeof(string), "** Вопрос от %s[%d]: %s **", sendername, playerid, (result));
			SendHelperMessage(COLOR_YELLOW, string);
			SendHelperMessage(COLOR_YELLOW,"Используйте /otv  - для ответа на вопрос!");
                        SendClientMessage(playerid,COLOR_LIGHTBLUE,"Вы задали вопрос хелперам в онлайне. Ждите ответа...");  
	    }
	    return 1;
	}
Ответить на вопрос.​

PHP:
iif(strcmp(cmd, "/ans", true) == 0 || strcmp(cmd, "/otv", true) == 0)
    {
        if(!IsPlayerConnected(playerid)) return 1;
        if(PlayerInfo[playerid][pHelper] < 1) return 1;
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "Использование: /otv [ид игрока] [текст]");
        giveplayerid = ReturnUser(tmp);
        if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, COLOR_WHITE, "Игрока нет в игре!");
        if(giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_WHITE,"Игрока нет в игре!");
        GetPlayerName(playerid, sendername, sizeof(sendername));
        GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
        new length = strlen(cmdtext);
        while ((idx < length) && (cmdtext[idx] <= ' '))
        {
            idx++;
        }
        new offset = idx;
        new result[64];
        while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
        {
            result[idx - offset] = cmdtext[idx];
            idx++;
        }
        result[idx - offset] = EOS;
        if(!strlen(result)) return SendClientMessage(playerid, COLOR_YELLOW2, "Использование: /otv [ид игрока] [текст]");
        format(string, sizeof(string), "Хелпер: %s ответил %s: [%s]", sendername, giveplayer, (result));
        SendHelperMessage(COLOR_YELLOW2, string);
        format(string, sizeof(string), "Вы ответили %s[%d]: %s", giveplayer, giveplayerid, (result));
        SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
        format(string, sizeof(string), "Хелпер %s ответил(а): %s", sendername, (result));
        SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
        return 1;
    }
Чат хелперов.​

PHP:
if(strcmp(cmd, "/helper", true) == 0 || strcmp(cmd, "/h", true) == 0) 
    { 
            if(!IsPlayerConnected(playerid)) return 1;
            new hrank[64]; 
            switch(PlayerInfo[playerid][pHelper]) 
            { 
                case 3: hrank = "Гл. Хелпер"; 
                case 1..2: hrank = "Хелпер"; 
            } 
            GetPlayerName(playerid, sendername, sizeof(sendername)); 
            new length = strlen(cmdtext); 
            while ((idx < length) && (cmdtext[idx] <= ' ')) 
            { 
                idx++; 
            } 
            new offset = idx; 
            new result[64]; 
            while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) 
            { 
                result[idx - offset] = cmdtext[idx]; 
                idx++; 
            } 
            result[idx - offset] = EOS; 
            if(!strlen(result))  return SendClientMessage(playerid, COLOR_GRAD2, "Используйте: (/h)elper [хелперский чат]"); 
            format(string, sizeof(string), "** %s %s[%d] %s. **", hrank, sendername, playerid, result); 
            SendHelperMessage(COLOR_YELLOW2, string); 
            printf("%s %s: %s", hrank, sendername, result); 
            return 1; 
    }

Назначить хелпера. (/makehelper)​

PHP:
if(strcmp(cmd, "/makehelper", true) == 0)
    {
        if(!IsPlayerConnected(playerid)) return 1;
        if(PlayerInfo[playerid][pAdmin] >= 5 || PlayerInfo[playerid][pHelper] == 3 || IsPlayerAdmin(playerid))
    tmp = strtok(cmdtext, idx);
        if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "/makehelper [playerid/PartOfName] [level(1-3)]");
        new para1,level;
        para1 = ReturnUser(tmp);
        tmp = strtok(cmdtext, idx);
        level = strval(tmp);
        if(level > 3 || level < 0) return SendClientMessage(playerid, COLOR_GRAD2, "менее 1, или более 3!");
        if(!IsPlayerConnected(para1)) return SendClientMessage(playerid, COLOR_WHITE, "Игрока нет в игре!");
        if(para1 == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_WHITE,"Игрока нет в игре!");
        GetPlayerName(para1, giveplayer, sizeof(giveplayer));
        GetPlayerName(playerid, sendername, sizeof(sendername));
        PlayerInfo[para1][pHelper] = level;
        format(string, sizeof(string), "Ты был добавлен в команду хелпером на %d уровень. (Добавил: %s)", level, sendername);
        SendClientMessage(para1, COLOR_LIGHTBLUE, string);
        format(string, sizeof(string), "Ты назначил(а) %s хелпером %d уровня.", giveplayer,level);
        SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
        return 1;
    }

Хелперы онлайн.​

PHP:
 if(strcmp(cmd, "/helpers", true) == 0)
    {
        string[0] = 0;
        for(new i=0;i<MAX_PLAYERS;i++)
        {
            new htext[64];
            if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue;
            switch(PlayerInfo[playerid][pHelper])
            {
                case 3: htext = "Гл. Хелпер";
                case 1..2: htext = "Хелпер";
			}
            GetPlayerName(i, sendername, sizeof(sendername));
            format(string,sizeof(string),"%s %s: %s [ID: %d]\n",string,htext,sendername,i);
        }
        ShowPlayerDialog(playerid,13, DIALOG_STYLE_MSGBOX, "Хелперы онлайн", string, "OK", "Назад");
        return 1;
    }
В конец мода.​
PHP:
stock SendHelperMessage(color, string[]) 
{ 
    for(new i = 0; i < MAX_PLAYERS; i++) 
    { 
        if(!IsPlayerConnected(i)) continue;
        if(PlayerInfo[i][pHelper] >= 1) 
        { 
           SendClientMessage(i, color, string); 
        } 
     } 
}


Автор: Old. [/COLOR])​

За оптимизацию спасибо - sk.tm_radik.
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу