Merlin
Умник
Автор : -Merlin-
Система с 0
[HR][/HR]
К #define добавим
[HR][/HR]
Переменный new добавим
[HR][/HR]
Далее в public OnGameModeInit() добавим пикап.
[HR][/HR]
Далее в public OnPlayerConnect(playerid) добавим _
[HR][/HR]
Далее в public OnPlayerEnterCheckpoint(playerid) мы добавим.
[HR][/HR]
В public OnPlayerPickUpPickup(playerid, pickupid) добавим
[HR][/HR]
В public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
[HR][/HR]
К CreateObjects добавим
[HR][/HR]
В конец мода
[HR][/HR]
Система с 0
[HR][/HR]
К #define добавим
PHP:
#define MERLINv 100
#define MERLINw 101
Переменный new добавим
PHP:
new actions_merlina[MAX_PLAYERS],
recei_ving[MAX_PLAYERS],
recei_vinog[MAX_PLAYERS],
the_work,
str_pawn[MAX_PLAYERS]
;
Далее в public OnGameModeInit() добавим пикап.
PHP:
the_work = CreatePickup(1275, 23, 1786.3691,-2027.0892,13.4888, 0);
//Создает пикап - вращающийся объект, который можно подобрать.
Далее в public OnPlayerConnect(playerid) добавим _
PHP:
actions_merlina[playerid] = 0;
recei_ving[playerid] = 0;
recei_vinog[playerid] = 0;
Далее в public OnPlayerEnterCheckpoint(playerid) мы добавим.
PHP:
if(PlayerToPoint(2.0, playerid, 1736.3735,-2062.6931,13.6186))
//Проверяет, если игрок находится в радиусе действия точки.
{
recei_vinog[playerid] = 1;
ApplyAnimation(playerid,"CARRY","crry_prtial",4.1,0,1,1,1,1);
// Анамация
SetPlayerAttachedObject(playerid, 1 , 2358, 1,0.11,0.36,0.0,0.0,90.0);
// Выдаёт Обьект
ApplyAnimation(playerid,"CARRY","crry_prtial",4.1,0,1,1,1,1);
// Анамация
SetPlayerCheckpoint(playerid, 1787.4537,-2058.5923,13.8380, 2.0);
// Появления CheckpointА
return true;
}
if(PlayerToPoint(2.0, playerid,1787.4537,-2058.5923,13.8380))
//Проверяет, если игрок находится в радиусе действия точки.
{
SetPVarInt(playerid,"deistvia",1);
//Получает значение указанной PVar игрока как целое число.
ApplyAnimation(playerid,"PED","IDLE_tired",4.1,0,1,1,0,1);
// Анамация
if(IsPlayerAttachedObjectSlotUsed(playerid,1)) RemovePlayerAttachedObject(playerid,1);
//если игрок имеет присоединенный объект в заданной позиции индекса | 1 + Удаляет
SetPlayerAttachedObject(playerid,1, 18635, 14, 0.264531, 0.121060, 0.022172, 279.757507, 164.484985, 184.886245);
// Молоток
SetPlayerAttachedObject(playerid,2, 18644, 13, 0.334366, 0.015833, -0.035214, 294.913085, 188.347946, 235.000213);
// Отвёртка
ApplyAnimation(playerid, "BOMBER","BOM_Plant_Loop",4.0,1,0,0,0,0);
// Анимация
str_pawn[playerid] = SetTimerEx("str_Ika",9800,false,"i",playerid);
return true;
}
В public OnPlayerPickUpPickup(playerid, pickupid) добавим
PHP:
if(pickupid == the_work)
{
if(actions_merlina[playerid] == 1)
SPD(playerid,MERLINw,0,"Работа \"Ваш text\"","Вы действительно хотите уволиться с работы?","Да","Нет");
else SPD(playerid,MERLINv,0,"Работа \"Ваш text\"","Вы собираетесь устроиться рабочим на стройку?\n","Да","Нет");
}
В public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
PHP:
case MERLINv:
{
if(response)
{
if(actions_merlina[playerid] == 1)
return send(playerid, "ERROR: Вы уже устроины.");
actions_merlina[playerid] = 1;
SetPlayerSkin(playerid, 16);
//скин
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid, 1736.3735,-2062.6931,13.6186, 2.0);
SendClientMessage(playerid, COLOR_RED, "{0092F7}Рабочий день начат.");
}
}
case MERLINw:
{
if(response)
{
new string[128];
if(actions_merlina[playerid] == 0)
return SendClientMessage(playerid, COLOR_GREY, "ERROR : Сначала подойдите к пикапу");
PlayerInfo[playerid][pCash] += recei_ving[playerid];
format(string, sizeof(string), "{0092F7} Вы заработали за построение: {34c924}%d$", recei_ving[playerid]);
SendClientMessage(playerid, -1, string);
actions_merlina[playerid] = 0;
DisablePlayerCheckpoint(playerid);
}
}
К CreateObjects добавим
PHP:
CreateObject(1224,-4444.7348633,-6770.6469727,15.7498207,0.0000000,0.0000000,0.0000000); //object(woodenbox) (1)
CreateObject(16327,1787.4224854,-2056.1821289,12.5832815,0.0000000,0.0000000,0.0000000); //object(des_bycontowr) (1)
CreateObject(3932,1732.9362793,-2056.6000977,14.3646975,0.0000000,0.0000000,0.0000000); //object(hanger) (1)
CreateObject(3932,1732.9362793,-2063.2109375,14.3646975,0.0000000,0.0000000,0.0000000); //object(hanger) (2)
CreateObject(16302,1732.7843018,-2063.5639648,8.6962948,0.0000000,0.0000000,0.0000000); //object(des_gravelpile04) (2)
CreateObject(16305,1734.5866699,-2062.7731934,13.2931442,0.0000000,0.0000000,0.0000000); //object(des_gravelpile06) (1)
CreateObject(16317,1733.3035889,-2055.7863770,9.8423243,0.0000000,0.0000000,314.0000000); //object(des_quarstmound_03) (1)
CreateObject(3941,1797.7923584,-2022.3183594,15.6859379,0.0000000,0.0000000,271.9999390); //object(comms02) (1)
В конец мода
PHP:
forward OverallHeadrs();
public OverallHeadrs()
{
for(new i=0; i<GetMaxPlayers(); i++)
//Возвращает максимальное количество игроков, которые могут присоединиться к серверу
{
if(actions_merlina[i] != 0 && !PlayerToPoint(40.0,i, 1787.4537,-2058.5923,13.8380))
//Проверяет, если игрок находится в радиусе действия точки.
{
send(i, "{0092F7} Вы ушли слишком далеко от стройки.");
// Проверка
recei_ving[i] = 0;
actions_merlina[i] = 0;
DisablePlayerCheckpoint(i);
// DELETE CheckpointA
SetPlayerSkin(i,PlayerInfo[i][pSkin]);
}
}
return 1;
}
forward str_Ika(playerid);
public str_Ika(playerid)
{
if(GetPVarInt(playerid,"deistvia") == 1)
//Получает значение указанной PVar игрока как целое число.
{
static
string[88];
if(IsPlayerAttachedObjectSlotUsed(playerid,1))
//если игрок имеет присоединенный объект в заданной позиции индекса | 1
RemovePlayerAttachedObject(playerid,1);
//Удалить прикрепленный объект от игрока.
if(IsPlayerAttachedObjectSlotUsed(playerid,2))
//если игрок имеет присоединенный объект в заданной позиции индекса | 2
RemovePlayerAttachedObject(playerid,2);
//Удалить прикрепленный объект от игрока.
ClearAnimations(playerid);
//Очищает все анимации для данного игрока
recei_ving[playerid]++;
recei_vinog[playerid] = 0;
format(string, sizeof(string), "{0092F7}Перенесено строительных материалов: {34c924}%d кг.",recei_ving[playerid]);
SendClientMessage(playerid, -1, string);
// ВЫДАЁТСЯ ТЕКС
SetPlayerCheckpoint(playerid, 1736.3735,-2062.6931,13.6186, 2.0);
//При заходе на Checkpoint
}
}
Система Реализуем на 70%
Последнее редактирование:
