-
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!
-
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);
}
}
}
-
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.
-
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..
-
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.
-
#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;
}
-
#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!
-
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.
-
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);
-
Ja vagyis mindenkinek? Vagy csak neki? :facepalm:
-
Hat az teljesen mindegy mert az a legkissebb
-
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\" );
-
Köszi! Müködik! Ment a +! Zárok!