Szerző Téma: GPS rendszer  (Megtekintve 953 alkalommal)

feheristi97

  • Vendég
GPS rendszer
« Dátum: 2011. július 27. - 23:47:37 »
0 Show voters
Helló! Segitség kellene nekem egy barátom szerveribe egy olyan szkript kellene hogyha beirod hogy /gps akor kiad egy boxot és ha ráklikelsz pl: Drift Verseny akor a térképen jelõlje e hogy merre van elõre is kösszi:DDD

Nem elérhető .:Secur:.

  • 2430
  • GTA Hero
    • Profil megtekintése
GPS rendszer
« Válasz #1 Dátum: 2011. július 28. - 00:02:48 »
0 Show voters
Ehhez szükség lenne pl. a drift versenypálya pontos helyére, hogy oda tudja rakni a piros kis checkpointot a térképen.
Stb. havernak mond meg tanuljon meg szkriptelni.
Ezeket amúgy rp szerverekben használják, nézz szét az rp-s scripteknél.

GPS rendszer
« Válasz #2 Dátum: 2011. július 28. - 00:04:41 »
0 Show voters
Várj egy kicsit, már elkezdtem írni!

GPS rendszer
« Válasz #3 Dátum: 2011. július 28. - 00:32:39 »
0 Show voters
[pawn]#include <a_samp>
#include <zcmd>
new Float:TeleportKoordinatak[2][3]={   //2 a sorok száma, 3 a sorok értékeinek száma.
{2204.9468, 1986.2877, 16.7380},    //x,y,z - 1. teleport hely koordinátái. (ird át!)
{2224.6557, 2467.4673, 12.3415}      //x,y,z - 2. teleport hely koordinátái (ird át!).
//Ugyanígy folytathatod ha több teleport kell. (utolsó után ne rakj vesszõt!)
};
new TeleportNevek[2][1]={     //2 a sorok száma, 1 a sorok értékeinek száma.
{\"1. teleport neve\"},           //ez a név 2204.9468, 1986.2877, 16.7380 ehhez tartozik!
{\"2. teleport neve\"}            //ez a név 2224.6557, 2467.4673, 12.3415 ehhez tartozik!
//Fontos, hogy mûködjön minden koordinátához tartoznia kell egy névnek!
};
CMD:gps(playerid)
{
new str[128];
format(str, 128, \"%s\\n%s\\nCP törlése\",TeleportNevek[1],TeleportNevek[2]); //Ha több van TeleportNevek[3] TeleportNevek[4] stb...
ShowPlayerDialog(playerid, 200, DIALOG_STYLE_LIST, \"Teleport menü\",str,\"Teleport!\",\"Kilépés\");  //Ha több van úgyan így folytatsd %s\\n ez egy, (Az utolsó után nem kell vesszõ.)
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 200)
{
    switch(listitem)
    {
                case 0: SetPlayerCheckpoint(playerid, TeleportKoordinatak[1][1],TeleportKoordinatak[1][2],TeleportKoordinatak[1][3], 3.0);
                case 1: SetPlayerCheckpoint(playerid, TeleportKoordinatak[2][1],TeleportKoordinatak[2][2],TeleportKoordinatak[2][3], 3.0);
      //A következõ ilyen lenne: case 2: SetPlayerPos(playerid, TeleportKoordinatak[3][1],TeleportKoordinatak[3][2],TeleportKoordinatak[3][3], 3.0);
      case 2: DisablePlayerCheckpoint(playerid); //ezt kiveheted, ezt csak a cp törlésére tettem bele.
             }
}
return 1;
}[/pawn]
Elvileg így menni fog, kommentbe mindent beírtam, ha még sem jó szolj és kijavítom ha tudom(nem teszteltem).
Ha jó jöhet a +
« Utoljára szerkesztve: 2011. július 28. - 00:35:47 írta mauladam »

GPS rendszer
« Válasz #4 Dátum: 2011. július 28. - 00:55:37 »
0 Show voters
Pill, nézem :)

GPS rendszer
« Válasz #5 Dátum: 2011. július 28. - 22:35:25 »
0 Show voters
[pawn]#include <a_samp>
#include <zcmd>
new Float:TeleportKoordinatak[2][3]={    //2 a sorok száma, 3 a sorok értékeinek száma.
{2204.9468,1986.2877,16.7380},
{2224.6557,2467.4673,12.3415}
};
new TeleportNevek[2]={\"1. Teleport neve\",\"2. Teleport neve\"};
CMD:gps(playerid)
{
new str[128];
format(str, 128, \"%s\\n%s\\nCP törlése\",TeleportNevek[0],TeleportNevek[1]); //Ha több van TeleportNevek[3] TeleportNevek[4] stb...
ShowPlayerDialog(playerid, 200, DIALOG_STYLE_LIST, \"Teleport menü\",str,\"Teleport!\",\"Kilépés\");  //Ha több van úgyan így folytatsd %s\\n ez egy, (Az utolsó után nem kell vesszõ.)
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 200)
{
    switch(listitem)
    {
        case 0: SetPlayerCheckpoint(playerid, TeleportKoordinatak[0][0],TeleportKoordinatak[0][1],TeleportKoordinatak[0][2], 3.0);
        case 1: SetPlayerCheckpoint(playerid, TeleportKoordinatak[1][0],TeleportKoordinatak[1][1],TeleportKoordinatak[1][2], 3.0);
      //A következõ ilyen lenne: case 2: SetPlayerPos(playerid, TeleportKoordinatak[3][1],TeleportKoordinatak[3][2],TeleportKoordinatak[3][3], 3.0);
      case 2: DisablePlayerCheckpoint(playerid); //ezt kiveheted, ezt csak a cp törlésére tettem bele.
   }
}
return 1;
}[/pawn]
Tessék.
1 error van amit nem tudok javítani :(

GPS rendszer
« Válasz #6 Dátum: 2011. július 28. - 22:52:27 »
0 Show voters
Hát figyelmesen néztem a topicot de gondoltam csak rájössz.
Itt a hiba:
[pawn]
new TeleportNevek[2]={\"1. Teleport neve\",\"2. Teleport neve\"};
[/pawn]
[pawn]
new TeleportNevek[2][]={\"1. Teleport neve\",\"2. Teleport neve\"};
[/pawn]
Mivel nagyon belemerültél abba hogy az adattömböknek értéket adj, így nem értetted meg azt hogy egy string egyetlen karaktere is egy cellát foglal el.
Röviden egy [pawn] new PlayerVariables[MAX_PLAYERS];[/pawn] változót lehet használni arra hogy minden egyes cella játékosonként tároljon egy adatot,
de fel lehet használni karakterlánchoz (string) is. (Igaz ebben az esetben minden adat felülíródik ami a játékosok számára lett meghatározva.
[pawn]
format(PlayerVariables, sizeof(PlayerVariables), \"Hi a játékosok számára létrehozott változót használom karakterlánc tárolásra. %s\", \"Azta.\");
print(PlayerVariables);
[/pawn]
És biztosra veszem hogy elfog tartani még egy darabig míg megérted  :D.

GPS rendszer
« Válasz #7 Dátum: 2011. július 29. - 03:47:50 »
0 Show voters
Szerintem is  :D
Na, ebbõl ennyit értettem meg(ha megértettem) hogyha sztringeket szeretnék tárolni tömbben akkor a cellák számának minimum a sztring karaktereinek számával kell egyeznie.
Jól értelmeztem?

GPS rendszer
« Válasz #8 Dátum: 2011. július 29. - 07:58:02 »
0 Show voters
Idézetet írta: mauladam date=1311904070\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"9896\" data-ipsquote-contentclass=\"forums_Topic
Szerintem is  :D
Na, ebbõl ennyit értettem meg(ha megértettem) hogyha sztringeket szeretnék tárolni tömbben akkor a cellák számának minimum a sztring karaktereinek számával kell egyeznie.
Jól értelmeztem?
 
Pontosan, mivel minden egyes karakter egy cellát foglal el. A legtöbbet alkalmazott formában!
[pawn]
new string[32];
string = \"valami\";
// Or
strcat(string, \"valami\");
// Vagy
format(string, sizeof(string), \"valami\");
[/pawn]
Azt jelenti hogy te létrehoztál egy:
 

string[0] = \'v\';
string[1] = \'a\';
string[2] = \'l\';
string[3] = \'a\';
string[4] = \'m\';
string[5] = \'i\';
string[6] = \'\\0\';
// És ez így is mûködni fog.

 
Majd ki lehet íratni az összes tömben tárolt karaktereket SendClientMessage print ShowPlayerDialog stb. funkcióval.
[pawn]
print(string);
// or
SendClientMessageToAll(-1, string);
// Vagy
printf(\"%s\", string);
// Vagy
printf(\"%s\", string[2]); // Itt már érdekes a 2 es cellától kezdve fogja kiírni a printf az array tartalmát addig míg érvénye karakterek vannak benne.
// vagy
printf(\"%c%c%c%c%s\", string[0], string[1], string[2], string[3], string[4]);
[/pawn]
Remélem valamit segített.
Csak írtam valamit most mennem kell melózni, nincs idõm többre.

GPS rendszer
« Válasz #9 Dátum: 2011. július 29. - 11:34:25 »
0 Show voters
Ha úgy szeretnéd, hogy bármilyen kocsiba beszáll, akkor megjelenjen a dialog, akkor hozzá kell tenned ezt:
[pawn]public OnPlayerEnterVehicle(playerid, vehicleid)
{
        new str[128];
format(str, 128, \"%s\\n%s\\nCP törlése\",TeleportNevek[0],TeleportNevek[1]);
        ShowPlayerDialog(playerid, 200, DIALOG_STYLE_LIST, \"Teleport menü\",str,\"Teleport!\",\"Kilépés\");
return 1;
}[/pawn]

herban

  • Vendég
GPS rendszer
« Válasz #10 Dátum: 2011. július 29. - 23:01:31 »
+1 Show voters
Tessék.
[pawn]
#include <a_samp>
#include <zcmd>
new Float:TeleportKoordinatak[2][3]={    //2 a sorok száma, 3 a sorok értékeinek száma.
{2204.9468,1986.2877,16.7380},
{2224.6557,2467.4673,12.3415}
};
new TeleportNevek[2]={\"1. Teleport neve\",\"2. Teleport neve\"};
CMD:gps(playerid)
{
new str[128];
format(str, 128, \"%s\\n%s\\nCP törlése\",TeleportNevek[0],TeleportNevek[1]); //Ha több van TeleportNevek[3] TeleportNevek[4] stb...
ShowPlayerDialog(playerid, 200, DIALOG_STYLE_LIST, \"Teleport menü\",str,\"Teleport!\",\"Kilépés\");  //Ha több van úgyan így folytatsd %s\\n ez egy, (Az utolsó után nem kell vesszõ.)
return 1;
}
public OnPlayerEnterVehicle(playerid, vehicleid)
{
        new str[128];
format(str, 128, \"%s\\n%s\\nCP törlése\",TeleportNevek[0],TeleportNevek[1]);
        ShowPlayerDialog(playerid, 200, DIALOG_STYLE_LIST, \"Teleport menü\",str,\"Teleport!\",\"Kilépés\");
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 200)
{
    switch(listitem)
    {
        case 0: SetPlayerCheckpoint(playerid, TeleportKoordinatak[0][0],TeleportKoordinatak[0][1],TeleportKoordinatak[0][2], 3.0);
        case 1: SetPlayerCheckpoint(playerid, TeleportKoordinatak[1][0],TeleportKoordinatak[1][1],TeleportKoordinatak[1][2], 3.0);
      //A következõ ilyen lenne: case 2: SetPlayerPos(playerid, TeleportKoordinatak[3][1],TeleportKoordinatak[3][2],TeleportKoordinatak[3][3], 3.0);
      case 2: DisablePlayerCheckpoint(playerid); //ezt kiveheted, ezt csak a cp törlésére tettem bele.
   }
}
return 1;
}[/pawn]

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal