Jump to content
  • 0

pomoc Dialog - Warp System


Riko

Dotaz

Zdravím, 

Mám otázku, potřeboval bych to, že když hráč napíše /warps, zobrazí se dialog stylu LIST a v něm položky, potřeboval bych, že když na nějakou položku ze seznamu klikne, aby ho to odwarpovalo tam, kam je zvolená pozice.

Jsem nováček, ale tuším, že to má nějakou souvislost s "case", že case znamená položka v seznamu, ale nevím to určitě.

Díky za případné rady, pokud bude potřeba detailněji, upravím.

S pozdravem, Waymoot

Link to comment
Share on other sites

4 odpovědí na tuto otázku

Recommended Posts

  • 0

 

 
 

#include <a_samp>

public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/warps", cmdtext, true, 10) == 0)
{
ShowPlayerDialog(playerid, 400, DIALOG_STYLE_LIST, "{FF0000}Warp System", "{FFFFFF}1. {00FF00}Las Venturas\n{FFFFFF}2. {00FF00}San Fierro\n{FFFFFF}3. {00FF00}Los Ssntos\n{FFFFFF}4. {00FF00}Info\n", "Ok", "");
return 1;
}
/*////////////////////////////////////////////////////////////////////////////////////////////
Warps
*/
if (strcmp("/dragon", cmdtext, true, 10) == 1)
   {
       SetPlayerPos(playerid, 2153.7300,944.8992,10.5474);
       SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}[ {00FF00}! {FF0000}] {FFFFFF}Byl jsi odwarpován ke casinu 4Dragons.");
       }
return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 400)
  {
if(response == 1)
  {
     switch(listitem)
     {
     case 0:
     {
     ShowPlayerDialog(playerid, 401, DIALOG_STYLE_LIST, "{FF0000}Las Venturas", "{FFFFFF}1. {00FF00}/dragon", "Ok", "");
        {
            switch(listitem)
           {
           case 0:
           {
  SetPlayerPos(playerid, 2153.7300,944.8992,10.5474);
    SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}[ {00FF00}! {FF0000}] {FFFFFF}Byl jsi odwarpován ke casinu 4Dragons.");
    }
    }
    }
  }
  }
}
}
return 1;
}

 

 

 

Problém je, že warpuje jakmile klikne na Las Venturas, já potřebuji, aby odwarpoval až po kliknutí na /dragon.

Edited by Waymoot
Link to comment
Share on other sites

  • 0

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 400)
{
if(response)
{
// zobrazení menu pro LV, zobrazení menu pro SF, zobrazení menu pro LS atd.. žádné porty
}
return 1;
}

if(dialogid == 401) // třeba pro LV
{
if(response)
{
if(listitem == 0) // port na dragon (můžeš použít switch ofc
else if(listitem == 1) // port jinam..
}
return 1;
}

// analogicky jako pro LV udělat pro SF, LS.. (s jiným id)
}
.
  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

  • 0
#include <a_samp>

public OnPlayerCommandText(playerid,cmdtext[])
{
	if(strcmp("/warps",cmdtext,true) == 0) return ShowPlayerDialog(playerid,400,DIALOG_STYLE_LIST,"{FF0000}Warp System","{FFFFFF}1. {00FF00}Las Venturas\n{FFFFFF}2. {00FF00}San Fierro\n{FFFFFF}3. {00FF00}Los Ssntos\n{FFFFFF}4. {00FF00}Info\n","Ok","");
	if(strcmp("/dragon",cmdtext,true) == 0) return WarpPlayer(playerid,0);
	return 1;
}

public OnDialogResponse(playerid,dialogid,response,listitem,inputtext[])
{
	if(dialogid == 400)
	{
		if(response == 1) WarpPlayer(playerid,listitem);
	}
	return 1;
}

stock WarpPlayer(playerid,type)
{
	switch(type)
	{
		case 0:
		{
			SetPlayerPos(playerid,2153.7300,944.8992,10.5474);
		    SendClientMessage(playerid,0xFFFFFFFF,"{FF0000}[ {00FF00}! {FF0000}] {FFFFFF}Byl jsi odwarpován ke casinu 4Dragons.");
		}
	}
	return 1;
}

rozhodnedoporucuji neduplikovat kod. ale mit to na jednom miste (v pripade zmeny pak nemusis vzpominat kde jsi to vsude napsal :))

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...