Dabar yra 2019 Lie 18 09:28




 Puslapis 11 [ 9 pranešimai(ų) ] 
Autorius Žinutė
 Pranešimo tema: Pagalba
Žinutės numeris: #1  StandartinėParašytas: 2019 Sau 10 18:49 
O taip. Jis jau surinko 50 žinučių!

Užsiregistravo: 2015 Kov 01 23:29
Pranešimai: 94
Karma: 0
Sveiki, susiduriau su problema, reiktu kad rodytu taikluma raundo pabaigoje, bet visada rodo 0proc. Vienas žmogus sake reikia eilutes kažkokios, kad galėčiau išgauti tai raudo pabaigoje, bet bandžiau kelis variantus jokio atsakymo. Dėkui :)

  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <csstats>
  4.  
  5. #define MIN_KILLS 1
  6.  
  7. new Kills[33];
  8. new Headshots[33];
  9.  
  10. public plugin_init()
  11. {
  12.     register_plugin("Best Player of the Round", "1.0", "hleV");
  13.    
  14.     register_event("HLTV", "OnHltv", "a", "1=0", "2=0");
  15.     register_event("DeathMsg", "OnDeathMsg", "a");
  16.    
  17.     register_logevent("OnRoundEnd", 2, "1=Round_End");
  18. }
  19.  
  20. public client_disconnected(id)
  21.     Kills[id] = Headshots[id] = 0;
  22.    
  23. public OnHltv()
  24. {
  25.     arrayset(Kills, 0, sizeof Kills);
  26.     arrayset(Headshots, 0, sizeof Headshots);
  27. }
  28. public OnDeathMsg()
  29. {
  30.     new id = read_data(1);
  31.    
  32.     if (!is_user_connected(id))
  33.         return;
  34.        
  35.     Kills[id]++;
  36.    
  37.     if (read_data(3))
  38.         Headshots[id]++;
  39. }
  40.  
  41. public OnRoundEnd()
  42. {
  43.     static stats[8]
  44.     new players[32], num;
  45.     get_players(players, num);
  46.    
  47.     if (!num)
  48.         return;
  49.    
  50.     new best = players[0];
  51.    
  52.     for (new i = 1, id; i < num; i++)
  53.     {
  54.         id = players[i];
  55.        
  56.         if (Kills[id] > Kills[best] || (Kills[id] == Kills[best] && Headshots[id] > Headshots[best]))
  57.             best = id;
  58.     }
  59.    
  60.     if (Kills[best] < MIN_KILLS) // Minimum amount of kills
  61.         return;
  62.  
  63.     new name[32];
  64.     get_user_name(best, name, charsmax(name));    
  65.     client_print(0, print_chat, "* Best is %s!", name);
  66.     client_print(0, print_chat, "* He killed %d players, including %d headshots.", Kills[best], Headshots[best]);
  67.     client_print(0, print_chat, "* Taiklumas: %2.0f%%", accuracy(stats));
  68. }  
  69. stock Float:accuracy(stats[8])
  70. {
  71.     if(!stats[4])
  72.         return ( 0.0 );
  73.     new Float:result
  74.     result = 100.0 * float( stats[5] ) / float( stats[4] );
  75.     return (result > 100.0) ? 100.0 : result
  76. }
  77.  


Paskutinį kartą redagavo Molvas 2019 Sau 10 20:59. Iš viso redaguota 1 kartą.

Atsijungęs
 Aprašymas  
 
 Pranešimo tema: Re: Pagalba
Žinutės numeris: #2  StandartinėParašytas: 2019 Sau 10 19:21 
Viršininkas
Vartotojo avataras

Užsiregistravo: 2011 Kov 12 22:19
Pranešimai: 2067
Karma: 94

Miestas: Linksmakalnis
O kas yra stats funkcijoje OnRoundEnd()? Nes tas kintamasis visada tuščias...



_________________
WWW.REZ.LT - Geri, bet ne geriausi serveriai Lietuvoje
CS/CS:S/CS:GO/MC/Killing Floor Serverių monitoriai su žaidėjų atvaizdavimu
50% paramos atgavimas, perkant VPS Dedikuoti.lt
Atsijungęs
 Aprašymas  
 
 Pranešimo tema: Re: Pagalba
Žinutės numeris: #3  StandartinėParašytas: 2019 Sau 10 21:13 
O taip. Jis jau surinko 50 žinučių!

Užsiregistravo: 2015 Kov 01 23:29
Pranešimai: 94
Karma: 0
Tiesiog bandžiau iš vieno plugino pavogti koda ir įkelti į kita (gal jis čia ir nereikalingas). Koda emiau iš čia:
Esme tame, kad reiktu padaryti, kad rodytu raundo pabaigoje to žaidėjo taiklumo procenta, kurį jis padare per raunda. Bandžiau kelis variantus bet..


  1.  
  2. #include <amxmodx>
  3. #include <amxmisc>
  4. #include <csstats>
  5.  
  6. public plugin_init() {
  7.    
  8.     register_plugin(PLUGIN, VERSION, AUTHOR);
  9.    
  10.     register_clcmd("say /rank", "cmdShowRank");
  11. }
  12.  
  13. public cmdShowRank(id)
  14. {   
  15.     static stats[8], stats2[4], body[8]
  16.     new rank_pos = get_user_stats(id, stats, body);
  17.     new max_rank = get_statsnum();
  18.    
  19.     get_user_stats2(id, stats2);
  20.    
  21.     static host_name[32];
  22.     get_cvar_string("hostname", host_name, 31);
  23.    
  24.     static motd[1501], len;
  25.    
  26.     len = format(motd, 1500,"<body bgcolor=#000000><font color=#87cefa><pre>");
  27.     len += format(motd[len], 1500-len,"<center><img src=^"http://alkazone.freehostia.com/rank_stats.png^"></center></img>");
  28.     len += format(motd[len], 1500-len,"<center><h4><font color=^"blue^"> You'r statistics in '%s' </font></h4></center>", host_name);
  29.     len += format(motd[len], 1500-len,"<left><font color=^"red^"><B>Rank :</B> <font color=^"white^">%d / %d</color></left>^n", rank_pos, max_rank);
  30.     len += format(motd[len], 1500-len,"<left><font color=^"red^"><B>Kills :</B> <font color=^"white^"> %d</color></left>^n", stats[0]);
  31.     len += format(motd[len], 1500-len,"<left><font color=^"red^"><B>Deaths :</B> <font color=^"white^"> %d</color></left>^n", stats[1]);
  32.     len += format(motd[len], 1500-len,"<left><font color=^"red^"><B>Head Shots :</B> <font color=^"white^"> %d</color></left>^n", stats[2]);
  33.     len += format(motd[len], 1500-len,"<left><font color=^"red^"><B>Damage :</B> <font color=^"white^"> %d</color></left>^n", stats[6]);
  34.     len += format(motd[len], 1500-len,"<left><font color=^"red^"><B>Shots :</B> <font color=^"white^"> %d</color></left>^n", stats[4]);
  35.     len += format(motd[len], 1500-len,"<left><font color=^"red^"><B>Hits ;</B> <font color=^"white^"> %d</color></left>^n", stats[5]);
  36.     len += format(motd[len], 1500-len,"<left><font color=^"blue^">----------------------------------</color></left>^n");
  37.     len += format(motd[len], 1500-len,"<left><font color=^"red^">Eff : <font color=^"white^"> %3.0f%%</color></left>^n", effec(stats));
  38.     len += format(motd[len], 1500-len,"<left><font color=^"red^">Acc : <font color=^"white^"> %3.0f%%</color></left>^n", accuracy(stats));
  39.     len += format(motd[len], 1500-len,"<left><font color=^"blue^">----------------------------------</color></left>^n^n");
  40.     len += format(motd[len], 1500-len,"<left><font color=^"red^"><B>Defused Bombs :</B> <font color=^"white^">%d </color></left>^n", stats2[1]);
  41.     len += format(motd[len], 1500-len,"<left><font color=^"red^"><B>Planted Bombs :</B> <font color=^"white^">%d </color></left>^n", stats2[2]);
  42.     len += format(motd[len], 1500-len,"<left><font color=^"red^"><B>Exploded Bombs :</B> <font color=^"white^">%d </color></left>^n^n", stats2[3]);
  43.    
  44.    
  45.     show_motd(id, motd, "You'r Rank");
  46.    
  47.     return 0;
  48. }
  49.  
  50. stock Float:accuracy(stats[8])
  51. {
  52.     if(!stats[4])
  53.         return ( 0.0 );
  54.     new Float:result
  55.     result = 100.0 * float( stats[5] ) / float( stats[4] );
  56.     return (result > 100.0) ? 100.0 : result
  57. }
  58.  
  59. stock Float:effec(stats[8])
  60. {
  61.     if(!stats[0])
  62.         return ( 0.0 );
  63.     new Float:result
  64.     result = 100.0 * float( stats[0] ) / float( stats[0] + stats[1] );
  65.     return (result > 100.0) ? 100.0 : result
  66. }
  67.  


Atsijungęs
 Aprašymas  
 
 Pranešimo tema: Re: Pagalba
Žinutės numeris: #4  StandartinėParašytas: 2019 Sau 10 22:19 
Viršininkas
Vartotojo avataras

Užsiregistravo: 2011 Kov 12 22:19
Pranešimai: 2067
Karma: 94

Miestas: Linksmakalnis
Jis dalina STATSX_SHOTS iš STATSX_HITS, kuriuos gauna iš statistikos, kuri saugoma... Tavo noras kopijuoti yra visiškai neteisingas, o ir galimybės, pagal tavo patiektus kodus išgauti tai ko tu nori, neįmanoma, nes pirmame kode turi neturi šūvių ir pataikymų, o antrame kode visa tai yra ne iš "live" žaidimo, o iš išsaugotos informacijos. Norint išvesti būtent šią statistiką, tau papildomai reikia šūvių ir pataikymų skaičiavimo.



_________________
WWW.REZ.LT - Geri, bet ne geriausi serveriai Lietuvoje
CS/CS:S/CS:GO/MC/Killing Floor Serverių monitoriai su žaidėjų atvaizdavimu
50% paramos atgavimas, perkant VPS Dedikuoti.lt
Atsijungęs
 Aprašymas  
 
 Pranešimo tema: Re: Pagalba
Žinutės numeris: #5  StandartinėParašytas: 2019 Sau 10 22:30 
O taip. Jis jau surinko 50 žinučių!

Užsiregistravo: 2015 Kov 01 23:29
Pranešimai: 94
Karma: 0
Supratau, o šūvius ir pataikymus neimano pritaikyti iš statsx plugino? O gal galėtum padėti tuo klausimu?


Atsijungęs
 Aprašymas  
 
 Pranešimo tema: Re: Pagalba
Žinutės numeris: #6  StandartinėParašytas: 2019 Sau 10 22:40 
Viršininkas
Vartotojo avataras

Užsiregistravo: 2011 Kov 12 22:19
Pranešimai: 2067
Karma: 94

Miestas: Linksmakalnis
new rank_pos = get_user_stats(id, stats, body);



_________________
WWW.REZ.LT - Geri, bet ne geriausi serveriai Lietuvoje
CS/CS:S/CS:GO/MC/Killing Floor Serverių monitoriai su žaidėjų atvaizdavimu
50% paramos atgavimas, perkant VPS Dedikuoti.lt
Atsijungęs
 Aprašymas  
 
 Pranešimo tema: Re: Pagalba
Žinutės numeris: #7  StandartinėParašytas: 2019 Sau 11 10:14 
O taip. Jis jau surinko 50 žinučių!

Užsiregistravo: 2015 Kov 01 23:29
Pranešimai: 94
Karma: 0
psychical rašė:
new rank_pos = get_user_stats(id, stats, body);

Kažka ne taip darau turbūt.. Atrodo paprasta dalyka noriu pasidaryt, bet..

  1. (45) : error 017: undefined symbol "id"
  2. (68) : error 017: undefined symbol "stats"
  3. (68) : error 001: expected token: ",", but found ";"



  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <csstats>
  4.  
  5. #define MIN_KILLS 1
  6.  
  7. new Kills[33];
  8. new Headshots[33];
  9.  
  10. public plugin_init()
  11. {
  12.     register_plugin("Best Player of the Round", "1.0", "hleV");
  13.    
  14.     register_event("HLTV", "OnHltv", "a", "1=0", "2=0");
  15.     register_event("DeathMsg", "OnDeathMsg", "a");
  16.    
  17.     register_logevent("OnRoundEnd", 2, "1=Round_End");
  18. }
  19.  
  20. public client_disconnected(id)
  21.     Kills[id] = Headshots[id] = 0;
  22.    
  23. public OnHltv()
  24. {
  25.     arrayset(Kills, 0, sizeof Kills);
  26.     arrayset(Headshots, 0, sizeof Headshots);
  27. }
  28. public OnDeathMsg()
  29. {
  30.     new id = read_data(1);
  31.    
  32.     if (!is_user_connected(id))
  33.         return;
  34.        
  35.     Kills[id]++;
  36.    
  37.     if (read_data(3))
  38.         Headshots[id]++;
  39. }
  40.  
  41. public OnRoundEnd()
  42. {
  43.             new players[32], num;
  44.             get_players(players, num);
  45.             new rank_pos = get_user_stats(id, stats, body);
  46.    
  47.             if (!num)
  48.             return;
  49.    
  50.             new best = players[0];
  51.    
  52.             for (new i = 1, id; i < num; i++)
  53.             {
  54.             id = players[i];
  55.        
  56.             if (Kills[id] > Kills[best] || (Kills[id] == Kills[best] && Headshots[id] > Headshots[best]))
  57.             best = id;
  58.             }
  59.    
  60.             if (Kills[best] < MIN_KILLS) // Minimum amount of kills
  61.             return;
  62.  
  63.             new name[32];
  64.             get_user_name(best, name, charsmax(name));
  65.            
  66.             client_print(0, print_chat, "* Best is %s!", name);
  67.             client_print(0, print_chat, "* He killed %d players, including %d headshots.", Kills[best], Headshots[best]);
  68.             client_print(0, print_chat, "* Taiklumas: %2.0f%%", accuracy(stats));
  69.             }  
  70. stock Float:accuracy(stats[8])
  71. {
  72.     if(!stats[4])
  73.         return ( 0.0 );
  74.     new Float:result
  75.     result = 100.0 * float( stats[5] ) / float( stats[4] );
  76.     return (result > 100.0) ? 100.0 : result
  77. }


Atsijungęs
 Aprašymas  
 
 Pranešimo tema: Re: Pagalba
Žinutės numeris: #8  StandartinėParašytas: 2019 Sau 11 21:46 
Viršininkas
Vartotojo avataras

Užsiregistravo: 2011 Kov 12 22:19
Pranešimai: 2067
Karma: 94

Miestas: Linksmakalnis
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <csstats>
  4.  
  5. #define MIN_KILLS 1
  6.  
  7. new Kills[33], Headshots[33];
  8.  
  9. public plugin_init()
  10. {
  11.     register_plugin("Best Player of the Round", "1.0", "hleV");
  12.    
  13.     register_event("HLTV", "OnHltv", "a", "1=0", "2=0");
  14.     register_event("DeathMsg", "OnDeathMsg", "a");
  15.    
  16.     register_logevent("OnRoundEnd", 2, "1=Round_End");
  17. }
  18.  
  19. public client_disconnected(id)
  20.     Kills[id] = Headshots[id] = 0;
  21.    
  22. public OnHltv()
  23. {
  24.     arrayset(Kills, 0, sizeof Kills);
  25.     arrayset(Headshots, 0, sizeof Headshots);
  26. }
  27.  
  28. public OnDeathMsg()
  29. {
  30.     new id = read_data(1);
  31.    
  32.     if (!is_user_connected(id))
  33.         return;
  34.        
  35.     Kills[id]++;
  36.    
  37.     if (read_data(3))
  38.         Headshots[id]++;
  39. }
  40.  
  41. public OnRoundEnd()
  42. {
  43.     static stats[8], body[8];
  44.     new players[32], num;
  45.     get_players(players, num);
  46.  
  47.     if (!num)
  48.         return;
  49.  
  50.     new best = players[0];
  51.  
  52.     for (new i = 1, id; i < num; i++)
  53.     {
  54.         id = players[i];
  55.  
  56.         if (Kills[id] > Kills[best] || (Kills[id] == Kills[best] && Headshots[id] > Headshots[best]))
  57.             best = id;
  58.     }
  59.    
  60.     get_user_stats(best, stats, body);
  61.  
  62.     if (Kills[best] < MIN_KILLS) // Minimum amount of kills
  63.         return;
  64.  
  65.     new name[32];
  66.     get_user_name(best, name, charsmax(name));
  67.    
  68.     client_print(0, print_chat, "* Best is %s!", name);
  69.     client_print(0, print_chat, "* He killed %d players, including %d headshots.", Kills[best], Headshots[best]);
  70.     client_print(0, print_chat, "* Taiklumas: %2.0f%%", accuracy(stats));
  71. }  
  72.  
  73. stock Float:accuracy(stats[8])
  74. {
  75.     if(!stats[4])
  76.         return ( 0.0 );
  77.    
  78.     new Float:result
  79.     result = 100.0 * float( stats[5] ) / float( stats[4] );
  80.     return (result > 100.0) ? 100.0 : result
  81. }



_________________
WWW.REZ.LT - Geri, bet ne geriausi serveriai Lietuvoje
CS/CS:S/CS:GO/MC/Killing Floor Serverių monitoriai su žaidėjų atvaizdavimu
50% paramos atgavimas, perkant VPS Dedikuoti.lt
Atsijungęs
 Aprašymas  
 
 Pranešimo tema: Re: Pagalba
Žinutės numeris: #9  StandartinėParašytas: 2019 Sau 12 14:59 
O taip. Jis jau surinko 50 žinučių!

Užsiregistravo: 2015 Kov 01 23:29
Pranešimai: 94
Karma: 0
Dėkui viskas kaip ir veikia, bet toks pastebėjimas, pagal statsx ir mano plugino procentai skiriasi, jei nušauna iš vienos kulkos rodo 100proc, o mano pluginas rodo pvz: 25proc. Iš keliu kartu rodo 50proc, o mano 24 ir pan. Ar normalu?


Atsijungęs
 Aprašymas  
 
Rodyti paskutinius pranešimus:  Rūšiuoti pagal  
 Puslapis 11 [ 9 pranešimai(ų) ] 


Dabar prisijungę

Vartotojai naršantys šį forumą: Registruotų vartotojų nėra ir 2 svečių


Jūs negalite kurti naujų temų šiame forume
Jūs negalite atsakinėti į temas šiame forume
Jūs negalite redaguoti savo pranešimų šiame forume
Jūs negalite trinti savo pranešimų šiame forume
Jūs negalite prikabinti failų šiame forume

Ieškoti:
Pereiti į:  

cron