Jump to content
  • 0

pomoc Format, zobrazovanie čísel


LukasB

Dotaz

Čaute, robím si banku a chcem sa opýtať ako mam spraviť to, aby keď hráč vloží so banky 30 000 tak to bezobrazí ako 30000$ ale 30 000$. Zobrazujem to pomocov formatu a čítam cez Dof2.Dík za každú radu !

Edited by LukasB
Link to comment
Share on other sites

19 odpovědí na tuto otázku

Recommended Posts

  • 0

nebol :d nestrkám to do Publicov :d na začiatok pawna pod definiciami nad publicami

skúšal som zo cez stock aj normálne a píše že mám 48$ pri čon si viem vybrat 60 000 a keď pri sebe nemám ani 1$ stále píše v infu že mám 48

Edited by LukasB
Link to comment
Share on other sites

  • 0

mám info ... Kód vyzerá takto :

PlayerInfo[playerid][pMoney] = DOF2_GetInt ... to ide správne

EdNumber(PlayerInfo[playerid][pMoney]) .. toto je vsadené v dialógu povodne to bolo iba playerinfo ...

Link to comment
Share on other sites

  • 0

Skús to takto:

new strin[124];
format(strin,sizeof(strin),"%sPeniaze: %s $",strin,EdNumber(PlayerInfo[playerid][pMoney]));
ShowPlayerDialog(playerid,8598,DIALOG_STYLE_LIST,"text..",strin,"Zavrieť","");

Alebo je tu ešte jedna funkcia myslím že to robil ATomas:

stock Number(cislo)
{
new string[16];
format(string,sizeof(string),"%d",cislo);
if(cislo >= 1000) strins(string," ",strlen(string)-3,sizeof(string));
if(cislo >= 1000000) strins(string," ",strlen(string)-7,sizeof(string));
if(cislo >= 1000000000) strins(string," ",strlen(string)-11,sizeof(string));
return string;
}

A potom to už len použiješ takto:

new strin[124];
format(strin,sizeof(strin),"%sPeniaze: %s $",strin,Number(PlayerInfo[playerid][pMoney]));
ShowPlayerDialog(playerid,8598,DIALOG_STYLE_LIST,"text..",strin,"Zavrieť","");
Edited by LosO
  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

  • 0

 

~> Ale, vlastně jsi mě přivedl na jednu myšlenku... pokud to má zobrazovat hráčům počet peněz, proč prostě nepoužije:

 

format(String, sizeof(String), "%s$", EdNumber(GetPlayerMoney(playerid));

 

Možno si peniaze nepridava cez GivePlayerMoney.. ale má ich v prommene. Dá sa to využiť ako dobrý "anti money systém" pretože $ napr. cez sobeit to vie pridavať iba akoby na ruku čiže ak si pridá niekdo $ cez niejaký cheat tak ich bude mať na ruke a už napr. niejakom obchode si bude kontrolovať tu prommenu že či má tolko alebo nie :)

Link to comment
Share on other sites

  • 0

 

Jinak zvláštní toť funkce od ATomase(tedy možná, podle tebe).

jsem to potunil :) (btw rychlejsi nez EdNumber :) )

stock Number(cislo,rozdelovac[] = " ")
{
	new string[16];
	format(string,sizeof(string),"%d",cislo);
	new len = strlen(string);
	new maximum = cislo >= 0 ? len : len-1;
	for(new i=3;i<maximum;i+=3) strins(string,rozdelovac,len-i,sizeof(string));
	return string;
}
Edited by ATomas
Link to comment
Share on other sites

  • 0

Možem sa opítať čo mám dávať na miesto rozdeľovač, tz. number(PlayerInfo...., TOTO). Ináč dik moc.

rozdělovač vyplnit nemušíš.

 

stačí jen Number(5000);

Link to comment
Share on other sites

  • 0

//EDIT: Viem že toto neni k téme ale ..
Neviete ako mam spraviť pickup že keď do neho stúpim a stále som v nom neurobí funkciu znovu ? :d

Edited by LukasB
Link to comment
Share on other sites

  • 0

//UNLOCK > Príspevok pred tímto ...

OnPlayerPickUpPickup

 

 

	for(new i;i<PocetBaniek;i++)
    {
		if(Vyz[playerid] == false)
		{
		    if(IsPlayerInRangeOfPoint(playerid,2,Banka[i][Pos_X],Banka[i][Pos_Y],Banka[i][Pos_Z]))
		    {
			    new bankstr[500];
			    strcat(bankstr,"Vybrat všetko\nVloži všetko\nVybra hotovos\nVloži hotovost\nPrevod penazí\nStav konta");
                ShowPlayerDialog(playerid,DIALOG_BANK,DIALOG_STYLE_LIST,"Banka",bankstr,"OK","");
                new x,y,z;
                GetPlayerPos(playerid,Float:x,Float:y,Float:z);
                x = BankX[playerid];
				y = BankY[playerid];
				z = BankZ[playerid];
				Vyz[playerid] = true;
			}
		}
		if(Vyz[playerid] == true)
		{
			SetTimer("Vyzdvyhnute",500,1);
		}
	}

 

 

Public na Timer:

 

 

forward Vyzdvyhnute(playerid);
public Vyzdvyhnute(playerid)
{
	if(Vyz[playerid] == true)
	{
	    if(IsPlayerInRangeOfPoint(playerid,2,BankX[playerid],BankY[playerid],BankZ[playerid]))
	    {
       	    Vyz[playerid] = true;
       	}
       	if(!IsPlayerInRangeOfPoint(playerid,2,BankX[playerid],BankY[playerid],BankZ[playerid]))
        {
            Vyz[playerid] = false;
        }
	 }
}

 

 

Chyby: Nefunguje to :DD, Pls help alebo mi najdi chybny riadok .. diki

Edited by LukasB
Link to comment
Share on other sites

  • 0

Alebo neviete ako mám spraviť niečo ako if(IsPlayerInAction ? Pretože aj keď som na pickupe tak mi to zobrazuje banku, a keď si dám info prepne to na banku.. dik za každul radu ako to spraviť/ak niečo také neexistuje :d

Edited by LukasB
Link to comment
Share on other sites

  • 0

Ale ja som potom ten predchádzajúci príspevok na 1. strane zmenil :d

- Že či sa nedá spraviť niečo, že keď mám niaky dialog/funkciu spustenú tak to nezopne ten dialog.

Ako viem ako by sa to dalo spravit ale to by bolo cez 30 riadkov .. ake chcem sa len opýtať či niečo také nepoznáš :p .

Lebo keď niekto je v bank pickupe chce pozreť klk ma money, tak nebude sa mi chcieť od tadial odísť a potom to napísať..

- Alebo skráte > nepoznáš niečo , že keď hráč zatvorí Dialog .. tak spustí funkciu .. ? lebo kontrolovanie pozící mi tam velmi blbne :d a zase ako može byt hrác v banke keď ju preletí a zrazu má dialóg banky :d

Link to comment
Share on other sites

  • 0

No dobre .. ale vieš, je to jednorazové.

Preto som tam robil timer pretože chcem aby keď hráč zruší dialóg tak to  naskočí zas.

Ale ja som na začiatku chcel spravit to, že počas toho ako je dialog zobrazený nebude zase zapínať

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...