Szerző Téma: stock és if hiba  (Megtekintve 819 alkalommal)

stock és if hiba
« Dátum: 2014. február 04. - 19:35:19 »
0 Show voters
Sziasztok egyszerüen nem értem miért kapom ezeket a hiba üzeneteket :((
itt a kód:
 

if(hivasegyenlegkiszamit(params,playerid) == 0)
{
                }else{
                }
stock hivasegyenlegkiszamit(telefonszam,playerid)
{   new oszolgaltatoja[50];
new enszolgaltatom[50];
new hibasszoveg[128];
    strmid(oszolgaltatoja,telefonszam, 0,2);
    strmid(enszolgaltatom,pInfo[playerid][telszam], 0,2);
   
if(strcmp(enszolgaltatom,\"70\")== 0)
{
    if(strcmp(enszolgaltatom,oszolgaltatoja)== 0) // hálozaton belül
    {
   if((pInfo[playerid][telegyenleg]-25) <= 0)
   {
   hibasszoveg=\"Sajnos nincs elegendõ összeg a kártyán!!Igy nem tudsz (70) Hálozaton belül hívást Indítani\";
   }
   
    }else{// hálozatonkivül
   
    }
}
return hibasszoveg;
}

 
A hiba kódok:
 

error 035: argument type mismatch (argument 1)
error 035: argument type mismatch (argument 2)
warning 203: symbol is never used: \"telefonszam\"

 
Nagyon szépen köszönöm a segítségeteket:)

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
stock és if hiba
« Válasz #1 Dátum: 2014. február 04. - 19:39:43 »
0 Show voters
Létrehoztad a telefonszam változót, melyet sosem használsz. Vagy használsz, de néha akkoe is kiírja rá. Azzal nem kell foglalkozni. Maximum törlöd a változót, ha tényleg nem használod. A másik 2 üzenetet pedig melyik sorokra írja? Azokat a sorokat is másold be.

stock és if hiba
« Válasz #2 Dátum: 2014. február 04. - 19:55:32 »
0 Show voters
error 035: argument type mismatch (argument 2):
 
strmid(oszolgaltatoja,telefonszam, 0,2);

 
error 035: argument type mismatch (argument 1)
 
if(hivasegyenlegkiszamit(params,playerid) == 0)

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
stock és if hiba
« Válasz #3 Dátum: 2014. február 04. - 20:05:26 »
+1 Show voters
Strmidhez string kell, és a telefonszam integer.
 
stock hivasegyenlegkiszamit(telefonszam[],playerid)

 
Így.
A másodiknál pedig pont fordítva van, integer kéne, de stringet adsz meg, ugyanis a hivasegyenlegkiszamit függvényed stringgel tér vissza. Ráadásul minden esetben a hibaüzenettel.
Remélem ezek a problémák :D

stock és if hiba
« Válasz #4 Dátum: 2014. február 04. - 20:09:57 »
0 Show voters
már csak ennyi :
error 033: array must be indexed (variable \"hivasegyenlegkiszamit\")
:DDD
if(hivasegyenlegkiszamit(params,playerid) == 0) erre:D

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
stock és if hiba
« Válasz #5 Dátum: 2014. február 04. - 20:32:33 »
+1 Show voters
Stringgel tér vissza, és stringet nem tudsz inttel összehasonlítani iffel. És ha tovabbra is hibaüzenettel tér vissza, akkor is, ha nincs is hiba, javítsd, ha még nem tetted meg (egyszer már szóltam). És a jó esetben - amikor nem kell hibaüzenet - inttel térj vissza. Lassan kéne egyebként egy kiemelt téma, \'Telefonszám problémák by kriszrap\' címmel :D

stock és if hiba
« Válasz #6 Dátum: 2014. február 04. - 20:35:49 »
0 Show voters
szerk.:Sikerült!!!:)
ööö van benne valami:)
« Utoljára szerkesztve: 2014. február 04. - 20:50:25 írta kriszrap »

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
stock és if hiba
« Válasz #7 Dátum: 2014. február 04. - 20:50:46 »
+1 Show voters
... xD
Amikor meghívod azt a kiszámító függvényt, minden esetben azzal tér vissza, hogy hibauzenet, tehát hogy \'Nincs elegendõ...\'. Akkor is, ha ez nem igaz, tehát maga a függvény is hibás. Ja bocs, akkor nem ezzel a nincs elég cuccal tér vissza, ugyanis akkor ezt nem adod meg értéknek, de az eredmény akkor is a hibauzenet változó értéke lesz. És akkor most jôn a fordító által kiírt hiba. Azt az ifes cuccot így fog látni a szerver a hibás függvényedbõl adódóan:
 
if(Nincs elég ... == 0)

 
vagy
 
if( == 0)

 
a fent leírtaktól függõen.
Ha a függvényedet megírod helyesen, tehát csak akkor ír ki hibaüzenetet, amikor tényleg ki kell neki, és amikor nem kéne, visszatér pl, az eredmeny változóval, ami integer típusú, és akkor jó lesz.
Viszomt csak most jutott eszembe, hogy ha helyesen tér vissza a függvény azzal a nincs eléges üzenettel, akkor sem lesz jó a dolog. Szerintem simán térj vissza egy logikai értékkel, és a végén azt ellenõizd, vagy ha számmal (asszem a az egyenleggel) akarsz visszatérni, akkor a hibaüzenet helyére tegyél be 0-t, vagy false-t, hogy az if-es feltétel minden esetben megfelelõen mûködjön, és aztán utána írod ki a hibaüzenetet.
De akkor megint nem lesz jó, mert hiba esetén 0 lesz a visszatérés, és az olyan lesz, mintha az egyenleg 0 forint/dolcsi/stb./pénz lenne.
Megoldás: a függvény csak simán lekérdezi az egyenleget, és mindent utólag csekkolsz le, pl. hogy van e elég pénze a játékosnak a híváshoz.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal