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: KDDomi - 2012. szeptember 07. - 16:01:18

Cím: Dialog
Írta: KDDomi - 2012. szeptember 07. - 16:01:18
Sziasztok! Van egy teleport dialogom és azt szeretném megoldani ha rámegy valameikre akkor ne keljen nekem oda irni hogy hova teleportált hanem kiirná alapból! Régen emléxem valahogy megoldottam hogy ami a dialog listába van szöveg irva külön külön oda irtam. Remélem értitek!
Nagyon fontos lenne!
Elöre is köszi!
Cím: Dialog
Írta: Tomee - 2012. szeptember 07. - 16:05:56
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_LIST,\"TEleportok\",\"teleport 1\\nteleport2\\nteleport3\",\"Kiválaszt\",\"Kilép\");
if(dialogid == 0)
{
     if(response)
     {
          switch(listitem)
          {
               case 0: SetPlayerPos(playerid, 1590.5427,-2286.7063,-1.2054);
               case 1: SetPlayerPos(playerid, 1025.8188,-1926.5471,12.7863);
               case 2: SetPlayerPos(playerid, 826.7949,-1344.7988,13.5375);
          }
     }
}
Cím: Dialog
Írta: KDDomi - 2012. szeptember 07. - 16:10:18
Nem erre gondoltam! Van 3 teleport hely egy lista dialogban! A dialogba beirtam ha rámegy akkor kiir egy üzenetet hogy elteleportált! És azt szeretném hogy a dialog részébõl kiolvassa hogy milyen nevek vannak a dialogban! És onnan irná ki.
Cím: Dialog
Írta: ZyZu. - 2012. szeptember 07. - 18:33:23

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG NEVE)
{
    if(response)
{
    if(listitem == 0)
    {
                SetPlayerPos(playerid, 1320.4924, 1260.0894, 10.8203);
                SendClientMessage(playerid,-1, \"Elteleportáltál Los Santosba!\");
    }
    if(listitem == 1)
    {
                SetPlayerPos(playerid, 1933.5570,-2300.0474,16.2648);
                SendClientMessage(playerid,-1, \"Elteleportáltál Las Venturasban!\");
    }
    if(listitem == 2)
    {
                SetPlayerPos(playerid, -1528.0000,-206.0000,14.1484);
                SendClientMessage(playerid,-1, \"Elteleportáltál San Fierroba!\");
    }
    }
}

 
Szerintem ezt gondoltad..
Cím: Dialog
Írta: xSkillZ7x - 2012. szeptember 07. - 18:59:09
Nem erre gondol.
Tegyuk fel a lista elso teleportja lossantos.
Akkor mar automatikusan olvassa le onnan es azt irja ki.
Telefonon vagyok nem biztos hogy segiteni tudok.
Cím: Dialog
Írta: RolePlay - 2012. szeptember 07. - 19:15:10

#include <a_samp>
#include <zcmd>
#define TELE 1
 
CMD:teleportok(playerid, params[])
{
    ShowPlayerDialog(playerid, TELE, DIALOG_STYLE_LIST, \"Teleportok\", \"Los Santos \\nLas Venturas \\nSan Fierro\", \"Tovább\", \"Kilépés\");
    return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == TELE)
    {
       if(response)
        {
           if(listitem == 0)
            {
               SetPlayerPos(playerid, 1320.4924, 1260.0894, 10.8203);
                SendClientMessage(playerid,-1, \"Elteleportáltál Los Santosba!\");
            }
            if(listitem == 1)
            {
                SetPlayerPos(playerid, 1933.5570,-2300.0474,16.2648);
                SendClientMessage(playerid,-1, \"Elteleportáltál Las Venturasban!\");
           
            }
            if(listitem == 2)
            {
               SetPlayerPos(playerid, -1528.0000,-206.0000,14.1484);
                SendClientMessage(playerid,-1, \"Elteleportáltál San Fierroba!\");
            }
}
}
else
{
    if(!response)
    {
        SendClientMessage(playerid,-1, \"Már nem nézed a teleportok listáját!\");
    }
}
return 1;
}
Cím: Dialog
Írta: KDDomi - 2012. szeptember 07. - 20:02:09
Idézetet írta: RolePlay date=1347038110\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"27445\" data-ipsquote-contentclass=\"forums_Topic


#include <a_samp>
#include <zcmd>
#define TELE 1
 
CMD:teleportok(playerid, params[])
{
    ShowPlayerDialog(playerid, TELE, DIALOG_STYLE_LIST, \"Teleportok\", \"Los Santos \\nLas Venturas \\nSan Fierro\", \"Tovább\", \"Kilépés\");
    return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == TELE)
    {
       if(response)
        {
           if(listitem == 0)
            {
               SetPlayerPos(playerid, 1320.4924, 1260.0894, 10.8203);
                SendClientMessage(playerid,-1, \"Elteleportáltál Los Santosba!\");
            }
            if(listitem == 1)
            {
                SetPlayerPos(playerid, 1933.5570,-2300.0474,16.2648);
                SendClientMessage(playerid,-1, \"Elteleportáltál Las Venturasban!\");
           
            }
            if(listitem == 2)
            {
               SetPlayerPos(playerid, -1528.0000,-206.0000,14.1484);
                SendClientMessage(playerid,-1, \"Elteleportáltál San Fierroba!\");
            }
}
}
else
{
    if(!response)
    {
        SendClientMessage(playerid,-1, \"Már nem nézed a teleportok listáját!\");
    }
}
return 1;
}

 

Elötted irták ugyan ezt! És nem erre gondoltam!
Cím: Dialog
Írta: SnooP - 2012. szeptember 07. - 20:08:04
Tehát tisztázzuk, mert sokan nem vágják  :D Az kell neked, hogy beírod pl:   SetPlayerPos(playerid, 1933.5570,-2300.0474,16.2648); és autómatikusan lekérje a poziciót és kiírja, hogy hova teleportált anélkül, hogy te megadnád a poziciót nem? Ha ezt letisztázuk azután lehet tudok segíteni, de kicsit értelmetlen a fogalmazásod.
Cím: Dialog
Írta: xSkillZ7x - 2012. szeptember 07. - 20:21:07
Mit nem lehez ezen erteni?
Van a dialogban
 

“Tele1\\nTele2\\nTele3“

 
Ha a tele1re megy akkor automatikusan kiirja hogy tele1 re teleportaltalak.
Ehez kell format
rendes parancsbanmeg tudnam oldani
a parancs ala irod hogy:
new str[20];
format(str, sizeof(str), “Elteleportaltal : %s“, cmdtext);
SendClientMessage(playerid, 1, str);
Cím: Dialog
Írta: ZyZu. - 2012. szeptember 07. - 20:29:13
Ja vagyis mindenkinek? Vagy csak neki?  :facepalm:
Cím: Dialog
Írta: xSkillZ7x - 2012. szeptember 07. - 20:38:23
Hat az teljesen mindegy mert az a legkissebb
Cím: Dialog
Írta: Gabor.. - 2012. szeptember 07. - 20:51:17
Csak annyi, hogy egy külön függvényt kell csinálni.
 

stock Teleport( playerid, Float: X, Float: Y, Float: Z, const TeleName[] )
{
      new
            szString[ 144 + 1 ];
      format( szString, sizeof( szString ), \"Elteleportáltál %s nevû helyre.\", TeleName );
      SetPlayerPos( playerid, X, Y, Z );
      SendClientMessage( playerid, -1, szString );
      return 1;
}

 
Használat:
 
Teleport( playerid, 0.0, 0.1, 0.2, \"Los Santos\" );
Cím: Dialog
Írta: KDDomi - 2012. szeptember 07. - 21:12:35
Köszi! Müködik! Ment a +! Zárok!