Главный редактор форума: Doc-John | Текущая дата: 30.11.2024, 06:49
  • Страница 1 из 1
  • 1
[Мануал] Система обьявлений
Оффлайн
Понедельник, 26.08.2013, 13:01 | Сообщение # 1
Сообщений:
20
0
Здравствуйте, ув.пользователи http://isamp.3dn.ru
Сегодня я покажу как сделать систему объявлений и покажу как поставить себе на Server через программу Pawno.


Ко всем define

Цитата (Код)
#define advert 777

Ко всем new

Цитата (Код)
new ADV[MAX_PLAYERS];
new OBV[MAX_PLAYERS];
new ADVERTISE;

в public OnPlayerCommandText

Цитата (Код)
if(strcmp(cmd, "/edit", true) == 0)
{
if(PlayerInfo [playerid][pMember]== 14 || PlayerInfo [playerid][pMember]== 15 || PlayerInfo [playerid][pMember]== 16 || PlayerInfo [playerid][pMember]== 17 || PlayerInfo [playerid][pMember]== 30)
{
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(14, -1, string),SendFamilyMessage(15, -1, string),SendFamilyMessage(16, -1, string),SendFamilyMessage(17, -1, s tring),SendFamilyMessage(30, -1, string);
PlayerInfo [playerid][pCash]-= 10,ADVERTISE = 1;
strmid(ADV[playerid], result, 0, strlen(result), 255);
}
return true;
}

В OnDialogResponse
  
Цитата (Код)
case advert: // если без case, то if(dialogid == advert)
{
new sendername[MAX_PLAYER_NAME];
GetPlayerName(OBV[playerid], sendername, sizeof(sendername));
if(response)
{
new texts[1000];
new name[MAX_PLAYER_NAME];
if(strlen(inputtext) == 0)
{
format(texts, sizeof(texts), "%s | Отправил %s[%d] (тел. %d)",ADV[playerid], GN(OBV[playerid]),OBV[playerid],PlayerInfo[OBV[playerid]][pNumber]);
SendClientMessageToAll(TEAM_GROVE_COLOR,texts);
new rangz[256];
switch(PlayerInfo[playerid][pMember]){
case 15,16,17:{
switch(PlayerInfo[playerid][pRang]){
case 10:rangz = "Директор радиоцентра";
case 9:rangz = "Главный редактор";
case 8:rangz = "Редактор";
case 7:rangz = "Попощник редактора";
case 6:rangz = "Корректор";
case 5:rangz = "Старший журналист";
case 4:rangz = "Журналист";
case 3:rangz = "Радиотехник";
case 2:rangz = "Верстальщик новостей";
case 1:rangz = "Начинающий работник";}}
case 30:{
switch(PlayerInfo[playerid][pRang]){
case 10:rangz = "Директор ТВ-центра";
case 9:rangz = "Управляющий студией";
case 8:rangz = "Ведущий";
case 7:rangz = "Режиссёр";
case 6:rangz = "Звукорежиссёр";
case 5:rangz = "Оператор";
case 4:rangz = "Светотехник";
case 3:rangz = "Телемастер";
case 2:rangz = "Помощник телемастера";
case 1:rangz = "Помощник редакций";}}
case 14:{
switch(PlayerInfo[playerid][pRang]){
case 10:rangz = "Управляющий СМИ";}}}
format(texts, sizeof(texts), "{228B22}Объявление проверил %s %s[%d]", rangz, GN(playerid), playerid),SendClientMessageToAll(-1,texts);
ADV[OBV[playerid]] = 0,OBV [playerid]= 501,ADVERTISE = 0;
}
else
{
GetPlayerName(playerid, name, sizeof(name));
format(texts, sizeof(texts), "%s | Отправил %s[%d] (тел. %d)",  (inputtext), sendername,OBV[playerid],PlayerInfo[OBV[playerid]][pNumber]);
SendClientMessageToAll(TEAM_GROVE_COLOR,texts);
new rangz[256];
switch(PlayerInfo[playerid][pMember]){
case 15,16,17:{
switch(PlayerInfo[playerid][pRang]){
case 10:rangz = "Директор радиоцентра";
case 9:rangz = "Главный редактор";
case 8:rangz = "Редактор";
case 7:rangz = "Попощник редактора";
case 6:rangz = "Корректор";
case 5:rangz = "Старший журналист";
case 4:rangz = "Журналист";
case 3:rangz = "Радиотехник";
case 2:rangz = "Верстальщик новостей";
case 1:rangz = "Начинающий работник";}}
case 30:{
switch(PlayerInfo[playerid][pRang]){
case 10:rangz = "Директор ТВ-центра";
case 9:rangz = "Управляющий студией";
case 8:rangz = "Ведущий";
case 7:rangz = "Режиссёр";
case 6:rangz = "Звукорежиссёр";
case 5:rangz = "Оператор";
case 4:rangz = "Светотехник";
case 3:rangz = "Телемастер";
case 2:rangz = "Помощник телемастера";
case 1:rangz = "Помощник редакций";}}
case 14:{
switch(PlayerInfo[playerid][pRang]){
case 10:rangz = "Управляющий СМИ";}}}
format(texts, sizeof(texts), "{228B22}Объявление отредактировал %s %s[%d]", rangz, GN(playerid), 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(player id, COLOR_YELLOW, string);
new rangz[256];
switch(PlayerInfo[playerid][pMember]){
case 15,16,17:{
switch(PlayerInfo[playerid][pRang]){
case 10:rangz = "Директор радиоцентра";
case 9:rangz = "Главный редактор";
case 8:rangz = "Редактор";
case 7:rangz = "Попощник редактора";
case 6:rangz = "Корректор";
case 5:rangz = "Старший журналист";
case 4:rangz = "Журналист";
case 3:rangz = "Радиотехник";
case 2:rangz = "Верстальщик новостей";
case 1:rangz = "Начинающий работник";}}
case 30:{
switch(PlayerInfo[playerid][pRang]){
case 10:rangz = "Директор ТВ-центра";
case 9:rangz = "Управляющий студией";
case 8:rangz = "Ведущий";
case 7:rangz = "Режиссёр";
case 6:rangz = "Звукорежиссёр";
case 5:rangz = "Оператор";
case 4:rangz = "Светотехник";
case 3:rangz = "Телемастер";
case 2:rangz = "Помощник телемастера";
case 1:rangz = "Помощник редакций";}}
case 14:{
switch(PlayerInfo[playerid][pRang]){
case 10:rangz = "Управляющий СМИ";}}}
format(string, sizeof(string), "{FF6600}%s %s[%d] отклонил объявление. Причина: %s",rangz, sendername, playerid, (inputtext)),SendClientMessage(OBV[playerid], COLOR_YELLOW, string);
ADV[OBV[playerid]] = 0,OBV [playerid]= 501,ADVERTISE = 0;
}
}
  • Страница 1 из 1
  • 1
Поиск: