Ben_Lovejoy
Компетентный
Скрин:
Ко всем #define
Ко всем NEW
В public LoadStuff()
В public SaveStuff()
Далее в public OnGameModeInit()
Добавляем команды в public OnPlayerCommandText(playerid, cmdtext[])
Добавляем в public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
Потом в public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
P.S. На данный момент доска пока одна: находится она у мерии LS. Вы можите сделать 10,20 а то и больше таких досок с объявлениями! Удачи
Ко всем #define
PHP:
#define DIALOG_REKL 800
PHP:
new Text3D:ADVtext[5];//Сами объявления
new ADVid[5];//Идентификатор объявления
new ADVprice;//Цена размещения объявления
new Text3D:ADVPtext;//Переменная для обновления текста с ценой
new ADVcount = 5;//Сколько всего объявлений
new ADVname[MAX_PLAYERS][MAX_PLAYER_NAME];
PHP:
iniGetInt(File,"ADVprice",ADVprice);
PHP:
iniSetInt(File,"ADVprice",ADVprice);
PHP:
LoadStuff();
CreateObject(3077, 1507.49, -1747.54, 12.54, 0.00, 0.00, 24.50); // Доска
ADVtext[0] = Create3DTextLabel("{808080}Рекламное место свободно!",COLOR_GREEN ,1507.49, -1747.54,14.1,15,0,0);
ADVtext[1] = Create3DTextLabel("{808080}Рекламное место свободно!",COLOR_GREEN ,1507.49, -1747.54,14.5,15,0,0);
ADVtext[2] = Create3DTextLabel("{808080}Рекламное место свободно!",COLOR_GREEN ,1507.49, -1747.54,14.8,15,0,0);
ADVtext[3] = Create3DTextLabel("{808080}Рекламное место свободно!",COLOR_GREEN ,1507.49, -1747.54,15.1,15,0,0);
ADVtext[4] = Create3DTextLabel("{808080}Рекламное место свободно!",COLOR_GREEN ,1507.49, -1747.54,15.5,15,0,0);
Create3DTextLabel("{FFFFFF}Для размещения объявления используйте\nклавишу Space(Пробел)\n за объявления с матом - варн",-1,1503.8589,-1747.7847,13.5469,15,0,0);
new t[80];
format(t,80,"{FFFFFF}Свободно 5 рекламных мест | Цена размещения {008000}%d$",ADVprice);
ADVPtext = Create3DTextLabel(t,-1 ,1507.49, -1747.54,16.0,15,0,0);
PHP:
if(strcmp(cmd, "/rekldel", true) == 0)//Отчистить рекламу
{
if(PlayerInfo[playerid][pAdmin] < 3)return 1;
new t[80];
tmp = strtok(cmdtext, idx);
if(!strval(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "Использование: /rekldel [ ID объявления ]");
if(strval(tmp) < 0 && strval(tmp) > 4)return SendClientMessage(playerid,-1,"Неверный идентификатор");
if(ADVid[strval(tmp)] == 0)return SendClientMessage(playerid,-1,"Данное рекламное место не занято!");
ADVid[strval(tmp)] = 0;
Update3DTextLabelText(ADVtext[strval(tmp)],-1,"{808080}Рекламное место свободно!");
ADVcount++;
format(t,80,"{FFFFFF}Свободно %d рекламных мест | Цена размещения {008000}%d$",ADVcount,ADVprice);
Update3DTextLabelText(ADVPtext,-1,t);
return 1;
}
if(strcmp(cmd, "/reklprice", true) == 0)//Поставить цену за рекламу!
{
if(PlayerInfo[playerid][pAdmin] < 9999)return 1;
new t[80];
tmp = strtok(cmdtext, idx);
if(!strval(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "Использование: /reklprice [ Цена объявления ]");
ADVprice = strval(tmp);
format(t,80,"{FFFFFF}Свободно %d рекламных мест | Цена размещения {008000}%d$",ADVcount,ADVprice);
Update3DTextLabelText(ADVPtext,-1,t);
return 1;
}
PHP:
if(dialogid == DIALOG_REKL)
{
if(!response)return 1;
if(!strlen(inputtext))return SendClientMessage(playerid,-1,"Вы ничего не ввели!");
new texxt[250],t[80];
ADVcount--;
format(t,80,"{FFFFFF}Свободно %d рекламных мест | Цена размещения {008000}%d$",ADVcount,ADVprice);
format(texxt,sizeof(texxt),"{808080}%s\n{FFFFFF}Контакт: {00BFFF}%s",inputtext,ADVname[playerid]);
if(ADVid[0] == 0)
{
Update3DTextLabelText(ADVtext[0],-1,texxt);
Update3DTextLabelText(ADVPtext,-1,t);
ADVid[0] = 1;
GivePlayerMoney(playerid,-ADVprice);
SendClientMessage(playerid,-1,"Вы разместили объявление");
return 1;
}
if(ADVid[1] == 0)
{
Update3DTextLabelText(ADVtext[1],-1,texxt);
Update3DTextLabelText(ADVPtext,-1,t);
ADVid[1] = 1;
GivePlayerMoney(playerid,-ADVprice);
SendClientMessage(playerid,-1,"Вы разместили объявление");
return 1;
}
if(ADVid[2] == 0)
{
Update3DTextLabelText(ADVtext[2],-1,texxt);
Update3DTextLabelText(ADVPtext,-1,t);
ADVid[2] = 1;
GivePlayerMoney(playerid,-ADVprice);
SendClientMessage(playerid,-1,"Вы разместили объявление");
return 1;
}
if(ADVid[3] == 0)
{
Update3DTextLabelText(ADVtext[3],-1,texxt);
Update3DTextLabelText(ADVPtext,-1,t);
ADVid[3] = 1;
GivePlayerMoney(playerid,-ADVprice);
SendClientMessage(playerid,-1,"Вы разместили объявление");
return 1;
}
if(ADVid[4] == 0)
{
Update3DTextLabelText(ADVtext[4],-1,texxt);
Update3DTextLabelText(ADVPtext,-1,t);
ADVid[4] = 1;
GivePlayerMoney(playerid,-ADVprice);
SendClientMessage(playerid,-1,"Вы разместили объявление");
return 1;
}
}
PHP:
if(newkeys == 8)//На данный момент стоит кнопка пробел
{
if(IsPlayerInRangeOfPoint(playerid,2,1506.8970,-1746.2880,13.5469) && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
if(GetPlayerMoney(playerid) < ADVprice)return SendClientMessage(playerid,-1,"У вас не хватает денег ддя размешения объявления!");
if(ADVid[0] == 1 && ADVid[1] == 1 && ADVid[2] == 1 && ADVid[3] == 1 && ADVid[4] == 1)
return SendClientMessage(playerid,-1,"Все рекламные места заняты!");
else return ShowPlayerDialog(playerid,DIALOG_REKL,DIALOG_STYLE_INPUT,"Размещение объявления","Введите текст объявления","Дальше","Отмена");
}
}
Последнее редактирование:
