Szerző Téma: Dinamikus ATM rendszer  (Megtekintve 846 alkalommal)

Nem elérhető shadee

  • 1073
    • Profil megtekintése
Dinamikus ATM rendszer
« Dátum: 2014. Július 09. - 11:43:53 »
0
üdv, rövid leszek, szóval:
írtam tegnap egy röpke dinamikus atm rendszert
minden jó rajta,csak a törlésnél nem tudom hogyan oldhatom meg,hogy ne csak a fájlt,hanem az objectet,és egyben a textlabelt is törölje.
itt a script:
Új ATM:
 
stock UjAtm(playerid)
{
    atmek++;
new Float:x, Float:y,Float:z,Float:a, VWorldke,string[128];
GetPlayerPos(playerid,x,y,z);
GetPlayerFacingAngle(playerid, a);
z = z-0.3;
VWorldke = GetPlayerVirtualWorld(playerid);
CreateDynamicObject(2942,x,y,z,0.0,0.0,a,VWorldke,GetPlayerInterior(playerid),-1,200.0,68.0);
Create3DTextLabel(\"{88D235}>>>{4D27E0} ATM {88D235}<<<\\n{E8E802}(( /atm ))\",0xFB0000FF,x,y,z,10.0,0); //átírva
    format(File, sizeof(File), \"RP/ATM/%d.ini\", atmek);
    format(string,sizeof(string),\"Összesen %d atm van lerakva a szerverre!\",atmek);
    SendClientMessage(playerid,COLOR_YELLOW,string);
    if(!dini_Exists(File))
    {
   dini_Create(File);
           dini_FloatSet(File, \"PosX\", x);
    dini_FloatSet(File, \"PosY\", y);
          dini_FloatSet(File, \"PosZ\", z);
          dini_FloatSet(File, \"PosA\", a);
          dini_IntSet(File, \"Int\", GetPlayerInterior(playerid));
        dini_IntSet(File, \"VW\", VWorldke);
    }
return 1;
}

 

CMD:deleteatm(playerid,params[])
{
if(pInfo[playerid][pAdmin] >= 5)
{
    new atmID,string[128];
    if(sscanf(params,\"i\",atmID))return SendClientMessage(playerid,-1,\"/deleteatm <ATM ID>\");
    format(File,sizeof(File),\"RP/ATM/%d.ini\",atmID);
    format(string,sizeof(string),\"ATM sikeresen törölve(ID:%d)\",atmID);
    SendClientMessage(playerid,-1,string);
    if(dini_Exists(File))
    {
        dini_Remove(File);
}
}
return 1;
}

 
szóval hogyan lehet változóhoz hozzárendelni az objectet,és egyben a textdrawot is,szóval a object,és textdraw az az ID legyen,ami az ATM IDje is. megoldások?
« Utoljára szerkesztve: 2014. Július 10. - 03:56:31 írta ZyZu. »

Dinamikus ATM rendszer
« Válasz #1 Dátum: 2014. Július 09. - 11:46:37 »
0
és ha létrehozol neki egy változót? pl..:
 

#define MAX_ATMS 30
new ATM[MAX_ATMS];
new ATMText[MAX_ATMS];

 
és ezzel dolgozol tovább? mented ezt is, és így tudod majd ezeket is törölni....

Nem elérhető shadee

  • 1073
    • Profil megtekintése
Dinamikus ATM rendszer
« Válasz #2 Dátum: 2014. Július 09. - 12:00:15 »
0
ezt a megoldást próbáltam,de átlagba akkor törli,ha a szerver nemlett resizve, ha resiztem már a szervert,akkor csak a fájlt törli.

Dinamikus ATM rendszer
« Válasz #3 Dátum: 2014. Július 09. - 12:59:06 »
0
Azért nem törli,mert az ATM-et lerakod és elmented egy fájlba.
De mikor törlöd akkor csak a fájl tartalmát.
Szerintem próbáld meg az objectet és a textlabelt egy enumba tárolni,így minden fájlhoz tartozni fog egy enum,amibõl adódóan egyszerûen törölheted az objectet és a textlabot.

Nem elérhető gyuri98

  • 153
  • gyuri98
    • Profil megtekintése
Dinamikus ATM rendszer
« Válasz #4 Dátum: 2014. Július 09. - 16:14:01 »
0
Jók amiket írtak elõttem....
3D textek:
így írd át alétrehozásnál:
 
ATMLabel[atmek] =Create3DTextLabel(\"{88D235}>>>{4D27E0} ATM {88D235}<<<\\n{E8E802}(( /atm ))\",0xFB0000FF,x,y,z,10.0,0);

 
Törlésnél:
 
Delete3DTextLabel(ATMLabel[atmek]);

 
Az objectes majdnem ugyan ez csak ott pl a létrehozás és törlés :
 
ATMOBJECT[atmek] = CreateObject(2942,x,y,z,0.0,0.0,a,VWorldke,GetPlayerInterior(playerid),-1,200.0,68.0);
DestroyObject(ATMOBJECT[atmek]);
« Utoljára szerkesztve: 2014. Július 09. - 16:15:38 írta gyuri98 »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal