Sziasztok!Hogy oldhatnám meg,hogy egy INPUT style-al rendelkezõ dialogba a játékos csak számít írhat be,és annak nagyobbnak kell lennie,mint 0.
Használd ezt a kis szösszenetet:
IsNumeric(const string[])
{
for (new i = 0, j = strlen(string); i < j; i++)
{
if (string > \'9\' || string < \'0\') return 0;
}
return 1;
}
Azután, OnDialogResponse-nél:
if(IsNumeric(inputtext) && inputtext >= 0) // ellenõrzés, ahol megnézzük hogy a beírt szöveg szám-e, (0-9) ÉS (&&) hogy a beírt szöveg nagyobb mint nulla. Ezt a kódot viszont még szét lehet szedni darabokra további ellenõrzésekhez.
Köszi ez jó lenne,de az a baj,hogy ezek után is stringnek érzékeli az inputtextet.
error 033: array must be indexed (variable \"inputtext\")
if(IsNumeric(inputtext) && inputtext > 0)
esetleg így?
én is így használtam.De a lényegén nem változtat,így még mindig rossz.Lehet át kell írnom a dialogos fegyver vásárlást parancsosra.Úgy csináltam hogy 1 dialogból kiválasztja milyen fegyvert akar,majd egy másikba beírja hány tölténnyel.
Idézetet írta: tudvari date=1371905095\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"38763\" data-ipsquote-contentclass=\"forums_TopicKöszi ez jó lenne,de az a baj,hogy ezek után is stringnek érzékeli az inputtextet.
error 033: array must be indexed (variable \"inputtext\")
Mert az input text az \"string\" pontosabban arra a célra van létrehozva az IsNuneric függvény csak ellenõrzi hogy a karakterlánc számból áll-e.
Viszont te, integer típusként akarod felhasználni az inputtext-et ezért jelzi a fent idézett hibát.
Át kell alakítanod egy változóba az inputtext-et mégpedig így:
new value = strval(inputtext);
Majd a value nevezetû változó fogja tárolni a számot és ezt használhatod fel.
if(value == 12)