GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: kamionos - 2014. február 07. - 17:38:54

Cím: Dialogos teleport
Írta: kamionos - 2014. február 07. - 17:38:54
Üdv...
Kezdõ Scripter vagyok....
El kezdtem irni egy dialogos teleport rendszert,ami összezavarodott!!
Sejtem mit csesztem már el!!!,de még nem tudom megcsinálni!
Igy néz ki maga a cucc:
 
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid==teleport)
{
if(response)
{
if(listitem==0)
///////////////////////////////////////////////////////////-Városok-//////////////////////////////////////////////////////////////////////////////
{
ShowPlayerDialog(playerid,teleport,DIALOG_STYLE_LIST,\"Városok\",\"{ffffff}Los Santos\\n{ffffff}San Fierro\\n{ffffff}Las Venturas\",\"Port\", \"Mégse\");
if(listitem==0)
   {
      SetPlayerPos(playerid,1306.7422,1267.5371,10.8203);
      return 1;
   }
if(listitem==1)
   {
      SetPlayerPos(playerid,-1567.6731,-179.2296,14.1484);
      return 1;
   }
if(listitem==2)
   {
      SetPlayerPos(playerid,1412.8171,-2435.1362,13.5766);
      return 1;
   }
   return 1;
}
else if(listitem==1)
///////////////////////////////////////////////////////////-Faluk-//////////////////////////////////////////////////////////////////////////////
{
ShowPlayerDialog(playerid,teleport,DIALOG_STYLE_LIST,\"Faluk\",\"{ff0000}Fort Carson\\n{ffffff}Falu 2\\n{ffffff}Falu 3\",\"Port\", \"Mégse\");
if(listitem==0)
   {
      SetPlayerPos(playerid,1306.7422,1267.5371,10.8203);
      return 1;
   }
if(listitem==1)
   {
      SetPlayerPos(playerid,-1567.6731,-179.2296,14.1484);
      return 1;
   }
if(listitem==2)
   {
      SetPlayerPos(playerid,1412.8171,-2435.1362,13.5766);
      return 1;
   }
   return 1;
}
///////////////////////////////////////////////////////////-Stuntok-//////////////////////////////////////////////////////////////////////////////
else if(listitem==2)
{
ShowPlayerDialog(playerid,teleport,DIALOG_STYLE_LIST,\"Stuntok\",\"{0000ff}Stunt City\\n{0000ff}Stunt1\\n{0000ff}Stunt area\",\"Port\", \"Mégse\");
if(listitem==0)
   {
      SetPlayerPos(playerid,1306.7422,1267.5371,10.8203);
      return 1;
   }
if(listitem==1)
   {
      SetPlayerPos(playerid,-1567.6731,-179.2296,14.1484);
      return 1;
   }
if(listitem==2)
   {
      SetPlayerPos(playerid,1412.8171,-2435.1362,13.5766);
      return 1;
   }
   return 1;
}
///////////////////////////////////////////////////////////-Driftek-//////////////////////////////////////////////////////////////////////////////
else if(listitem==3)
{
ShowPlayerDialog(playerid,teleport,DIALOG_STYLE_LIST,\"Driftek\",\"{ff00ff}Drift world\\n{ff00ff}Drift world 2\\n{ff00ff}Drift\",\"Port\", \"Mégse\");
if(listitem==0)
      {
      SetPlayerPos(playerid,1306.7422,1267.5371,10.8203);
      return 1;
      }
if(listitem==1)
      {
      SetPlayerPos(playerid,-1567.6731,-179.2296,14.1484);
      return 1;
      }
if(listitem==2)
   {
      SetPlayerPos(playerid,1412.8171,-2435.1362,13.5766);
      return 1;
   }
}
}
}
return 1;
}

 
Ha valaki ki tudná javítani a hibát azt nagyon megköszönném!
Cím: Dialogos teleport
Írta: Dfoglalo - 2014. február 07. - 17:55:31
Ránéztem a kódra, és elhánytam magam... :crazy: :sick: Ilyen rondán, és eszméletlenül hibásan nem hagyhatom... Habár nem akartam, de csak azért, hogy kijavítsd, megírtam neked helyesen (ha persze nem írtam el benne semmit)...
 
public OnDialogResponse(playerid,  dialogid,  response,  listitem,  inputtext[])
{
    if(dialogid == teleport)
    {
        if(response)
        {
            if(listitem == 0)
            {
                ShowPlayerDialog(playerid, varosok, DIALOG_STYLE_LIST, \"Városok\", \"{ffffff}Los Santos\\n{ffffff}San Fierro\\n{ffffff}Las Venturas\", \"Port\", \"Mégse\");
            }
            if(listitem == 1)
            {
                ShowPlayerDialog(playerid, falvak, DIALOG_STYLE_LIST, \"Falvak\", \"{ff0000}Fort Carson\\n{ffffff}Falu 2\\n{ffffff}Falu 3\", \"Port\", \"Mégse\");
            }
            if(listitem == 2)
            {
       ShowPlayerDialog(playerid, stuntok, DIALOG_STYLE_LIST, \"Stuntok\", \"{0000ff}Stunt City\\n{0000ff}Stunt1\\n{0000ff}Stunt area\", \"Port\", \"Mégse\");
            }
            if(listitem == 3)
            {
       ShowPlayerDialog(playerid, driftek, DIALOG_STYLE_LIST, \"Driftek\", \"{ff00ff}Drift world\\n{ff00ff}Drift world 2\\n{ff00ff}Drift\", \"Port\", \"Mégse\");
            }
        }
    }
    if(dialogid == varosok)
    {
        if(response)
        {
            if(listitem == 0)
            {
                SetPlayerPos(playerid, 1306.7422, 1267.5371, 10.8203);
            }
            if(listitem == 1)
            {
                SetPlayerPos(playerid, -1567.6731, -179.2296, 14.1484);
            }
            if(listitem == 2)
            {
                SetPlayerPos(playerid, 1412.8171, -2435.1362, 13.5766);
            }
        }
    }
    if(dialogid == falvak)
    {
        if(response)
        {
            if(listitem == 0)
            {
                SetPlayerPos(playerid, 1306.7422, 1267.5371, 10.8203);
            }
            if(listitem == 1)
            {
                SetPlayerPos(playerid, -1567.6731, -179.2296, 14.1484);
            }
            if(listitem == 2)
            {
                SetPlayerPos(playerid, 1412.8171, -2435.1362, 13.5766);
            }
        }
    }
    if(dialogid == stuntok)
    {
        if(response)
        {
            if(listitem == 0)
            {
                SetPlayerPos(playerid, 1306.7422, 1267.5371, 10.8203);
            }
            if(listitem == 1)
            {
                SetPlayerPos(playerid, -1567.6731, -179.2296, 14.1484);
            }
            if(listitem == 2)
            {
                SetPlayerPos(playerid, 1412.8171, -2435.1362, 13.5766);
            }
        }
    }
    if(dialogid == driftek)
    {
        if(response)
        {
            if(listitem == 0)
            {
                SetPlayerPos(playerid, 1306.7422, 1267.5371, 10.8203);
            }
            if(listitem == 1)
            {
                SetPlayerPos(playerid, -1567.6731, -179.2296, 14.1484);
            }
            if(listitem == 2)
            {
                SetPlayerPos(playerid, 1412.8171, -2435.1362, 13.5766);
            }
        }
    }
    return 1;
}
Cím: Dialogos teleport
Írta: kamionos - 2014. február 07. - 17:57:59
nemazért,de ez ugyanolyan szar...rámegyek a los santosra kidob a stuntokhoz....
Cím: Dialogos teleport
Írta: Lucio - 2014. február 07. - 20:26:30
http://forum.sa-mp.com/showthread.php?t=475838
Használd ezt az incet, egyszerûbb átláthatóbb nem kell szenvedni dialog id-kkel és bárhova írhatod, hogy mit csináljon a Dialog
Cím: Dialogos teleport
Írta: jana4 - 2014. február 07. - 21:16:49

public OnDialogResponse(playerid,  dialogid,  response,  listitem,  inputtext[])
{
    if(dialogid == teleport)
    {
        if(response)
        {
            switch(listitem)
            {
                case 0: ShowPlayerDialog(playerid, varosok, DIALOG_STYLE_LIST, \"Városok\", \"{ffffff}Los Santos\\n{ffffff}San Fierro\\n{ffffff}Las Venturas\", \"Port\", \"Mégse\");
                case 1: ShowPlayerDialog(playerid, falvak, DIALOG_STYLE_LIST, \"Falvak\", \"{ff0000}Fort Carson\\n{ffffff}Falu 2\\n{ffffff}Falu 3\", \"Port\", \"Mégse\");
       case 2: ShowPlayerDialog(playerid, stuntok, DIALOG_STYLE_LIST, \"Stuntok\", \"{0000ff}Stunt City\\n{0000ff}Stunt1\\n{0000ff}Stunt area\", \"Port\", \"Mégse\");
       case 3: ShowPlayerDialog(playerid, driftek, DIALOG_STYLE_LIST, \"Driftek\", \"{ff00ff}Drift world\\n{ff00ff}Drift world 2\\n{ff00ff}Drift\", \"Port\", \"Mégse\");
   }
        }
    }
   
    if(dialogid == varosok)
    {
        if(response)
        {
            if(listitem == 0) SetPlayerPos(playerid, 1306.7422, 1267.5371, 10.8203);
            if(listitem == 1) SetPlayerPos(playerid, -1567.6731, -179.2296, 14.1484);
            if(listitem == 2) SetPlayerPos(playerid, 1412.8171, -2435.1362, 13.5766);
        }
    }
   
    if(dialogid == falvak)
    {
        if(response)
        {
            if(listitem == 0) SetPlayerPos(playerid, 1306.7422, 1267.5371, 10.8203);
            if(listitem == 1) SetPlayerPos(playerid, -1567.6731, -179.2296, 14.1484);
            if(listitem == 2) SetPlayerPos(playerid, 1412.8171, -2435.1362, 13.5766);
        }
    }
   
    if(dialogid == stuntok)
    {
        if(response)
        {
            if(listitem == 0) SetPlayerPos(playerid, 1306.7422, 1267.5371, 10.8203);
            if(listitem == 1) SetPlayerPos(playerid, -1567.6731, -179.2296, 14.1484);
            if(listitem == 2) SetPlayerPos(playerid, 1412.8171, -2435.1362, 13.5766);
        }
    }
   
    if(dialogid == driftek)
    {
        if(response)
        {
            if(listitem == 0) SetPlayerPos(playerid, 1306.7422, 1267.5371, 10.8203);
            if(listitem == 1) SetPlayerPos(playerid, -1567.6731, -179.2296, 14.1484);
            if(listitem == 2) SetPlayerPos(playerid, 1412.8171, -2435.1362, 13.5766);
        }
    }
    return 1;
}

 
Átláthatóbb.

Különben nem vetted észre még, hogy mindenhol ugyanaz a 3 koordináta van? Legyen az város, falu, stunt, drift...
Cím: Dialogos teleport
Írta: Dfoglalo - 2014. február 07. - 22:24:22
Idézetet írta: Dead Space date=1391792279\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"46352\" data-ipsquote-contentclass=\"forums_Topic
nemazért,de ez ugyanolyan sz*r...rámegyek a los santosra kidob a stuntokhoz....
 
-->
 

Különben nem vetted észre még, hogy mindenhol ugyanaz a 3 koordináta van? Legyen az város, falu, stunt, drift...
 
[/quote]
Egyébként LOL, azokat a koordinátákat komolyan gondolta ??? Azt hittem, az csak példa, és tud róla, hogy ugyanolyanok. De ezek szerint nem...
Cím: Dialogos teleport
Írta: kamionos - 2014. február 08. - 16:35:41
Az példa.... -.-

Dupla hozzászólás automatikusan összefûzve. ( 2014. február 08. - 16:41:16 )

Idézetet írta: ScreaM date=1391804209\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"46352\" data-ipsquote-contentclass=\"forums_Topic


public OnDialogResponse(playerid,  dialogid,  response,  listitem,  inputtext[])
{
    if(dialogid == teleport)
    {
        if(response)
        {
            switch(listitem)
            {
                case 0: ShowPlayerDialog(playerid, varosok, DIALOG_STYLE_LIST, \"Városok\", \"{ffffff}Los Santos\\n{ffffff}San Fierro\\n{ffffff}Las Venturas\", \"Port\", \"Mégse\");
                case 1: ShowPlayerDialog(playerid, falvak, DIALOG_STYLE_LIST, \"Falvak\", \"{ff0000}Fort Carson\\n{ffffff}Falu 2\\n{ffffff}Falu 3\", \"Port\", \"Mégse\");
       case 2: ShowPlayerDialog(playerid, stuntok, DIALOG_STYLE_LIST, \"Stuntok\", \"{0000ff}Stunt City\\n{0000ff}Stunt1\\n{0000ff}Stunt area\", \"Port\", \"Mégse\");
       case 3: ShowPlayerDialog(playerid, driftek, DIALOG_STYLE_LIST, \"Driftek\", \"{ff00ff}Drift world\\n{ff00ff}Drift world 2\\n{ff00ff}Drift\", \"Port\", \"Mégse\");
   }
        }
    }
   
    if(dialogid == varosok)
    {
        if(response)
        {
            if(listitem == 0) SetPlayerPos(playerid, 1306.7422, 1267.5371, 10.8203);
            if(listitem == 1) SetPlayerPos(playerid, -1567.6731, -179.2296, 14.1484);
            if(listitem == 2) SetPlayerPos(playerid, 1412.8171, -2435.1362, 13.5766);
        }
    }
   
    if(dialogid == falvak)
    {
        if(response)
        {
            if(listitem == 0) SetPlayerPos(playerid, 1306.7422, 1267.5371, 10.8203);
            if(listitem == 1) SetPlayerPos(playerid, -1567.6731, -179.2296, 14.1484);
            if(listitem == 2) SetPlayerPos(playerid, 1412.8171, -2435.1362, 13.5766);
        }
    }
   
    if(dialogid == stuntok)
    {
        if(response)
        {
            if(listitem == 0) SetPlayerPos(playerid, 1306.7422, 1267.5371, 10.8203);
            if(listitem == 1) SetPlayerPos(playerid, -1567.6731, -179.2296, 14.1484);
            if(listitem == 2) SetPlayerPos(playerid, 1412.8171, -2435.1362, 13.5766);
        }
    }
   
    if(dialogid == driftek)
    {
        if(response)
        {
            if(listitem == 0) SetPlayerPos(playerid, 1306.7422, 1267.5371, 10.8203);
            if(listitem == 1) SetPlayerPos(playerid, -1567.6731, -179.2296, 14.1484);
            if(listitem == 2) SetPlayerPos(playerid, 1412.8171, -2435.1362, 13.5766);
        }
    }
    return 1;
}

 
Átláthatóbb.

Különben nem vetted észre még, hogy mindenhol ugyanaz a 3 koordináta van? Legyen az város, falu, stunt, drift...

 
És ha ne csak gyalogosan hanem kocsival együtt portáljon azt hogy oldhatom meg?
Cím: Dialogos teleport
Írta: Dfoglalo - 2014. február 08. - 16:59:43
Sosem írtam saját kocsi+player teleportot, mert még sosem volt rá szükségem. De szerintem így néz ki a dolog:
 
if(IsPlayerInAnyVehicle(playerid))
{
    SetVehiclePos(GetPlayerVehicleID // ...
    PutPlayerInVehicle // ...
}

 
Vagy valami ilyesmi :D
Cím: Dialogos teleport
Írta: Pedró - 2014. február 08. - 17:14:07
if(IsPlayerInAnyVehicle(playerid)) {
    SetVehiclePos(GetPlayerVehicleID(playerid), X, Y, Z);
}else{
    SetPlayerPos(playerid, X, Y, Z);
}

 
Így nézne ki a kocsis teleportálás.
Cím: Dialogos teleport
Írta: kamionos - 2014. február 08. - 17:19:51
Köszönöm!
AMúgy még 1 probléma van,aztán zárok,az az hogy össze vissza ugrál a dialog!
ugye vannak Városok,Stuntok,Driftek és faluk...
Rámegyek Városokon belül a San Fierro-ra,elportál sf be és átdob a Stuntok-hoz!
Ezt hogy lehetne kiküszöbölni?Meg azt hogy portálás tán bezáródjon a dialog?
Cím: Dialogos teleport
Írta: jana4 - 2014. február 08. - 19:28:02
\"A hiba az Ön készülékében van.\"

A teleportálás után NEM szabadna bejönnie semminek sem. Küld el PM-ben a kódodat (ha lehet, pwn fájlformátumban) ha nem szeretnéd itt megosztani.
Cím: Dialogos teleport
Írta: Kovacs_Richard - 2014. február 10. - 13:49:39
Idézetet írta: Dfoglalo date=1391792131\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"46352\" data-ipsquote-contentclass=\"forums_Topic
Ránéztem a kódra, és elhánytam magam... :crazy: :sick: Ilyen rondán, és eszméletlenül hibásan nem hagyhatom... Habár nem akartam, de csak azért, hogy kijavítsd, megírtam neked helyesen (ha persze nem írtam el benne semmit)...
 
a tied is elég gusztustalan :D :Cry2:
másold be a jelenlegi kódod!
Cím: Dialogos teleport
Írta: Dfoglalo - 2014. február 10. - 14:32:31
Idézetet írta: Kovacs_Richard date=1392036579\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"46352\" data-ipsquote-contentclass=\"forums_Topic


Ránéztem a kódra, és elhánytam magam... :crazy: :sick: Ilyen rondán, és eszméletlenül hibásan nem hagyhatom... Habár nem akartam, de csak azért, hogy kijavítsd, megírtam neked helyesen (ha persze nem írtam el benne semmit)...
 
a tied is elég gusztustalan :D :Cry2:
másold be a jelenlegi kódod!
 
[/quote]
Az már más kérdés, ha te máshogy programozol, de az enyém legalább rendezett, nem úgy, mint az övé. ;)
Amúgy szerintem már megoldotta, ugyanis kint van a [MEGOLDVA] kategória...