Holly.Wood
Умник
Я думаю это сис-ма превосходит и ту которая в RLS.
Описание:
Подавать объявления ( /ad ) можно когда угодно НО после того как предыдущее проверят СМИ, таймера на /ad нету, как проверили так можно подавать следующее.
Для сми команда /edit (без iD без ничего)
Если оставить диалог пустой то объявление подастся без изменений и в чате будет написано " Объявление проверил ... "
Или же можно изменить тогда в чате будет писаться " Объявление отредактировал ... "
Ну и в крайнем случае отклонить.
Начнем.
Ко всем new добавим:
в OnPlayerCommandText
И в OnDialogResponse
На этом все вот хорошая вам система с небольшим кодом.
Автор: Holly.Wood
Описание:
Подавать объявления ( /ad ) можно когда угодно НО после того как предыдущее проверят СМИ, таймера на /ad нету, как проверили так можно подавать следующее.
Для сми команда /edit (без iD без ничего)
Если оставить диалог пустой то объявление подастся без изменений и в чате будет написано " Объявление проверил ... "
Или же можно изменить тогда в чате будет писаться " Объявление отредактировал ... "
Ну и в крайнем случае отклонить.
Начнем.
Ко всем new добавим:
PHP:
#define advert 777
new ADV[ MAX_PLAYERS ];
new OBV[ MAX_PLAYERS ];
new ADVERTISE;
PHP:
if(strcmp(cmd, "/edit", true) == 0)
{
if(PlayerInfo[playerid][pMember] == 15 || PlayerInfo[playerid][pMember] == 16 || PlayerInfo[playerid][pMember] == 17)
{
new giveplayer[ MAX_PLAYER_NAME ],giveplayerid,sendername[ MAX_PLAYER_NAME ],string[ 256 ];
if(IsPlayerConnected(giveplayerid))
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
if(ADVERTISE == 0) return SendClientMessage(playerid,-1,"Никто не подавал объявление");
OBV[playerid] = giveplayerid;
format(string, sizeof(string), "{ffffff}Отправитель: %s\nТекст:{fde910} %s\n\n{ffffff}Введите новый текст для этого объявления или оставьте поле пустым если редактирование не нужно\n\
Вы также можете отклонить объявление с причиной нажав кнопку \"Отклонить\"",giveplayer,ADV[giveplayerid]);
ShowPlayerDialog(playerid,advert,DIALOG_STYLE_INPUT,"{00ff00}Публикация объявления",string,"Готово","Отклонить");
}
}
else
{
return true;
}
}
if(strcmp(cmd, "/advertise", true) == 0 || strcmp(cmd, "/ad", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(ADVERTISE == 1) return SendClientMessage(playerid,-1, "Кто-то уже подал объявление");
new sendername[ MAX_PLAYER_NAME ];
if(PlayerInfo[playerid][pLevel] < 3) return SendClientMessage(playerid, COLOR_GRAD, "{FF0000}[Недоступно]{ffffff} Команда доступна с 3-го уровня.");
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_WHITE, "{00C0FF}Используйте{FFFFFF} : (/ad)vertise [сообщение]");
new string[145];
if(PlayerInfo[playerid][pCash] < 10) return SendClientMessage(playerid, COLOR_WHITE, "{FF0000}[Недоступно]{ffffff} У вас недостаточно денег для подачи рекламы.");
GetPlayerName(playerid, sendername, sizeof(sendername));
SendClientMessage(playerid, COLOR_WHITE, "Ваше объявление было отправлено в СМИ для утверждения");
format(string, sizeof(string), "{f4c430}[Для утверждения] Автор: %s[%d]. Текст: %s",sendername, playerid,(result));
SendFamilyMessage(15, -1, string);
PlayerInfo[playerid][pCash] -= 10,ADVERTISE = 1;
strmid(ADV[playerid], result, 0, strlen(result), 255);
}
return true;
}
PHP:
case advert:
{
new sendername[ MAX_PLAYER_NAME ];
GetPlayerName(OBV[playerid], sendername, sizeof(sendername));
if(response)
{
new texts[160];
new name[ MAX_PLAYER_NAME ];
if(strlen(inputtext) == 0)
{
format(texts, sizeof(texts), "{66ff00}Обьявление: %s. Прислал(а): %s[%d]. Номер: %d",ADV[playerid], GN(OBV[playerid]),OBV[playerid],PlayerInfo[OBV[playerid]][pNumber]),SendClientMessageToAll(-1,texts);
format(texts, sizeof(texts), "{34c924} Объявление проверил работник Радоцентра: %s.", GN(playerid)),SendClientMessageToAll(-1,texts);
ADV[ OBV[playerid] ] = 0,OBV[playerid] = 501,ADVERTISE = 0;
}
else
{
GetPlayerName(playerid, name, sizeof(name));
format(texts, sizeof(texts), "{66ff00}Обьявление: %s. Прислал(а): %s[%d]. Номер: %d", (inputtext), sendername,OBV[playerid],PlayerInfo[OBV[playerid]][pNumber]),SendClientMessageToAll(-1,texts);
format(texts, sizeof(texts), "{34c924} Объявление отредактировал работник Радоцентра: %s.", GN(playerid)),SendClientMessageToAll(-1,texts);
ADV[ OBV[playerid] ] = 0,OBV[playerid] = 501,ADVERTISE = 0;
}
return true;
}
else
{
format(string, sizeof(string), "{FF6600}Вы отклонили объявление",sendername, playerid, (inputtext)),SendClientMessage(playerid, COLOR_YELLOW, string);
format(string, sizeof(string), "{FF6600}%s[%d] отклонил обьявление. Причина: %s",sendername, playerid, (inputtext)),SendClientMessage(OBV[playerid], COLOR_YELLOW, string);
ADV[ OBV[playerid] ] = 0,OBV[playerid] = 501,ADVERTISE = 0;
}
}
Автор: Holly.Wood
Последнее редактирование:
