Skill calculating

Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
Post Reply
addinol
Jau po truputį tampa savu
Posts: 144
Joined: 2010 Sep 05 15:20
Skype: kasparas94

Skill calculating

Post by addinol »

Sveiki, noriu jūsų įdėju kaip teisingai suskaičiuoti žaidėjo skillą...

turim 3 kintamuosius tai yra Žaidėjo Killus, Mirtis ir Headshotus, ar reiktų dar ko nors , ar išeitų gan tiksliai apskaičiuoti jeigu vienas žaidėjas turi visų po daug kitas visų po mažai, bet jeigu jų koeficientas panašus tai ir skill neturėtų skirtis labai... Nežinau kaip suskaičiuoti :/
(kills / deaths) * (deaths / headshots) * 100
1. Kills - 5651
1. Deaths - 4672
1. Headshots - 3238

2. Kills - 428
2. Deaths - 246
2. Headshots - 288

1. (5651 / 4672) * (4672 / 3238) * 100 = 174.52
2. (428 / 246) * (246 / 288) * 100 = 148.61

Logiška, ne ? Gal geresnių pasiūlymų turit?

User avatar
aaarnas
Vyr. diskusijų administratorius
Posts: 3891
Joined: 2010 Aug 31 13:21
Skype: fiarno
Contact:

Re: Skill calculating

Post by aaarnas »

(5651 / 4672) + (3238 / 5651) = 1.78
(428 / 246) + (228 / 428) = 2.27

Manau maniškis protingesnis.
Iš nužudymų dalinam mirtis ir kuo daugiau nužudymų nei mirčių - koeficientas didėja.
Po to dar iš nužudymų randam koks koeficientas yra nužudymų į galvą ir pridedam prie bendro koeficiento, tai manau gan logiška. Kuo daugiau nužudymų ir hs - tuo didesnis koeficientas.
Palikau CS pasaulį ;/ . Nebepasiekiamas.

addinol
Jau po truputį tampa savu
Posts: 144
Joined: 2010 Sep 05 15:20
Skype: kasparas94

Re: Skill calculating

Post by addinol »

Ok dėkui, o kodėl pas mane visad returnina 1 ??

Code: Select all

get_user_skill(id){    return ( (iKills[id] / iDeaths[id]) + (iHeadshots[id] / iKills[id]) + iBonus[id] * 32 );}

Code: Select all

client_printc(id, "\g[ RANK ]\n You've %d skill, %d kills, %d deaths, %d headshots.", get_user_skill(id), iKills[id], iDeaths[id], iHeadshots[id])
iKills = 6451
iDeaths = 4198
iHeadshots = 3216


Print output:
[ RANK ] You've 1 skill, 6451 kills, 4198 deaths, 3216 headshots

User avatar
aaarnas
Vyr. diskusijų administratorius
Posts: 3891
Joined: 2010 Aug 31 13:21
Skype: fiarno
Contact:

Re: Skill calculating

Post by aaarnas »

Tai žiūrėk kas blogai su skaičiavimu.
Palikau CS pasaulį ;/ . Nebepasiekiamas.

addinol
Jau po truputį tampa savu
Posts: 144
Joined: 2010 Sep 05 15:20
Skype: kasparas94

Re: Skill calculating

Post by addinol »

Tai kad viskas gerai atrodo:

http://www.wolframalpha.com/input/?i=%2 ... 51%29+*+32

17 turėtų skill būti...

User avatar
aaarnas
Vyr. diskusijų administratorius
Posts: 3891
Joined: 2010 Aug 31 13:21
Skype: fiarno
Contact:

Re: Skill calculating

Post by aaarnas »

Mėgink įrašyti į kintamąjį ir tada per return perduoti. Gali būti, kad suveikia kaip true.
Palikau CS pasaulį ;/ . Nebepasiekiamas.

addinol
Jau po truputį tampa savu
Posts: 144
Joined: 2010 Sep 05 15:20
Skype: kasparas94

Re: Skill calculating

Post by addinol »

Ne, išaikino jau man bėda:

(6451 / 4198) + (3216 / 6451) * 32 = 1

6451 / 4192 = 1

3216 / 6451 = 0

0 * 32 = 0

1 + 0 = 1

Jau išsprendžiau problemą :)

-- 2011 Sau 25 20:50 --

Bet errorą gaunu:
L 01/25/2011 - 19:10:02: [AMXX] Displaying debug trace (plugin "rank.amxx")
L 01/25/2011 - 19:10:02: [AMXX] Run time error 11: divide
L 01/25/2011 - 19:10:02: [AMXX] [0] rank.sma::get_user_skill (line 314)
L 01/25/2011 - 19:10:02: [AMXX] [1] rank.sma::Save_MySql (line 283)
L 01/25/2011 - 19:10:02: [AMXX] [2] rank.sma::client_disconnect (line 303)
line 314:

Code: Select all

return ( (1000*iKills[id] / iDeaths[id]) + (1000*iHeadshots[id] / iKills[id]) * 1954 ) / 1000;
Line 283:

Code: Select all

format(szTemp,charsmax(szTemp),"UPDATE `rank` SET `name` = '%s', `kills` = '%d', `deaths` = '%d', `headshots` = '%d', `skill` = '%d' WHERE `rank`.`SteamID` = '%s';",szName, iKills[id], iDeaths[id], iHeadshots[id], get_user_skill(id), szSteamID); 
Line 303:

Code: Select all

public client_disconnect(id){    Save_MySql(id); // <- 303    iKills[id] = 0;    iDeaths[id] = 0;    iHeadshots[id] = 0;    iBonus[id] = 0;}  

User avatar
aaarnas
Vyr. diskusijų administratorius
Posts: 3891
Joined: 2010 Aug 31 13:21
Skype: fiarno
Contact:

Re: Skill calculating

Post by aaarnas »

Pamėgink:

Code: Select all

return ( (1000*iKills[id] / max(iDeaths[id], 1)) + (1000*iHeadshots[id] / max(iKills[id], 1)) * 1954 ) / 1000;
Palikau CS pasaulį ;/ . Nebepasiekiamas.

addinol
Jau po truputį tampa savu
Posts: 144
Joined: 2010 Sep 05 15:20
Skype: kasparas94

Re: Skill calculating

Post by addinol »

Kitaip susitvarkiau, tikrinau jei yra 0 tada ir returninau 0 ;]

User avatar
aaarnas
Vyr. diskusijų administratorius
Posts: 3891
Joined: 2010 Aug 31 13:21
Skype: fiarno
Contact:

Re: Skill calculating

Post by aaarnas »

Galima ir taip.
Palikau CS pasaulį ;/ . Nebepasiekiamas.

Post Reply

Who is online

Users browsing this forum: No registered users and 9 guests