|
Оффлайн
Понедельник, 26.08.2013, 13:01 | Сообщение # 1
|
|
Здравствуйте, ув.пользователи 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; } } |
|