public OnPlayerDeath(playerid, killerid, reason)
{
if(pInfo[playerid][lvl] < 30)
{
pInfo[playerid][xp]*=0.9;
}
return 1;
}
Sziasztok!Nézd csak meg a kódot. Segítek: Még azthiszem másodikban tanultam: \"A kacsa csõre mindig a nagyobb felé néz\".
Segítséget szeretnék kérni az alábbi kód befejezésében.
public OnPlayerDeath(playerid, killerid, reason)
{
if(pInfo[playerid][lvl] < 30)
{
pInfo[playerid][xp]*=0.9;
}
return 1;
}
A lényege az lenne, hogyha a játékos szintje 30. szint alatt van, és meghal, akkor 10%-át vegye el az xpjének azaz maradjon meg a 90%-a.
A kódra semmi hibát nem ír viszont a valóságban nem mûködik. 10 xp-m van meghalok és a helyzet változatlan ugyan úgy 10 xp-m marad.
Elõre is köszönöm a válaszokat :)
Üdv. Klmos
if(pInfo[playerid][lvl] < 30)
if(pInfo[playerid][lvl] > 30)
Nézd csak meg a kódot. Segítek: Még azthiszem másodikban tanultam: \"A kacsa csõre mindig a nagyobb felé néz\".
azaz x<y - nál az x a nagyobb.
Akkor érted már a hibát?if(pInfo[playerid][lvl] < 30)
helyett:
if(pInfo[playerid][lvl] > 30)
Azaz: < helyett >
a játékos szintje 30. szint alatt van[/quote]
Segítek. Általános Iskola 1. osztályában kezdtünk el tanulni szöveg értést. Ha 30 alatt van akkor kisebb mint harminc. ;)- Cím: Százalék levonás, halál után, hiba.
Írta: Kovacs_Richard - 2013. március 10. - 11:23:06- Ha egy int-et beszorzol egy float-al akkor float értéket kapsz !
( még ha egész szám is jön ki akkor is float típus ! pl: 9.0 )
pInfo[playerid][xp]*=0.9;
helyett:
pInfo[playerid][xp] = floatround((pInfo[playerid][xp]*0.9), floatround_ceil);
http://wiki.sa-mp.com/wiki/Floatround- Cím: Százalék levonás, halál után, hiba.
Írta: Klmos - 2013. március 10. - 11:39:09 Idézetet írta: Kovacs_Richard date=1362910986\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"34658\" data-ipsquote-contentclass=\"forums_TopicHa egy int-et beszorzol egy float-al akkor float értéket kapsz !Köszönöm a segítséget. Bár átírtam a kódomba a sort, és megint csak hiba nélkül lefut a complier, de IG meghalok van 10 xp-m ügye annak a 90 %-a az 9 xp, de még mindig kereken 10 db xpm marad. Miért?
( még ha egész szám is jön ki akkor is float típus ! pl: 9.0 )
pInfo[playerid][xp]*=0.9;
helyett:
pInfo[playerid][xp] = floatround((pInfo[playerid][xp]*0.9), floatround_ceil);
http://wiki.sa-mp.com/wiki/Floatround
Esetleg más ötlet, hogy írjam meg?- Cím: Százalék levonás, halál után, hiba.
Írta: Kovacs_Richard - 2013. március 10. - 15:47:56 new x = 10;
x = floatround((x*0.9), floatround_ceil);
printf(\"x:%d\",x);
nekem ez a kód a végén 9-et ír ki...- Cím: Százalék levonás, halál után, hiba.
Írta: Klmos - 2013. március 10. - 21:50:40- Na sikerült megoldanom, a hiba egy olyan részbe volt, amit nem másoltam be. Viszont, ha elõbb észre is veszem a problémát a számolással az én módomon lett volna baj.
Köszönöm a segítséget. Kovács Richard -nak ment a jelecske :D