Dabar yra 2019 Gru 11 20:02




 Puslapis 11 [ 8 pranešimai(ų) ] 
Autorius Žinutė
 Pranešimo tema: draw vote
Žinutės numeris: #1  StandartinėParašytas: 2010 Rgs 13 19:34 
Jau po truputį tampa savu

Užsiregistravo: 2010 Rgs 05 15:20
Pranešimai: 144
Karma: 1
Padariau pluginą, jog žmonės galėtų balsuoti mappradžioje roundtime:

    1. 1:00
    2. 1:25
    3. 1:45
    4. 2:00
    5. 2:25
    6. 2:50

Ir kas tada jei pasirinkimas 3 (1:45) surinks 5 balsus ir pasirinkimas 4 (2:00) surinks taipogi 5 balsus ???
Ir kiti galimi atvejai ... kas tada ???

Kaip padaryti jog gautu 2 daugiausia balsų gavusius pasirinkimus ir išsirinktų vieną iš jų.


Atsijungęs
 Aprašymas  
 
 Pranešimo tema: Re: draw vote
Žinutės numeris: #2  StandartinėParašytas: 2010 Rgs 13 20:12 
Vyr. diskusijų administratorius
Vartotojo avataras

Užsiregistravo: 2010 Rgp 31 13:21
Pranešimai: 3891
Karma: 184
Random. Daugiau nieko nelieka.

Čia ant greičio sugalvojau. Tikiu, kad galima padaryti daug paprasčiau:
  1.  
  2. balsai[0] = 0
  3. balsai[1] = 5
  4. balsai[2] = 1
  5. balsai[3] = 5
  6. balsai[4] = 5
  7.    
  8. // Gaunam max ir keli su vienodais balsu skaiciais
  9.  
  10. new maksimalus
  11.  
  12. if(balsai[0] > maksimalus) maksimalus = balsai[0]
  13. if(balsai[1] > maksimalus) maksimalus = balsai[1]
  14. if(balsai[2] > maksimalus) maksimalus = balsai[2]
  15. if(balsai[3] > maksimalus) maksimalus = balsai[3]
  16. if(balsai[4] > maksimalus) maksimalus = balsai[4]
  17.  
  18. new vienodi[5], skaicius
  19. if(balsai[0] == maksimalus) { vienodi[0] = true; skaicius++; }
  20. if(balsai[1] == maksimalus) { vienodi[1] = true; skaicius++; }
  21. if(balsai[2] == maksimalus) { vienodi[2] = true; skaicius++; }
  22. if(balsai[3] == maksimalus) { vienodi[3] = true; skaicius++; }
  23. if(balsai[4] == maksimalus) { vienodi[4] = true; skaicius++; }
  24.  
  25. // Tikrinam ir atrenkam atsitiktini punkta
  26. if(skaicius > 1) {
  27.     for(new i; i<=4; i++) {
  28.        
  29.         if(vienodi[i] && random_num(0, 2) == 1) {
  30.            
  31.             client_print(id, print_chat, "Isrinktas punktas nr: %d. Balsu skaicius: %d", vienodi[i]+1, maksimalus)
  32.             break;
  33.         }
  34.     }
  35. }
  36. else { // Parodom kuris punktas pasirinktas
  37.     for(new i; i<=4; i++) {
  38.        
  39.         if(vienodi[i]) {
  40.            
  41.             client_print(id, print_chat, "Isrinktas punktas nr: %d. Balsu skaicius: %d", vienodi[i]+1, maksimalus)
  42.             break;
  43.         }
  44.     }
  45. }
  46.  



_________________
Palikau CS pasaulį ;/ . Nebepasiekiamas.
Atsijungęs
 Aprašymas  
 
 Pranešimo tema: Re: draw vote
Žinutės numeris: #3  StandartinėParašytas: 2010 Rgs 14 16:09 
Jau po truputį tampa savu

Užsiregistravo: 2010 Rgs 05 15:20
Pranešimai: 144
Karma: 1
Ką tiksliau tas break padaro ?
  1.  
  2. if(vienodi[i] && random_num(0, 2) == 1) {
  3.          client_print(id, print_chat, "Isrinktas punktas nr: %d. Balsu skaicius: %d", vienodi[i]+1, maksimalus)
  4.          break;
  5.          }


Ir kaip patikrinti kokie punktai buvo, nes kiekvienas punktas turi skirtingus nustatymus ;/


Atsijungęs
 Aprašymas  
 
 Pranešimo tema: Re: draw vote
Žinutės numeris: #4  StandartinėParašytas: 2010 Rgs 14 18:28 
Vyr. diskusijų administratorius
Vartotojo avataras

Užsiregistravo: 2010 Rgp 31 13:21
Pranešimai: 3891
Karma: 184
break visiškai nutraukia ciklą.
Kaip tai kokie punktai buvo?

Beje sugalvojau žymiai paprasčiau kaip padaryti. Maksimalų skaičiuoti tiesiog balsavimų skaičiavimo funkcijoje. Na čia su skriptu niekaip neparodysiu. Reikia visą pluginą padaryti.



_________________
Palikau CS pasaulį ;/ . Nebepasiekiamas.
Atsijungęs
 Aprašymas  
 
 Pranešimo tema: Re: draw vote
Žinutės numeris: #5  StandartinėParašytas: 2010 Rgs 14 18:45 
Jau po truputį tampa savu

Užsiregistravo: 2010 Rgs 05 15:20
Pranešimai: 144
Karma: 1
Sakykim, kokie tie maksimalus didžiausi buvo ir iš jų išrinko kokį vieną. kai su random_num ir else jei nepavyko, tai iš kur žinoti kuris buvo parinktas, ta prasme balsai[0] ar balsai[1] ar balsai[2] ar balsai[3] ar balsai[4] ...


Atsijungęs
 Aprašymas  
 
 Pranešimo tema: Re: draw vote
Žinutės numeris: #6  StandartinėParašytas: 2010 Rgs 14 19:15 
Vyr. diskusijų administratorius
Vartotojo avataras

Užsiregistravo: 2010 Rgp 31 13:21
Pranešimai: 3891
Karma: 184
i raidė.

  1. if(vienodi[i] && random_num(0, 2) == 1) {
  2.          client_print(id, print_chat, "Isrinktas punktas nr: %d. Balsu skaicius: %d", vienodi[i]+1, maksimalus)
  3.          balsai[i] // Tavo pasirikntasis
  4.          break;
  5.          }
  6.  


Bet sakau, galima žymiai paprasčiau padaryti. Štai kaip reikia. Tiesiog ten kur skaičiuojami balsai (vote handle funcijoje) daryti kažką tokio:
  1.  
  2. new g_isrinktasis_punktas // Globalus kintamasis kur saugoma išrinktasis punktas
  3. new g_maksimalus // Globalus kintamasis kur saugoma maksimalus balsų skaičius
  4. new balsai[6] // Globalus kintamasis kur saugomi balsų skaičiai
  5.  
  6. vote_handle(menu_punktas) {
  7.    
  8. switch(menu_punktas) {
  9.    
  10.     case 0: {
  11.         balsai[0]++
  12.         if(g_maksimalus <= balsai[0]) {
  13.            
  14.             g_isrinktasis_punktas = 0
  15.             g_maksimalus = balsai[0]
  16.         }
  17.     }
  18.     case 1: {
  19.         balsai[1]++
  20.         if(g_maksimalus <= balsai[1]) {
  21.            
  22.             g_isrinktasis_punktas = 1
  23.             g_maksimalus = balsai[1]
  24.         }
  25.     }
  26.     case 2: {
  27.         balsai[2]++
  28.         if(g_maksimalus <= balsai[2]) {
  29.            
  30.             g_isrinktasis_punktas = 2
  31.             g_maksimalus = balsai[2]
  32.         }
  33.     }
  34.     ... // Taip toliau
  35. }


Beje prieš kiekvieną balsavimą nepamiršk išvalyti visų globalių kintamųjų, nebent tas balsavimas tik kartą žemėlapyje vyks.



_________________
Palikau CS pasaulį ;/ . Nebepasiekiamas.
Atsijungęs
 Aprašymas  
 
 Pranešimo tema: Re: draw vote
Žinutės numeris: #7  StandartinėParašytas: 2010 Rgs 16 14:28 
Jau po truputį tampa savu

Užsiregistravo: 2010 Rgs 05 15:20
Pranešimai: 144
Karma: 1
o tai kaip toliau, kaip tikrinti ar yra vienodu ?


Atsijungęs
 Aprašymas  
 
 Pranešimo tema: Re: draw vote
Žinutės numeris: #8  StandartinėParašytas: 2010 Rgs 16 16:40 
Vyr. diskusijų administratorius
Vartotojo avataras

Užsiregistravo: 2010 Rgp 31 13:21
Pranešimai: 3891
Karma: 184
Nereikia. Viskas jau bus sutvarkyta.
g_isrinktas_punktas tai sistemos pagal balsus atrinktas daugiausiai balsų surinktas pinktas. Bus parinktas paskutinis paspaustas, jei jis bus didžiausias.
g_maksimalus tai daugiausiai surinkta balsų už vieną balsavimą.

Kad sužinoti kuris punktas išrinktas tai:
balsai[g_isrinktas_punktas]



_________________
Palikau CS pasaulį ;/ . Nebepasiekiamas.
Atsijungęs
 Aprašymas  
 
Rodyti paskutinius pranešimus:  Rūšiuoti pagal  
 Puslapis 11 [ 8 pranešimai(ų) ] 


Dabar prisijungę

Vartotojai naršantys šį forumą: Registruotų vartotojų nėra ir 8 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 į: