Tömbös Teleport Rendszer

Indította Lömpi, 2013. október 14. - 19:54:42

Előző téma - Következő téma

Lömpi

Sziasztok.

Ma épp egy ilyen teleport rendszert kerestem itt fórumon a készülõ játékmódomhoz, és mivel nem találtam ilyet vagy ehhez hasonlót itt..


... ezért úgy gondoltam megírok egyet és megosztom veletek. Annyiban különbözik ez pár itt található rendszertõl, hogy


itt csak egy megadott tömbben kell megadni a koordinátákat, és a teleport nevét, és az magától a dialógusba helyezi!


Ha már valaki fel is használná, és mivel hiába kérném, hogy a nevem írja oda nem fogja, legalább egy pluszt dobjatok, ha már mást nem is írtok oda!


Szükséges függvénykönyvtárak: ZCMD


Itt egy kép:





http://s17.postimg.org/8m2tjg5ql/sa_mp_001.png\" alt=\"sa_mp_001.png\" />
 

FIGYELEM AZ ITTENI SCRIPT NEM TARTALMAZZA A KÉPEN TALÁLHATÓ TELEPORT KOORDINÁTÁKAT.


SAJÁT KEZÛLEG KELL MEGÍRNOTOK AMIRE SZÜKSÉGETEK VAN!


Itt Megtaláljátok a Scriptet: ( Lejjebb a példát a teleport hozzáadásához )



 
#include 
#include
#define COLOR_PURPLE 0xC790EEFF
#define DIALOG_TELE 7000
#pragma tabsize 0
enum TP      {
   Float: tX,    Float: tY,    Float: tZ,    Float: tZA,
   Int,    SCMTA[128]};
new Teleportok[][TP] =
{
   { 0.0,0.0,0.0,0.0,0, \"Teleport 1\" }, // Ezt a sort módosítod
   { 0.0,0.0,0.0,0.0,0, \"Teleport 2\"}
};
CMD:t(playerid, params[])
{
new DialogString[1024], rC;
    rC = random(2);
       format( DialogString, 1024 , \"\" );
         switch(rC)
   {
            case 0:
      {
      for( new i; i < sizeof( Teleportok ); i ++ )                 {
            format( DialogString, sizeof( DialogString ), \"%s\\n{F70431}%s\" ,DialogString, Teleportok[ i ][ SCMTA ] );   }
            ShowPlayerDialog( playerid , DIALOG_TELE , DIALOG_STYLE_LIST , \"Teleportok listája\", DialogString , \"Teleport!\" , \"Maradok!\" );
      }   case 1:      {
              for( new i; i < sizeof( Teleportok ); i ++ )                 {
            format( DialogString, sizeof( DialogString ), \"%s\\n{39F704}%s\" ,DialogString, Teleportok[ i ][ SCMTA ] );   }
            ShowPlayerDialog( playerid , DIALOG_TELE , DIALOG_STYLE_LIST , \"Teleportok listája\", DialogString , \"Teleport!\" , \"Maradok!\" );
      }
   }
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
   if(   dialogid == DIALOG_TELE   )     {
if(   response )      {
   new JN[MAX_PLAYER_NAME],
            FSTRING[128];
            GetPlayerName(playerid,JN,sizeof(JN));
           if( GetPlayerState( playerid ) == PLAYER_STATE_DRIVER )      {
               new   idxveh = GetPlayerVehicleID( playerid );
                 SetVehiclePos( idxveh, Teleportok[listitem][tX], Teleportok[listitem][tY], Teleportok[listitem][tZ]);
               SetVehicleZAngle( idxveh, Teleportok[listitem][tZA]);
        }
        else
        {
            SetPlayerPos( playerid,Teleportok[listitem][tX], Teleportok[listitem][tY], Teleportok[listitem][tZ]);
            SetPlayerFacingAngle( playerid, Teleportok[listitem][tZA]);
        }
        format(FSTRING,sizeof(FSTRING), \"[Teleport]: %s elment ide: %s\", JN, Teleportok[listitem][sCMTA]);
        SendClientMessageToAll( COLOR_PURPLE, FSTRING );
       }
   }
return 0;
}

 
Példa a teleport hozzáadásához:
 

{ 0.0,0.0,0.0,0.0,0, \"Teleport 1\" }, <|-- Eredeti sor
Segéd:
{ X POZÍCIÓ,Y POZÍCIÓ,Z POZÍCIÓ,FORDULÁSI SZÖG, INTERIOR, \"Teleport neve\" },
Példa:
{ 1526.0808,-1649.1783,13.0412,180.2365,0,    \"Los Santos\" },
{ 1944.5790,-2252.5217,13.2042,178.1524 ,0,   \"Los Santos Reptér\"},

Zsolesszka

#1
Ez így vicc nem?



                        case 0:
                               {
                               for( new i; i < sizeof( Teleportok ); i ++ )                            {
                           format( DialogString, sizeof( DialogString ), \"%s\\n{F70431}%s\" ,DialogString, Teleportok[ i ][ SCMTA ] );   }
                           ShowPlayerDialog( playerid , DIALOG_TELE , DIALOG_STYLE_LIST , \"Teleportok listája\", DialogString , \"Teleport!\" , \"Maradok!\" );
                               }       case 1:         {
               for( new i; i < sizeof( Teleportok ); i ++ )                            {
                           format( DialogString, sizeof( DialogString ), \"%s\\n{39F704}%s\" ,DialogString, Teleportok[ i ][ SCMTA ] );   }
                           ShowPlayerDialog( playerid , DIALOG_TELE , DIALOG_STYLE_LIST , \"Teleportok listája\", DialogString , \"Teleport!\" , \"Maradok!\" );
                               }

 
 
Csak azért duplán leírni mert a színezés változik véletlenszerûen kettõ szín közt?
 
CMD:t(playerid, params[])
{
new
DialogString[1024],
color[7];
color = (random(2))?(\"F70431\"):(\"39F704\");
for(new i; i < sizeof(Teleportok); i++ )
{
format(DialogString, sizeof DialogString, \"%s\\n{%s}%s\", DialogString, color, Teleportok[sCMTA] );  
}
ShowPlayerDialog(playerid, DIALOG_TELE, DIALOG_STYLE_LIST, \"Teleportok listája\", DialogString, \"Teleport!\", \"Maradok!\");
return 1;
}

 
Edit:
Javítva. :D

ZyZu.

stockot használtam de látom ez is egy jó megoldás.. viszont mySQL adabázisból könyebb a betöltés.. :)

Lömpi


stockot használtam de látom ez is egy jó megoldás.. viszont mySQL adabázisból könyebb a betöltés.. :)
 
[/quote]
Az is egy megoldás. Lehet megcsinálom, ha valakinek szüksége van rá.

AnthonyGates


Lömpi


f***a lett, felhasználom
 
[/quote]
köszönöm!

Zharko

Jaj ez a dns fiú visszatér :D
Újrakezdésnek jóez :D

Lömpi


Jaj ez a dns fiú visszatér :D
Újrakezdésnek jóez :D
 
[/quote]
puszillak :3