PDA

Просмотр полной версии : [Вопрос] Работа грузчика.



kala4iks
19.02.2017, 17:04
Добрый день, при создании работы грузчика решил переделать


SetPlayerCheckpoint На
SetPlayerRaceCheckpoint но теперь не берет мешки.

В
public OnPlayerEnterCheckpoint(playerid)



if(PlayerToPoint(2.0,playerid,2194.3386,-2285.3184,15.8294) || PlayerToPoint(2.0,playerid,2185.5571,-2294.2583,13.5694) || PlayerToPoint(2.0,playerid,2182.7148,-2296.9082,13.5694))
{
Meshok[playerid] = true;
ApplyAnimation(playerid,"CARRY","crry_prtial",4.1,0,1,1,1,1);
SetPlayerAttachedObject(playerid, 2, 2060, 5, 0.01, 0.1, 0.2, 100, 10, 85);
gpstochka[playerid] = SetPlayerRaceCheckpoint(playerid,1,2172.1313476563,-2255.2292480469,12.454199790955,0.0,0.0,0.0,2);
//SetPlayerCheckpoint(playerid,2172.1313476563,-2255.2292480469,12.454199790955,2.0);
}


else if(PlayerToPoint(2.0, playerid,2172.1313476563,-2255.2292480469,12.454199790955))
{
Meshok[playerid] = false;
ApplyAnimation(playerid,"PED","IDLE_tired",4.1,0,1,1,0,1);
Meshki[playerid]++;
if(IsPlayerAttachedObjectSlotUsed(playerid,2)) RemovePlayerAttachedObject(playerid,2);
f(string, "Мешков перетащено {A52A2A}%d",Meshki[playerid]);
send(playerid, COLOR_SYSTEM, string);
DisablePlayerRaceCheckpoint(playerid);
Player[playerid][pGruzSkill] += 1;
switch(random(2))
{
case 0:gpstochka[playerid] = SetPlayerRaceCheckpoint(playerid,1,2194.3386,-2285.3184,15.8294,0.0,0.0,0.0,2); //
case 1:gpstochka[playerid] = SetPlayerRaceCheckpoint(playerid,1,2185.5571,-2294.2583,13.5694,0.0,0.0,0.0,2); //
case 2:gpstochka[playerid] = SetPlayerRaceCheckpoint(playerid,1,2182.7148,-2296.9082,13.5694,0.0,0.0,0.0,2); //
}
}

в
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)



if(newkeys == KEY_SPRINT || newkeys == KEY_JUMP || newkeys == KEY_FIRE)
{
if(Meshok[playerid] == true)
{
Meshok[playerid] = false;
send(playerid, COLOR_RED, "Вы уронили мешок!");
if(IsPlayerAttachedObjectSlotUsed(playerid,2)) RemovePlayerAttachedObject(playerid,2);
ApplyAnimation(playerid,"PED","IDLE_tired",4.1,0,1,1,0,1);
switch(random(2))
{
case 0:gpstochka[playerid] = SetPlayerRaceCheckpoint(playerid,1,2194.3386,-2285.3184,15.8294,0.0,0.0,0.0,2); //
case 1:gpstochka[playerid] = SetPlayerRaceCheckpoint(playerid,1,2185.5571,-2294.2583,13.5694,0.0,0.0,0.0,2); //
case 2:gpstochka[playerid] = SetPlayerRaceCheckpoint(playerid,1,2182.7148,-2296.9082,13.5694,0.0,0.0,0.0,2); //
}
}
if(GruzM[playerid] == true)
{
GruzM[playerid] = false;
send(playerid, COLOR_RED, "Вы уронили ящик!");
if(IsPlayerAttachedObjectSlotUsed(playerid,2)) RemovePlayerAttachedObject(playerid,2);
ApplyAnimation(playerid,"PED","IDLE_tired",4.1,0,1,1,0,1);
}

}


if(IsPlayerInRangeOfPoint(playerid, 2.0,2137.5774,-2282.5496,20.6719))
{
if(Player[playerid][pLeader] > 0 || Player[playerid][pMember] > 0) return send(playerid,COLOR_RED, ""vError"Чтобы устроиться на работу, ты не должен состоять во фракции!");
send(playerid,COLOR_WHITE,""vGotov"Теперь ты работаешь грузчиком.");
send(playerid,COLOR_LIGHTBLUE,""vPod"Пройди на чекпоинт");
Player[playerid][pJob] = 7;
SetPlayerSkin(playerid, 16);
switch(random(2))
{
case 0:gpstochka[playerid] = SetPlayerRaceCheckpoint(playerid,1,2194.3386,-2285.3184,15.8294,0.0,0.0,0.0,2); //
case 1:gpstochka[playerid] = SetPlayerRaceCheckpoint(playerid,1,2185.5571,-2294.2583,13.5694,0.0,0.0,0.0,2); //
case 2:gpstochka[playerid] = SetPlayerRaceCheckpoint(playerid,1,2182.7148,-2296.9082,13.5694,0.0,0.0,0.0,2); //
}
}

Vasya_Pupkin
19.02.2017, 17:42
если ты используешь SetPlayerRaceCheckpoint
то тогда нужно в public OnPlayerEnterRaceCheckpoint(playerid) , а не в public OnPlayerEnterCheckpoint(playerid)
вроде так :agree:

kala4iks
19.02.2017, 18:06
если ты используешь SetPlayerRaceCheckpoint
то тогда нужно в public OnPlayerEnterRaceCheckpoint(playerid) , а не в public OnPlayerEnterCheckpoint(playerid)
вроде так :agree:

Ну хорошо перенес но теперь когда беру мешок не показывает куда нести.

kala4iks
19.02.2017, 20:40
Подниму.

DeimoS
20.02.2017, 12:06
А смысл переделывать на гоночные чекпоинты, если ты расположение следующего чекпоинта не указываешь? Чем тебя обычные чкпоинты не удовлетворяют?

И у тебя никогда не будет показан один из чекпоинтов в твоём switch

switch(random(2))
{
case 0:gpstochka[playerid] = SetPlayerRaceCheckpoint(playerid,1,2194.3386,-2285.3184,15.8294,0.0,0.0,0.0,2); //
case 1:gpstochka[playerid] = SetPlayerRaceCheckpoint(playerid,1,2185.5571,-2294.2583,13.5694,0.0,0.0,0.0,2); //
case 2:gpstochka[playerid] = SetPlayerRaceCheckpoint(playerid,1,2182.7148,-2296.9082,13.5694,0.0,0.0,0.0,2); //
}
Ибо число, указанное в random, не включается в "список" чисел, которые могут быть выданы функцией.
В общем, 2 на 3 поменяй

kala4iks
20.02.2017, 12:47
А смысл переделывать на гоночные чекпоинты, если ты расположение следующего чекпоинта не указываешь? Чем тебя обычные чкпоинты не удовлетворяют?

И у тебя никогда не будет показан один из чекпоинтов в твоём switch

switch(random(2))
{
case 0:gpstochka[playerid] = SetPlayerRaceCheckpoint(playerid,1,2194.3386,-2285.3184,15.8294,0.0,0.0,0.0,2); //
case 1:gpstochka[playerid] = SetPlayerRaceCheckpoint(playerid,1,2185.5571,-2294.2583,13.5694,0.0,0.0,0.0,2); //
case 2:gpstochka[playerid] = SetPlayerRaceCheckpoint(playerid,1,2182.7148,-2296.9082,13.5694,0.0,0.0,0.0,2); //
}
Ибо число, указанное в random, не включается в "список" чисел, которые могут быть выданы функцией.
В общем, 2 на 3 поменяй

Все все работает там просто забыл поставить return 1; И 2 на 3 тоже не пришлось менять все работает.

DeimoS
20.02.2017, 13:15
Все все работает там просто забыл поставить return 1; И 2 на 3 тоже не пришлось менять все работает.


for(new i; i < 100; i++) printf("%d", random(2));
И посмотри сколько раз в консоль отобразит "2" =_=

Закрыто