Szerző Téma: GetPlayerRatio(playerid)  (Megtekintve 1480 alkalommal)

GetPlayerRatio(playerid)
« Dátum: 2013. december 09. - 18:08:44 »
0 Show voters
Hi az lenne a kérdésem h erre vajon miért ír hibát és, hogy ez vajon így mûködõ képes ötlet-e?
célom ezzel, hogy letudjam kérni a ratiot egy változóban
kod:
 

stock GetPlayerRatio(playerid)
{
new Float:ratio;
new halal[MAX_PLAYERS];
if(PlayerInfo[playerid][Deaths] == 0)
{
halal[playerid] = 1;
}
else
{
halal[playerid]=PlayerInfo[playerid][Deaths];
}
ratio=GetPlayerScore(playerid)/halal[playerid];
return ratio;
}

 
hiba:
 

C:\\Users\\Sanyi\\Desktop\\samp cuccok\\szerverek\\xsamp\\gamemodes\\PLGV4.0.pwn(952) : error 017: undefined symbol \"Deaths\"
C:\\Users\\Sanyi\\Desktop\\samp cuccok\\szerverek\\xsamp\\gamemodes\\PLGV4.0.pwn(958) : error 017: undefined symbol \"Deaths\"
C:\\Users\\Sanyi\\Desktop\\samp cuccok\\szerverek\\xsamp\\gamemodes\\PLGV4.0.pwn(961) : warning 213: tag mismatch
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase
 
2 Errors.

 
u.i.: mielõtt azt mondja valaki h nincs definiálva a Deaths annak mondom h definiálva van a mód elején.
« Utoljára szerkesztve: 2013. december 09. - 18:24:47 írta solyom1992 »

Nem elérhető Lucio

  • 232
    • Profil megtekintése
GetPlayerRatio(playerid)
« Válasz #1 Dátum: 2013. december 09. - 18:30:18 »
+1 Show voters
Funkción kívül van? Már mint a definiálás

GetPlayerRatio(playerid)
« Válasz #2 Dátum: 2013. december 09. - 18:31:23 »
0 Show voters
igen mód leg elején az include-ok alatt

Nem elérhető Lucio

  • 232
    • Profil megtekintése
GetPlayerRatio(playerid)
« Válasz #3 Dátum: 2013. december 09. - 18:33:48 »
+1 Show voters
Akkor viszont nem tudom.. Ugyanúgy írtad le? Mert nekem is volt már olyan, hogy létrehoztam, de nem úgy írtam le ahogyan létrehoztam

GetPlayerRatio(playerid)
« Válasz #4 Dátum: 2013. december 09. - 18:39:40 »
0 Show voters

enum pInfo
{
deaths,
Tk,
Admin
}
new PlayerInfo[MAX_PLAYERS][pInfo];
stock GetPlayerRatio(playerid)
{
new Float:ratio;
new halal[MAX_PLAYERS];
if(PlayerInfo[playerid][Deaths] == 0)
{
halal[playerid] = 1;
}
else
{
halal[playerid]=PlayerInfo[playerid][Deaths];
}
ratio=GetPlayerScore(playerid)/halal[playerid];
return ratio;
}

 

Dupla hozzászólás automatikusan összefûzve. ( 2013. december 09. - 18:42:24 )

valóban elnéztem kis \"D\" betû helyett nagyot irtam de akkor is marad még 1 hiba ez:
 

C:\\Users\\Sanyi\\Desktop\\samp cuccok\\szerverek\\xsamp\\gamemodes\\PLGV4.0.pwn(961) : warning 213: tag mismatch
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase
 
1 Warning.
abban a sorban ez van:
return ratio;
« Utoljára szerkesztve: 2013. december 09. - 18:42:24 írta solyom1992 »

Nem elérhető Lucio

  • 232
    • Profil megtekintése
GetPlayerRatio(playerid)
« Válasz #5 Dátum: 2013. december 09. - 18:43:23 »
0 Show voters
Az enumba kis betûvel írtad a deaths -t de a függvényhez Deaths -t írtál.. Kis és nagybetû is számít

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
GetPlayerRatio(playerid)
« Válasz #6 Dátum: 2013. december 09. - 18:44:01 »
0 Show voters
Figyelj a kis- és nagybetûkre. A ratio elé pedig nem kell Float, ha egyszer intként kezeled.. Amúgy erre van külön téma is...
« Utoljára szerkesztve: 2013. december 09. - 18:49:16 írta Dfoglalo »

Nem elérhető Lucio

  • 232
    • Profil megtekintése
GetPlayerRatio(playerid)
« Válasz #7 Dátum: 2013. december 09. - 18:46:15 »
0 Show voters
A tag mismatch azt jelenti, hogy rossz formátumú. Tehát itt ahogy Dfoglalo írta töröld ki a Float-ot, mert az lebegõpontos változó.(pl.: 3,14)

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
GetPlayerRatio(playerid)
« Válasz #8 Dátum: 2013. december 09. - 19:06:52 »
0 Show voters
Spoiler for OFF:

A tag mismatch azt jelenti, hogy rossz formátumú. Tehát itt ahogy Dfoglalo írta töröld ki a Float-ot, mert az lebegõpontos változó.(pl.: 3,14)
 
[/quote]
Szerintem egyzserûbb valós számnak hívni :D Habár itt SAMP-on tényleg lebegõpontosnak szokás hívni.


Amúgy ez a cucc mi a s*@rra jó? ???
Látom nagyon kezdõ vagy. Máskor a kiemelt mában kérdezz errort, valamint ha ráguglizol, azonnal kidobja a megoldást... A kis- és nagybetûkre pedig figyelj oda! Float pedig akkor kell, ha pl. egy koordinátát tárolsz el egy változóba. Te most sima számot, integert adsz értekül a változóhoz, nem pedig floatot.

GetPlayerRatio(playerid)
« Válasz #9 Dátum: 2013. december 09. - 19:13:45 »
0 Show voters
na most hibát nem ír de nem is jelenik meg a ratio a textdrawban :/
ha az \"Amúgy ez a cucc mi a s*@rra jó? ???\"-t erre a kódra értetted az lenne a célom ezzel h úgy letudjam kérni a ratiót mint pl a pinget a GetPlayerPing(playerid)-el
« Utoljára szerkesztve: 2013. december 09. - 19:17:57 írta solyom1992 »

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
GetPlayerRatio(playerid)
« Válasz #10 Dátum: 2013. december 09. - 19:24:07 »
+1 Show voters
Másold be a textdrawos részt is.
Elemeztem...
 

stock GetPlayerRatio(playerid)
{
       new ratio; // Létrehozol egy ratio nevû változót
       new halal[MAX_PLAYERS]; //  Meg egy halalt is
       if(PlayerInfo[playerid][Deaths] == 0) // Ha a deaths egyenlõ 0-val
       {
               halal[playerid] = 1; // A halalt beállítod 1-re
       }
       else // De ha nem
       {
               halal[playerid]=PlayerInfo[playerid][Deaths]; // Akkor beállítod a halal változó érteket annyira, amennyi a deaths változó érteke
       }
       ratio=GetPlayerScore(playerid)/halal[playerid]; // Majd lekérdezed a játékos pontját, amit elosztasz a halal változó ertékével, és az eredményt megadod a ratio változó értékeként
       return ratio; // Visszatérsz a ratioval
}

 
WTF?!
Na mindegy, a te dolgod... Én abban segítek, amiben kéred. Az már másik történet, hogy hiba nélkül milyen eredmény jön ki, ami mégis hibás, na mindegy...
« Utoljára szerkesztve: 2013. december 09. - 19:38:21 írta Dfoglalo »

GetPlayerRatio(playerid)
« Válasz #11 Dátum: 2013. december 09. - 19:26:58 »
0 Show voters

onplayer conect alatt:
       rat[playerid] = TextDrawCreate(454.000000, 437.000000, \"~g~RATIO:0.00\");
TextDrawBackgroundColor(rat[playerid], 255);
TextDrawFont(rat[playerid], 1);
TextDrawLetterSize(rat[playerid], 0.500000, 1.000000);
TextDrawColor(rat[playerid], -1);
TextDrawSetOutline(rat[playerid], 1);
TextDrawSetProportional(rat[playerid], 1);
TextDrawHideForPlayer(playerid,rat[playerid]);
spawnnál és halálnál:
new TD7[30];
format(TD7,sizeof(TD7),\"~g~RATIO:%0.2f\",GetPlayerRatio(playerid));
TextDrawHideForPlayer(playerid,rat[playerid]);
TextDrawSetString(rat[playerid],TD7);
TextDrawShowForPlayer(playerid,rat[playerid]);
« Utoljára szerkesztve: 2013. december 09. - 19:28:50 írta solyom1992 »

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
GetPlayerRatio(playerid)
« Válasz #12 Dátum: 2013. december 09. - 19:32:34 »
0 Show voters
Miért %0.2f? Miért nem %d vagy inkább %i? ???

GetPlayerRatio(playerid)
« Válasz #13 Dátum: 2013. december 09. - 19:37:54 »
0 Show voters
mivel mindenhol így volt megadva mivel a ratió igy néz ki mindenhol Ratio:0.00
pl: Ladminban igy van:
Ratio: %0.2f\", Float:PlayerInfo[player1][Kills]/Float:PlayerInfo[player1][Deaths])
ami a játékban igy néz ki Ratio:0.00

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
GetPlayerRatio(playerid)
« Válasz #14 Dátum: 2013. december 09. - 19:39:43 »
0 Show voters
De amivel visszatérsz, az továbbra is int, nem float... Akkor miért valós számot akarsz kiiratni? Vagy ha valóssat ajarsz kiírni, akkor mindent floatnak adj meg elõtte is.
A téma legelején is igazán mondhattad volna, hogy egy valós számot szeretnél kiírni, és akkor nem a float eltûntetésére mentünk volna a hibaüzenetbõl adódóan...
Mostmár legalább tudjuk, hogy pontosan mit is szeretnél.
« Utoljára szerkesztve: 2013. december 09. - 19:48:50 írta Dfoglalo »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal