Jump to content
  • 0

pomoc string v dialogu


toXic

Dotaz

cus, mám udělán checkpoint a v něm dialog INPUT. A potřebuju nějak nastringovat že se když hráč vleze do CP a do dialogu napíše nějaké číslo tak se mu podle toho odečtou peníze přidá benzín atd..

mám to takhle:

if(dialogid == 10)
{
if(response == 1)
{
new string[50];
format(string,sizeof(string),"~r~Zaplaceno~n~~w~%s$ za %sl",inputtext,inputtext);
if(GetPlayerMoney(i) > XX)
{
GameTextForPlayer(i, string, 3000, 0);
GivePlayerMoney(i,-XX);
Benzin[GetPlayerVehicleID(i)]+= XX;
if(Benzin[GetPlayerVehicleID(i)] > 100 ) Benzin[GetPlayerVehicleID(i)] = 100;
}else{
if(GetPlayerMoney(i) < XX) GameTextForPlayer(i, "~r~Nemas dostatek penez!", 5000, 3);
}
}

Místo těch XX potřebuju nějak dostat vtu informaci co hráč napíše do dialogu bohužel vůbec nevím jak na to ... když někdo pomůže budu rád.

Link to comment
Share on other sites

17 odpovědí na tuto otázku

Recommended Posts

  • 0

nechápu myslíš jako že když napíše třeba 50 tak mu to zebere 200$ a přidá 50 Litrů benzínu?? a musí být v CP??

jestli ano tak cp si udělej do toho vlož ShowPlayerDialog s tvím číslem mím bude 0, 0 si změň na tvoje

 

if(dialogid== 0) // to si změn ale ty vís 
{
if(response == 0 )
{
new cash = inputtext;
cash * 3;
if(GetPlayerMoney(playerid) < cash ) return SCM(playerid, Color, "Nemáš tolik peněz.");
//tady si vlož proměnné ++
}
}

 

 

Teď už nevím jestli to je dobře dělal sem to z pamněti :d

Link to comment
Share on other sites

  • 0

if(dialogid == 10)
{
if(response == 1)
{
new string[50];
new cash = strval(inputtext);
new benzin = strval(inputtext); //nastavený jako počet $ = počet l benzínu, přenastav si to jak potřebuješ  | pozn. dole
format(string,sizeof(string),"~r~Zaplaceno~n~~w~%d$ za %dl", cash, benzin);
if(GetPlayerMoney(playerid) > cash) //nechápu proč si tu měl i 
{
GameTextForPlayer(playerid, string, 3000, 0);
GivePlayerMoney(playerid,-cash);
Benzin[GetPlayerVehicleID(playerid)]+= benzin;
if(Benzin[GetPlayerVehicleID(playerid)] > 100 ) Benzin[GetPlayerVehicleID(playerid)] = 100;
}else{
if(GetPlayerMoney(playerid) < cash) GameTextForPlayer(playerid, "~r~Nemas dostatek penez!", 5000, 3); //Tady je asi lepší použít else | taky to máš dole 
}
}

 

závorky jsem nepřepočítával, věřím ti :p možná tam bude nějáká chybka, opravoval jsem to narychlo, není čas, doufám že tam ale nic nebude :d

 

sice tma máš nadefinovaný zbytečně pro jednu hodnotu 2 proměnný, ale to je proto, že si budeš určitě chcít změnit cenu za 1l benzínu, takže to tam jenom upravíš :d

 

j a u toho else to dej takto :d

else GameTextForPlayer(playerid, "~r~Nemas dostatek penez!", 5000, 3);

 

 

Snad je to dobře :d

Link to comment
Share on other sites

  • 0

if(Benzin[GetPlayerVehicleID(playerid)] > 100 ) Benzin[GetPlayerVehicleID(playerid)] = 100;

 

nechcu delat chytreho protoze sem uz vse zapoměl :d ale neni tohle nahodou podminka kdyz bude benzin vetsi nez 100 tak mu to da na 100? .. ale i tak to neni moc dobry napad no šlo by to o hodne lehčejc.. ale to už nam muze byt jedno ne

Link to comment
Share on other sites

  • 0

ale nechápeš víde ti dialog a otázka

 

Napíš sumu za ktorú chceš benzín

a ty napíšeš npr.

10 000€

a ono by ti malo vyskočiť daľší dialog s otázkou

Napíš koľko chceš benzínu

 

 

 

ale tu to je v jednom dialogu čiže ak tam dáš 10 000 tak ti dá 10 000 benzínu ano tú podiemnku som videl ale je to hlúposť a ešte 2x strval imputtext

Link to comment
Share on other sites

  • 0
to od grunducha ti ide ?

No je pravda že to trochu buguje: když dám do dialogu třeba 2ku tak mi to ztrhne -1000$ a přidá na 100 benzínu... Asi je tam nejaka chyba ale jaká to fakt netušim

Link to comment
Share on other sites

  • 0

cez 2 dialogy (jeden na sumu a druhý na benzín)

alebo

iba na benzín že tam vyskočí

Zadaj koľko litrov benzínu chceš:

a ty dáš npr. 50

a cena benzínu je npr. 5$ a tak dáš

new platba = strval(inputtext);

 

GivePlayerMoney(playerid,platba*5);

a potom benzin[vehicle] += platba;

a ešte ak nemá dostatok penazí

if(getplayerweapon(playerid) < platba*5) return sprava(nemaš keš)

takto to urob

Link to comment
Share on other sites

  • 0

Udělal jsem to takhle jak si radil :

if(dialogid == 10)
{
if(response == 1)
{
new string[50];
new platba = strval(inputtext);

format(string,sizeof(string),"~r~Zaplaceno~n~~w~%d$ za %dl",platba,platba*2);
if(GetPlayerMoney(playerid) > platba*2)
{
GameTextForPlayer(playerid, string, 3000, 0);
GivePlayerMoney(playerid,-platba*2);
Benzin[GetPlayerVehicleID(playerid)]+= platba;
if(Benzin[GetPlayerVehicleID(playerid)] > 100 ) Benzin[GetPlayerVehicleID(playerid)] = 100;
if(GetPlayerMoney(playerid) < platba*2) return GameTextForPlayer(playerid, "~r~Nemas dostatek penez!", 5000, 3);
}

}
}
}

Ale stejně to dělá to samé jako předtím...

Jinak jak si psal s těma dvouma dialogama jsem nějak nepochopil to jako že hráč napíše zaplatím 1$ a dostanu 100l benzínu ??

Link to comment
Share on other sites

  • 0

Hore daj

#define CENA_BENZINU 500000000000000000000

tú cenu si zmen na to koľko chceš

if(dialogid == 10)
{
if(response == 1)
{
new string[50];
new benzinakakurvaplatba = strval(inputtext);

format(string,sizeof(string),"~r~Zaplaceno~n~~w~%d$ za %dl",benzinakakurvaplatba*CENA_BENZINU,benzinakakurvaplatba);
if(GetPlayerMoney(playerid) < benzinakakurvaplatba*CENA_BENZINU) return GameTextForPlayer(playerid, "~r~Nemas dostatek penez!", 5000, 3);

GameTextForPlayer(playerid, string, 3000, 0);
GivePlayerMoney(playerid,-benzinakakurvaplatba*CENA_BENZINU);
Benzin[GetPlayerVehicleID(playerid)] += benzinakakurvaplatba;
if(Benzin[GetPlayerVehicleID(playerid)] > 100 ) Benzin[GetPlayerVehicleID(playerid)] = 100;


}
}
}

Link to comment
Share on other sites

  • 0
wow takže ak do dialogu dám

50000

tak dostanem 50000l benzínu ? super nápad

 

snažil jsem se to tam vysvětlit, že jsem nevěděl v jakým poměru chce ten benzín tak jsem mu to tam nedával, btw mám to tam napsaný :p

Link to comment
Share on other sites

  • 0

Ok dik uz to jede. Ale mam jeste jeden problem: mám timer na 1s a v něm IsPlayerInShapere v tom SetplayerCheckpiont a v Cp ten dialog ale když tam píšu částku tak každé 1s se mi dialog obnoví a smáže se to. Nevíte jak by se to dalo udělat? Nebo kam dát ty funkce místo timeru ? dík

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...