ihNNNNNify
Мастер
Работа шахтера/грузчика.
[HR][/HR]
Делал работу по заказу, но как оказалось у заказчика не было кэша, поэтому эту работу выкладываю на форум.
Версия работы еще сырая, осталось совсем ничего довести до ума.
[HR][/HR]
Делал работу по заказу, но как оказалось у заказчика не было кэша, поэтому эту работу выкладываю на форум.
Версия работы еще сырая, осталось совсем ничего довести до ума.
Ко всем new
PHP:
new
pickup_job_miner,
p_ADD_SKLAD [MAX_PLAYERS char],
p_MONEY_JOB [MAX_PLAYERS char],
pickup_sklad_job_miner;
new
Float: checkpoint_miner[2][3] =
{
{1660.1475, -1820.7291, 13.5545},
{1660.1533, -1807.2557, 13.5525}
};
Ко всем #define
PHP:
#define DIALOG_INVITE_MINER 2442
#define DIALOG_UNINVITE_MINER_LEAVE 4224
В OnPlayerPickUpPickup
PHP:
if(pickupid == pickup_job_miner)
{
if(GetPVarInt(playerid, !"if_p_job") == 1)
{
ShowPlayerDialog(playerid,
DIALOG_UNINVITE_MINER_LEAVE,
DIALOG_STYLE_MSGBOX,
!"{C05D1B}Увольнение с работы 'Шахтера'",
!"{FFFFFF}Вы действительно хотите закончить работу шахтера?\n\
{FFFFFF}Для того чтобы Уволиться нажмите \"Уволиться\", иначе \"Выход\"",
!"Уволиться", !"Выход");
}
else ShowPlayerDialog(playerid,
DIALOG_INVITE_MINER,
DIALOG_STYLE_MSGBOX,
!"{C05D1B}Устройство на работу 'Шахтера'",
!"{FFFFFF}Вы действительно хотите начать работу шахтера?\n\n\
{CCFC7F}- Зарплата составляет от {06FF5A}150 {CCFC7F}до {06FF5A}250.\n\
{CCFC7F}- Бесплатное питание, во время обеда.\n\
{CCFC7F}- Бесплатный проезд с и до работы.\n\
{CCFC7F}- У нас работают самые лучшие кураторы.\n\
{CCFC7F}- От куратора вы можете получить премию\n\n\
{FFFFFF}Для того чтобы устроиться на работу нажмите \"Устроиться\", иначе \"Выход\"",
!"Устроиться", !"Выход");
}
iif(pickupid == pickup_sklad_job_miner)
{
if(GetPVarInt(playerid, !"start_job") == 3)
{
ApplyAnimation(playerid, !"CARRY", !"putdwn", 2.05, 1, 0, 0, 0, 900);
p_ADD_SKLAD{playerid} = random(60);
p_MONEY_JOB{playerid} = p_MONEY_JOB{playerid} + p_ADD_SKLAD{playerid};
DisablePlayerCheckpoint(playerid);
static const
fmt_str_sklad[] = "Вы успешно перенесли {721729}%d кг {FFFFFF}чего то не придумал. Общая сумма составляет: {721729}%d кг {FFFFFF}чего то не придумал.";
static
str_sklad[sizeof(fmt_str_sklad) + 2 + 5 - 4];
format(str_sklad, sizeof(str_sklad), fmt_str_sklad, p_ADD_SKLAD{playerid}, p_MONEY_JOB{playerid});
SendClientMessage(playerid, -1, str_sklad);
p_ADD_SKLAD{playerid} = 0;
RemovePlayerAttachedObject(playerid, 0);
NEXT_CHECKPPOINT(playerid);
SetPlayerAttachedObject( playerid, 3, 18634, 6, 0.078222, 0.000000, 0.110844, 298.897308, 264.126861, 193.350555, 1.000000, 1.000000, 1.000000 );
DeletePVar(playerid, !"start_job");
}
}
В OnDialogResponse
PHP:
case DIALOG_INVITE_MINER:
{
if(!response) return true;
SetPVarInt(playerid, !"if_p_job", 1);
SendClientMessage(playerid, -1, !"Вы успешно устроились на работу шахтера.");
SendClientMessage(playerid, -1, !"Отправляйтесь на место отмеченное на мини-карте.");
SetPlayerSkin(playerid, 16);
SetPlayerAttachedObject( playerid, 3, 18634, 6, 0.078222, 0.000000, 0.110844, 298.897308, 264.126861, 193.350555, 1.000000, 1.000000, 1.000000 );
NEXT_CHECKPPOINT(playerid);
}
case DIALOG_UNINVITE_MINER_LEAVE:
{
GivePlayerMoney(playerid, p_MONEY_JOB{playerid}*2);
static const
fmt_str_end [ ] = "Ваш заработок за сегодня составил - {721729}%d";
static
str_end[ sizeof(fmt_str_end) + 6 - 2 ]
;
format ( str_end, sizeof(str_end), fmt_str_end, p_MONEY_JOB{playerid}*2 );
SendClientMessage(playerid, -1, str_end);
SendClientMessage(playerid, -1, !"Вы успешно уволились с работы шахтера.");
SetPlayerSkin(playerid, Pinfo[playerid][pSkin]);
RemovePlayerAttachedObject(playerid, 3);
RemovePlayerAttachedObject(playerid, 0);
DeletePVar(playerid, !"if_p_job");
p_ADD_SKLAD{playerid} = 0;
DisablePlayerCheckpoint(playerid);
DeletePVar(playerid, !"start_job");
}
В OnGameModeInit
PHP:
pickup_job_miner = CreatePickup (1275, 2, 1654.9946,-1837.2703,13.5468);
pickup_sklad_job_miner = CreatePickup (2060, 23, 1646.4149,-1833.3058,13.5469);
В OnPlayerKeyStateChange
PHP:
if((((newkeys & KEY_SPRINT) && (newkeys & KEY_JUMP)) || (newkeys == KEY_FIRE) || (newkeys & KEY_SECONDARY_ATTACK || (newkeys & KEY_SUBMISSION && newkeys & KEY_SECONDARY_ATTACK ))) && GetPVarInt(playerid, !"start_job") == 3)
{
SendClientMessage(playerid, -1, !"Вы уронили Мешок, возьмите новый и перенесите его аккуратней чем предыдущий.");
RemovePlayerAttachedObject(playerid, 0);
NEXT_CHECKPPOINT(playerid);
SetPlayerAttachedObject( playerid, 3, 18634, 6, 0.078222, 0.000000, 0.110844, 298.897308, 264.126861, 193.350555, 1.000000, 1.000000, 1.000000 );
DeletePVar(playerid, !"start_job");
return true;
}
В OnPlayerEnterCheckpoint
PHP:
if(GetPVarInt(playerid, !"if_p_job") == 1)
{
SendClientMessage(playerid, -1, !"Вы начали добывать что то еще не придумал");
ApplyAnimation(playerid, !"SWORD", !"sword_4", 4.1, 1, 1, 1, 0, 0);
SetTimerEx(!"M_TIMER", 5000, 0, !"i", playerid);
}
В конец мода
PHP:
forward
M_TIMER(playerid);
public
M_TIMER(playerid)
{
RemovePlayerAttachedObject(playerid, 3);
SendClientMessage(playerid, -1, !"Вы успешно добыли что то еще не придумал, отправляйтесь на склад.");
SetPlayerAttachedObject(playerid, 0, 2060, 5, 0.2, 0.12, 0.12, -84.0, 0.0, 105.0);
ClearAnimations(playerid, true);
DisablePlayerCheckpoint(playerid);
SetPVarInt(playerid, !"start_job", 3);
ApplyAnimation(playerid, !"CARRY", !"CRRY_PRTIAL", 4.1, 0, 1, 1, 1, 1, 1);
return true;
}
stock NEXT_CHECKPPOINT(playerid)
{
new
prandom = random(2)
;
SetPlayerCheckpoint(playerid, checkpoint_miner[prandom][0], checkpoint_miner[prandom][1], checkpoint_miner[prandom][2], 1.0);
}
[HR][/HR]
Последнее редактирование:
