Szerző Téma: Drog Rendszer  (Megtekintve 2371 alkalommal)

Nem elérhető Ryoto

Drog Rendszer
« Dátum: 2019. október 03. - 18:45:05 »
0 Show voters
Drog Rendszer
 
Sziasztok, írtam egy nagyon alap Drog Rendszert. Dini-vel írtam szóval nem a legjobb.
258 sor a script.
 

//INCLUDEK
#include <a_samp>
#include <dini2>
#include <izcmd>
#include <sscanf2>
#include <streamer>
enum jatekos
{
Gombaspora,
Kokacserje,
MariMag,

Gomba,
Kokain,
Marihuana
}
new JatekosInfo[MAX_PLAYERS][jatekos];
#define MAX_DROGULTETVENY 500
#define DROGTIPUS_GOMBA 0
#define DROGTIPUS_KOKAIN 1
#define DROGTIPUS_MARIHUANA 2
enum DrogInfo
{
bool:dVan,
    dTipus,
    dObj,
    Text3D: dLabel,
dTermesAllapot,
dTermesMennyiseg,
Float:dX,
Float:dY,
Float:dZ
};
new dInfo[MAX_DROGULTETVENY][DrogInfo];
 
forward SaveDrogok();
public SaveDrogok()
{
for(new i=1;i<MAX_DROGULTETVENY;i++)
{
    if(dInfo[dVan])
    {
        SaveDrog(i);
    }
}
return 1;
}
stock SaveDrog(drog)
{
new dFile[64];
format(dFile,sizeof(dFile),\"Drogok/%d.ini\",drog);
if(!dini_Exists(dFile))
{
    dini_Create(dFile);
}
dini_IntSet(dFile,\"Type\",dInfo[drog][dTipus]);
dini_IntSet(dFile,\"TermesAllapot\",dInfo[drog][dTermesAllapot]);
dini_IntSet(dFile,\"TermesMennyiseg\",dInfo[drog][dTermesMennyiseg]);
dini_FloatSet(dFile,\"X\",dInfo[drog][dX]);
dini_FloatSet(dFile,\"Y\",dInfo[drog][dY]);
dini_FloatSet(dFile,\"Z\",dInfo[drog][dZ]);
return 1;
}
stock LoadDrogok()
{
new betoltottdrog = 0;
for(new i = 1; i <MAX_DROGULTETVENY; i++)
{
   new kFile[32];
   format(kFile,sizeof(kFile),\"Drogok/%d.ini\",i);
   if(dini_Exists(kFile))
   {
      LoadDrog(i);
      betoltottdrog++;
   }
}
if(betoltottdrog < 1) print(\"Nem lett drog betöltve\");
return 1;
}
stock LoadDrog(drog)
{
new dFile[64], dstring[64], DrogTipus[12];
format(dFile,sizeof(dFile),\"Drogok/%d.ini\",drog);
dInfo[drog][dVan] = true;
dInfo[drog][dTipus] = dini_Int(dFile,\"Tipus\");
dInfo[drog][dTermesAllapot] = dini_Int(dFile,\"TermesAllapot\");
dInfo[drog][dTermesMennyiseg] = dini_Int(dFile,\"TermesMennyiseg\");
dInfo[drog][dX] = dini_Float(dFile,\"X\");
dInfo[drog][dY] = dini_Float(dFile,\"Y\");
dInfo[drog][dZ] = dini_Float(dFile,\"Z\");
dInfo[drog][dObj] = CreateDynamicObject(19473, dInfo[drog][dX], dInfo[drog][dY],dInfo[drog][dZ]-0.5, 0.0, 0.0, random(180));
if(dInfo[drog][dTipus] == 1) return format(DrogTipus, sizeof(DrogTipus), \"Gomba\");
else if(dInfo[drog][dTipus] == 2) return format(DrogTipus, sizeof(DrogTipus), \"Kokain\");
else if(dInfo[drog][dTipus] == 3) return format(DrogTipus, sizeof(DrogTipus), \"Marihuana\");
format(dstring, sizeof(dstring), \"Ültetvény ID: %d,Drog Típus: %s, Drog Mennyiség: %d, Termés Állapot: %d\", drog, DrogTipus, dInfo[drog][dTermesMennyiseg], dInfo[drog][dTermesAllapot]);
dInfo[drog][dLabel] = Create3DTextLabel(dstring, 0x008080FF, dInfo[drog][dX], dInfo[drog][dY],dInfo[drog][dZ]-0.5, 40.0, 0, 0);
printf(\"Drog %d betöltve\",drog);
return 1;
}
stock ElerhetoDrogID()
{
        for(new i = 1; i<MAX_DROGULTETVENY; i++)
        {
            if(dInfo[dVan] == false) return i;
        }
        return -1;
}
CMD:cuccotad(playerid, params[])
{
new melyikdrog[12], mennyit;
if(sscanf(params, \"s[12]d\",melyikdrog, mennyit)) return SendClientMessage(playerid, 0xFFFFFFFF,\"/cuccotad [Melyik] [Mennyit] ((Gomba, Kokain, Marihuana))\");
if(!strcmp(\"Gomba\", melyikdrog)) return JatekosInfo[playerid][Gombaspora] += mennyit, SendClientMessage(playerid, 0xFFFFFFFF,\"Hmmmmm :3\");
if(!strcmp(\"Kokain\", melyikdrog)) return JatekosInfo[playerid][Kokacserje] += mennyit, SendClientMessage(playerid, 0xFFFFFFFF,\"Hmmmmm :3\");
if(!strcmp(\"Marihuana\", melyikdrog)) return JatekosInfo[playerid][MariMag] += mennyit, SendClientMessage(playerid, 0xFFFFFFFF,\"Hmmmmm :3\");
return 1;
}
CMD:ultet(playerid, params[])
{
new melyikdrog[12], ujdrogID, Float:PosX, Float:PosY, Float:PosZ;
if(sscanf(params, \"s[12]\",melyikdrog)) return SendClientMessage(playerid, 0xFFFFFFFF,\"/ultet [Melyik] ((Gomba, Kokain, Marihuana))\");
if(!strcmp(\"Gomba\", melyikdrog))
{
    new dstring[128], DrogTipus[12];
   if(JatekosInfo[playerid][Gombaspora] <= 0) return SendClientMessage(playerid, 0xFFFFFFFF, \"Nincs Gombaspórád!\");
   JatekosInfo[playerid][Gombaspora] -= 1;
   GetPlayerPos(playerid, PosX, PosY, PosZ);
   ujdrogID = ElerhetoDrogID();
   dInfo[ujdrogID][dVan] = true;
   dInfo[ujdrogID][dTipus] = DROGTIPUS_GOMBA;
   dInfo[ujdrogID][dTermesAllapot] = 0;
   dInfo[ujdrogID][dTermesMennyiseg] = random(10);
   dInfo[ujdrogID][dX] = PosX;
   dInfo[ujdrogID][dY] = PosY;
   dInfo[ujdrogID][dZ] = PosZ;
   dInfo[ujdrogID][dObj] = CreateDynamicObject(19473, dInfo[ujdrogID][dX], dInfo[ujdrogID][dY],dInfo[ujdrogID][dZ]-0.5, 0.0, 0.0, 100.0);
   if(dInfo[ujdrogID][dTipus] == 1) format(DrogTipus, sizeof(DrogTipus), \"Gomba\");
   if(dInfo[ujdrogID][dTipus] == 2) format(DrogTipus, sizeof(DrogTipus), \"Kokain\");
   if(dInfo[ujdrogID][dTipus] == 3) format(DrogTipus, sizeof(DrogTipus), \"Marihuana\");
   format(dstring, sizeof(dstring), \"Ültetvény ID: %d,Drog Típus: %s, Drog Mennyiség: %d, Termés Állapot: %d\", ujdrogID, DrogTipus, dInfo[ujdrogID][dTermesMennyiseg], dInfo[ujdrogID][dTermesAllapot]);
   dInfo[ujdrogID][dLabel] = Create3DTextLabel(dstring, 0x008080FF, dInfo[ujdrogID][dX], dInfo[ujdrogID][dY],dInfo[ujdrogID][dZ]-0.5, 40.0, 0, 0);
   SendClientMessage(playerid, 0xFFFFFFF, \"Ültettél gombát.\");
   SaveDrog(ujdrogID);
}
else if(!strcmp(\"Kokain\", melyikdrog))
{
    new dstring[128], DrogTipus[12];
   if(JatekosInfo[playerid][Kokacserje] <= 1) return SendClientMessage(playerid, 0xFFFFFFFF, \"Nincs Kokacserjéd!\");
   JatekosInfo[playerid][Kokacserje] -= 1;
   GetPlayerPos(playerid, PosX, PosY, PosZ);
   ujdrogID = ElerhetoDrogID();
   dInfo[ujdrogID][dVan] = true;
   dInfo[ujdrogID][dTipus] = DROGTIPUS_KOKAIN;
   dInfo[ujdrogID][dTermesAllapot] = 0;
   dInfo[ujdrogID][dTermesMennyiseg] = random(10);
   dInfo[ujdrogID][dX] = PosX;
   dInfo[ujdrogID][dY] = PosY;
   dInfo[ujdrogID][dZ] = PosZ;
   dInfo[ujdrogID][dObj] = CreateDynamicObject(19473, dInfo[ujdrogID][dX], dInfo[ujdrogID][dY],dInfo[ujdrogID][dZ]-0.5, 0.0, 0.0, 100.0);
   if(dInfo[ujdrogID][dTipus] == 1) format(DrogTipus, sizeof(DrogTipus), \"Gomba\");
   if(dInfo[ujdrogID][dTipus] == 2) format(DrogTipus, sizeof(DrogTipus), \"Kokain\");
   if(dInfo[ujdrogID][dTipus] == 3) format(DrogTipus, sizeof(DrogTipus), \"Marihuana\");
   format(dstring, sizeof(dstring), \"Ültetvény ID: %d,Drog Típus: %s, Drog Mennyiség: %d, Termés Állapot: %d\", ujdrogID, DrogTipus, dInfo[ujdrogID][dTermesMennyiseg], dInfo[ujdrogID][dTermesAllapot]);
   dInfo[ujdrogID][dLabel] = Create3DTextLabel(dstring, 0x008080FF, dInfo[ujdrogID][dX], dInfo[ujdrogID][dY],dInfo[ujdrogID][dZ]-0.5, 40.0, 0, 0);
   SendClientMessage(playerid, 0xFFFFFFF, \"Ültettél Kokaint.\");
   SaveDrog(ujdrogID);
}
else if(!strcmp(\"Marihuana\", melyikdrog))
{
    new dstring[128], DrogTipus[12];
   if(JatekosInfo[playerid][MariMag] <= 1) return SendClientMessage(playerid, 0xFFFFFFFF, \"Nincs Marihuana magod!\");
   JatekosInfo[playerid][MariMag] -= 1;
   GetPlayerPos(playerid, PosX, PosY, PosZ);
   ujdrogID = ElerhetoDrogID();
   dInfo[ujdrogID][dVan] = true;
   dInfo[ujdrogID][dTipus] = DROGTIPUS_MARIHUANA;
   dInfo[ujdrogID][dTermesAllapot] = 0;
   dInfo[ujdrogID][dTermesMennyiseg] = random(10);
   dInfo[ujdrogID][dX] = PosX;
   dInfo[ujdrogID][dY] = PosY;
   dInfo[ujdrogID][dZ] = PosZ;
   dInfo[ujdrogID][dObj] = CreateDynamicObject(19473, dInfo[ujdrogID][dX], dInfo[ujdrogID][dY],dInfo[ujdrogID][dZ]-0.5, 0.0, 0.0, 100.0);
   if(dInfo[ujdrogID][dTipus] == 1) format(DrogTipus, sizeof(DrogTipus), \"Gomba\");
   if(dInfo[ujdrogID][dTipus] == 2) format(DrogTipus, sizeof(DrogTipus), \"Kokain\");
   if(dInfo[ujdrogID][dTipus] == 3) format(DrogTipus, sizeof(DrogTipus), \"Marihuana\");
   format(dstring, sizeof(dstring), \"Ültetvény ID: %d,Drog Típus: %s, Drog Mennyiség: %d, Termés Állapot: %d\", ujdrogID, DrogTipus, dInfo[ujdrogID][dTermesMennyiseg], dInfo[ujdrogID][dTermesAllapot]);
   dInfo[ujdrogID][dLabel] = Create3DTextLabel(dstring, 0x008080FF, dInfo[ujdrogID][dX], dInfo[ujdrogID][dY],dInfo[ujdrogID][dZ]-0.5, 40.0, 0, 0);
   SendClientMessage(playerid, 0xFFFFFFF, \"Ültettél Marihuanát.\");
   SaveDrog(ujdrogID);
}
else return SendClientMessage(playerid, 0xFFFFFFFF, \"[DROG]: Ilyen drog nem létezik.\");
return 1;
}
CMD:drogleszed(playerid, params[])
{
new drogid;
if(sscanf(params,\"d\", drogid)) return SendClientMessage(playerid, 0xFFFFFFFF,\"/drogleszed [ID]\");
    if(IsPlayerInRangeOfPoint(playerid, 7.0, dInfo[drogid][dX], dInfo[drogid][dY], dInfo[drogid][dZ]))
{
   if(dInfo[drogid][dTipus] == 1) JatekosInfo[playerid][Gomba] += dInfo[drogid][dTermesMennyiseg];
   else if(dInfo[drogid][dTipus] == 2) JatekosInfo[playerid][Kokain] += dInfo[drogid][dTermesMennyiseg];
   else if(dInfo[drogid][dTipus] == 3) JatekosInfo[playerid][Marihuana] += dInfo[drogid][dTermesMennyiseg];
   dInfo[drogid][dVan] = false;
   dInfo[drogid][dTipus] = 0;
   dInfo[drogid][dTermesAllapot] = 0;
   dInfo[drogid][dTermesMennyiseg] = 0;
   dInfo[drogid][dX] = 0.0000;
   dInfo[drogid][dY] = 0.0000;
   dInfo[drogid][dZ] = 0.0000;
   DestroyDynamicObject(dInfo[drogid][dObj]);
   Delete3DTextLabel(dInfo[drogid][dLabel]);
   dInfo[drogid][dObj] = INVALID_OBJECT_ID;
   dInfo[drogid][dLabel] = INVALID_3DTEXT_ID;
   new kFile[32];
   format(kFile,sizeof(kFile),\"Drogok/%d.ini\",drogid);
   dini_Remove(kFile);
}
else return SendClientMessage(playerid, 0xFFFFFFFF, \"Nem vagy ültetvény közelében!\");
return 1;
}
CMD:drogjaim(playerid, params[])
{
new string[256];
SendClientMessage(playerid, 0xFFFFFFFF, \"Drogjaid:\");
format(string, sizeof(string), \"Gomba: %d gramm, Kokain: %d gramm, Marihuána: %d gramm\", JatekosInfo[playerid][Gomba], JatekosInfo[playerid][Kokain], JatekosInfo[playerid][Marihuana]);
SendClientMessage(playerid, 0xFFFFFFFF, string);
format(string, sizeof(string), \"Gomba Spóra: %d db, Kokain Cserje: %d db, Marihuána Mag: %d db\", JatekosInfo[playerid][Gombaspora], JatekosInfo[playerid][Kokacserje], JatekosInfo[playerid][MariMag]);
SendClientMessage(playerid, 0xFFFFFFFF, string);
return 1;
}
 
public OnFilterScriptInit()
{
LoadDrogok();
return 1;
}
public OnFilterScriptExit()
{
    SaveDrogok();
return 1;
}

 
 
« Utoljára szerkesztve: 2019. október 03. - 18:45:50 írta Ryoto »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal