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

Nem elérhető Live

  • 507
    • Profil megtekintése
Save and Load Positon (5 pozíciót lehet menteni/betölteni) (V2!!)
« Dátum: 2012. december 27. - 21:06:23 »
0 Show voters
Hali :)
A szerveremhez írtam egy sp/lp funkciót amiben 5 különbözõ helyet lehet menteni és betölteni.
Tesztelve: * MÛKÖDIK *
Elkészítési idõ: 2 perc
Készítette: Live (én)
Sorok száma: 139
 
#include <a_samp>
#include <zcmd>
#include <sscanf2>
new Float:spX[MAX_PLAYERS],Float:spY[MAX_PLAYERS],Float:spZ[MAX_PLAYERS],Float:spA[MAX_PLAYERS];
new Float:spX2[MAX_PLAYERS],Float:spY2[MAX_PLAYERS],Float:spZ2[MAX_PLAYERS],Float:spA2[MAX_PLAYERS];
new Float:spX3[MAX_PLAYERS],Float:spY3[MAX_PLAYERS],Float:spZ3[MAX_PLAYERS],Float:spA3[MAX_PLAYERS];
new Float:spX4[MAX_PLAYERS],Float:spY4[MAX_PLAYERS],Float:spZ4[MAX_PLAYERS],Float:spA4[MAX_PLAYERS];
new Float:spX5[MAX_PLAYERS],Float:spY5[MAX_PLAYERS],Float:spZ5[MAX_PLAYERS],Float:spA5[MAX_PLAYERS];
#define SCM SendClientMessage
#define LPT(%1) SCM(%1, -1, \"{ffff99}* Pozíciód {57a433}sikeresen {ffff99}betöltve.\")
#define SPT(%1) SCM(%1, -1, \"{ffff99}* Pozíciód mentve, használd a {57a433}/lp {ffff99}parancsot a vissza teleportáláshoz.\")
CMD:sp(playerid, params[])
{
new number;
if(sscanf(params, \"d\", number)) return SendClientMessage(playerid, -1, \"{ffff99}/sp [1-5]\");
if(strcmp(params, \"0\", true) == 0)
{
SendClientMessage(playerid, -1, \"{ffff99}/sp [1-5]\");
}
if(strcmp(params, \"1\", true) == 0)
{
SavePos(playerid);
}
if(strcmp(params, \"2\", true) == 0)
{
SavePos2(playerid);
}
if(strcmp(params, \"3\", true) == 0)
{
SavePos3(playerid);
}
if(strcmp(params, \"4\", true) == 0)
{
SavePos4(playerid);
}
if(strcmp(params, \"5\", true) == 0)
{
SavePos5(playerid);
}
return 1;
}
CMD:lp(playerid, params[])
{
    new number;
if(sscanf(params, \"d\", number)) return SendClientMessage(playerid, -1, \"{ffff99}/lp [1-5]\");
if(strcmp(params, \"0\", true) == 0)
{
SendClientMessage(playerid, -1, \"{ffff99}/lp [1-5]\");
}
if(strcmp(params, \"1\", true) == 0)
{
LoadPos(playerid);
}
if(strcmp(params, \"2\", true) == 0)
{
LoadPos2(playerid);
}
if(strcmp(params, \"3\", true) == 0)
{
LoadPos3(playerid);
}
if(strcmp(params, \"4\", true) == 0)
{
LoadPos4(playerid);
}
if(strcmp(params, \"5\", true) == 0)
{
LoadPos5(playerid);
}
return 1;
}
stock SavePos(playerid)
{
GetPlayerPos(playerid,spX[playerid],spY[playerid],spZ[playerid]);
GetPlayerFacingAngle(playerid,spA[playerid]);
SPT(playerid);
}
stock SavePos2(playerid)
{
GetPlayerPos(playerid,spX2[playerid],spY2[playerid],spZ2[playerid]);
GetPlayerFacingAngle(playerid,spA2[playerid]);
SPT(playerid);
}
stock SavePos3(playerid)
{
GetPlayerPos(playerid,spX3[playerid],spY3[playerid],spZ3[playerid]);
GetPlayerFacingAngle(playerid,spA3[playerid]);
SPT(playerid);
}
stock SavePos4(playerid)
{
GetPlayerPos(playerid,spX4[playerid],spY4[playerid],spZ4[playerid]);
GetPlayerFacingAngle(playerid,spA4[playerid]);
SPT(playerid);
}
stock SavePos5(playerid)
{
GetPlayerPos(playerid,spX5[playerid],spY5[playerid],spZ5[playerid]);
GetPlayerFacingAngle(playerid,spA5[playerid]);
SPT(playerid);
}
stock LoadPos(playerid)
{
        SetPlayerPos(playerid,spX[playerid],spY[playerid],spZ[playerid]);
        SetPlayerFacingAngle(playerid,spA[playerid]);
        LPT(playerid);
}
stock LoadPos2(playerid)
{
        SetPlayerPos(playerid,spX2[playerid],spY2[playerid],spZ2[playerid]);
        SetPlayerFacingAngle(playerid,spA2[playerid]);
        LPT(playerid);
}
stock LoadPos3(playerid)
{
        SetPlayerPos(playerid,spX3[playerid],spY3[playerid],spZ3[playerid]);
        SetPlayerFacingAngle(playerid,spA3[playerid]);
        LPT(playerid);
}
stock LoadPos4(playerid)
{
        SetPlayerPos(playerid,spX4[playerid],spY4[playerid],spZ4[playerid]);
        SetPlayerFacingAngle(playerid,spA4[playerid]);
        LPT(playerid);
}
stock LoadPos5(playerid)
{
        SetPlayerPos(playerid,spX5[playerid],spY5[playerid],spZ5[playerid]);
        SetPlayerFacingAngle(playerid,spA5[playerid]);
        LPT(playerid);
}

 
V2:
 
#include <a_samp>
#include <zcmd>
#include <sscanf2>
new Float:spX[MAX_PLAYERS],Float:spY[MAX_PLAYERS],Float:spZ[MAX_PLAYERS],Float:spA[MAX_PLAYERS];
new Float:spX2[MAX_PLAYERS],Float:spY2[MAX_PLAYERS],Float:spZ2[MAX_PLAYERS],Float:spA2[MAX_PLAYERS];
new Float:spX3[MAX_PLAYERS],Float:spY3[MAX_PLAYERS],Float:spZ3[MAX_PLAYERS],Float:spA3[MAX_PLAYERS];
new Float:spX4[MAX_PLAYERS],Float:spY4[MAX_PLAYERS],Float:spZ4[MAX_PLAYERS],Float:spA4[MAX_PLAYERS];
new Float:spX5[MAX_PLAYERS],Float:spY5[MAX_PLAYERS],Float:spZ5[MAX_PLAYERS],Float:spA5[MAX_PLAYERS];
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];
#define SCM SendClientMessage
#define LPT(%1) SCM(%1, -1, \"{ffff99}* Pozíciód {57a433}sikeresen {ffff99}betöltve.\")
#define SPT(%1) SCM(%1, -1, \"{ffff99}* Pozíciód mentve, használd a {57a433}/lp {ffff99}parancsot a vissza teleportáláshoz.\")
public OnPlayerConnect(playerid)
{
SavedPos[playerid] = false;
SavedPos2[playerid] = false;
SavedPos3[playerid] = false;
SavedPos4[playerid] = false;
SavedPos5[playerid] = false;
return 1;
}
public OnPlayerDisconnect(playerid)
{
SavedPos[playerid] = false;
SavedPos2[playerid] = false;
SavedPos3[playerid] = false;
SavedPos4[playerid] = false;
SavedPos5[playerid] = false;
return 1;
}
CMD:sp(playerid, params[])
{
new number;
if(sscanf(params, \"d\", number)) return SendClientMessage(playerid, -1, \"{ffff99}/sp [1-5]\");
if(strcmp(params, \"0\", true) == 0)
{
SendClientMessage(playerid, -1, \"{ffff99}/sp [1-5]\");
}
if(strcmp(params, \"1\", true) == 0)
{
SavePos(playerid);
}
if(strcmp(params, \"2\", true) == 0)
{
SavePos2(playerid);
}
if(strcmp(params, \"3\", true) == 0)
{
SavePos3(playerid);
}
if(strcmp(params, \"4\", true) == 0)
{
SavePos4(playerid);
}
if(strcmp(params, \"5\", true) == 0)
{
SavePos5(playerid);
}
return 1;
}
CMD:lp(playerid, params[])
{
    new number;
if(sscanf(params, \"d\", number)) return SendClientMessage(playerid, -1, \"{ffff99}/lp [1-5]\");
if(strcmp(params, \"0\", true) == 0)
{
SendClientMessage(playerid, -1, \"{ffff99}/lp [1-5]\");
}
if(strcmp(params, \"1\", true) == 0)
{
LoadPos(playerid);
}
if(strcmp(params, \"2\", true) == 0)
{
LoadPos2(playerid);
}
if(strcmp(params, \"3\", true) == 0)
{
LoadPos3(playerid);
}
if(strcmp(params, \"4\", true) == 0)
{
LoadPos4(playerid);
}
if(strcmp(params, \"5\", true) == 0)
{
LoadPos5(playerid);
}
return 1;
}
stock SavePos(playerid)
{
GetPlayerPos(playerid,spX[playerid],spY[playerid],spZ[playerid]);
GetPlayerFacingAngle(playerid,spA[playerid]);
SavedPos[playerid] = true;
SPT(playerid);
}
stock SavePos2(playerid)
{
GetPlayerPos(playerid,spX2[playerid],spY2[playerid],spZ2[playerid]);
GetPlayerFacingAngle(playerid,spA2[playerid]);
SavedPos2[playerid] = true;
SPT(playerid);
}
stock SavePos3(playerid)
{
GetPlayerPos(playerid,spX3[playerid],spY3[playerid],spZ3[playerid]);
GetPlayerFacingAngle(playerid,spA3[playerid]);
SavedPos3[playerid] = true;
SPT(playerid);
}
stock SavePos4(playerid)
{
GetPlayerPos(playerid,spX4[playerid],spY4[playerid],spZ4[playerid]);
GetPlayerFacingAngle(playerid,spA4[playerid]);
SavedPos4[playerid] = true;
SPT(playerid);
}
stock SavePos5(playerid)
{
GetPlayerPos(playerid,spX5[playerid],spY5[playerid],spZ5[playerid]);
GetPlayerFacingAngle(playerid,spA5[playerid]);
SavedPos5[playerid] = true;
SPT(playerid);
}
stock LoadPos(playerid)
{
if(SavedPos[playerid] == true)
   {
        SetPlayerPos(playerid,spX[playerid],spY[playerid],spZ[playerid]);
        SetPlayerFacingAngle(playerid,spA[playerid]);
        LPT(playerid);
        }
        else
        {
        SCM(playerid, -1, \"{FF4646}Még nincs mentett pozíciód az {DDDDDD}/sp 1{ff4646} -nél/nál.\");
        }
}
stock LoadPos2(playerid)
{
if(SavedPos2[playerid] == true)
   {
        SetPlayerPos(playerid,spX2[playerid],spY2[playerid],spZ2[playerid]);
        SetPlayerFacingAngle(playerid,spA2[playerid]);
        LPT(playerid);
        }
        else
        {
        SCM(playerid, -1, \"{FF4646}Még nincs mentett pozíciód az {DDDDDD}/sp 2{ff4646} -nél/nál.\");
        }
}
stock LoadPos3(playerid)
{
if(SavedPos3[playerid] == true)
   {
        SetPlayerPos(playerid,spX3[playerid],spY3[playerid],spZ3[playerid]);
        SetPlayerFacingAngle(playerid,spA3[playerid]);
        LPT(playerid);
        }
        else
        {
        SCM(playerid, -1, \"{FF4646}Még nincs mentett pozíciód az {DDDDDD}/sp 3{ff4646} -nél/nál.\");
        }
}
stock LoadPos4(playerid)
{
if(SavedPos4[playerid] == true)
   {
        SetPlayerPos(playerid,spX4[playerid],spY4[playerid],spZ4[playerid]);
        SetPlayerFacingAngle(playerid,spA4[playerid]);
        LPT(playerid);
        }
        else
        {
        SCM(playerid, -1, \"{FF4646}Még nincs mentett pozíciód az {DDDDDD}/sp 4{ff4646} -nél/nál.\");
        }
}
stock LoadPos5(playerid)
{
if(SavedPos5[playerid] == true)
   {
        SetPlayerPos(playerid,spX5[playerid],spY5[playerid],spZ5[playerid]);
        SetPlayerFacingAngle(playerid,spA5[playerid]);
        LPT(playerid);
        }
        else
        {
        SCM(playerid, -1, \"{FF4646}Még nincs mentett pozíciód az {DDDDDD}/sp 5{ff4646} -nél/nál.\");
        }
}

 
Hozzáadva: Ha még nincs mentett pozíciója és beírja például, hogy /lp 2 akkor kiírja,hogy még nincs mentett pozíció...
« Utoljára szerkesztve: 2012. december 28. - 17:39:33 írta Live »

Nem elérhető zeteni

  • 1970
  • Ex-Scripter
    • Profil megtekintése
Save and Load Positon (5 pozíciót lehet menteni/betölteni) (V2!!)
« Válasz #1 Dátum: 2012. december 27. - 21:07:41 »
0 Show voters
Csak tesztelt scripteket lehet publikálni a fórumon! Teszteld le! 3 napod van rá.

Save and Load Positon (5 pozíciót lehet menteni/betölteni) (V2!!)
« Válasz #2 Dátum: 2012. december 27. - 21:23:18 »
0 Show voters
Ha egyedül játszol a szerveren akkor elképzelhetõ hogy megfelelõen mûködik, de ha már többen akkor elég fura dolgokat fog produkálni.

Nem elérhető Live

  • 507
    • Profil megtekintése
Save and Load Positon (5 pozíciót lehet menteni/betölteni) (V2!!)
« Válasz #3 Dátum: 2012. december 27. - 21:35:39 »
0 Show voters
* FÕPOSZT FRISSÍTVE *

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Save and Load Positon (5 pozíciót lehet menteni/betölteni) (V2!!)
« Válasz #4 Dátum: 2012. december 27. - 21:54:52 »
0 Show voters
Egyszerûbben is megoldható a dolog.  :-[

Save and Load Positon (5 pozíciót lehet menteni/betölteni) (V2!!)
« Válasz #5 Dátum: 2012. december 27. - 21:57:55 »
0 Show voters
Idézetet írta: ɐʞzssǝlosz date=1356639798\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"31529\" data-ipsquote-contentclass=\"forums_Topic
Ha egyedül játszol a szerveren akkor elképzelhetõ hogy megfelelõen mûködik, de ha már többen akkor elég fura dolgokat fog produkálni.
 
Még mindig. :D:D
Ha egy játékos elmenti a legelsõ pozíciót akkor egy másik játékos is elmenti az elsõt (beírják /sp 0) , akkor az elsõ játékos beírja /lp 0 és meglepõdik hogy õ nem ide mentette. :D:D

Nem elérhető Live

  • 507
    • Profil megtekintése
Save and Load Positon (5 pozíciót lehet menteni/betölteni) (V2!!)
« Válasz #6 Dátum: 2012. december 27. - 22:48:03 »
0 Show voters
Idézetet írta: ɐʞzssǝlosz date=1356641875\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"31529\" data-ipsquote-contentclass=\"forums_Topic


Ha egyedül játszol a szerveren akkor elképzelhetõ hogy megfelelõen mûködik, de ha már többen akkor elég fura dolgokat fog produkálni.
 
Még mindig. :D:D
Ha egy játékos elmenti a legelsõ pozíciót akkor egy másik játékos is elmenti az elsõt (beírják /sp 0) , akkor az elsõ játékos beírja /lp 0 és meglepõdik hogy õ nem ide mentette. :D:D
 
[/quote]
de miért? :(
Pedig playerid van tehát jónak kellene lennie :D

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Save and Load Positon (5 pozíciót lehet menteni/betölteni) (V2!!)
« Válasz #7 Dátum: 2012. december 27. - 23:11:33 »
0 Show voters
Gondolom MAX_PLAYERS -re gondolt.
E:
Ezek helyett:
 
new Float:spX,Float:spY,Float:spZ,Float:spA; //1
new Float:spX2,Float:spY2,Float:spZ2,Float:spA2; //2
new Float:spX3,Float:spY3,Float:spZ3,Float:spA3; //3
new Float:spX4,Float:spY4,Float:spZ4,Float:spA4; //4
new Float:spX5,Float:spY5,Float:spZ5,Float:spA5; //5

 
Mehetne ez is:
 
new Float:f[4][MAX_PLAYERS];
« Utoljára szerkesztve: 2012. december 27. - 23:13:11 írta Flash »

Kovacs_Bela

  • Vendég
Save and Load Positon (5 pozíciót lehet menteni/betölteni) (V2!!)
« Válasz #8 Dátum: 2012. december 27. - 23:19:51 »
0 Show voters
Idézetet írta: Live date=1356644883\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"31529\" data-ipsquote-contentclass=\"forums_Topic


 

Ha egyedül játszol a szerveren akkor elképzelhetõ hogy megfelelõen mûködik, de ha már többen akkor elég fura dolgokat fog produkálni.
 
Még mindig. :D:D
Ha egy játékos elmenti a legelsõ pozíciót akkor egy másik játékos is elmenti az elsõt (beírják /sp 0) , akkor az elsõ játékos beírja /lp 0 és meglepõdik hogy õ nem ide mentette. :D:D
 
[/quote]
de miért? :(
Pedig playerid van tehát jónak kellene lennie :D
 
[/quote] :facepalm:
Mindem playernek létrekell hozni egy változót a [MAX_PLAYERS] operátorral v mivel amit közvetlen a változó neve után kell tenni
E: megelõztek :D

Nem elérhető Live

  • 507
    • Profil megtekintése
Save and Load Positon (5 pozíciót lehet menteni/betölteni) (V2!!)
« Válasz #9 Dátum: 2012. december 28. - 13:49:19 »
0 Show voters
Idézetet írta: Flash date=1356646293\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"31529\" data-ipsquote-contentclass=\"forums_Topic
Gondolom MAX_PLAYERS -re gondolt.
E:
Ezek helyett:
 
new Float:spX,Float:spY,Float:spZ,Float:spA; //1
new Float:spX2,Float:spY2,Float:spZ2,Float:spA2; //2
new Float:spX3,Float:spY3,Float:spZ3,Float:spA3; //3
new Float:spX4,Float:spY4,Float:spZ4,Float:spA4; //4
new Float:spX5,Float:spY5,Float:spZ5,Float:spA5; //5

 
Mehetne ez is:
 
new Float:f[4][MAX_PLAYERS];

 

Nem értem :D
mi az az f? nincs is olyanom...

Save and Load Positon (5 pozíciót lehet menteni/betölteni) (V2!!)
« Válasz #10 Dátum: 2012. december 28. - 14:38:08 »
0 Show voters
Szerintem jó ötlet volt, csak kicsit javítani kéne :D
Megvolt a 200. comment!!!! 
Ha jót akarsz magadnak, nem enny rá a linkre :D
||||||||||||||||||||||||||||||||||||||
························
http://megalook.ru/schild.swf?namee=200.+comment%21+xd

Kovacs_Bela

  • Vendég
Save and Load Positon (5 pozíciót lehet menteni/betölteni) (V2!!)
« Válasz #11 Dátum: 2012. december 28. - 15:20:12 »
0 Show voters
Lényeg h a new spX spY spZ spA mimdegyik után írj [MAX_PLAYERS]-t a betöltésnél meg mentésnél ugyan ez csak ott nem maxplayers hanem playerid és kisbetûvel.

Nem elérhető Live

  • 507
    • Profil megtekintése
Save and Load Positon (5 pozíciót lehet menteni/betölteni) (V2!!)
« Válasz #12 Dátum: 2012. december 28. - 16:56:22 »
0 Show voters
* FÕPOSZT FRISSÍTVE *

Kovacs_Bela

  • Vendég
Save and Load Positon (5 pozíciót lehet menteni/betölteni) (V2!!)
« Válasz #13 Dátum: 2012. december 28. - 17:05:02 »
0 Show voters
Na így már jó

Save and Load Positon (5 pozíciót lehet menteni/betölteni) (V2!!)
« Válasz #14 Dátum: 2012. december 28. - 17:08:30 »
0 Show voters
new Float:spX[MAX_PLAYERS],Float:spY[MAX_PLAYERS],Float:spZ[MAX_PLAYERS],Float:spA[MAX_PLAYERS];
new Float:spX2[MAX_PLAYERS],Float:spY2[MAX_PLAYERS],Float:spZ2[MAX_PLAYERS],Float:spA2[MAX_PLAYERS];
new Float:spX3[MAX_PLAYERS],Float:spY3[MAX_PLAYERS],Float:spZ3[MAX_PLAYERS],Float:spA3[MAX_PLAYERS];
new Float:spX4[MAX_PLAYERS],Float:spY4[MAX_PLAYERS],Float:spZ4[MAX_PLAYERS],Float:spA4[MAX_PLAYERS];
new Float:spX5[MAX_PLAYERS],Float:spY5[MAX_PLAYERS],Float:spZ5[MAX_PLAYERS],Float:spA5[MAX_PLAYERS];

 
Helyett egyszerûbb megoldás:
 
new Float:spX[MAX_PLAYERS][5],Float:spY[MAX_PLAYERS][5],Float:spZ[MAX_PLAYERS][5],Float:spA[MAX_PLAYERS][5];

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal