-
Sziasztok! Semilyen elméletem sincs arról hogy bírnám megcsinálni hogy a marihuana-t lelehesem adni tegyük fel xy helyen, és 1500g adhatsz le 1 órában és grammonként 1500-3000Ft adna és ez változó lenne. Valaki tudna segíteni?
-
Tessék :D
new bool:AdhatElDrogot[MAX_PLAYERS];
new Drog[MAX_PLAYERS];
new Drog_Ar = 1500;
CMD:drogelad(playerid)
{
if(AdhatElDrogot[playerid]) // Ha letelt az 1 óra akkor lesz ez a változó igaz.
{
if(IsPlayerInRangeOfPoint(playerid,1.0,X,Y,Z)) // Ha ezen a koordinátán van,ezt majd te megadod.
{
if(Drog[playerid] >= 1500)
{
Drog[playerid] -= 1500; // Elvesszük tőle a drogot ( Eladja )
GivePlayerMoney(playerid,(1500*Drog_Ar)); // Adunk neki pénzt, mégpedig 1500 x 1500-at, ami jelenleg a Drog_Ar értéke.
AdhatElDrogot[playerid] = false;
SetTimerEx(\"DrogTimer\",3600000,0,\"d\",playerid); // 60*60*1000 = 1 óra alatt lefut a Timer.
}
else SendClientMessage(playerid,-1,\"Nincs 1500g drogod!\");
}
else SendClientMessage(playerid,-1,\"Nem vagy a drog eladó helyen!\");
}
else SendClientMessage(playerid,-1,\"Még nem adhatsz el drogot !\");
return 1;
}
forward DrogTimer(playerid);
public DrogTimer(playerid)
{
SendClientMessage(playerid,-1,\"Újra adhatsz el drogot !\");
AdhatElDrogot[playerid] = true;
}
Vagy Timer nélkül :
new Drog[MAX_PLAYERS];
new Drog_Ar = 1500;
CMD:drogelad(playerid)
{
if(GetPVarInt(playerid,\"DrogEladas\") <= gettime()) // Ha letelt az 1 óra akkor fut le.
{
if(IsPlayerInRangeOfPoint(playerid,1.0,X,Y,Z)) // Ha ezen a koordinátán van,ezt majd te megadod.
{
if(Drog[playerid] >= 1500)
{
Drog[playerid] -= 1500; // Elvesszük tőle a drogot ( Eladja )
GivePlayerMoney(playerid,(1500*Drog_Ar)); // Adunk neki pénzt, mégpedig 1500 x 1500-at, ami jelenleg a Drog_Ar értéke.
SetPVarInt(playerid,\"DrogEladas\",gettime() + 60*60); // Beállítijuk az értékét 3600-ra, 3600sec = 1 óra
}
else SendClientMessage(playerid,-1,\"Nincs 1500g drogod!\");
}
else SendClientMessage(playerid,-1,\"Nem vagy a drog eladó helyen!\");
}
else SendClientMessage(playerid,-1,\"Még nem adhatsz el drogot !\");
return 1;
}
-
Csak egy folytába ezt adja ki: \"Nem adhatsz el még drogot\"
if(strcmp(cmd, \"/drogeladhegy\", true) == 0)
{
if(AdhatElDrogot[playerid]) // Ha letelt az 1 óra akkor lesz ez a változó igaz.
{
if(IsPlayerInRangeOfPoint(playerid,10.0,-2332.9163,-1673.5027,483.0199)) // Ha ezen a koordinátán van,ezt majd te megadod.
{
if(PlayerInfo[playerid][pMarihuana] >= 1500)
{
PlayerInfo[playerid][pMarihuana] -= 1500; // Elvesszük tőle a drogot ( Eladja )
GivePlayerMoney(playerid,(1500*Drog_Ar)); // Adunk neki pénzt, mégpedig 1500 x 1500-at, ami jelenleg a Drog_Ar értéke.
AdhatElDrogot[playerid] = true;
SetTimerEx(\"DrogTimer\",3600000,0,\"d\",playerid); // 60*60*1000 = 1 óra alatt lefut a Timer.
}
else SendClientMessage(playerid,-1,\"Nincs 1500g drogod!\");
}
else SendClientMessage(playerid,-1,\"Nem vagy a drog eladó helyen!\");
}
else SendClientMessage(playerid,-1,\"Még nem adhatsz el drogot !\");
return 1;
}
-
new bool:AdhatElDrogot[MAX_PLAYERS] = true; // Igen ezt kihagytam, mert alapból 0 azaz hamis az értéke és itt bekell állítani true-ra
-
new bool:AdhatElDrogot[MAX_PLAYERS] = true; // Igen ezt kihagytam, mert alapból 0 azaz hamis az értéke és itt bekell állítani true-ra
helyett
new bool:AdhatElDrogot[MAX_PLAYERS] = {true, ...}; // Igen ezt kihagytam, mert alapból 0 azaz hamis az értéke és itt bekell állítani true-ra
low
-
Mind2 müködik és az enyémet rövidebb ideig tart leirni :D
-
próbáld ki :C
low
-
Szerinted, ha nem próbáltam volna, irtam volna ide? Úgy is müködik meg igy is
-
nemhiszemel
-
Köszönöm szépen! Tökéletes, még egy kérdés, azt hogy bírnám megcsinálni hogy ha autóba ütközik tegyük fel 50+km/h-val akkor vonjon le a playertöl 30hp-t és dobja animba és hogy ne bírjon felkelni csak ha használják rajta a /segít parancsot. Köszönöm előre ezt is nem szeretem volna feleslegesen topicot nyitni
-
Megcsináltam. Remélem érthető.
public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart) // Ha sebzést kap, ugyebár ha kocsival ütközik akkor csökken a HP-ja.
{
if(IsPlayerInAnyVehicle(playerid)) // Ha kocsiban van
{
new vid = GetPlayerVehicleID(playerid); // lekérdezzük a kocsi id-t.
if(GetVehicleSpeed(vid) >= 50) // Ha 50-el vagy többel megy.
{
new Float:HP;
GetPlayerHealth(playerid,HP);
SetPlayerHealth(playerid,HP-30);//levon 30 hp-t.
if(HP <= 20) // ha kevesebb a hp-ja mint 20
{
RemovePlayerFromVehicle(playerid); // Kiszeded a kocsiból
ApplyAnimation(playerid, \"SWEET\", \"Sweet_injuredloop\", 4.0, 1, 0, 0, 0, 0); // Berakod az injured animba
SetPlayerDrunkLevel(playerid, 50000); // részegre állítod
// Igy mostmár nem tud mozogni.
//JatekosInfo[playerid][serult] = true; esetleg ha használsz ilyet
}
}
}
return 1;
}
// Nem kérted de azért leirom
/*
enum JatekosData
{
bool:Serult
}
new JatekosInfo[MAX_PLAYERS][JatekosData];
CMD:segit(playerid)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
new Float:pos[3];
GetPlayerPos(i,pos[0],pos[1],pos[2]);
if(IsPlayerInRangeOfPoint(playerid,3.0,pos[0],pos[1],pos[2])) //Ha ezen a helyen van, ebbe a sugárba
{
if(JatekosInfo[serult])
{
SetPlayerDrunkLevel(i, 0);
TogglePlayerControllable(i,true);
SendClientMessage(i,-1,\"Fel lettél segitve\");
SendClientMessage(playerid,-1,\"Fel segitetted a sérültet\");
}
}
}
return 1;
}
*/
stock GetVehicleSpeed(vehicleid)
{
new Float:vSpeed[3];
GetVehicleVelocity( vehicleid, vSpeed[0], vSpeed[1], vSpeed[2] );
new Float:vSpeed_Float;
vSpeed_Float = floatsqroot( ((vSpeed[0] * vSpeed[0]) + (vSpeed[1] * vSpeed[1])) + (vSpeed[2] * vSpeed[2])) * 161.0;
new vSpeed_Int;
vSpeed_Int = floatround( vSpeed_Float, floatround_round );
return vSpeed_Int;
}