Jump to content
  • 0

pomoc Přidávání řádků k dialogu?


snake3321

Dotaz

Popis problému:

Zdravím.. Měl bych dotaz ohledně dialogů (input). Jedná se mi o to, že bych potřeboval pomoct s tím, jak vytvořit nějáký dialog ve kterém by byl nápis třeba přidat zbraň.. No a danému hráči by se v tomto dialogu vytvořil nový řádek na kterém by byla ta daná zbraň a on si ji mohl například vzít... Takhle pochopitelně tvořit i více řádků.. Předem děkuji za všechny rady.

 

Chyby/varování kompilátoru a při běhu:

--

 

Kód:

 

--

 

 

 

Dodatečné poznámky:

--

Link to comment
Share on other sites

16 odpovědí na tuto otázku

Recommended Posts

  • 0

Koukni se na tuto stránku: http://wiki.sa-mp.com/wiki/Dialog_Styles

Máš tam hezky popsané jaké dialogy existují a jak vypadají. Podle tvého popisu jsem pořádně nepochopil, co by si potřeboval udělat. Pokud ale narážíš na kombinaci dialogu typu "input" s jiným typem, tak to bohužel není možné.

Link to comment
Share on other sites

  • 0

Pokud ti správně rozumím, tak chceš mít 2 dialogy. Input, kde ty zbraně vkládáš a nakonec výsledný dialog, kde ty vytvořené zbraně budou. Jestliže ano, tak je hned několik možností, jak na to. Nejednoduší by bylo, kdybys mohl přidávat zbraně do dialogu, ale nikoliv je už odstraňovat. Tudíž, bys každé zbrani přiřadil id a proměnnou s existencí. V dialogu, kde bys ty zbraně měl vytvořené, tak bys za id mohl dosadit listitem(0++):

(samozřejmě, nezapomeň kontrolovat vytvořený počet)

 

 

 

	GetFreeWeaponSlot() {

		for (new w; w < MAX_WEAPONS_TO_CREATE; w++) {

			if (!WeaponExist[w]) return w;
		}
	}


	/* Input */

	new 
		slotid = GetFreeWeaponSlot();
	WeaponExist[slotid] = true;
	Weapon[slotid] = id_zbraně;
	//WeaponAmmo[slotid] = náboje;


	/* Zobrazení */

	for (new w; w < MAX_WEAPONS_TO_CREATE; w++) {

		if (WeaponExist[w]) strcat(...); /* nebo */ format(...)
	}
	ShowPlayerDialog(...);


	/* Dialog */

	GivePlayerWeapon(playerid, Weapon[listitem], /*WeaponAmmo[listitem]*/ Náboje);

 

 

Horší případ je pak, pokud je chceš mazat, ale ani to není nemožné. Je tu opět několik možností. Nejlépe uděláš, když všechny údaje budeš ukládat(i u první varianty samozřejmě). Po smazání samozřejmě nemůžeš používat listitem, jako id, protože ti ho dosadí do pole proměn zbraní, které "existují"(což znamená, že se zobrazí například jen ID 0 a 2, ale listitemy budou mít hodnoty 0 a 1), takže jedno z řešení je začít cyklit od hodnoty listitemu a přidávat, dokud nenarazí na existující zbraň:

	GetWeaponID(listitem) {

		for (new w = listitem; w < MAX_...; w++) {

			if (WeaponExist[w]) return (w);
		}
	}
Edited by Ernst Remer
Link to comment
Share on other sites

  • 0

Pokud ti správně rozumím, tak chceš mít 2 dialogy. Input, kde ty zbraně vkládáš a nakonec výsledný dialog, kde ty vytvořené zbraně budou. Jestliže ano, tak je hned několik možností, jak na to. Nejednoduší by bylo, kdybys mohl přidávat zbraně do dialogu, ale nikoliv je už odstraňovat. Tudíž, bys každé zbrani přiřadil id a proměnnou s existencí. V dialogu, kde bys ty zbraně měl vytvořené, tak bys za id mohl dosadit listitem(0++):

(samozřejmě, nezapomeň kontrolovat vytvořený počet)

 

 

 

	GetFreeWeaponSlot() {

		for (new w; w < MAX_WEAPONS_TO_CREATE; w++) {

			if (!WeaponExist[w]) return w;
		}
	}


	/* Input */

	new 
		slotid = GetFreeWeaponSlot();
	WeaponExist[slotid] = true;
	Weapon[slotid] = id_zbraně;
	//WeaponAmmo[slotid] = náboje;


	/* Zobrazení */

	for (new w; w < MAX_WEAPONS_TO_CREATE; w++) {

		if (WeaponExist[w]) strcat(...); /* nebo */ format(...)
	}
	ShowPlayerDialog(...);


	/* Dialog */

	GivePlayerWeapon(playerid, Weapon[listitem], /*WeaponAmmo[listitem]*/ Náboje);

 

 

Horší případ je pak, pokud je chceš mazat, ale ani to není nemožné. Je tu opět několik možností. Nejlépe uděláš, když všechny údaje budeš ukládat(i u první varianty samozřejmě). Po smazání samozřejmě nemůžeš používat listitem, jako id, protože ti ho dosadí do pole proměn zbraní, které "existují"(což znamená, že se zobrazí například jen ID 0 a 2, ale listitemy budou mít hodnoty 0 a 1), takže jedno z řešení je začít cyklit od hodnoty listitemu a přidávat, dokud nenarazí na existující zbraň:

	GetWeaponID(listitem) {

		for (new w = listitem; w < MAX_...; w++) {

			if (WeaponExist[w]) return (w);
		}
	}

Nadarmo mu to budeš vysvetlovať takto pekne, keď ešte nevie základy.

Link to comment
Share on other sites

  • 0

To je tak keď niekto nevie ani načo je new premenna; a už chce mať hotový mód.

Neboj se, opravdu vím co toto znamená, toto mám vážně již za sebou, pokud nevěříš tak toto je můj jeden ze scriptů které jsem našel, moc jich nemám.. Není to něják extra složité ale vypovídá to o tom, že asi něco znát budu..

 

#include <a_samp>

#include <zcmd>
 
new vytvoren; //zda je závod vytvořen
new objekt[36]; //seznam objektů
new pickup; //pro zjisteni pickupu
new Text:racetextdraws[11]; //textdrawy
new pripojen[MAX_PLAYERS]; //zda se hráč připojil do závodu
new racecar[MAX_PLAYERS]; //ID hráčova vozidla
new racer[MAX_PLAYERS]; //pro počítání CP
new timerneuspel; //timer když hráč vystoupí z vozidla......
static misto; //kolikátý hráč dojede
new down, gCountDown[MAX_PLAYERS] = 5;
 
#define SCM SendClientMessage
 
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
//Cheetah
if(clickedid == racetextdraws[3])
{
   ShowPlayerDialog(playerid, 44, DIALOG_STYLE_MSGBOX, "Závod", "Přejete si jet tento závod s vozidlem Cheetah?", "Ano", "Ne");
}
if(clickedid == racetextdraws[4])
{
        ShowPlayerDialog(playerid, 44, DIALOG_STYLE_MSGBOX, "Závod", "Přejete si jet tento závod s vozidlem Cheetah?", "Ano", "Ne");
}
//Infernus
if(clickedid == racetextdraws[5])
{
   ShowPlayerDialog(playerid, 55, DIALOG_STYLE_MSGBOX, "Závod", "Přejete si jet tento závod s vozidlem Infernus?", "Ano", "Ne");
}
if(clickedid == racetextdraws[6])
{
        ShowPlayerDialog(playerid, 55, DIALOG_STYLE_MSGBOX, "Závod", "Přejete si jet tento závod s vozidlem Infernus?", "Ano", "Ne");
}
//Bullet
if(clickedid == racetextdraws[7])
{
   ShowPlayerDialog(playerid, 66, DIALOG_STYLE_MSGBOX, "Závod", "Přejete si jet tento závod s vozidlem Bullet?", "Ano", "Ne");
}
if(clickedid == racetextdraws[8])
{
        ShowPlayerDialog(playerid, 66, DIALOG_STYLE_MSGBOX, "Závod", "Přejete si jet tento závod s vozidlem Bullet?", "Ano", "Ne");
}
//X
if(clickedid == racetextdraws[10])
{
   CancelSelectTextDraw(playerid);
   TextDrawHideForPlayer(playerid, racetextdraws[0]);
   TextDrawHideForPlayer(playerid, racetextdraws[1]);
   TextDrawHideForPlayer(playerid, racetextdraws[2]);
   TextDrawHideForPlayer(playerid, racetextdraws[3]);
   TextDrawHideForPlayer(playerid, racetextdraws[4]);
   TextDrawHideForPlayer(playerid, racetextdraws[5]);
   TextDrawHideForPlayer(playerid, racetextdraws[6]);
   TextDrawHideForPlayer(playerid, racetextdraws[7]);
   TextDrawHideForPlayer(playerid, racetextdraws[8]);
   TextDrawHideForPlayer(playerid, racetextdraws[9]);
   TextDrawHideForPlayer(playerid, racetextdraws[10]);
}
return 1;
}
 
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
//Cheetah
if(dialogid == 44)
{
   if(response)
   {
       PutPlayerInVehicle(playerid, CreateVehicle(415,2078.4817,-3056.0959,265.2479,179,0,0,9999), 0);
       pripojen[playerid] = 1;
       racecar[playerid] = GetPlayerVehicleID(playerid);
       SetPlayerRaceCheckpoint(playerid,0,2071.9758,-3099.8472,265.0500,2116.5471,-3071.9875,260.5005,7);
       racer[playerid] = 1;
       CancelSelectTextDraw(playerid);
       TextDrawHideForPlayer(playerid, racetextdraws[0]);
   TextDrawHideForPlayer(playerid, racetextdraws[1]);
   TextDrawHideForPlayer(playerid, racetextdraws[2]);
   TextDrawHideForPlayer(playerid, racetextdraws[3]);
   TextDrawHideForPlayer(playerid, racetextdraws[4]);
   TextDrawHideForPlayer(playerid, racetextdraws[5]);
   TextDrawHideForPlayer(playerid, racetextdraws[6]);
   TextDrawHideForPlayer(playerid, racetextdraws[7]);
   TextDrawHideForPlayer(playerid, racetextdraws[8]);
   TextDrawHideForPlayer(playerid, racetextdraws[9]);
   TextDrawHideForPlayer(playerid, racetextdraws[10]);
   GameTextForPlayer(playerid, "~g~PRIPOJEN!", 3000, 1);
   SCM(playerid, 0x00FF00AA, "[ i ] {FFFFFF}Pro odpojení použij příkaz /zopustit");
   }
   if(!response)
   {
       CancelSelectTextDraw(playerid);
       TextDrawHideForPlayer(playerid, racetextdraws[0]);
   TextDrawHideForPlayer(playerid, racetextdraws[1]);
   TextDrawHideForPlayer(playerid, racetextdraws[2]);
   TextDrawHideForPlayer(playerid, racetextdraws[3]);
   TextDrawHideForPlayer(playerid, racetextdraws[4]);
   TextDrawHideForPlayer(playerid, racetextdraws[5]);
   TextDrawHideForPlayer(playerid, racetextdraws[6]);
   TextDrawHideForPlayer(playerid, racetextdraws[7]);
   TextDrawHideForPlayer(playerid, racetextdraws[8]);
   TextDrawHideForPlayer(playerid, racetextdraws[9]);
   TextDrawHideForPlayer(playerid, racetextdraws[10]);
   }
   return 1;
}
//Infernus
if(dialogid == 55)
{
   if(response)
   {
       PutPlayerInVehicle(playerid, CreateVehicle(411,2078.4817,-3056.0959,265.2479,179,0,0,9999), 0);
       pripojen[playerid] = 1;
       racecar[playerid] = GetPlayerVehicleID(playerid);
       SetPlayerRaceCheckpoint(playerid,0,2071.9758,-3099.8472,265.0500,2116.5471,-3071.9875,260.5005,7);
       racer[playerid] = 1;
       CancelSelectTextDraw(playerid);
       TextDrawHideForPlayer(playerid, racetextdraws[0]);
   TextDrawHideForPlayer(playerid, racetextdraws[1]);
   TextDrawHideForPlayer(playerid, racetextdraws[2]);
   TextDrawHideForPlayer(playerid, racetextdraws[3]);
   TextDrawHideForPlayer(playerid, racetextdraws[4]);
   TextDrawHideForPlayer(playerid, racetextdraws[5]);
   TextDrawHideForPlayer(playerid, racetextdraws[6]);
   TextDrawHideForPlayer(playerid, racetextdraws[7]);
   TextDrawHideForPlayer(playerid, racetextdraws[8]);
   TextDrawHideForPlayer(playerid, racetextdraws[9]);
   TextDrawHideForPlayer(playerid, racetextdraws[10]);
   GameTextForPlayer(playerid, "~g~PRIPOJEN!", 3000, 1);
   SCM(playerid, 0x00FF00AA, "[ i ] {FFFFFF}Pro odpojení použij příkaz /zopustit");
   }
   if(!response)
   {
       CancelSelectTextDraw(playerid);
       TextDrawHideForPlayer(playerid, racetextdraws[0]);
   TextDrawHideForPlayer(playerid, racetextdraws[1]);
   TextDrawHideForPlayer(playerid, racetextdraws[2]);
   TextDrawHideForPlayer(playerid, racetextdraws[3]);
   TextDrawHideForPlayer(playerid, racetextdraws[4]);
   TextDrawHideForPlayer(playerid, racetextdraws[5]);
   TextDrawHideForPlayer(playerid, racetextdraws[6]);
   TextDrawHideForPlayer(playerid, racetextdraws[7]);
   TextDrawHideForPlayer(playerid, racetextdraws[8]);
   TextDrawHideForPlayer(playerid, racetextdraws[9]);
   TextDrawHideForPlayer(playerid, racetextdraws[10]);
   }
   return 1;
}
//Bullet
if(dialogid == 66)
{
   if(response)
   {
       PutPlayerInVehicle(playerid, CreateVehicle(541,2078.4817,-3056.0959,265.2479,179,0,0,9999), 0);
       pripojen[playerid] = 1;
       racecar[playerid] = GetPlayerVehicleID(playerid);
       SetPlayerRaceCheckpoint(playerid,0,2071.9758,-3099.8472,265.0500,2116.5471,-3071.9875,260.5005,7);
       racer[playerid] = 1;
       CancelSelectTextDraw(playerid);
       TextDrawHideForPlayer(playerid, racetextdraws[0]);
   TextDrawHideForPlayer(playerid, racetextdraws[1]);
   TextDrawHideForPlayer(playerid, racetextdraws[2]);
   TextDrawHideForPlayer(playerid, racetextdraws[3]);
   TextDrawHideForPlayer(playerid, racetextdraws[4]);
   TextDrawHideForPlayer(playerid, racetextdraws[5]);
   TextDrawHideForPlayer(playerid, racetextdraws[6]);
   TextDrawHideForPlayer(playerid, racetextdraws[7]);
   TextDrawHideForPlayer(playerid, racetextdraws[8]);
   TextDrawHideForPlayer(playerid, racetextdraws[9]);
   TextDrawHideForPlayer(playerid, racetextdraws[10]);
   GameTextForPlayer(playerid, "~g~PRIPOJEN!", 3000, 1);
   SCM(playerid, 0x00FF00AA, "[ i ] {FFFFFF}Pro odpojení použij příkaz /zopustit");
   }
   if(!response)
   {
       CancelSelectTextDraw(playerid);
       TextDrawHideForPlayer(playerid, racetextdraws[0]);
   TextDrawHideForPlayer(playerid, racetextdraws[1]);
   TextDrawHideForPlayer(playerid, racetextdraws[2]);
   TextDrawHideForPlayer(playerid, racetextdraws[3]);
   TextDrawHideForPlayer(playerid, racetextdraws[4]);
   TextDrawHideForPlayer(playerid, racetextdraws[5]);
   TextDrawHideForPlayer(playerid, racetextdraws[6]);
   TextDrawHideForPlayer(playerid, racetextdraws[7]);
   TextDrawHideForPlayer(playerid, racetextdraws[8]);
   TextDrawHideForPlayer(playerid, racetextdraws[9]);
   TextDrawHideForPlayer(playerid, racetextdraws[10]);
   }
   return 1;
}
return 0;
}
 
public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid == pickup)
{
   if(pripojen[playerid] == 0)
   {
       SelectTextDraw(playerid, 0xFF0000AA);
   TextDrawShowForPlayer(playerid, racetextdraws[0]);
   TextDrawShowForPlayer(playerid, racetextdraws[1]);
   TextDrawShowForPlayer(playerid, racetextdraws[2]);
   TextDrawShowForPlayer(playerid, racetextdraws[3]);
   TextDrawShowForPlayer(playerid, racetextdraws[4]);
   TextDrawShowForPlayer(playerid, racetextdraws[5]);
   TextDrawShowForPlayer(playerid, racetextdraws[6]);
   TextDrawShowForPlayer(playerid, racetextdraws[7]);
   TextDrawShowForPlayer(playerid, racetextdraws[8]);
   TextDrawShowForPlayer(playerid, racetextdraws[9]);
   TextDrawShowForPlayer(playerid, racetextdraws[10]);
   }
}
return 1;
}
 
public OnVehicleDeath(vehicleid, killerid)
{
if(pripojen[killerid] == 1)
{
   if(vehicleid == racecar[killerid])
   {
       DisablePlayerRaceCheckpoint(killerid);
       DestroyVehicle(vehicleid);
       pripojen[killerid] = 0;
racecar[killerid] = 0;
racer[killerid] = 0;
KillTimer(timerneuspel);
GameTextForPlayer(killerid, "~r~NEUSPEL JSI!", 1000, 0);
   }
}
return 1;
}
 
public OnPlayerDisconnect(playerid, reason)
{
if(pripojen[playerid] == 1)
{
   DestroyVehicle(racecar[playerid]);
   DisablePlayerRaceCheckpoint(playerid);
      DestroyVehicle(GetPlayerVehicleID(playerid));
      pripojen[playerid] = 0;
racecar[playerid] = 0;
racer[playerid] = 0;
}
return 1;
}
 
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(oldstate == PLAYER_STATE_DRIVER && newstate == PLAYER_STATE_ONFOOT)
{
   if(racecar[playerid])
   {
       timerneuspel = SetTimerEx("neuspel", 10000, false, "i", playerid);
       SCM(playerid, 0xFF0000AA, "[ ! ] {FFFFFF}Máš 10 sekund na vrácení se do vozidla! Jinak budeš diskvalifikován!");
   }
}
return 1;
}
 
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(pripojen[playerid] == 1)
{
   if(vehicleid == racecar[playerid])
   {
       KillTimer(timerneuspel);
   }
}
return 1;
}
 
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys == KEY_SUBMISSION)
{
   if(GetPlayerVehicleID(playerid) == racecar[playerid])
{
   AddVehicleComponent(racecar[playerid], 1010);
}
}
return 1;
}
 
//PRIKAZY--------------------------------------------------------------
CMD:zavod(playerid, params[])
{
if(vytvoren == 1)
{
   if(pripojen[playerid] == 0)
   {
       SetPlayerPos(playerid, 2037.8775634766, -3011.2341308594, 265.4765625);
    SetPlayerFacingAngle(playerid, 270.52);
   }
   else SCM(playerid, 0xFF0000AA, "[ ! ] {FFFFFF}Již jsi připojen!");
}
else SCM(playerid, 0xFF0000AA, "[ ! ] {FFFFFF}Závod není vytvořen!");
return 1;
}
 
CMD:zavodoff(playerid, params[])
{
    if(!IsPlayerAdmin(playerid)) return SCM(playerid, 0xFF0000AA, "[ ! ] {FFFFFF}Nejsi přihlášen jako RCON Administrátor!");
{
   if(vytvoren == 1)
   {
       DestroyObject(objekt[0]);
       DestroyObject(objekt[1]);
       DestroyObject(objekt[2]);
       DestroyObject(objekt[3]);
       DestroyObject(objekt[4]);
       DestroyObject(objekt[5]);
       DestroyObject(objekt[6]);
       DestroyObject(objekt[7]);
       DestroyObject(objekt[8]);
       DestroyObject(objekt[9]);
       DestroyObject(objekt[10]);
       DestroyObject(objekt[11]);
       DestroyObject(objekt[12]);
       DestroyObject(objekt[13]);
       DestroyObject(objekt[14]);
       DestroyObject(objekt[15]);
       DestroyObject(objekt[16]);
       DestroyObject(objekt[17]);
       DestroyObject(objekt[18]);
       DestroyObject(objekt[19]);
       DestroyObject(objekt[20]);
       DestroyObject(objekt[21]);
       DestroyObject(objekt[22]);
       DestroyObject(objekt[23]);
       DestroyObject(objekt[24]);
       DestroyObject(objekt[25]);
       DestroyObject(objekt[26]);
       DestroyObject(objekt[27]);
       DestroyObject(objekt[28]);
       DestroyObject(objekt[29]);
       DestroyObject(objekt[30]);
       DestroyObject(objekt[31]);
       DestroyObject(objekt[32]);
       DestroyObject(objekt[33]);
       DestroyObject(objekt[34]);
       DestroyObject(objekt[35]);
       DestroyPickup(pickup);
       vytvoren = 0;
       misto = 0;
       for(new i; i < sizeof(racecar); i++)
       {
           if(racecar == 0) continue;
           {
               DestroyVehicle(racecar);
               DisablePlayerRaceCheckpoint(i);
    pripojen = 0;
racecar = 0;
racer = 0;
GameTextForPlayer(i, "~r~ZAVOD BYL ZRUSEN!", 5000, 1);
           }
       }
       SCM(playerid, 0x00FF00AA, "[ i ] {FFFFFF}Závod úspěšně zrušen!");
   }
   else SCM(playerid, 0xFF0000AA, "[ ! ] {FFFFFF}Závod není vytvořen!");
}
return 1;
}
 
CMD:zavodon(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return SCM(playerid, 0xFF0000AA, "[ ! ] {FFFFFF}Nejsi přihlášen jako RCON Administrátor!");
{
   if(vytvoren == 0)
   {
       objekt[0] = CreateObject(8420,2048.8999000,-3019.7000000,264.5000000,0.0000000,0.0000000,0.0000000); //object(arprtcrprk04_lvs) (1)
objekt[1] = CreateObject(8210,2084.0000000,-3031.8000000,267.6000100,0.0000000,0.0000000,90.0000000); //object(vgsselecfence12) (1)
objekt[2] = CreateObject(8210,2056.6001000,-3004.6001000,267.6000100,0.0000000,0.0000000,180.0000000); //object(vgsselecfence12) (2)
objekt[3] = CreateObject(8210,2031.4000000,-3031.7000000,267.6000100,0.0000000,0.0000000,270.0000000); //object(vgsselecfence12) (3)
objekt[4] = CreateObject(8210,2045.8000000,-3058.8000000,267.7999900,0.0000000,0.0000000,0.0000000); //object(vgsselecfence12) (4)
objekt[5] = CreateObject(980,2078.8999000,-3059.0000000,267.2000100,0.0000000,0.0000000,0.0000000); //object(airportgate) (1)
objekt[6] = CreateObject(3995,2082.0000000,-3093.3999000,259.9000200,0.0000000,0.0000000,90.0000000); //object(roads07_lan) (1)
objekt[7] = CreateObject(4142,2151.1001000,-3075.0000000,259.7999900,0.0000000,0.0000000,234.7500000); //object(roads10_lan) (1)
objekt[8] = CreateObject(4146,2237.7000000,-3049.7000000,259.7000100,0.0000000,0.0000000,230.0000000); //object(roads12_lan) (1)
objekt[9] = CreateObject(4158,2289.6001000,-2988.0000000,259.7000100,0.0000000,0.0000000,250.0000000); //object(roads18_lan) (1)
objekt[10] = CreateObject(4160,2292.6001000,-2872.8999000,238.6000100,340.0000000,0.0000000,30.0000000); //object(roads19_lan) (1)
objekt[11] = CreateObject(4589,2146.5000000,-2721.3999000,153.3999900,0.0000000,30.0000000,100.0000000); //object(road15_lan2) (1)
objekt[12] = CreateObject(4589,2219.6006000,-2791.3994000,199.1000100,0.0000000,339.9990000,305.9970000); //object(road15_lan2) (2)
objekt[13] = CreateObject(5013,2121.5000000,-2641.8000000,109.9000000,340.0000000,20.0000000,354.0000000); //object(laroakt1_30_las) (1)
objekt[14] = CreateObject(5013,2131.6001000,-2570.8000000,83.8000000,339.9990000,19.9950000,349.9960000); //object(laroakt1_30_las) (2)
objekt[15] = CreateObject(5013,2146.3999000,-2500.3000000,57.5000000,339.9990000,19.9900000,345.9910000); //object(laroakt1_30_las) (3)
objekt[16] = CreateObject(5013,1529.9000000,-1843.5000000,34.0000000,0.0000000,0.0000000,0.0000000); //object(laroakt1_30_las) (4)
objekt[17] = CreateObject(5013,1529.9004000,-1924.2002000,27.0000000,9.9980000,0.0000000,0.0000000); //object(laroakt1_30_las) (5)
objekt[18] = CreateObject(5013,1534.0000000,-1595.0000000,67.0000000,0.0000000,0.0000000,0.0000000); //object(laroakt1_30_las) (6)
objekt[19] = CreateObject(5013,1533.9004000,-1737.2002000,43.0000000,14.9960000,0.0000000,0.0000000); //object(laroakt1_30_las) (7)
objekt[20] = CreateObject(5013,1533.7998000,-1671.9004000,58.2000000,14.9960000,0.0000000,0.0000000); //object(laroakt1_30_las) (8)
objekt[21] = CreateObject(4827,1500.7000000,-1483.4000000,60.6000000,0.0000000,0.0000000,313.5000000); //object(laroads_20ghi_las) (1)
objekt[22] = CreateObject(5013,1434.9000000,-1384.1000000,59.0000000,350.0000000,0.0000000,44.0000000); //object(laroakt1_30_las) (9)
objekt[23] = CreateObject(5013,1357.5000000,-1247.9004000,32.1000000,0.0000000,0.0000000,0.0000000); //object(laroakt1_30_las) (10)
objekt[24] = CreateObject(5013,1383.2002000,-918.0996100,40.2000000,9.9980000,0.0000000,351.9960000); //object(laroakt1_30_las) (13)
objekt[25] = CreateObject(5013,1420.5000000,-652.7000100,131.3000000,0.0000000,0.0000000,351.9960000); //object(laroakt1_30_las) (14)
objekt[26] = CreateObject(5013,1390.7002000,-865.0996100,62.8000000,29.9980000,0.0000000,351.9910000); //object(laroakt1_30_las) (15)
objekt[27] = CreateObject(5013,1397.7998000,-814.5996100,92.0000000,29.9980000,0.0000000,351.9910000); //object(laroakt1_30_las) (16)
objekt[28] = CreateObject(5013,1407.9004000,-742.5996100,126.3000000,19.9950000,0.0000000,351.9910000); //object(laroakt1_30_las) (17)
objekt[29] = CreateObject(8171,1434.7000000,-552.9000200,128.8999900,0.0000000,0.0000000,352.0000000); //object(vgssairportland06) (1)
objekt[30] = CreateObject(8171,1451.5000000,-433.2000100,128.8100000,0.0000000,0.0000000,351.9960000); //object(vgssairportland06) (2)
objekt[31] = CreateObject(8171,1488.7000000,-172.2000000,110.1000100,0.0000000,0.0000000,351.9960000); //object(vgssairportland06) (3)
objekt[32] = CreateObject(8171,1466.0000000,-330.0000000,136.5000000,9.9980000,0.0000000,351.9910000); //object(vgssairportland06) (4)
objekt[33] = CreateObject(8171,1507.8101000,-36.1000000,110.1100200,0.0000000,0.0000000,351.9910000); //object(vgssairportland06) (5)
objekt[34] = CreateObject(8171,1609.7000000,190.3000000,56.3000000,345.0000000,352.0000000,329.9910000); //object(vgssairportland06) (6)
objekt[35] = CreateObject(8171,1537.7998000,82.4003900,96.0000000,349.9970000,19.9950000,323.9870000); //object(vgssairportland06) (7)
pickup = CreatePickup(1239, 1, 2060.5390625, -3019.6296386719, 265.6328125, 0);
            vytvoren = 1;
            SCM(playerid, 0x00FF00AA, "[ i ] {FFFFFF}Závod úspěšně vytvořen!");
   }
   else SCM(playerid, 0xFF0000AA, "[ ! ] {FFFFFF}Závod je již vytvořen!");
}
return 1;
}
 
CMD:zstart(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return SCM(playerid, 0xFF0000AA, "[ ! ] {FFFFFF}Nejsi přihlášen jako RCON Administrátor!");
{
if(vytvoren == 1)
{
   for(new i; i < MAX_PLAYERS; i++)
   {
       if(IsPlayerConnected(i) && GetPlayerVehicleID(i) == racecar)
       {
           down = SetTimerEx("start", 1000, true, "i", i);
           AddVehicleComponent(racecar, 1010);
           SetVehicleHealth(racecar,1800);
           TogglePlayerControllable(i, 0);
           GameTextForPlayer(i, "~w~5", 1000, 3);
           MoveObject(objekt[5], 2066.8999000,-3059.0000000,267.2000100, 5);
       }
   }
}
else SCM(playerid, 0xFF0000AA, "[ ! ] {FFFFFF}Závod není vytvořen!");
}
return 1;
}
 
CMD:zbrana(playerid, params[])
{
    MoveObject(objekt[5], 2078.8999000,-3059.0000000,267.2000100, 5);
    SCM(playerid, 0x00FF00AA, "[ i ] {FFFFFF}Brána zavřena!");
return 1;
}
 
CMD:zopustit(playerid, params[])
{
if(pripojen[playerid] == 1)
{
   DestroyVehicle(racecar[playerid]);
   DisablePlayerRaceCheckpoint(playerid);
racecar[playerid] = 0;
racer[playerid] = 0;
KillTimer(timerneuspel);
GameTextForPlayer(playerid, "~r~ODPOJEN!", 1000, 0);
new jmeno[MAX_PLAYER_NAME], string[50];
GetPlayerName(playerid, jmeno, sizeof(jmeno));
  format(string, sizeof(string), "Hráč {FFFFFF}%s {FF0000}opustil závod!", jmeno);
for(new i; i < MAX_PLAYERS; i++)
{
   if(pripojen == 1)
   {
       SCM(i, 0xFF0000AA, string);
       pripojen[playerid] = 0;
   }
}
}
return 1;
}
 
//TXTDRAWS + ostatni------------------------------------------------------------------
public OnFilterScriptInit()
{
    racetextdraws[0] = TextDrawCreate(217.999938, 59.333354, "box");
TextDrawLetterSize(racetextdraws[0], 0.000000, 12.033334);
TextDrawTextSize(racetextdraws[0], 419.000000, 0.000000);
TextDrawAlignment(racetextdraws[0], 1);
TextDrawColor(racetextdraws[0], -1);
TextDrawUseBox(racetextdraws[0], 1);
TextDrawBoxColor(racetextdraws[0], 114);
TextDrawSetShadow(racetextdraws[0], 0);
TextDrawSetOutline(racetextdraws[0], 0);
TextDrawBackgroundColor(racetextdraws[0], 255);
TextDrawFont(racetextdraws[0], 1);
TextDrawSetProportional(racetextdraws[0], 1);
TextDrawSetShadow(racetextdraws[0], 0);
 
racetextdraws[1] = TextDrawCreate(217.733306, 64.570373, "box");
TextDrawLetterSize(racetextdraws[1], 0.000000, 1.533331);
TextDrawTextSize(racetextdraws[1], 418.742248, 0.000000);
TextDrawAlignment(racetextdraws[1], 1);
TextDrawColor(racetextdraws[1], -1);
TextDrawUseBox(racetextdraws[1], 1);
TextDrawBoxColor(racetextdraws[1], 8388722);
TextDrawSetShadow(racetextdraws[1], 0);
TextDrawSetOutline(racetextdraws[1], 0);
TextDrawBackgroundColor(racetextdraws[1], 255);
TextDrawFont(racetextdraws[1], 1);
TextDrawSetProportional(racetextdraws[1], 1);
TextDrawSetShadow(racetextdraws[1], 0);
 
racetextdraws[2] = TextDrawCreate(257.333374, 63.066654, "Vyberte_si_vozidlo");
TextDrawLetterSize(racetextdraws[2], 0.400000, 1.600000);
TextDrawAlignment(racetextdraws[2], 1);
TextDrawColor(racetextdraws[2], -1);
TextDrawSetShadow(racetextdraws[2], 0);
TextDrawSetOutline(racetextdraws[2], 0);
TextDrawBackgroundColor(racetextdraws[2], 255);
TextDrawFont(racetextdraws[2], 1);
TextDrawSetProportional(racetextdraws[2], 1);
TextDrawSetShadow(racetextdraws[2], 0);
 
racetextdraws[3] = TextDrawCreate(212.000000, 65.000000, "");
TextDrawLetterSize(racetextdraws[3], 0.000000, 0.000000);
TextDrawTextSize(racetextdraws[3], 90.000000, 90.000000);
TextDrawAlignment(racetextdraws[3], 1);
TextDrawColor(racetextdraws[3], -1);
TextDrawSetShadow(racetextdraws[3], 0);
TextDrawSetOutline(racetextdraws[3], 0);
TextDrawBackgroundColor(racetextdraws[3], 0);
TextDrawFont(racetextdraws[3], 5);
TextDrawSetProportional(racetextdraws[3], 0);
TextDrawSetShadow(racetextdraws[3], 0);
TextDrawSetSelectable(racetextdraws[3], true);
TextDrawSetPreviewModel(racetextdraws[3], 415);
TextDrawSetPreviewRot(racetextdraws[3], -5.000000, 0.000000, -20.000000, 1.000000);
TextDrawSetPreviewVehCol(racetextdraws[3], 1, 1);
 
racetextdraws[4] = TextDrawCreate(224.000000, 143.000000, "Cheetah");
TextDrawLetterSize(racetextdraws[4], 0.400000, 1.600000);
TextDrawAlignment(racetextdraws[4], 1);
TextDrawColor(racetextdraws[4], -1);
TextDrawSetShadow(racetextdraws[4], 0);
TextDrawSetOutline(racetextdraws[4], 0);
TextDrawBackgroundColor(racetextdraws[4], 255);
TextDrawFont(racetextdraws[4], 1);
TextDrawSetProportional(racetextdraws[4], 1);
TextDrawSetShadow(racetextdraws[4], 0);
TextDrawSetSelectable(racetextdraws[4], true);
 
racetextdraws[5] = TextDrawCreate(277.000000, 65.000000, "");
TextDrawLetterSize(racetextdraws[5], 0.000000, 0.000000);
TextDrawTextSize(racetextdraws[5], 90.000000, 90.000000);
TextDrawAlignment(racetextdraws[5], 1);
TextDrawColor(racetextdraws[5], -1);
TextDrawSetShadow(racetextdraws[5], 0);
TextDrawSetOutline(racetextdraws[5], 0);
TextDrawBackgroundColor(racetextdraws[5], 0);
TextDrawFont(racetextdraws[5], 5);
TextDrawSetProportional(racetextdraws[5], 0);
TextDrawSetShadow(racetextdraws[5], 0);
TextDrawSetSelectable(racetextdraws[5], true);
TextDrawSetPreviewModel(racetextdraws[5], 411);
TextDrawSetPreviewRot(racetextdraws[5], -5.000000, 0.000000, -20.000000, 1.000000);
TextDrawSetPreviewVehCol(racetextdraws[5], 1, 1);
 
racetextdraws[6] = TextDrawCreate(290.100067, 143.000000, "Infernus");
TextDrawLetterSize(racetextdraws[6], 0.400000, 1.600000);
TextDrawAlignment(racetextdraws[6], 1);
TextDrawColor(racetextdraws[6], -1);
TextDrawSetShadow(racetextdraws[6], 0);
TextDrawSetOutline(racetextdraws[6], 0);
TextDrawBackgroundColor(racetextdraws[6], 255);
TextDrawFont(racetextdraws[6], 1);
TextDrawSetProportional(racetextdraws[6], 1);
TextDrawSetShadow(racetextdraws[6], 0);
TextDrawSetSelectable(racetextdraws[6], true);
 
racetextdraws[7] = TextDrawCreate(341.000000, 67.099967, "");
TextDrawLetterSize(racetextdraws[7], 0.000000, 0.000000);
TextDrawTextSize(racetextdraws[7], 90.000000, 90.000000);
TextDrawAlignment(racetextdraws[7], 1);
TextDrawColor(racetextdraws[7], -1);
TextDrawSetShadow(racetextdraws[7], 0);
TextDrawSetOutline(racetextdraws[7], 0);
TextDrawBackgroundColor(racetextdraws[7], 0);
TextDrawFont(racetextdraws[7], 5);
TextDrawSetProportional(racetextdraws[7], 0);
TextDrawSetShadow(racetextdraws[7], 0);
TextDrawSetSelectable(racetextdraws[7], true);
TextDrawSetPreviewModel(racetextdraws[7], 541);
TextDrawSetPreviewRot(racetextdraws[7], -5.000000, 0.000000, -20.000000, 1.000000);
TextDrawSetPreviewVehCol(racetextdraws[7], 1, 1);
 
racetextdraws[8] = TextDrawCreate(363.500030, 143.000000, "Bullet");
TextDrawLetterSize(racetextdraws[8], 0.400000, 1.600000);
TextDrawAlignment(racetextdraws[8], 1);
TextDrawColor(racetextdraws[8], -1);
TextDrawSetShadow(racetextdraws[8], 0);
TextDrawSetOutline(racetextdraws[8], 0);
TextDrawBackgroundColor(racetextdraws[8], 255);
TextDrawFont(racetextdraws[8], 1);
TextDrawSetProportional(racetextdraws[8], 1);
TextDrawSetShadow(racetextdraws[8], 0);
TextDrawSetSelectable(racetextdraws[8], true);
 
racetextdraws[9] = TextDrawCreate(410.366607, 46.474060, "box");
TextDrawLetterSize(racetextdraws[9], 0.000000, 1.070330);
TextDrawTextSize(racetextdraws[9], 418.902008, 0.000000);
TextDrawAlignment(racetextdraws[9], 1);
TextDrawColor(racetextdraws[9], -1);
TextDrawUseBox(racetextdraws[9], 1);
TextDrawBoxColor(racetextdraws[9], 114);
TextDrawSetShadow(racetextdraws[9], 0);
TextDrawSetOutline(racetextdraws[9], 0);
TextDrawBackgroundColor(racetextdraws[9], 255);
TextDrawFont(racetextdraws[9], 1);
TextDrawSetProportional(racetextdraws[9], 1);
TextDrawSetShadow(racetextdraws[9], 0);
 
racetextdraws[10] = TextDrawCreate(410.666748, 44.514804, "X");
TextDrawLetterSize(racetextdraws[10], 0.350333, 1.342815);
TextDrawAlignment(racetextdraws[10], 1);
TextDrawColor(racetextdraws[10], -16776961);
TextDrawSetShadow(racetextdraws[10], 0);
TextDrawSetOutline(racetextdraws[10], 0);
TextDrawBackgroundColor(racetextdraws[10], 255);
TextDrawFont(racetextdraws[10], 1);
TextDrawSetProportional(racetextdraws[10], 1);
TextDrawSetShadow(racetextdraws[10], 0);
TextDrawSetSelectable(racetextdraws[10], true);
return 1;
}
 
public OnPlayerEnterRaceCheckpoint(playerid)
{
switch(racer[playerid])
{
   case 1:
   {
       racer[playerid] += 1;
       DisablePlayerRaceCheckpoint(playerid);
       SetPlayerRaceCheckpoint(playerid,0,2116.5471,-3071.9875,260.5005,2248.2598,-3039.8828,260.4019,7);
   }
   case 2:
   {
       racer[playerid] += 1;
       DisablePlayerRaceCheckpoint(playerid);
       SetPlayerRaceCheckpoint(playerid,0,2248.2598,-3039.8828,260.4019,2310.2849,-2931.3171,260.3870,7);
   }
   case 3:
   {
       racer[playerid] += 1;
       DisablePlayerRaceCheckpoint(playerid);
       SetPlayerRaceCheckpoint(playerid,0,2310.2849,-2931.3171,260.3870,2188.1726,-2776.9038,188.3692,7);
   }
   case 4:
   {
       racer[playerid] += 1;
       DisablePlayerRaceCheckpoint(playerid);
       SetPlayerRaceCheckpoint(playerid,0,2188.1726,-2776.9038,188.3692,2119.3333,-2683.5798,129.4623,7);
   }
   case 5:
   {
       racer[playerid] += 1;
       DisablePlayerRaceCheckpoint(playerid);
       SetPlayerRaceCheckpoint(playerid,0,2119.3333,-2683.5798,129.4623,2148.9438,-2490.7527,54.5515,7);
   }
   case 6:
   {
       racer[playerid] += 1;
       DisablePlayerRaceCheckpoint(playerid);
       SetPlayerRaceCheckpoint(playerid,0,2148.9438,-2490.7527,54.5515,2168.1375,-2352.5486,13.1314,7);
   }
   case 7:
   {
       racer[playerid] += 1;
       DisablePlayerRaceCheckpoint(playerid);
       SetPlayerRaceCheckpoint(playerid,0,2168.1375,-2352.5486,13.1314,2133.8132,-2213.6904,13.1548,7);
   }
   case 8:
   {
       racer[playerid] += 1;
       DisablePlayerRaceCheckpoint(playerid);
       SetPlayerRaceCheckpoint(playerid,0,2133.8132,-2213.6904,13.1548,1888.6182,-2166.4768,13.1561,7);
   }
   case 9:
   {
       racer[playerid] += 1;
       DisablePlayerRaceCheckpoint(playerid);
       SetPlayerRaceCheckpoint(playerid,0,1888.6182,-2166.4768,13.1561,1529.9188,-1903.6965,31.2404,7);
   }
   case 10:
   {
       racer[playerid] += 1;
       DisablePlayerRaceCheckpoint(playerid);
       SetPlayerRaceCheckpoint(playerid,0,1529.9188,-1903.6965,31.2404,1533.8680,-1644.8346,66.0925,7);
   }
   case 11:
   {
       racer[playerid] += 1;
       DisablePlayerRaceCheckpoint(playerid);
       SetPlayerRaceCheckpoint(playerid,0,1533.8680,-1644.8346,66.0925,1370.5800,-1275.6888,33.3137,7);
   }
   case 12:
   {
       racer[playerid] += 1;
       DisablePlayerRaceCheckpoint(playerid);
       SetPlayerRaceCheckpoint(playerid,0,1370.5800,-1275.6888,33.3137,1357.5311,-1134.8505,23.4335,7);
   }
   case 13:
   {
       racer[playerid] += 1;
       DisablePlayerRaceCheckpoint(playerid);
       SetPlayerRaceCheckpoint(playerid,0,1357.5311,-1134.8505,23.4335,1402.1028,-783.7438,110.9376,7);
   }
   case 14:
   {
       racer[playerid] += 1;
       DisablePlayerRaceCheckpoint(playerid);
       SetPlayerRaceCheckpoint(playerid,0,1402.1028,-783.7438,110.9376,1443.6752,-487.6950,129.6713,7);
   }
   case 15:
   {
       racer[playerid] += 1;
       DisablePlayerRaceCheckpoint(playerid);
       SetPlayerRaceCheckpoint(playerid,0,1443.6752,-487.6950,129.6713,1495.8701,-106.3026,110.8714,7);
   }
   case 16:
   {
       racer[playerid] += 1;
       DisablePlayerRaceCheckpoint(playerid);
       SetPlayerRaceCheckpoint(playerid,0,1495.8701,-106.3026,110.8714,1617.1271,203.1956,53.1210,7);
   }
   case 17:
   {
       racer[playerid] += 1;
       DisablePlayerRaceCheckpoint(playerid);
       SetPlayerRaceCheckpoint(playerid,0,1617.1271,203.1956,53.1210,1740.1046,526.3467,27.4561,7);
   }
   case 18:
   {
       racer[playerid] += 1;
       DisablePlayerRaceCheckpoint(playerid);
       SetPlayerRaceCheckpoint(playerid,0,1740.1046,526.3467,27.4561,1797.4121,843.1284,10.4090,15);
   }
   case 19:
   {
       racer[playerid] += 1;
       DisablePlayerRaceCheckpoint(playerid);
       SetPlayerRaceCheckpoint(playerid,1,1797.4121,843.1284,10.4090,0,0,0,15);
   }
   case 20:
   {
       DisablePlayerRaceCheckpoint(playerid);
       misto++;
       new jmeno[MAX_PLAYER_NAME], string[100];
       GetPlayerName(playerid, jmeno, sizeof(jmeno));
       format(string, sizeof(string), "Hráč {FFFFFF}%s {00FF00}dorazil do cíle jako [{FFFFFF}%d{00FF00}]", jmeno, misto);
       if(GetPlayerVehicleID(playerid) == racecar[playerid])
       {
           DestroyVehicle(racecar[playerid]);
racecar[playerid] = 0;
racer[playerid] = 0;
       }
       for(new i; i < MAX_PLAYERS; i++)
       {
           if(pripojen == 1)
           {
               SCM(i, 0x00FF00AA, string);
               pripojen[playerid] = 0;
           }
       }
   }
}
return 1;
}
 
forward neuspel(playerid);
public neuspel(playerid)
{
DisablePlayerRaceCheckpoint(playerid);
DestroyVehicle(racecar[playerid]);
pripojen[playerid] = 0;
racecar[playerid] = 0;
racer[playerid] = 0;
GameTextForPlayer(playerid, "~r~NEUSPEL JSI!", 3000, 0);
return 1;
}
 
forward start(playerid);
public start(playerid)
{
gCountDown[playerid]--;
switch(gCountDown[playerid])
{
   case 0:
   {
       GameTextForPlayer(playerid, "~g~START!", 1000, 3);
       KillTimer(down);
       TogglePlayerControllable(playerid, 1);
       gCountDown[playerid] = 5;
   }
   case 1: GameTextForPlayer(playerid, "~w~1", 1000, 3);
   case 2: GameTextForPlayer(playerid, "~w~2", 1000, 3);
   case 3: GameTextForPlayer(playerid, "~w~3", 1000, 3);
   case 4: GameTextForPlayer(playerid, "~w~4", 1000, 3);
}
return 1;

}

 

 

Dobře, ale teď k tvé věci.. Pokusím se to popsat ještě lépe.. Máme dialog ve kterém je jediný řádek a tam je nápis Přidat zbraň.. Pokud by na to hráč klikl, text přidat zbraň by se posunul o řádek níže a na daný řádek by se přidala ta zbraň, nebo její jméno či ID.. Při vyvolání řádků se jménem té zbraně by jí hráč obdržel a ten řádek by se například zase vymazal a na prvním řádku by byl opět již zmíněný text pro přidání zbraně... Respektive řádky jsou dány staticky, což znamená, že pokud si napíšeme ShowPlayerDialog(pid,1,dialogstylelist,nadpis,"Uložit", r, !r); tak v listu u dialogu máme napsáno na prvním řádku Uložit řekněme, že hráč dá uložit, script zjistí jakou má zbraň a tu tedy přidá na první řádek, z čehož by vyplývalo, že nyní by to vypadalo takto "AK-47\nUložit" a právě o to mi jde, nevím jak mám zajistit aby se tam takhle dali přímo ve hře měnit ty řádky a né pouze v pawnu. Netuším jak to již lépe vysvětlit.. Snad to již chápete, děkuji.

Link to comment
Share on other sites

  • 0

To pak nejsou řádky dány staticky :)

new str[ .. ];
// Provedeš nějaké formátování stringu tj vložení názvů zbraní
// a přidání posledního řádku (tj, "Přidat zbraň")

ShowPlayerDialog(id, dialogid, dialogstyle, caption, str, button1, button2); // zde si všimni dosazeného našeho textu
Link to comment
Share on other sites

  • 0

 

Dobře, ale teď k tvé věci.. Pokusím se to popsat ještě lépe.. Máme dialog ve kterém je jediný řádek a tam je nápis Přidat zbraň.. Pokud by na to hráč klikl, text přidat zbraň by se posunul o řádek níže a na daný řádek by se přidala ta zbraň, nebo její jméno či ID.. Při vyvolání řádků se jménem té zbraně by jí hráč obdržel a ten řádek by se například zase vymazal a na prvním řádku by byl opět již zmíněný text pro přidání zbraně... Respektive řádky jsou dány staticky, což znamená, že pokud si napíšeme ShowPlayerDialog(pid,1,dialogstylelist,nadpis,"Uložit", r, !r); tak v listu u dialogu máme napsáno na prvním řádku Uložit řekněme, že hráč dá uložit, script zjistí jakou má zbraň a tu tedy přidá na první řádek, z čehož by vyplývalo, že nyní by to vypadalo takto "AK-47\nUložit" a právě o to mi jde, nevím jak mám zajistit aby se tam takhle dali přímo ve hře měnit ty řádky a né pouze v pawnu. Netuším jak to již lépe vysvětlit.. Snad to již chápete, děkuji.

Tak keď vravíš, že premenné máš za sebou tak ti to napíšem takto.

Dajme tomu, že hráč ma 1 náboj deaglu a 1 náboj tecu pri sebe.

 

Musíš to spraviť tak, že si zistíš, či si tam už niaku zbran hráč pridal, ak nie, spravíš normálne dialog takto:

new str[200],zbran[20][100],pocetzbrani;
if(pocetzbrani == 0) return ShowPlayerDialog(pid, 1, dialogstylelist, "Zbrane", "Uložiť", "ano", "ne");
for(new i; i<pocetzbrani; i++)
{
    if(i==1) format(str,sizeof str,"%s",zbran[0]);
    else if(i>1) format(str,sizeof str,"%s\n%s",str,zbran[id-1]);
}
format(str,sizeof str,"%s\nUložit",str);
ShowPlayerDialog(pid, 1, dialogstylelist, "Zbrane", str, "ano", "ne");

A do dialogu, kde si pridávaš zbrane dáš každé jedno uloženie:

format(zbran[pocetzbrani],100,....zistíś si ako sa volá zbran......."); //Neviem či ju chceš uložiť z ruky, alebo ako
pocetzbrani++; //Kedže sa pole začína od zbran[0], tak sa pocet zbrani prida až po zapísaní mena

Potom v casedialogresponse budes pracovat s pocetzbrani a podla toho budeš vediet, na koľkatej je pozicii uložiť ... vždy pocetzbrani+1 !!!

Ten tvoj showplayerdialog neviem či bude fungovať, len som ho kopirol a vložil lebo ja to robím inak.

Edited by StreetGuy
Link to comment
Share on other sites

  • 0
  • Globální moderátor
for(new i; i<pocetzbrani; i++)
{
    if(i==1) format(str,sizeof str,"%s",zbran[0]);
    else if(i>1) format(str,sizeof str,"%s\n%s",str,zbran[id-1]);
    pocetzbrani++;
}

Když už radíš a nejsi zdatný programátor, tak si to příště radši ověř než budeš radit. Konceptuálně je to úplně špatně a tenhle cyklus je tomu důkazem. Hned co bije do očí:

 

1) jedná se o nekonečný cyklus, případně se nevykoná vůbec, proč?

 

Na začátku inicializace je pocetzbrani 0 – neprovede se vůbec.

pocetzbrani je větší nebo rovna 1 => v každé iteraci bude vždy i menší než pocetzbrani => nekonečný cyklus

 

2) format(str,sizeof str,"%s",zbran[0]);

 

vypíše se úplně něco jiného (konkrétně řetězec od určité pozice) než máš v představě. Když už tak, zbran[20][34]; // 20 zbraní s názvem o max. 34 znacích

Link to comment
Share on other sites

  • 0

 


for(new i; i<pocetzbrani; i++)
{
    if(i==1) format(str,sizeof str,"%s",zbran[0]);
    else if(i>1) format(str,sizeof str,"%s\n%s",str,zbran[id-1]);
    pocetzbrani++;
}

Když už radíš a nejsi zdatný programátor, tak si to příště radši ověř než budeš radit. Konceptuálně je to úplně špatně a tenhle cyklus je tomu důkazem. Hned co bije do očí:
 
1) jedná se o nekonečný cyklus, případně se nevykoná vůbec, proč?
 
Na začátku inicializace je pocetzbrani 0 – neprovede se vůbec.
pocetzbrani je větší nebo rovna 1 => v každé iteraci bude vždy i menší než pocetzbrani => nekonečný cyklus
 
2) format(str,sizeof str,"%s",zbran[0]);
 
vypíše se úplně něco jiného (konkrétně řetězec od určité pozice) než máš v představě. Když už tak, zbran[20][34]; // 20 zbraní s názvem o max. 34 znacích



Nemúdruj prosímta .. K tej 1 - asi logicky mu tu nebudem písať celý kód, keď tu chcel riadkovanie.
2 - dobre, jedna chyba tak sa neposer.
Link to comment
Share on other sites

  • 0
  • Hlavní moderátor

Nemúdruj prosímta .. K tej 1 - asi logicky mu tu nebudem písať celý kód, keď tu chcel riadkovanie.

2 - dobre, jedna chyba tak sa neposer.

To je ubohá výmluva, že jsi nenapsal celý kód. I ten úsek kódu mu způsobí zacyklení. Jinak, zdrž se vulgarismů, jinak skončíš špatně.

Link to comment
Share on other sites

  • 0

Moja rada ? Pýtal sa ako to spraviť, pokiaľ viem, nie o celý kód.

 

*Kod opravený keď vám to tak reže do očí.

 

Sám jsi napsal "spravíš normálne dialog takto:" číže jsi to sám nedopsal.

Zamysli se nad tím, čím tu přispívaš...

Edited by _raw(Y)_
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...