Szerző Téma: Save and Load Positon (5 pozíciót lehet menteni/betölteni) (V2!!)  (Megtekintve 2448 alkalommal)

Nem elérhető Live

  • 507
    • Profil megtekintése
Save and Load Positon (5 pozíciót lehet menteni/betölteni) (V2!!)
« Válasz #15 Dátum: 2012. december 28. - 17:09:00 »
0 Show voters
* V2 MEGJELENT *
 

* FÕPOSZTBAN FRISSÍTVE*
« Utoljára szerkesztve: 2012. december 28. - 17:41:13 írta Live »

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Save and Load Positon (5 pozíciót lehet menteni/betölteni) (V2!!)
« Válasz #16 Dátum: 2012. december 29. - 00:09:30 »
0 Show voters
Rengeteg felesleges változót hozol létre.
pl:
 
new bool:SavedPos[MAX_PLAYERS];
new bool:SavedPos2[MAX_PLAYERS];
new bool:SavedPos3[MAX_PLAYERS];
new bool:SavedPos4[MAX_PLAYERS];
new bool:SavedPos5[MAX_PLAYERS];

 
helyet így kéne:
new bool: SavedPos[5][MAX_PLAYERS];
és akkor erre a megoldásra írok példát:
 
public OnPlayerConnect(playerid)
{
        SavedPos[0][playerid] = false;
        SavedPos[1][playerid] = false;
        SavedPos[2][playerid] = false;
        SavedPos[3][playerid] = false;
        SavedPos[4][playerid] = false;
        return 1;
}

 
és így kell a többit.

Nem elérhető Live

  • 507
    • Profil megtekintése
Save and Load Positon (5 pozíciót lehet menteni/betölteni) (V2!!)
« Válasz #17 Dátum: 2012. december 29. - 13:01:15 »
0 Show voters
Idézetet írta: Flash date=1356736170\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"31529\" data-ipsquote-contentclass=\"forums_Topic
Rengeteg felesleges változót hozol létre.
pl:
 
new bool:SavedPos[MAX_PLAYERS];
new bool:SavedPos2[MAX_PLAYERS];
new bool:SavedPos3[MAX_PLAYERS];
new bool:SavedPos4[MAX_PLAYERS];
new bool:SavedPos5[MAX_PLAYERS];

 
helyet így kéne:
new bool: SavedPos[5][MAX_PLAYERS];
és akkor erre a megoldásra írok példát:
 
public OnPlayerConnect(playerid)
{
        SavedPos[0][playerid] = false;
        SavedPos[1][playerid] = false;
        SavedPos[2][playerid] = false;
        SavedPos[3][playerid] = false;
        SavedPos[4][playerid] = false;
        return 1;
}

 
és így kell a többit.
 
nem baj :D
aki akarja átírja ennyi :)

Nem elérhető Rupert

  • 2301
    • Profil megtekintése
Save and Load Positon (5 pozíciót lehet menteni/betölteni) (V2!!)
« Válasz #18 Dátum: 2012. december 29. - 13:36:01 »
0 Show voters
Sorpazarlás az egész, tömbbel a legkönnyebb az ilyet megcsinálni...

Nem elérhető Sheet

  • 1508
  • Támogató
    • Profil megtekintése
Save and Load Positon (5 pozíciót lehet menteni/betölteni) (V2!!)
« Válasz #19 Dátum: 2012. december 29. - 14:14:42 »
+1 Show voters
Így nem lenne egyszerûbb?
nem teszteltem, de fele annyi az egész és átláthatóbb
 
#include <a_samp>
#include <zcmd>
#include <sscanf2>
new Float:spX[4][MAX_PLAYERS],Float:spY[4][MAX_PLAYERS],Float:spZ[4][MAX_PLAYERS],Float:spA[4][MAX_PLAYERS];
new bool:SavedPos[4][MAX_PLAYERS];
#define LPT(%1) SendClientMessage(%1, -1, \"{ffff99}* Pozíciód {57a433}sikeresen {ffff99}betöltve.\")
#define SPT(%1) SendClientMessage(%1, -1, \"{ffff99}* Pozíciód mentve, használd a {57a433}/lp {ffff99}parancsot a vissza teleportáláshoz.\")
public OnPlayerConnect(playerid)
{
        for(new i=0; i<4; i++)
{
   SavedPos[playerid] = false;
}
        return 1;
}
public OnPlayerDisconnect(playerid)
{
        for(new i=0; i<4; i++)
{
   SavedPos[playerid] = false;
}
        return 1;
}
CMD:sp(playerid, params[])
{
        new number;
        if(sscanf(params, \"d\", number)) return SendClientMessage(playerid, -1, \"{ffff99}/sp [1-5]\");
        if(number > 0 && number < 6)
   SavePos(playerid, number);
else
   SendClientMessage(playerid, -1, \"{ffff99}/sp[1-5]\");
        return 1;
}
CMD:lp(playerid, params[])
{
new number;
        if(sscanf(params, \"d\", number)) return SendClientMessage(playerid, -1, \"{ffff99}/lp [1-5]\");
        if(number > 0 && number < 6)
   LoadPos(playerid, number);
else
   SendClientMessage(playerid, -1, \"{ffff99}/lp [1-5]\");
        return 1;
}
stock SavePos(playerid, num)
{
        GetPlayerPos(playerid,spX[num][playerid],spY[num][playerid],spZ[num][playerid]);
        GetPlayerFacingAngle(playerid,spA[num][playerid]);
        SavedPos[num][playerid] = true;
        SPT(playerid);
}
stock LoadPos(playerid, num)
{
        if(SavedPos[num][playerid] == true)
        {
   SetPlayerPos(playerid,spX[num][playerid],spY[num][playerid],spZ[num][playerid]);
   SetPlayerFacingAngle(playerid,spA[num][playerid]);
   LPT(playerid);
        } else {
   SendClientMessage(playerid, -1, \"{FF4646}Még nincs mentett pozíciód az {DDDDDD}/sp 1{ff4646} -nél/nál.\");
        }
}

Nem elérhető CANNONN

  • 2139
    • Profil megtekintése
Save and Load Positon (5 pozíciót lehet menteni/betölteni) (V2!!)
« Válasz #20 Dátum: 2012. december 31. - 16:01:04 »
0 Show voters
new bool:SavedPos[4][MAX_PLAYERS];

 
Ez is fölösleges.
Ha a koordináták 0val egyenlõk, akkor még nem mentett pozíciót és kész.

Nem elérhető Sheet

  • 1508
  • Támogató
    • Profil megtekintése
Save and Load Positon (5 pozíciót lehet menteni/betölteni) (V2!!)
« Válasz #21 Dátum: 2012. december 31. - 17:32:05 »
0 Show voters
Idézetet írta: Cannonn date=1356966064\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"31529\" data-ipsquote-contentclass=\"forums_Topic

new bool:SavedPos[4][MAX_PLAYERS];

 
Ez is fölösleges.
Ha a koordináták 0val egyenlõk, akkor még nem mentett pozíciót és kész.
 
Igaz ezt nem is néztem, csak egyszerûsítettem :D

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal