Saibot | Дата: Понедельник, 09.09.2013, 21:27 | Сообщение # 1 |
Освоившийся
Группа:
Продвинутые
Сообщений: 112
Награды: 0
Репутация: 34
Замечания: 0%
Статус:
| Система Хелперов.
В enum pInfo вставляем: [pwn] pHelper, pOtkatn,[/pwn]
Ко всем #define вставляем: [pwn]#define COLOR_GREENQ 0x009933AA[/pwn]
В public OnPlayerConnect(playerid) вставляем: [pwn]PlayerInfo[playerid][pHelper] = 0;[/pwn]
В public OnPlayerRegister(playerid, password[]) вставляем: [pwn]dini_FloatSet(string, "pHelper=%d",PlayerInfo[playerid][pHelper]);[/pwn]
В public OnPlayerSave(playerid) вставляем: [pwn]dini_FloatSet(string, "pHelper=%d",PlayerInfo[playerid][pHelper]);[/pwn]
В public OnPlayerLogin(playerid,password[]) вставляем: [pwn]PlayerInfo[playerid][pHelper] = dini_Int(string2,"pHelper=%d");[/pwn]
В любом месте вставляем: [pwn] forward ShatHelperov(color,const string[],level); public ShatHelperov(color,const string[],level) { for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if (PlayerInfo[i][pHelper] >= level) { SendClientMessage(i, color, string); } } } printf("%s", string); return 1; }[/pwn]
В public SetPlayerUnjail() вставляем: [pwn] if(PlayerInfo[i][pOtkatn] >= 1) { PlayerInfo[i][pOtkatn] --; }[/pwn]
В public OnPlayerCommandText(playerid, cmdtext[]) вставляем: [pwn] if (strcmp(cmd, "/helpers", true) == 0) //Чтоб игроки могли посмотреть кто онланй из хелперов. { string[0] = 0; for(new i=0;i<MAX_PLAYERS;i++) { if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue; { if(PlayerInfo[i][pHelper] <= 0) continue; { GetPlayerName(i, sendername, sizeof(sendername)); format(string,sizeof(string),"Хелпер: %s[%d]\n",sendername,i); } } } ShowPlayerDialog(playerid,0,DIALOG_STYLE_MSGBOX, "Хелперы Онлайн:", string, "Отмена", ""); return 1; } if(strcmp(cmd, "/n", true) == 0) //Задать вопрос хелперу. { if(IsPlayerConnected(playerid)) { GetPlayerName(playerid, sendername, sizeof(sendername)); new length = strlen(cmdtext); while ((idx < length) && (cmdtext[idx] <= ' ')) { idx++; } new offset = idx; new result[100]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) { SendClientMessage(playerid, COLOR_GRAD2, "/n [текст]"); return 1; } if(PlayerInfo[playerid][pOtkatn] >= 1) { format(string,sizeof(string), "Ты сможеш задать следйщий вопрос через %d секунд(ы).", PlayerInfo[playerid][pOtkatn]); SendClientMessage(playerid, COLOR_GRAD2, string); return 1; } format(string, sizeof(string), "Вопрос от %s[%d]: %s", sendername, playerid, (result)); ShatHelperov(COLOR_GREENQ,string,1); SendClientMessage(playerid, COLOR_GREENQ, "Твоё сообщение отправлено хелперам. Ожидай..."); PlayerInfo[playerid][pOtkatn] = 200; } return 1; } if(strcmp(cmd, "/an", true) == 0) //Ответить игроку на вопрос. { if(IsPlayerConnected(playerid)) { if (PlayerInfo[playerid][pHelper] >= 1) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD2, "/an [ид игрока] [текст]"); return 1; } giveplayerid = ReturnUser(tmp); if (IsPlayerConnected(giveplayerid)) { if(giveplayerid != INVALID_PLAYER_ID) { 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[100]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) { SendClientMessage(playerid, COLOR_GRAD2, "/an [ид игрока] [текст]"); return 1; } if(PlayerInfo[playerid][pHelper] > 0) { format(string, sizeof(string), "Ответ от хелпера %s отвечает: %s", sendername, (result)); } SendClientMessage(giveplayerid, COLOR_GREENQ, string); format(string, sizeof(string), "Хелпер %s ответил %s: %s", sendername, giveplayer, (result)); ShatHelperov(COLOR_CON_GREEN,string,1); return 1; } } else { SendClientMessage(playerid, COLOR_GRAD2, "Нет такого игрока."); } } else { SendClientMessage(playerid, COLOR_GRAD2, "Вы не Хелпер!"); return 1; } } return 1; } if(strcmp(cmd, "/helper", true) == 0 || strcmp(cmd, "/h", true) == 0) //Чат хелперов { if(IsPlayerConnected(playerid)) { 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_GRAD2, "(/h)elper [текст]"); return 1; } format(string, sizeof(string), "{E3BE88}({009933}H-Чат{E3BE88}) Хелпер {009933}%s[%d]: {ffff00}%s", sendername, playerid, result); if (PlayerInfo[playerid][pHelper] >= 1) { SendHelperMessage(COLOR_YELLOW, string); } } return 1; } if(strcmp(cmd, "/makehelper", true) == 0) { if(IsPlayerConnected(playerid)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD2, "/makehelper [playerid/PartOfName] [level(1]"); return 1; } new para1; new level; para1 = ReturnUser(tmp); tmp = strtok(cmdtext, idx); level = strval(tmp); if(level > 1 || level < 0) { SendClientMessage(playerid, COLOR_GRAD2, "Больше 1 уровня нельзя."); return 1; } if(level == 0) { GetPlayerName(para1, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); PlayerInfo[para1][pHelper] = 0; format(string, sizeof(string), "Администратор: %s снял(а) вас с Хелперки.", sendername); SendClientMessage(para1, COLOR_LIGHTBLUE, string); format(string, sizeof string, "Ты снял %s с Хелперки.", giveplayer); SendClientMessage(playerid, COLOR_LIGHTBLUE, string); return 1; } if(PlayerInfo[playerid][pAdmin] >= 5) { if(IsPlayerConnected(para1)) { if(para1 != INVALID_PLAYER_ID) { GetPlayerName(para1, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); PlayerInfo[para1][pHelper] = level; format(string, sizeof(string), "Администратор: %s назначил(а) тебя Хелпером.", sendername); SendClientMessage(para1, COLOR_LIGHTBLUE, string); format(string, sizeof(string), "Ты назначил(а) %s Хелпером.", giveplayer); SendClientMessage(playerid, COLOR_LIGHTBLUE, string); } } } else { SendClientMessage(playerid, COLOR_GRAD2, "Вы неуполномочены использовать эту команду!"); } } return 1; }[/pwn]
Commands: /makehelper - Назначить игрока хелпером. 1 назначить, 0 снять. /n - Задать вопрос Хелперу. /an - Ответить игроку /h - Чат Хелперов
Автор: Saibot
Данный скрипт является эксклюзивом для SRC, и размещать его на других сайтах запрещено, без оговоренности с администрацией сайта или автором работы.
Сообщение отредактировал Saibot - Четверг, 03.10.2013, 17:41 |
|
|
|