-
Sziasztok.
Javitom.Elnézést.
Van egy repülős munkám amben belekell hogy ülj egy repülőbe és beirni hogy /repulomunka
ekkor kidob 3 mapicont 3 kordinátával.Elkell repülni valamelyikhez és ha ott vagy akkor be irod hogy /letesz és kapsz 1200$ árt nos az a baj hogy a sok troll be irná egymás után vagy 80x hogy /letesz és igy 80xkapna 1200$ ugyan azon ahelyen megmozdulás nélkül. Ezt kellene valahogy gátlásolni
KÓD:
CMD:levesz(playerid,params[])
{
if(IsPlayerInRangeOfPoint(playerid, 15.0, -1491.1643,2.5248,14.1484)) // Repülő 1
RemovePlayerMapIcon(playerid, 21);
GivePlayerMoney(playerid,400);
SendClientMessage(playerid,Piros,\"Itt van 400$ de elnemond a fönöködnek!\");
} else
if(IsPlayerInRangeOfPoint(playerid, 15.0, 216.5060,2499.6987,16.4844)) // Repülő 2
{
RemovePlayerMapIcon(playerid, 22);
} else
if(IsPlayerInRangeOfPoint(playerid, 15.0, 1477.1128,1505.4510,10.8203)) // Repülő 3
{
RemovePlayerMapIcon(playerid, 23);
SetPlayerMapIcon(playerid, 24, 1926.1964,-2416.1304,13.5391, 41, 0, MAPICON_GLOBAL);
} else
if(IsPlayerInRangeOfPoint(playerid, 30.0, 1926.1964,-2416.1304,13.5391)) //Repülő 4
{
SendClientMessage(playerid,Piros,\"Már levetted a csomagot!\");
}
else
RemovePlayerMapIcon(playerid, 24);
GivePlayerMoney(playerid,1200);
SendClientMessage(playerid,Piros,\"Sikeresen végrehajtotttad a feladatott ezért kapsz 1200$\");
}
}
else SendClientMessage(playerid,Piros,\"Nem vagy a megadott helyen!\");
return 1;
}
-
Szia.
Kérlek próbáld meg jobban elmagyarázni, hogy mi a gond, mi kéne, vagy mi nem, mert így sokat nem értünk abból amit leírtál.
Tisztelettel Szilikee.
-
Javitva
-
Ez így sehogy se jó. Keversz mindent mindennel, az if-ek és else-k rossz helyen vannak, 3 koordinátát használsz elvileg, de itt van 4 is. Próbáld meg azt leírni, hogy melyik 3 koordináta az, ahol le kell adnia a csomagot, és úgy tudok segíteni.
-
Jaaaaaaj Az mind1 lehet 4 is nekem csak az a megoldás kellene ami gátlásolja vegyük példának ez a 3 kordit :
-1491.1643,2.5248,14.1484
216.5060,2499.6987,16.4844
1477.1128,1505.4510,10.8203
Erre a 3 kordira kell elrepülnöm.De csak 1 parancsal a /levesz el akarok mind a 3 helyen levenni xD külömbözőő jutalmakkal.
-
Hozz létre egy globális változót:
new valami[MAX_PLAYERS];
Mikor a játékos beírja hogy /repulosmunka adj neki egy értéket :
valami[playerid]= 1;
Mikor beírja hogy /lerak lekérdezed :
if(valami[playerid] == 1)
{
// ad neki pénzt mindent.
valami[playerid]=0; // lenullázod az értéket
}
else
{
// visszajelzést küldesz hogy lepakolta
}
-
// Globális változó:
new levehet[MAX_PLAYERS]; // Ezzel annyi a feladatod, amikor /repulosmunka vagy mit beír, hogy dolgozzon, adsz neki egy értéket:
// levehet[playerid] = 1;
CMD:levesz(playerid)
{
if(levehet[playerid] == 0) return SendClientMessage(playerid, Piros, \"Nem tudsz levenni semmit!\"); // Ha már levette, vagy nincs munka, akkor nem tudja használni
if(IsPlayerInRangeOfPoint(playerid, 15.0, -1491.1643, 2.5248, 14.1484)) // Repülő 1
{
levehet[playerid] = 0;
RemovePlayerMapIcon(playerid, 21);
GivePlayerMoney(playerid, 400);
SendClientMessage(playerid, Piros, \"Itt van 400$.\");
}
else if(IsPlayerInRangeOfPoint(playerid, 15.0, 216.5060, 2499.6987, 16.4844)) // Repülő 2
{
levehet[playerid] = 0;
RemovePlayerMapIcon(playerid, 22);
GivePlayerMoney(playerid, 600);
SendClientMessage(playerid, Piros, \"Itt van 600$.\");
}
else if(IsPlayerInRangeOfPoint(playerid, 15.0, 1477.1128, 1505.4510, 10.8203)) // Repülő 3
{
levehet[playerid] = 0;
RemovePlayerMapIcon(playerid, 23);
GivePlayerMoney(playerid, 800);
SendClientMessage(playerid, Piros, \"Itt van 800$.\");
}
else SendClientMessage(playerid, Piros, \"Nem vagy a megadott helyen!\");
return 1;
}
-
Köszönöm szilikee1998 Válasza alapján átrendeztem a sorokat és müködik :)
Hawky A tied is jó csak már megcsináltam köszönöm neked is. :)