- Регистрация
- 4 Авг 2013
- Сообщения
- 465
- Лучшие ответы
- 0
- Репутация
- 42
Здравствуйте пользователи портала pawno-info!
Сегодня я бы хотел показать вам новую интересную работу "Торговец пиццей".
Суть работы заключается в том что вы устраиваетесь на работу Торговец пиццей, берёте свободный мопед и ищите клиентов,
находите клиента и предлагаете уму купить у вас пиццу за установленную вами сумму, игрок может согласится на покупку клавишей Y или отказаться N.
После того как игрок покупает у вас пиццу у него в руках она появляется, дальше он может скушать ей нажав правую кнопку мыши.
Не где не видел ранее такой работы, поэтому решил написать её.Надеюсь вам понравится,данной работы я не видел на портале,поэтому решил выложить.
Код
Скриншоты
Автор: Jack_Shepard
Сегодня я бы хотел показать вам новую интересную работу "Торговец пиццей".
Суть работы заключается в том что вы устраиваетесь на работу Торговец пиццей, берёте свободный мопед и ищите клиентов,
находите клиента и предлагаете уму купить у вас пиццу за установленную вами сумму, игрок может согласится на покупку клавишей Y или отказаться N.
После того как игрок покупает у вас пиццу у него в руках она появляется, дальше он может скушать ей нажав правую кнопку мыши.
Не где не видел ранее такой работы, поэтому решил написать её.Надеюсь вам понравится,данной работы я не видел на портале,поэтому решил выложить.
Код
В начало мода добавим две глобальные переменные:
В public OnGameModeInit() добавим пикап и мопеды:
Теперь в public OnDialogResponse:
В public OnPlayerDisconnect:
Теперь в public OnPlayerDeath
В public OnPlayerPickUpPickup:
В public OnPlayerKeyStateChange:
Теперь добавим две команды:
PHP:
new
pizza_car[2],
pizza_job
;
PHP:
pizza_car[0] = AddStaticVehicleEx(448, 1892.4830, 2075.0967, 10.3505, 64.6200, -1, -1, 100);
AddStaticVehicleEx(448, 1892.4830, 2077.5967, 10.3505, 64.6200, -1, -1, 100);
AddStaticVehicleEx(448, 1892.4830, 2080.0967, 10.3505, 64.6200, -1, -1, 100);
AddStaticVehicleEx(448, 1892.4830, 2082.0967, 10.3505, 64.6200, -1, -1, 100);
AddStaticVehicleEx(448, 1892.4830, 2084.5967, 10.3505, 64.6200, -1, -1, 100);
pizza_car[1] = AddStaticVehicleEx(448, 1892.4830, 2087.5967, 10.3505, 64.6200, -1, -1, 100);
pizza_job = CreatePickup(2814, 23, 1213.5382, -1318.3356, 13.4798);
PHP:
case 185:
{
if(!response) return true;
switch(GetPVarInt(playerid, "job_pizza"))
{
case 0:
{
SetPVarInt(playerid, "job_pizza", 1);
SendClientMessage(playerid, 0x27C400FF, "Вы начали рабочий день Развозчика пиццы.");
SendClientMessage(playerid, 0x27C400FF, "Возьмите свободный мопед и ищите покупателей.");
SendClientMessage(playerid, 0x27C400FF, "Команды:");
SendClientMessage(playerid, -1, "/sellpizza [ид игрока] [цена] - Предложить игроку купить у вас пиццу.");
SendClientMessage(playerid, -1, "/offpizza - Чтобы отменить предложение.");
SetPlayerSkin(playerid, 167); /*Выдаём временный скин*/
}
case 1:
{
SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]); // выдаём прежней скин
SendClientMessage(playerid, 0xFF6347AA, "Вы закончили рабочий день.");
DeletePVar(playerid, "job_pizza");
DeletePVar(playerid, "pizza_buy");
DeletePVar(playerid, "player_transfer");
DeletePVar(playerid, "player_price");
}
}
}
PHP:
if(GetPVarInt(playerid, "job_pizza") > 0)
{
DeletePVar(playerid, "pizza_buy");
DeletePVar(playerid, "player_transfer");
DeletePVar(playerid, "player_price");
}
PHP:
if(GetPVarInt(playerid, "job_pizza") > 0)
{
SendClientMessage(playerid, 0xFF6347AA, "Вы погибли рабочий день завершён.");
DeletePVar(playerid, "pizza_buy");
DeletePVar(playerid, "player_transfer");
DeletePVar(playerid, "player_price");
DeletePVar(playerid, "job_pizza");
}
PHP:
if(pickupid == pizza_job)
{
if(GetPVarInt(playerid, "job_pizza") == 0) ShowPlayerDialog(playerid, 185, DIALOG_STYLE_MSGBOX, "Торговец пиццей", "\
Вы хотите начать работу торговец пиццей?\
", "Начать", "Закрыть");
else if(GetPVarInt(playerid, "job_pizza") == 1) return ShowPlayerDialog(playerid, 185, DIALOG_STYLE_MSGBOX, "Торговец пиццей", "\
Вы хотите закончить работу торговец пиццей?\
", "Закончить", "Закрыть");
}
PHP:
if(newkeys == KEY_YES)
{
if(GetPVarInt(playerid, "player_price") > 0)
{
static const
fmt_str0[] = "Вы приняли предложения от %s купить у него пиццу за %d$",
fmt_str1[] = "%s купил у вас пиццу за %d$";
new
str[sizeof fmt_str0 + MAX_PLAYER_NAME + 4],
i = GetPVarInt(playerid, "player_transfer"),
price = GetPVarInt(playerid, "player_price");
if(PlayerInfo[playerid][pMoney] < price) //PlayerInfo[playerid][pMoney] меняем на свою
return SendClientMessage(playerid, -1, "У вас нет столько денег");
format(str, sizeof(str), fmt_str0, PlayerInfo[i][pMoney], price); //PlayerInfo[i][pMoney] меняем на свою
SendClientMessage(playerid, 0x27C400FF, str);
format(str, sizeof(str), fmt_str1, PlayerInfo[playerid][pMoney], price); //PlayerInfo[playerid][pMoney] меняем на свою
SendClientMessage(i, 0x27C400FF, str);
PlayerInfo[i][pMoney] += price; // PlayerInfo[playerid][pMoney] меняем на свою
PlayerInfo[playerid][pMoney] -= price; // PlayerInfo[i][pMoney] меняем на свою
ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.0, 1, 0, 0, 1, 1, 1);
SetPlayerAttachedObject(playerid, 1, 2814, 5, 0.027999, 0.000000, 0.182000, -79.400093, -9.600002, 14.400002, 1.000000, 1.000000, 1.000000);
SetPlayerSpecialAction (playerid, SPECIAL_ACTION_CARRY);
SetPVarInt(playerid, "pizza_buy", 1);
DeletePVar(playerid, "player_transfer");
DeletePVar(playerid, "player_price");
}
}
if(newkeys == KEY_NO)
{
if(GetPVarInt(playerid, "player_price") > 0)
{
new i = GetPVarInt(playerid, "player_transfer");
SendClientMessage(playerid, 0xFF6347AA, "Вы отказались от покупки!");
SendClientMessage(i, 0xFF6347AA, "Игрок отказался покупать у вас пиццу!");
GameTextForPlayer(i, "~r~NO", 1500, 1);
DeletePVar(playerid, "player_transfer");
DeletePVar(playerid, "player_price");
}
}
if(newkeys == KEY_FIRE)
{
if(GetPVarInt(playerid, "pizza_buy") == 1)
{
//....
//.... здесь добавим переменную вашего хп / сытости
//....
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE);
ApplyAnimation(playerid, "FOOD", "EAT_Burger", 4.0, 0, 1, 1, 0, 0, 1);
if(IsPlayerAttachedObjectSlotUsed(playerid, 1)) RemovePlayerAttachedObject(playerid, 1);
DeletePVar(playerid, "pizza_buy");
}
}
PHP:
CMD:sellpizza(playerid, params[])
{
static const
fmt_str0[] = "Вы предложили %s купить у вас пиццу за %d$",
fmt_str1[] = "%s предлагает вам купить пиццу за %d$";
new str[sizeof fmt_str0 + MAX_PLAYER_NAME + 4];
newcar = GetPlayerVehicleID(playerid);
if(GetPVarInt(playerid, "job_pizza") != 1) return true;
if(newcar < pizza_car[0] || newcar > pizza_car[1])
return SendClientMessage(playerid, -1, "Вы должны находится на мопеде!");
if(GetPVarInt(playerid, "player_price") > 0)
return SendClientMessage(playerid, -1, "Вы уже предлагаете кому-то что-то купить!");
if(sscanf(params, "id", params[0], params[1]))
return SendClientMessage(playerid, -1, "Используйте /sellpizza [ид] [цена]");
if(params[1] < 1 || params[1] > 1000)
return SendClientMessage(playerid, -1, "Цена от 1$ до 1000$");
if(!IsPlayerConnected(params[0]))
return SendClientMessage(playerid, -1, "Такого игрока нет!");
if(IsPlayerInAnyVehicle(params[0]))
return SendClientMessage(playerid, -1, "Игрок находитесь в машине!");
format(str, sizeof(str), fmt_str0, PlayerInfo[params[0]][pName], params[1]); // PlayerInfo[playerid][pName] меняем на свою
Скриншоты
Автор: Jack_Shepard