Szerző Téma: Drog eladása XY helyen!  (Megtekintve 1052 alkalommal)

Drog eladása XY helyen!
« Dátum: 2015. December 27. - 04:31:02 »
0 Show voters
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?

Nem elérhető 1Mark6

  • 437
    • Profil megtekintése
Drog eladása XY helyen!
« Válasz #1 Dátum: 2015. December 27. - 17:10:00 »
0 Show voters
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;
}
« Utoljára szerkesztve: 2015. December 27. - 17:21:39 írta 1Mark6 »

Drog eladása XY helyen!
« Válasz #2 Dátum: 2015. December 28. - 00:00:02 »
0 Show voters
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;
}
« Utoljára szerkesztve: 2015. December 28. - 00:11:13 írta anGeL »

Nem elérhető 1Mark6

  • 437
    • Profil megtekintése
Drog eladása XY helyen!
« Válasz #3 Dátum: 2015. December 28. - 10:41:17 »
0 Show voters
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

Nem elérhető Pedró

  • 3341
  • 2014 © Az év Szkriptere
    • Profil megtekintése
Drog eladása XY helyen!
« Válasz #4 Dátum: 2015. December 28. - 17:05:17 »
+1 Show voters
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
« Utoljára szerkesztve: 2015. December 28. - 19:36:42 írta Pedró »

Nem elérhető 1Mark6

  • 437
    • Profil megtekintése
Drog eladása XY helyen!
« Válasz #5 Dátum: 2015. December 28. - 19:35:22 »
0 Show voters
Mind2 müködik és az enyémet rövidebb ideig tart leirni :D

Nem elérhető Pedró

  • 3341
  • 2014 © Az év Szkriptere
    • Profil megtekintése
Drog eladása XY helyen!
« Válasz #6 Dátum: 2015. December 28. - 19:36:55 »
+1 Show voters
próbáld ki :C
low

Nem elérhető 1Mark6

  • 437
    • Profil megtekintése
Drog eladása XY helyen!
« Válasz #7 Dátum: 2015. December 28. - 19:38:57 »
0 Show voters
Szerinted, ha nem próbáltam volna, irtam volna ide? Úgy is müködik meg igy is

Nem elérhető Pedró

  • 3341
  • 2014 © Az év Szkriptere
    • Profil megtekintése
Drog eladása XY helyen!
« Válasz #8 Dátum: 2015. December 28. - 19:39:08 »
+1 Show voters
nemhiszemel

Drog eladása XY helyen!
« Válasz #9 Dátum: 2015. December 29. - 17:54:15 »
0 Show voters
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

Nem elérhető 1Mark6

  • 437
    • Profil megtekintése
Drog eladása XY helyen!
« Válasz #10 Dátum: 2015. December 29. - 23:02:06 »
0 Show voters
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;
}

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal