qwe123
Умник
Всем привет я расскажу как создать работу "шахтера"
Это мой самый первый урок так что не судите строго =)
И так начнем
1. Вначале добавим ко всем new:
2. После того как создали переменную, добавим в pInfo:
3. Потом в public OnPlayerConnect(playerid) добавим:
4. Теперь нам надо создать функцию для диалогового окна, значит ищем public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) и туда добавляем:
5. Далее вставляем в public OnPlayerEnterRaceCheckpoint(playerid):
6.Теперь мы добавим функцию пикапа, это находится в public OnPlayerPickUpPickup(playerid, pickupid) и туда вставляем.:
7.Теперь нужно добавить сам пикап где мы будем брать работу. Добавляем в public OnGameModeInit():
8. Далее добавляем ко всем forward:
9.потом кидаем в конец мода:
Ну вот и все работа сделана.
Это мой самый первый урок так что не судите строго =)
И так начнем
1. Вначале добавим ко всем new:
PHP:
new SahtJob[MAX_PLAYERS];
new SahtCheck[MAX_PLAYERS];
new SahtMoney[MAX_PLAYERS];
new sahtpic;
new pSaht[MAX_PLAYERS];
enum
{
CHECKPOINT_1,
CHECKPOINT_2,
}
PHP:
psaht,
3. Потом в public OnPlayerConnect(playerid) добавим:
PHP:
SahtJob[playerid] = 0 ; SahtCheck[playerid] = 0; SahtMoney[playerid] = 0;
4. Теперь нам надо создать функцию для диалогового окна, значит ищем public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) и туда добавляем:
PHP:
case 3333: //// 3333-это id диалога можете заменить на свой
{
if(response)
{
if(PlayerInfo[playerid][psaht] > 0) return SendClientMessage(playerid, COLOR_GRAD1,"Вы уже начали работу");
Oldminerskin[playerid] = GetPlayerSkin(playerid);
SetPlayerSkin(playerid,16);
PlayerInfo[playerid][psaht] += 1;
SendClientMessage(playerid, COLOR_WHITE, "Вы начали работу");
SahtJob[playerid] = 1;
pSaht[playerid] = CHECKPOINT_1;
SetPlayerRaceCheckpoint(playerid,0,-1868.3579,-1715.9572,21.7500,-1862.0334,-1652.2224,25.8105,1.0);
format(string, sizeof(string), "Перенесено км %d ",SahtCheck[playerid] * (25 + random(2)));
SendClientMessage(playerid,COLOR_GREEN,string);
}
else
{
if(PlayerInfo[playerid][psaht] < 1) return SendClientMessage(playerid, COLOR_GRAD1,"Вы еще не начинали работу");
PlayerInfo[playerid][psaht] -= 1;
SetPlayerSkin(playerid, Oldminerskin[playerid]);
SendClientMessage(playerid, COLOR_WHITE, "Вы закончили работу");
PlayerInfo[playerid][pCash] += SahtCheck[playerid] * (50 + random(2));
format(string, sizeof(string), "Вами заработано: %d вирт.", SahtCheck[playerid] * (50 + random(2)));
SendClientMessage(playerid, TEAM_BLUE_COLOR, string);
Delete3DTextLabel(fare3dtext[playerid]);
SahtJob[playerid] = 0;
SahtCheck[playerid] = 0;
SahtMoney[playerid] = 0;
DisablePlayerRaceCheckpoint(playerid);
}
}
PHP:
if(SahtJob[playerid] == 1)
{
switch(pSaht[playerid])
{
case CHECKPOINT_1:
{
if(IsPlayerAttachedObjectSlotUsed(playerid, 3)) RemovePlayerAttachedObject(playerid, 3);
SahtCheck[playerid]++;
format(string, sizeof(string), "Перенесено %d кг",SahtCheck[playerid] * (25 + random(2)));
SendClientMessage(playerid,COLOR_GREEN,string);
pSaht[playerid] = CHECKPOINT_2;
SetPlayerRaceCheckpoint(playerid, 0,-1862.0334,-1652.2224,25.8105,-1868.3579,-1715.9572,21.7500, 1.0);
}
case CHECKPOINT_2:
{
if(IsPlayerAttachedObjectSlotUsed(playerid, 3)) RemovePlayerAttachedObject(playerid, 3);
SetPlayerAttachedObject( playerid, 3, 0, 1, -0.073969, 0.349906, 0.065601, 331.510559, 271.870788, 321.750610, 0.831871, 1.000000, 0.748390 );
SendClientMessage(playerid,-1,"Вы начали добычу угля.");
ApplyAnimation(playerid,"SWORD","sword_4",4.1,1,1,1,0,0);
SetTimerEx("minertimer1",5000,0,"%d",playerid); //это секундомер сколько будет длится анимация стандартно 5сек
pSaht[playerid] = CHECKPOINT_1;
SetPlayerAttachedObject( playerid, 3, 18634, 6, 0.078222, 0.000000, 0.110844, 298.897308, 264.126861, 193.350555, 1.000000, 1.000000, 1.000000 );
SetPlayerAttachedObject( playerid, 3, 5045, 6, 0.078222, 0.000000, 0.110844, 298.897308, 264.126861, 193.350555, 1.000000, 1.000000, 1.000000 );
SetPlayerRaceCheckpoint(playerid, 0,-1868.3579,-1715.9572,21.7500,-1862.0334,-1652.2224,25.8105, 1.0);
}
}
}
PHP:
else if(pickupid == sahtpic) //
{
ShowPlayerDialog(playerid,3333,DIALOG_STYLE_MSGBOX,"Устройство на работу","Нажмите начать или завершить","Начать","Завершить");
}
PHP:
sahtpic = CreatePickup(1314,23,-1863.6958,-1560.1963,21.7500);//
PHP:
forward minertimer1(playerid);
9.потом кидаем в конец мода:
PHP:
public minertimer1(playerid)
{
ApplyAnimation(playerid,"CARRY","crry_prtial",4.1,0,1,1,1,1);
SendClientMessage(playerid,-1,"Вы добыли уголь теперь отнесите его на переработку");
return 1;
}
Последнее редактирование:
