И так, в моде Rezone RP я увидел прекрасную систему покупки/продажи автомобилей, не самую лучшую, ну да ладно. Система состоит в том, что когда вы садитесь в один из автомобилей на рынке, вы осматриваете его характеристики... (Название, ИД кара, цена)...
Первым шагом, создаем в new...
Code
new переменные(ая);
Code
у меня это new Landstalker;
Так-же надо создать пикап автосалона ( для удобности )
Code
new pickuprinok;// пикап автосалона
Потом идем в
Code
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
Там создаем кейсы (
Code
case [ID case]0:
( Создавать кейсы можно только после диалогов ) ), в моем случае это выглядит так:
Code
case 123456: // замените на свой кейс { new donate[1024]; format(donate,sizeof(donate),"%s{FFFFFF}Модель Автомобиля:\t\t {2aa2c8}Цена:\n\n",donate); format(donate,sizeof(donate),"%s{FFFFFF}Landstalker:\t\t {2aa2c8}500{00BF00} $\n",donate); SPD(playerid,17760,0,"{ffcc00}« Стоимость автомобилей »", donate, "$",""); return true; }
Далее, в этом же паблике создаем кейс продажи
Code
case 12345: { if(response) { if(PlayerInfo[playerid][pBank] < Ваша цена) { SendClientMessage(playerid,COLOR_BLUE,"У вас нет столько денег в банке!"); RemovePlayerFromVehicle(playerid); return true; } if(PlayerInfo[playerid][pPhousekey] < 0 || PlayerInfo[playerid][pPhousekey] > 666)//666 можно сделать меньше, если у вас в моде не 667 домов (666 последний) { SendClientMessage(playerid,COLOR_GRAD1,"У вас нет дома!"); RemovePlayerFromVehicle(playerid); return true; } if(PlayerInfo[playerid][pCar] != 462) { SendClientMessage(playerid,COLOR_GRAD1,"Вы уже имеете транспортное средство, продать его можно (( /sellcar and /changecar ))"); RemovePlayerFromVehicle(playerid); return 1; } PlayerInfo[playerid][pBank] -= Ваша цена; PlayerInfo[playerid][pCar] = 400;// Ид автомобиля PlayerInfo[playerid][pProz] = 100;// Проценты( если у вас в моде процентов нету, можете удалить ) SendClientMessage(playerid,0x21DD00FF,"Поздравляем вас с покупкой Landstalker"); RemovePlayerFromVehicle(playerid); return true; } else { RemovePlayerFromVehicle(playerid); return true; } }
Далее идем в
Code
public OnPlayerStateChange(playerid, newstate, oldstate)
Создаем там это:
Code
if(newcar == Landstalker)// вместо Landstalker указать название переменной { SPD(playerid,13245,0,"{ffcc00}Эконом салон",//Название автосалона "{FFFFFF}Тип автомобиля:\t Эконом класс\n\ Название:\t\t Landstalker\n\ // Название авто Номер модели:\t 400\n\ // ID авто Стоимость покупки:\t {2aa2c8}Ваша цена{00BF00} $\n\n\ // Поставите тут цену {FFFFFF}Для покупки этой модели нажмите ''Купить''\n","Купить","Отмена"); }
Landstalker - Переменная, 400 - ID авто, 308.0265,-1482.6372,24.6876 - координаты стоящего авто (где оно будет стоять, то есть авторынок), 234.3530 - угол поворота, 1 - первый цвет, 2 - второй цвет...
в
Code
public OnPlayerCommandText(playerid, cmdtext[])
Добавляем после комманды
Code
if(strcmp(cmd,"/buycar",true) == 0) { if(PlayerToPoint(10,playerid,303.2202,-1521.2681,24.5938)) return SPD(playerid,1488,0,"{ffcc00}Покупка транспорта","{FFFFFF}Перед покупкой автомобиля вам стоит ознакомиться с ценами на них","Далее",""); // 10 - кол-во координат от самой точки... playerid - игрок который написал /buycar на нужном месте, 303.2202,-1521.2681,24.5938 - координаты, надо ставить координаты пикапа... }
Эльдар, Спасибо, и за совет тоже. Мне лично понравилась эта система УСЕ ПРОДАЮ, УСЕ ПОКУПАЮ. МАЙА МИЧТА - НАБАРЫЖЫТЪ 1КК ВИРТ ШТОБЫ КУПИТЬ СИБЕ ДОМ НУБ КЛАСА НА 11 СЕРВИРЕ И МЯСАВОСКУ
Некуя не норм, к примеру этот код вообще вырезан не полностью
if(newcar == Landstalker)// вместо Landstalker указать название переменной { SPD(playerid,13245,0,"{ffcc00}Эконом салон",//Название автосалона "{FFFFFF}Тип автомобиля:\t Эконом класс\n\ Название:\t\t Landstalker\n\ // Название авто Номер модели:\t 400\n\ // ID авто Стоимость покупки:\t {2aa2c8}Ваша цена{00BF00} $\n\n\ // Поставите тут цену {FFFFFF}Для покупки этой модели нажмите ''Купить''\n","Купить","Отмена"); }
Дата: Понедельник, 15.10.2012, 16:58 | Сообщение # 8
Бывалый
Сообщений: 534
Статус: Offline
[CM]PAF, этого кода, хватает для работоспособности скрипта, а насчет вырезания, это да, к тому-же написано что вырезано... Насчет кривости, это тебе надо скриптера моего бывшего хвалить, я после него переписывал систему до степени этого урока... И, спасибо за критику