1. sayfa (Toplam 2 sayfa)

Harita Oylama (Map Chooser)

Gönderilme zamanı: Sal Ağu 15, 2017 12:56 am
gönderen holigan
Arkadaşlar sizden bir harita oylama eklentisi isteyeceğim isteklerim aşağıda;
Şuan oynanan mapın süresi bitince gelen oylamada,şuan oynanan map'ten önce oynanan 3 harita oylamada çıkmayacak.
Oylamada çıkan seçenek sayısı 6 olacak ve 1. seçenekte Rastgele Oy Ver seçeneği bulunacak ve oyuncular oyun esnasında oyunda daldıklarından ötürü sürekli ilk seçenekteki map'i seçemeyecekler.

Not : CSM Harita Oylama Sistemi (CSM MAP CHOOSER) üzerine edit yapmamanızı istiyorum.
Standart oylama eklentisi olabilir veya elinde farklı ve sorunsuz bir harita oylama sistemi olan varsa edit çekip atabilirse iyi olur.

@redarmygaming
@Yek'-ta
@PaZee

Harita Oylama (Map Chooser)

Gönderilme zamanı: Sal Ağu 15, 2017 2:54 am
gönderen PaZee
konuyu tasidim eklenti isteklerine acicaksin bu tur konulari.

Harita Oylama (Map Chooser)

Gönderilme zamanı: Sal Ağu 15, 2017 9:23 am
gönderen Taha Demirbaş
Konu istemi disi yorumlar kaldirildi.

Harita Oylama (Map Chooser)

Gönderilme zamanı: Sal Ağu 15, 2017 12:53 pm
gönderen holigan
Yardımcı olacak yok mu?

Harita Oylama (Map Chooser)

Gönderilme zamanı: Sal Ağu 15, 2017 2:37 pm
gönderen PaZee
Buyur ;

Kod: Tümünü seç

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#define MAX_MAP      250

new g_iTimerVote[33];
new g_iNumRTV;
new g_iPlayerProcc;
new bool:g_LastRound;
new b_HasRTV[33];
new Float:g_iLastSec[33];
new bool:g_Vote;
new bool:b_HasAlreadyVoted[33];
new iAllVoted;
new sonuc;
new SmiLe[MAX_MAP][250],configsdir[250],komutdosyasi[250],CSmiLeFaCe[MAX_MAP][250],CSmiLeFaCee,FaCe[6],LeFa[6];
new REKLAMCVAR;
new REKLAM[32];
#define TimeVote 30
new bironcekiharita;
new bironcekiharitacevir[32];
new ondanbironcekiharita;
new ondanbironcekiharitacevir[32];
new ondanbirbironcekiharita;
new ondanbirbironcekiharitacevir[32];
new elsonunubekle
public plugin_init()
{
   register_plugin("CSM Harita Sistemi [RTV]", "2.0", "-CSmiLeFaCe");
   
   register_clcmd("say /RTV", "RockTheVote")
   register_clcmd("say !RTV", "RockTheVote")
   register_clcmd("say .RTV", "RockTheVote")
   register_clcmd("say /haritalar", "oynanilanharitalarinsirasi")
   register_clcmd("say !haritalar", "oynanilanharitalarinsirasi")
   register_clcmd("say .haritalar", "oynanilanharitalarinsirasi")
   register_concmd("say nextmap", "Show_Nextmap")
   
   register_menucmd(register_menuid("VoteMenu"), 1023, "ActionVoteMenu");
   
   register_logevent("RoundEnd", 2, "1=Round_End")
   elsonunubekle = register_cvar("csm_elsonunubekle","1")
   bironcekiharita = register_cvar("csm_bironcekiharita","YOK") 
   get_pcvar_string(bironcekiharita,bironcekiharitacevir,31)
   ondanbironcekiharita = register_cvar("csm_ondanbironcekiharita","YOK") 
   get_pcvar_string(ondanbironcekiharita,ondanbironcekiharitacevir,31)
   ondanbirbironcekiharita = register_cvar("csm_ondanbirbironcekiharita","YOK") 
   get_pcvar_string(ondanbirbironcekiharita,ondanbirbironcekiharitacevir,31)
   
   new suankimap[250];
   get_mapname(suankimap,249);
   
   set_cvar_string("csm_ondanbirbironcekiharita", ondanbironcekiharitacevir);
   set_cvar_string("csm_ondanbironcekiharita", bironcekiharitacevir);
   set_cvar_string("csm_bironcekiharita", suankimap);
   set_task(45.0, "ClCmdVote", _, _, _, "d") //Buradaki 45 timeleft'in bitmesine kaç saniye kala çalışacağını gösterir.
   
   register_cvar("amx_nextmap", "");
   set_cvar_string("amx_nextmap", "");
   REKLAMCVAR = register_cvar("csm_sayreklam","csplugin")
   get_pcvar_string(REKLAMCVAR,REKLAM,31)
   
}
public oynanilanharitalarinsirasi(id){
   new suankimap[250];
   get_mapname(suankimap,249);
   ChatColor(id,"Oynanilan haritalarin sirasi; !team%s !y--> !team%s !y--> !team%s !y--> !team%s",ondanbirbironcekiharitacevir,ondanbironcekiharitacevir ,bironcekiharitacevir, suankimap);
}
public plugin_natives()
{
   register_native("HaritaOyla", "ClCmdVote", 1)  //Başka eklentiler ile birleştirmek için native kullandım. 
}
public Show_Nextmap(id)
{
   new harita[32]
   get_cvar_string("amx_nextmap",harita,sizeof(harita) - 1)
   

   if(harita[0])
   {
      ChatColor(id, "!teamSonraki Harita: !g%s", harita)
   }
   else
      ChatColor(id, "!teamSonraki Harita daha oylanmadi.")
      
   
}

public RoundEnd()
   if(g_LastRound)
      set_task(1.0, "changelevel");

public RockTheVote(id)
{
   if(g_Vote)
   {
      ChatColor(id, "!teamOylama basladi.")
      return PLUGIN_CONTINUE;
   }
   if(b_HasRTV[id])
   {
      ChatColor(id, "!teamOylama icin hazirsiniz.")
      return PLUGIN_CONTINUE;
   }
   new iNum, szPlayers[32];
   get_players(szPlayers, iNum, "hc")

   g_iNumRTV++;

   b_HasRTV[id] = true;
   if(g_iNumRTV == iNum)
   {
      ChatColor(0, "!teamKatilimci!g(%d) !teamgerekli sayiya ulasti. Harita oylamasi geliyor..", g_iNumRTV)
      set_task(5.0, "ClCmdVote");
   }
   else
      ChatColor(0, "!teamOylama icin !g%d !teamkadar istege ihtiyacimiz var !gsay /RTV", iNum-g_iNumRTV)
      
   return PLUGIN_HANDLED;
}

public LoadMapsInVote()
{
   get_configsdir(configsdir,249);
   
   new szMapName[ 64 ];
   get_mapname( szMapName, 63 );
   new satirsayisi,sonuc;
   
   format(komutdosyasi,249,"%s/maps.ini",configsdir);
   
   for(new i=0,deger;i<MAX_MAP;i++){
      sonuc = read_file(komutdosyasi,i,SmiLe[i],249,satirsayisi);
      if(sonuc != 0){
         CSmiLeFaCee++;
         CSmiLeFaCe[CSmiLeFaCee] = SmiLe[i];
         deger++;}
   }
}


public ClCmdVote(){
   client_cmd(0, "spk Gman/gman_choose2")
   set_cvar_float("mp_timelimit", 0.0)
   set_task(1.0, "ValueVote", _, _, _, "a", 6);
}

public ValueVote()
{
   static timer = 6
   timer--
   switch(timer)
   {
      case 0: 
      {
         ChatColor(0, "!teamHarita oylamasi !gAKTIF")
         g_Vote = true;
         FaCe[0] = 0;
         FaCe[1] = 0;
         FaCe[2] = 0;
         FaCe[3] = 0;
         FaCe[4] = 0;
         startvote()
         arrayset(FaCe, 0, sizeof(FaCe));
         arrayset(g_iTimerVote, TimeVote-10, 33);
         arrayset(b_HasAlreadyVoted, false, 33);
         set_task(float(TimeVote), "endvote");
         timer = 6;
         set_cvar_string("amx_nextmap", "[Oylamada]");
      }
      default: 
      {
         ChatColor(0, "!teamHarita oylamasinin baslamasina !g%d saniye..", timer)
      }
   }
}

public startvote()
{
   if(!g_Vote)
      return PLUGIN_CONTINUE;
      
   CSmiLeFaCee = 0;
   LoadMapsInVote()
   new suankimap[250];
   get_mapname(suankimap,249);
   if(CSmiLeFaCee >= 6){
      LeFa[0] = random_num(1,CSmiLeFaCee);
      LeFa[1] = random_num(1,CSmiLeFaCee);
      LeFa[2] = random_num(1,CSmiLeFaCee);
      LeFa[3] = random_num(1,CSmiLeFaCee);
      LeFa[4] = random_num(1,CSmiLeFaCee);
      for(new i = 0;i<5;i++){
         for(new j = 0;j<5;j++){
            if(i == j)
               continue;
               
            if(LeFa[i] == LeFa[j] ||  equal(CSmiLeFaCe[LeFa[i]],suankimap) || equal(CSmiLeFaCe[LeFa[i]],bironcekiharitacevir) || equal(CSmiLeFaCe[LeFa[i]],ondanbironcekiharitacevir)){
               LeFa[i] = random_num(1,CSmiLeFaCee); // ||
               i = 0;}
               
         }
      }
   }
   
   return PLUGIN_HANDLED;
}
public ChooseMap(id)
{
   if(!g_Vote)
      return PLUGIN_CONTINUE;
      
   static Item[64];
   new Menu,szSec[32];
   
   formatex(Item,charsmax(Item),"\yHarita Oylama Zamani Toplam Oy %d : ^n\dOylamanin bitmesine \r%d \dSaniye^n",iAllVoted, g_iTimerVote[id], szSec)
   Menu = menu_create(Item,"ActionVoteMenu")
         
         
   formatex(Item,charsmax(Item),"\yRastgele Kullan")
   menu_additem(Menu,Item,"1")
   formatex(Item,charsmax(Item),"\r \w%s \d[\y%d%%\d]",CSmiLeFaCe[LeFa[1]], FaCe[1] * g_iPlayerProcc)
   menu_additem(Menu,Item,"2")
   formatex(Item,charsmax(Item),"\r \w%s \d[\y%d%%\d]",CSmiLeFaCe[LeFa[2]], FaCe[2] * g_iPlayerProcc)
   menu_additem(Menu,Item,"3")
   formatex(Item,charsmax(Item),"\r \w%s \d[\y%d%%\d]",CSmiLeFaCe[LeFa[3]], FaCe[3] * g_iPlayerProcc)
   menu_additem(Menu,Item,"4")
   formatex(Item,charsmax(Item),"\r \w%s \d[\y%d%%\d]",CSmiLeFaCe[LeFa[4]], FaCe[4] * g_iPlayerProcc)
   menu_additem(Menu,Item,"5")
   formatex(Item,charsmax(Item),"\r \w%s \d[\y%d%%\d]",CSmiLeFaCe[LeFa[5]], FaCe[5] * g_iPlayerProcc)
   menu_additem(Menu,Item,"6")
   formatex(Item,charsmax(Item),"\rOylamaya Katilma")
   menu_additem(Menu,Item,"7")
   
   menu_setprop(Menu, MPROP_EXITNAME, "\rCikis") 
   menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL) 
   menu_display(id, Menu)

   return PLUGIN_HANDLED
}
public ActionVoteMenu(id,menu,item)
{
   new szName[32]
   get_user_name(id, szName, 31)
   if(item == MENU_EXIT)
   {
      menu_destroy(menu)
      return PLUGIN_HANDLED
   }
   new access,callback,data[6],iname[64]
   
   menu_item_getinfo(menu,item,access,data,5,iname,63,callback)
   
   
   new key = str_to_num(data)
   
   if(!b_HasAlreadyVoted[id])
   {
   switch(key)
   {
      case 1:
      {
         new tus = random_num(1,5)
         FaCe[tus]++
         client_cmd(id, "spk Gman/gman_noreg")
         b_HasAlreadyVoted[id] = true;
         ChatColor(0, "!g%s !teamoyuncusunun sectigi harita !g%s", szName, CSmiLeFaCe[LeFa[tus]]);      
         iAllVoted++;
      }
      case 2:
      {
         FaCe[key-1]++
         client_cmd(id, "spk Gman/gman_noreg")
         b_HasAlreadyVoted[id] = true;
         ChatColor(0, "!g%s !teamoyuncusunun sectigi harita !g%s", szName, CSmiLeFaCe[LeFa[key-1]]);      
         iAllVoted++;
      }
      case 3:
      {
         FaCe[key-1]++
         client_cmd(id, "spk Gman/gman_noreg")
         b_HasAlreadyVoted[id] = true;
         ChatColor(0, "!g%s !teamoyuncusunun sectigi harita !g%s", szName, CSmiLeFaCe[LeFa[key-1]]);      
         iAllVoted++;         
      }
      case 4:
      {
         FaCe[key-1]++
         client_cmd(id, "spk Gman/gman_noreg")
         b_HasAlreadyVoted[id] = true;
         ChatColor(0, "!g%s !teamoyuncusunun sectigi harita !g%s", szName, CSmiLeFaCe[LeFa[key-1]]);      
         iAllVoted++;         
      }
      case 5:
      {
      
         FaCe[key-1]++
         client_cmd(id, "spk Gman/gman_noreg")
         b_HasAlreadyVoted[id] = true;
         ChatColor(0, "!g%s !teamoyuncusunun sectigi harita !g%s", szName, CSmiLeFaCe[LeFa[key-1]]);      
         iAllVoted++;         
      }
      case 6:
      {
         FaCe[key-1]++
         client_cmd(id, "spk Gman/gman_noreg")
         b_HasAlreadyVoted[id] = true;
         ChatColor(0, "!g%s !teamoyuncusunun sectigi harita !g%s", szName, CSmiLeFaCe[LeFa[key-1]]);      
         iAllVoted++;
      }
      case 7:
      {
         if(!b_HasAlreadyVoted[id])
         {
            ChatColor(0, "!g%s !teamoylamaya katilmadi.", szName);
            b_HasAlreadyVoted[id] = true;
         }
         return PLUGIN_CONTINUE;
      }
      
   }
   }
   
   menu_destroy(menu)
   return PLUGIN_HANDLED
}

public endvote()
{
   new kazanan = LeFa[0], eniyiharita = FaCe[0];
   for(new i = 0; i <5; i++){
      if(FaCe[i] > eniyiharita){
         kazanan = LeFa[i];
         eniyiharita = FaCe[i];}
   }
   
   g_Vote = false;
   if(!is_map_valid(CSmiLeFaCe[kazanan]))
   {
      FaCe[0] = 0;
      FaCe[1] = 0;
      FaCe[2] = 0;
      FaCe[3] = 0;
      FaCe[4] = 0;
      iAllVoted = 0; 
      client_cmd(0, "spk Gman/gman_nowork")
      set_task(5.0, "ClCmdVote");
      ChatColor(0, "!teamSeçilen harita !g%s ^"!ycstrike/maps!g^" !teamklasöründe !gYOK.!teamOylama islemi yeniden yapilacak.", CSmiLeFaCe[kazanan])
      return PLUGIN_HANDLED;
   }
   
   ChatColor(0, "!teamSonraki Harita: !g%s", CSmiLeFaCe[kazanan])
   set_cvar_string("amx_nextmap", CSmiLeFaCe[kazanan]);
   sonuc = kazanan;
   
   if(get_pcvar_num(elsonunubekle) == 1){
      g_LastRound = true;
      set_dhudmessage( 149,68,0, -1.0, -0.70, 2, 4.0, 11.0, 0.01, 1.5 )
      show_dhudmessage(0, "Sonraki Harita: %s^nHarita el sonunda degisecek",CSmiLeFaCe[kazanan])
   }
   else{
      set_task(1.0, "changelevel");
   }
   
   return PLUGIN_HANDLED;
}
public changelevel()
{
   set_cvar_float("mp_timelimit", 0.0);
   set_dhudmessage( 0,255,0, -1.0, -0.40, 0, 11.0, 6.0, 0.1, 1.5 )
   show_dhudmessage(0, "^nHarita %s olarak degistiriliyor", CSmiLeFaCe[sonuc]) 
   //client_cmd(0, "spk Gman/gman_wise")
   new iNum, szPlayers[32];
   get_players(szPlayers, iNum)
   for(new i; i < iNum; i++)
   {
      client_cmd(szPlayers[i], "drop;wait;wait;wait;wait;wait;drop;wait;wait;wait;wait;wait;drop");
      set_pev(szPlayers[i], pev_flags, pev(szPlayers[i], pev_flags) | FL_FROZEN)
   }
   
   set_task(3.5, "changelevel1");
   set_task(6.0, "changelevel2");
   
   
}
public changelevel1()
{
   new _modName[10]
   get_modname(_modName, 9)
   if (!equal(_modName, "zp"))
   {
      message_begin(MSG_ALL, SVC_INTERMISSION)
      message_end()
   }
}
public changelevel2()
{
   server_cmd("changelevel %s", CSmiLeFaCe[sonuc]);
}
public client_PreThink(id)
{
   if(!g_Vote)
      return;
      
   if(g_iTimerVote[id] <= -1)
      return;
   
   if(iAllVoted)
      g_iPlayerProcc = 100 / iAllVoted;
   else
      g_iPlayerProcc = 0;
   
   if((get_gametime() - g_iLastSec[id]) >= 1.0)
      if(g_iTimerVote[id] != 0)
         g_iTimerVote[id]--, ChooseMap(id), g_iLastSec[id] = get_gametime();
      else
         show_menu(id, 0, "^n"), g_iTimerVote[id] = -1;
}

stock ChatColor(const id, const input[], any:...)
{
   new count = 1, players[32]
   static msg[191]
   vformat(msg, 190, input, 3)
   format(msg, sizeof(msg), "^1[^4%s^1] %s", REKLAM, msg)
   replace_all(msg, 190, "!g", "^4")
   replace_all(msg, 190, "!y", "^1")
   replace_all(msg, 190, "!team", "^3")
   
   if (id) players[0] = id; else get_players(players, count, "ch")
   {
      for (new i = 0; i < count; i++)
      {
         if (is_user_connected(players[i]))
         {
            message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
            write_byte(players[i]);
            write_string(msg); 
            message_end();
         }
      }
   }
}

Harita Oylama (Map Chooser)

Gönderilme zamanı: Sal Ağu 15, 2017 3:02 pm
gönderen holigan
Dostum eline sağlık eklenti sorunsuz gibi gözüküyor.
Sadece ufak bir sorun var seçenek sayısı 6 fakat;
1 map ismi %
2 map ismi %
3 map ismi %
4 map ismi %
5 map ismi %
6 %
6. seçenekte map ismi yok.


PaZee yazdı:Buyur ;

Kod: Tümünü seç

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#define MAX_MAP      250

new g_iTimerVote[33];
new g_iNumRTV;
new g_iPlayerProcc;
new bool:g_LastRound;
new b_HasRTV[33];
new Float:g_iLastSec[33];
new bool:g_Vote;
new bool:b_HasAlreadyVoted[33];
new iAllVoted;
new sonuc;
new SmiLe[MAX_MAP][250],configsdir[250],komutdosyasi[250],CSmiLeFaCe[MAX_MAP][250],CSmiLeFaCee,FaCe[6],LeFa[6];
new REKLAMCVAR;
new REKLAM[32];
#define TimeVote 30
new bironcekiharita;
new bironcekiharitacevir[32];
new ondanbironcekiharita;
new ondanbironcekiharitacevir[32];
new ondanbirbironcekiharita;
new ondanbirbironcekiharitacevir[32];
new elsonunubekle
public plugin_init()
{
   register_plugin("CSM Harita Sistemi [RTV]", "2.0", "-CSmiLeFaCe");
   
   register_clcmd("say /RTV", "RockTheVote")
   register_clcmd("say !RTV", "RockTheVote")
   register_clcmd("say .RTV", "RockTheVote")
   register_clcmd("say /haritalar", "oynanilanharitalarinsirasi")
   register_clcmd("say !haritalar", "oynanilanharitalarinsirasi")
   register_clcmd("say .haritalar", "oynanilanharitalarinsirasi")
   register_concmd("say nextmap", "Show_Nextmap")
   
   register_menucmd(register_menuid("VoteMenu"), 1023, "ActionVoteMenu");
   
   register_logevent("RoundEnd", 2, "1=Round_End")
   elsonunubekle = register_cvar("csm_elsonunubekle","1")
   bironcekiharita = register_cvar("csm_bironcekiharita","YOK") 
   get_pcvar_string(bironcekiharita,bironcekiharitacevir,31)
   ondanbironcekiharita = register_cvar("csm_ondanbironcekiharita","YOK") 
   get_pcvar_string(ondanbironcekiharita,ondanbironcekiharitacevir,31)
   ondanbirbironcekiharita = register_cvar("csm_ondanbirbironcekiharita","YOK") 
   get_pcvar_string(ondanbirbironcekiharita,ondanbirbironcekiharitacevir,31)
   
   new suankimap[250];
   get_mapname(suankimap,249);
   
   set_cvar_string("csm_ondanbirbironcekiharita", ondanbironcekiharitacevir);
   set_cvar_string("csm_ondanbironcekiharita", bironcekiharitacevir);
   set_cvar_string("csm_bironcekiharita", suankimap);
   set_task(45.0, "ClCmdVote", _, _, _, "d") //Buradaki 45 timeleft'in bitmesine kaç saniye kala çalışacağını gösterir.
   
   register_cvar("amx_nextmap", "");
   set_cvar_string("amx_nextmap", "");
   REKLAMCVAR = register_cvar("csm_sayreklam","csplugin")
   get_pcvar_string(REKLAMCVAR,REKLAM,31)
   
}
public oynanilanharitalarinsirasi(id){
   new suankimap[250];
   get_mapname(suankimap,249);
   ChatColor(id,"Oynanilan haritalarin sirasi; !team%s !y--> !team%s !y--> !team%s !y--> !team%s",ondanbirbironcekiharitacevir,ondanbironcekiharitacevir ,bironcekiharitacevir, suankimap);
}
public plugin_natives()
{
   register_native("HaritaOyla", "ClCmdVote", 1)  //Başka eklentiler ile birleştirmek için native kullandım. 
}
public Show_Nextmap(id)
{
   new harita[32]
   get_cvar_string("amx_nextmap",harita,sizeof(harita) - 1)
   

   if(harita[0])
   {
      ChatColor(id, "!teamSonraki Harita: !g%s", harita)
   }
   else
      ChatColor(id, "!teamSonraki Harita daha oylanmadi.")
      
   
}

public RoundEnd()
   if(g_LastRound)
      set_task(1.0, "changelevel");

public RockTheVote(id)
{
   if(g_Vote)
   {
      ChatColor(id, "!teamOylama basladi.")
      return PLUGIN_CONTINUE;
   }
   if(b_HasRTV[id])
   {
      ChatColor(id, "!teamOylama icin hazirsiniz.")
      return PLUGIN_CONTINUE;
   }
   new iNum, szPlayers[32];
   get_players(szPlayers, iNum, "hc")

   g_iNumRTV++;

   b_HasRTV[id] = true;
   if(g_iNumRTV == iNum)
   {
      ChatColor(0, "!teamKatilimci!g(%d) !teamgerekli sayiya ulasti. Harita oylamasi geliyor..", g_iNumRTV)
      set_task(5.0, "ClCmdVote");
   }
   else
      ChatColor(0, "!teamOylama icin !g%d !teamkadar istege ihtiyacimiz var !gsay /RTV", iNum-g_iNumRTV)
      
   return PLUGIN_HANDLED;
}

public LoadMapsInVote()
{
   get_configsdir(configsdir,249);
   
   new szMapName[ 64 ];
   get_mapname( szMapName, 63 );
   new satirsayisi,sonuc;
   
   format(komutdosyasi,249,"%s/maps.ini",configsdir);
   
   for(new i=0,deger;i<MAX_MAP;i++){
      sonuc = read_file(komutdosyasi,i,SmiLe[i],249,satirsayisi);
      if(sonuc != 0){
         CSmiLeFaCee++;
         CSmiLeFaCe[CSmiLeFaCee] = SmiLe[i];
         deger++;}
   }
}


public ClCmdVote(){
   client_cmd(0, "spk Gman/gman_choose2")
   set_cvar_float("mp_timelimit", 0.0)
   set_task(1.0, "ValueVote", _, _, _, "a", 6);
}

public ValueVote()
{
   static timer = 6
   timer--
   switch(timer)
   {
      case 0: 
      {
         ChatColor(0, "!teamHarita oylamasi !gAKTIF")
         g_Vote = true;
         FaCe[0] = 0;
         FaCe[1] = 0;
         FaCe[2] = 0;
         FaCe[3] = 0;
         FaCe[4] = 0;
         startvote()
         arrayset(FaCe, 0, sizeof(FaCe));
         arrayset(g_iTimerVote, TimeVote-10, 33);
         arrayset(b_HasAlreadyVoted, false, 33);
         set_task(float(TimeVote), "endvote");
         timer = 6;
         set_cvar_string("amx_nextmap", "[Oylamada]");
      }
      default: 
      {
         ChatColor(0, "!teamHarita oylamasinin baslamasina !g%d saniye..", timer)
      }
   }
}

public startvote()
{
   if(!g_Vote)
      return PLUGIN_CONTINUE;
      
   CSmiLeFaCee = 0;
   LoadMapsInVote()
   new suankimap[250];
   get_mapname(suankimap,249);
   if(CSmiLeFaCee >= 6){
      LeFa[0] = random_num(1,CSmiLeFaCee);
      LeFa[1] = random_num(1,CSmiLeFaCee);
      LeFa[2] = random_num(1,CSmiLeFaCee);
      LeFa[3] = random_num(1,CSmiLeFaCee);
      LeFa[4] = random_num(1,CSmiLeFaCee);
      for(new i = 0;i<5;i++){
         for(new j = 0;j<5;j++){
            if(i == j)
               continue;
               
            if(LeFa[i] == LeFa[j] ||  equal(CSmiLeFaCe[LeFa[i]],suankimap) || equal(CSmiLeFaCe[LeFa[i]],bironcekiharitacevir) || equal(CSmiLeFaCe[LeFa[i]],ondanbironcekiharitacevir)){
               LeFa[i] = random_num(1,CSmiLeFaCee); // ||
               i = 0;}
               
         }
      }
   }
   
   return PLUGIN_HANDLED;
}
public ChooseMap(id)
{
   if(!g_Vote)
      return PLUGIN_CONTINUE;
      
   static Item[64];
   new Menu,szSec[32];
   
   formatex(Item,charsmax(Item),"\yHarita Oylama Zamani Toplam Oy %d : ^n\dOylamanin bitmesine \r%d \dSaniye^n",iAllVoted, g_iTimerVote[id], szSec)
   Menu = menu_create(Item,"ActionVoteMenu")
         
         
   formatex(Item,charsmax(Item),"\yRastgele Kullan")
   menu_additem(Menu,Item,"1")
   formatex(Item,charsmax(Item),"\r \w%s \d[\y%d%%\d]",CSmiLeFaCe[LeFa[1]], FaCe[1] * g_iPlayerProcc)
   menu_additem(Menu,Item,"2")
   formatex(Item,charsmax(Item),"\r \w%s \d[\y%d%%\d]",CSmiLeFaCe[LeFa[2]], FaCe[2] * g_iPlayerProcc)
   menu_additem(Menu,Item,"3")
   formatex(Item,charsmax(Item),"\r \w%s \d[\y%d%%\d]",CSmiLeFaCe[LeFa[3]], FaCe[3] * g_iPlayerProcc)
   menu_additem(Menu,Item,"4")
   formatex(Item,charsmax(Item),"\r \w%s \d[\y%d%%\d]",CSmiLeFaCe[LeFa[4]], FaCe[4] * g_iPlayerProcc)
   menu_additem(Menu,Item,"5")
   formatex(Item,charsmax(Item),"\r \w%s \d[\y%d%%\d]",CSmiLeFaCe[LeFa[5]], FaCe[5] * g_iPlayerProcc)
   menu_additem(Menu,Item,"6")
   formatex(Item,charsmax(Item),"\rOylamaya Katilma")
   menu_additem(Menu,Item,"7")
   
   menu_setprop(Menu, MPROP_EXITNAME, "\rCikis") 
   menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL) 
   menu_display(id, Menu)

   return PLUGIN_HANDLED
}
public ActionVoteMenu(id,menu,item)
{
   new szName[32]
   get_user_name(id, szName, 31)
   if(item == MENU_EXIT)
   {
      menu_destroy(menu)
      return PLUGIN_HANDLED
   }
   new access,callback,data[6],iname[64]
   
   menu_item_getinfo(menu,item,access,data,5,iname,63,callback)
   
   
   new key = str_to_num(data)
   
   if(!b_HasAlreadyVoted[id])
   {
   switch(key)
   {
      case 1:
      {
         new tus = random_num(1,5)
         FaCe[tus]++
         client_cmd(id, "spk Gman/gman_noreg")
         b_HasAlreadyVoted[id] = true;
         ChatColor(0, "!g%s !teamoyuncusunun sectigi harita !g%s", szName, CSmiLeFaCe[LeFa[tus]]);      
         iAllVoted++;
      }
      case 2:
      {
         FaCe[key-1]++
         client_cmd(id, "spk Gman/gman_noreg")
         b_HasAlreadyVoted[id] = true;
         ChatColor(0, "!g%s !teamoyuncusunun sectigi harita !g%s", szName, CSmiLeFaCe[LeFa[key-1]]);      
         iAllVoted++;
      }
      case 3:
      {
         FaCe[key-1]++
         client_cmd(id, "spk Gman/gman_noreg")
         b_HasAlreadyVoted[id] = true;
         ChatColor(0, "!g%s !teamoyuncusunun sectigi harita !g%s", szName, CSmiLeFaCe[LeFa[key-1]]);      
         iAllVoted++;         
      }
      case 4:
      {
         FaCe[key-1]++
         client_cmd(id, "spk Gman/gman_noreg")
         b_HasAlreadyVoted[id] = true;
         ChatColor(0, "!g%s !teamoyuncusunun sectigi harita !g%s", szName, CSmiLeFaCe[LeFa[key-1]]);      
         iAllVoted++;         
      }
      case 5:
      {
      
         FaCe[key-1]++
         client_cmd(id, "spk Gman/gman_noreg")
         b_HasAlreadyVoted[id] = true;
         ChatColor(0, "!g%s !teamoyuncusunun sectigi harita !g%s", szName, CSmiLeFaCe[LeFa[key-1]]);      
         iAllVoted++;         
      }
      case 6:
      {
         FaCe[key-1]++
         client_cmd(id, "spk Gman/gman_noreg")
         b_HasAlreadyVoted[id] = true;
         ChatColor(0, "!g%s !teamoyuncusunun sectigi harita !g%s", szName, CSmiLeFaCe[LeFa[key-1]]);      
         iAllVoted++;
      }
      case 7:
      {
         if(!b_HasAlreadyVoted[id])
         {
            ChatColor(0, "!g%s !teamoylamaya katilmadi.", szName);
            b_HasAlreadyVoted[id] = true;
         }
         return PLUGIN_CONTINUE;
      }
      
   }
   }
   
   menu_destroy(menu)
   return PLUGIN_HANDLED
}

public endvote()
{
   new kazanan = LeFa[0], eniyiharita = FaCe[0];
   for(new i = 0; i <5; i++){
      if(FaCe[i] > eniyiharita){
         kazanan = LeFa[i];
         eniyiharita = FaCe[i];}
   }
   
   g_Vote = false;
   if(!is_map_valid(CSmiLeFaCe[kazanan]))
   {
      FaCe[0] = 0;
      FaCe[1] = 0;
      FaCe[2] = 0;
      FaCe[3] = 0;
      FaCe[4] = 0;
      iAllVoted = 0; 
      client_cmd(0, "spk Gman/gman_nowork")
      set_task(5.0, "ClCmdVote");
      ChatColor(0, "!teamSeçilen harita !g%s ^"!ycstrike/maps!g^" !teamklasöründe !gYOK.!teamOylama islemi yeniden yapilacak.", CSmiLeFaCe[kazanan])
      return PLUGIN_HANDLED;
   }
   
   ChatColor(0, "!teamSonraki Harita: !g%s", CSmiLeFaCe[kazanan])
   set_cvar_string("amx_nextmap", CSmiLeFaCe[kazanan]);
   sonuc = kazanan;
   
   if(get_pcvar_num(elsonunubekle) == 1){
      g_LastRound = true;
      set_dhudmessage( 149,68,0, -1.0, -0.70, 2, 4.0, 11.0, 0.01, 1.5 )
      show_dhudmessage(0, "Sonraki Harita: %s^nHarita el sonunda degisecek",CSmiLeFaCe[kazanan])
   }
   else{
      set_task(1.0, "changelevel");
   }
   
   return PLUGIN_HANDLED;
}
public changelevel()
{
   set_cvar_float("mp_timelimit", 0.0);
   set_dhudmessage( 0,255,0, -1.0, -0.40, 0, 11.0, 6.0, 0.1, 1.5 )
   show_dhudmessage(0, "^nHarita %s olarak degistiriliyor", CSmiLeFaCe[sonuc]) 
   //client_cmd(0, "spk Gman/gman_wise")
   new iNum, szPlayers[32];
   get_players(szPlayers, iNum)
   for(new i; i < iNum; i++)
   {
      client_cmd(szPlayers[i], "drop;wait;wait;wait;wait;wait;drop;wait;wait;wait;wait;wait;drop");
      set_pev(szPlayers[i], pev_flags, pev(szPlayers[i], pev_flags) | FL_FROZEN)
   }
   
   set_task(3.5, "changelevel1");
   set_task(6.0, "changelevel2");
   
   
}
public changelevel1()
{
   new _modName[10]
   get_modname(_modName, 9)
   if (!equal(_modName, "zp"))
   {
      message_begin(MSG_ALL, SVC_INTERMISSION)
      message_end()
   }
}
public changelevel2()
{
   server_cmd("changelevel %s", CSmiLeFaCe[sonuc]);
}
public client_PreThink(id)
{
   if(!g_Vote)
      return;
      
   if(g_iTimerVote[id] <= -1)
      return;
   
   if(iAllVoted)
      g_iPlayerProcc = 100 / iAllVoted;
   else
      g_iPlayerProcc = 0;
   
   if((get_gametime() - g_iLastSec[id]) >= 1.0)
      if(g_iTimerVote[id] != 0)
         g_iTimerVote[id]--, ChooseMap(id), g_iLastSec[id] = get_gametime();
      else
         show_menu(id, 0, "^n"), g_iTimerVote[id] = -1;
}

stock ChatColor(const id, const input[], any:...)
{
   new count = 1, players[32]
   static msg[191]
   vformat(msg, 190, input, 3)
   format(msg, sizeof(msg), "^1[^4%s^1] %s", REKLAM, msg)
   replace_all(msg, 190, "!g", "^4")
   replace_all(msg, 190, "!y", "^1")
   replace_all(msg, 190, "!team", "^3")
   
   if (id) players[0] = id; else get_players(players, count, "ch")
   {
      for (new i = 0; i < count; i++)
      {
         if (is_user_connected(players[i]))
         {
            message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
            write_byte(players[i]);
            write_string(msg); 
            message_end();
         }
      }
   }
}

Harita Oylama (Map Chooser)

Gönderilme zamanı: Sal Ağu 15, 2017 3:02 pm
gönderen PaZee
maps.ini de kac tane map var ?

Harita Oylama (Map Chooser)

Gönderilme zamanı: Sal Ağu 15, 2017 3:03 pm
gönderen holigan
PaZee yazdı:maps.ini de kac tane map var ?
zm_ice_attack5
zm_holigan_base
zm_mountain_base
zm_street_base
zm_gold_dust_new
zm_3day
zm_snow_dust2
zm_sea_dust2
zm_heal_dust2_v2
zm_holigan_dust2
zm_dust2_CSO
zm_fdust2x2
zm_3room
zm_holigan_cross
zm_x2_holiganz
zm_x3_holiganz
zm_titan
zm_citylost_b5
zm_blue_base_new
zm_gold_dust_new

Harita Oylama (Map Chooser)

Gönderilme zamanı: Sal Ağu 15, 2017 3:06 pm
gönderen PaZee
plugine 4 tane map adanmis kusura bakma bazen geceleri sinyal gidip gelebiliyor buyur :D ;


Kod: Tümünü seç

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#define MAX_MAP      250

new g_iTimerVote[33];
new g_iNumRTV;
new g_iPlayerProcc;
new bool:g_LastRound;
new b_HasRTV[33];
new Float:g_iLastSec[33];
new bool:g_Vote;
new bool:b_HasAlreadyVoted[33];
new iAllVoted;
new sonuc;
new SmiLe[MAX_MAP][250],configsdir[250],komutdosyasi[250],CSmiLeFaCe[MAX_MAP][250],CSmiLeFaCee,FaCe[6],LeFa[6];
new REKLAMCVAR;
new REKLAM[32];
#define TimeVote 30
new bironcekiharita;
new bironcekiharitacevir[32];
new ondanbironcekiharita;
new ondanbironcekiharitacevir[32];
new ondanbirbironcekiharita;
new ondanbirbironcekiharitacevir[32];
new elsonunubekle
public plugin_init()
{
   register_plugin("CSM Harita Sistemi [RTV]", "2.0", "-CSmiLeFaCe");
   
   register_clcmd("say /RTV", "RockTheVote")
   register_clcmd("say !RTV", "RockTheVote")
   register_clcmd("say .RTV", "RockTheVote")
   register_clcmd("say /haritalar", "oynanilanharitalarinsirasi")
   register_clcmd("say !haritalar", "oynanilanharitalarinsirasi")
   register_clcmd("say .haritalar", "oynanilanharitalarinsirasi")
   register_concmd("say nextmap", "Show_Nextmap")
   
   register_menucmd(register_menuid("VoteMenu"), 1023, "ActionVoteMenu");
   
   register_logevent("RoundEnd", 2, "1=Round_End")
   elsonunubekle = register_cvar("csm_elsonunubekle","1")
   bironcekiharita = register_cvar("csm_bironcekiharita","YOK") 
   get_pcvar_string(bironcekiharita,bironcekiharitacevir,31)
   ondanbironcekiharita = register_cvar("csm_ondanbironcekiharita","YOK") 
   get_pcvar_string(ondanbironcekiharita,ondanbironcekiharitacevir,31)
   ondanbirbironcekiharita = register_cvar("csm_ondanbirbironcekiharita","YOK") 
   get_pcvar_string(ondanbirbironcekiharita,ondanbirbironcekiharitacevir,31)
   
   new suankimap[250];
   get_mapname(suankimap,249);
   
   set_cvar_string("csm_ondanbirbironcekiharita", ondanbironcekiharitacevir);
   set_cvar_string("csm_ondanbironcekiharita", bironcekiharitacevir);
   set_cvar_string("csm_bironcekiharita", suankimap);
   set_task(45.0, "ClCmdVote", _, _, _, "d") //Buradaki 45 timeleft'in bitmesine kaç saniye kala çalışacağını gösterir.
   
   register_cvar("amx_nextmap", "");
   set_cvar_string("amx_nextmap", "");
   REKLAMCVAR = register_cvar("csm_sayreklam","csplugin")
   get_pcvar_string(REKLAMCVAR,REKLAM,31)
   
}
public oynanilanharitalarinsirasi(id){
   new suankimap[250];
   get_mapname(suankimap,249);
   ChatColor(id,"Oynanilan haritalarin sirasi; !team%s !y--> !team%s !y--> !team%s !y--> !team%s",ondanbirbironcekiharitacevir,ondanbironcekiharitacevir ,bironcekiharitacevir, suankimap);
}
public plugin_natives()
{
   register_native("HaritaOyla", "ClCmdVote", 1)  //Başka eklentiler ile birleştirmek için native kullandım. 
}
public Show_Nextmap(id)
{
   new harita[32]
   get_cvar_string("amx_nextmap",harita,sizeof(harita) - 1)
   

   if(harita[0])
   {
      ChatColor(id, "!teamSonraki Harita: !g%s", harita)
   }
   else
      ChatColor(id, "!teamSonraki Harita daha oylanmadi.")
      
   
}

public RoundEnd()
   if(g_LastRound)
      set_task(1.0, "changelevel");

public RockTheVote(id)
{
   if(g_Vote)
   {
      ChatColor(id, "!teamOylama basladi.")
      return PLUGIN_CONTINUE;
   }
   if(b_HasRTV[id])
   {
      ChatColor(id, "!teamOylama icin hazirsiniz.")
      return PLUGIN_CONTINUE;
   }
   new iNum, szPlayers[32];
   get_players(szPlayers, iNum, "hc")

   g_iNumRTV++;

   b_HasRTV[id] = true;
   if(g_iNumRTV == iNum)
   {
      ChatColor(0, "!teamKatilimci!g(%d) !teamgerekli sayiya ulasti. Harita oylamasi geliyor..", g_iNumRTV)
      set_task(5.0, "ClCmdVote");
   }
   else
      ChatColor(0, "!teamOylama icin !g%d !teamkadar istege ihtiyacimiz var !gsay /RTV", iNum-g_iNumRTV)
      
   return PLUGIN_HANDLED;
}

public LoadMapsInVote()
{
   get_configsdir(configsdir,249);
   
   new szMapName[ 64 ];
   get_mapname( szMapName, 63 );
   new satirsayisi,sonuc;
   
   format(komutdosyasi,249,"%s/maps.ini",configsdir);
   
   for(new i=0,deger;i<MAX_MAP;i++){
      sonuc = read_file(komutdosyasi,i,SmiLe[i],249,satirsayisi);
      if(sonuc != 0){
         CSmiLeFaCee++;
         CSmiLeFaCe[CSmiLeFaCee] = SmiLe[i];
         deger++;}
   }
}


public ClCmdVote(){
   client_cmd(0, "spk Gman/gman_choose2")
   set_cvar_float("mp_timelimit", 0.0)
   set_task(1.0, "ValueVote", _, _, _, "a", 6);
}

public ValueVote()
{
   static timer = 6
   timer--
   switch(timer)
   {
      case 0: 
      {
         ChatColor(0, "!teamHarita oylamasi !gAKTIF")
         g_Vote = true;
         FaCe[0] = 0;
         FaCe[1] = 0;
         FaCe[2] = 0;
         FaCe[3] = 0;
         FaCe[4] = 0;
         startvote()
         arrayset(FaCe, 0, sizeof(FaCe));
         arrayset(g_iTimerVote, TimeVote-10, 33);
         arrayset(b_HasAlreadyVoted, false, 33);
         set_task(float(TimeVote), "endvote");
         timer = 6;
         set_cvar_string("amx_nextmap", "[Oylamada]");
      }
      default: 
      {
         ChatColor(0, "!teamHarita oylamasinin baslamasina !g%d saniye..", timer)
      }
   }
}

public startvote()
{
   if(!g_Vote)
      return PLUGIN_CONTINUE;
      
   CSmiLeFaCee = 0;
   LoadMapsInVote()
   new suankimap[250];
   get_mapname(suankimap,249);
   if(CSmiLeFaCee >= 6){
      LeFa[0] = random_num(1,CSmiLeFaCee);
      LeFa[1] = random_num(1,CSmiLeFaCee);
      LeFa[2] = random_num(1,CSmiLeFaCee);
      LeFa[3] = random_num(1,CSmiLeFaCee);
      LeFa[4] = random_num(1,CSmiLeFaCee);
      for(new i = 0;i<5;i++){
         for(new j = 0;j<5;j++){
            if(i == j)
               continue;
               
            if(LeFa[i] == LeFa[j] ||  equal(CSmiLeFaCe[LeFa[i]],suankimap) || equal(CSmiLeFaCe[LeFa[i]],bironcekiharitacevir) || equal(CSmiLeFaCe[LeFa[i]],ondanbironcekiharitacevir)){
               LeFa[i] = random_num(1,CSmiLeFaCee); // ||
               i = 0;}
               
         }
      }
   }
   
   return PLUGIN_HANDLED;
}
public ChooseMap(id)
{
   if(!g_Vote)
      return PLUGIN_CONTINUE;
      
   static Item[64];
   new Menu,szSec[32];
   
   formatex(Item,charsmax(Item),"\yHarita Oylama Zamani Toplam Oy %d : ^n\dOylamanin bitmesine \r%d \dSaniye^n",iAllVoted, g_iTimerVote[id], szSec)
   Menu = menu_create(Item,"ActionVoteMenu")
         
         
   formatex(Item,charsmax(Item),"\yRastgele Kullan")
   menu_additem(Menu,Item,"1")
   formatex(Item,charsmax(Item),"\r \w%s \d[\y%d%%\d]",CSmiLeFaCe[LeFa[1]], FaCe[1] * g_iPlayerProcc)
   menu_additem(Menu,Item,"2")
   formatex(Item,charsmax(Item),"\r \w%s \d[\y%d%%\d]",CSmiLeFaCe[LeFa[2]], FaCe[2] * g_iPlayerProcc)
   menu_additem(Menu,Item,"3")
   formatex(Item,charsmax(Item),"\r \w%s \d[\y%d%%\d]",CSmiLeFaCe[LeFa[3]], FaCe[3] * g_iPlayerProcc)
   menu_additem(Menu,Item,"4")
   formatex(Item,charsmax(Item),"\r \w%s \d[\y%d%%\d]",CSmiLeFaCe[LeFa[4]], FaCe[4] * g_iPlayerProcc)
   menu_additem(Menu,Item,"5")
   formatex(Item,charsmax(Item),"\rOylamaya Katilma")
   menu_additem(Menu,Item,"6")
   
   menu_setprop(Menu, MPROP_EXITNAME, "\rCikis") 
   menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL) 
   menu_display(id, Menu)

   return PLUGIN_HANDLED
}
public ActionVoteMenu(id,menu,item)
{
   new szName[32]
   get_user_name(id, szName, 31)
   if(item == MENU_EXIT)
   {
      menu_destroy(menu)
      return PLUGIN_HANDLED
   }
   new access,callback,data[6],iname[64]
   
   menu_item_getinfo(menu,item,access,data,5,iname,63,callback)
   
   
   new key = str_to_num(data)
   
   if(!b_HasAlreadyVoted[id])
   {
   switch(key)
   {
      case 1:
      {
         new tus = random_num(1,5)
         FaCe[tus]++
         client_cmd(id, "spk Gman/gman_noreg")
         b_HasAlreadyVoted[id] = true;
         ChatColor(0, "!g%s !teamoyuncusunun sectigi harita !g%s", szName, CSmiLeFaCe[LeFa[tus]]);      
         iAllVoted++;
      }
      case 2:
      {
         FaCe[key-1]++
         client_cmd(id, "spk Gman/gman_noreg")
         b_HasAlreadyVoted[id] = true;
         ChatColor(0, "!g%s !teamoyuncusunun sectigi harita !g%s", szName, CSmiLeFaCe[LeFa[key-1]]);      
         iAllVoted++;
      }
      case 3:
      {
         FaCe[key-1]++
         client_cmd(id, "spk Gman/gman_noreg")
         b_HasAlreadyVoted[id] = true;
         ChatColor(0, "!g%s !teamoyuncusunun sectigi harita !g%s", szName, CSmiLeFaCe[LeFa[key-1]]);      
         iAllVoted++;         
      }
      case 4:
      {
         FaCe[key-1]++
         client_cmd(id, "spk Gman/gman_noreg")
         b_HasAlreadyVoted[id] = true;
         ChatColor(0, "!g%s !teamoyuncusunun sectigi harita !g%s", szName, CSmiLeFaCe[LeFa[key-1]]);      
         iAllVoted++;         
      }
      case 5:
      {
      
         FaCe[key-1]++
         client_cmd(id, "spk Gman/gman_noreg")
         b_HasAlreadyVoted[id] = true;
         ChatColor(0, "!g%s !teamoyuncusunun sectigi harita !g%s", szName, CSmiLeFaCe[LeFa[key-1]]);      
         iAllVoted++;         
      }
      case 6:
      {
         if(!b_HasAlreadyVoted[id])
         {
            ChatColor(0, "!g%s !teamoylamaya katilmadi.", szName);
            b_HasAlreadyVoted[id] = true;
         }
         return PLUGIN_CONTINUE;
      }
      
   }
   }
   
   menu_destroy(menu)
   return PLUGIN_HANDLED
}

public endvote()
{
   new kazanan = LeFa[0], eniyiharita = FaCe[0];
   for(new i = 0; i <5; i++){
      if(FaCe[i] > eniyiharita){
         kazanan = LeFa[i];
         eniyiharita = FaCe[i];}
   }
   
   g_Vote = false;
   if(!is_map_valid(CSmiLeFaCe[kazanan]))
   {
      FaCe[0] = 0;
      FaCe[1] = 0;
      FaCe[2] = 0;
      FaCe[3] = 0;
      FaCe[4] = 0;
      iAllVoted = 0; 
      client_cmd(0, "spk Gman/gman_nowork")
      set_task(5.0, "ClCmdVote");
      ChatColor(0, "!teamSeçilen harita !g%s ^"!ycstrike/maps!g^" !teamklasöründe !gYOK.!teamOylama islemi yeniden yapilacak.", CSmiLeFaCe[kazanan])
      return PLUGIN_HANDLED;
   }
   
   ChatColor(0, "!teamSonraki Harita: !g%s", CSmiLeFaCe[kazanan])
   set_cvar_string("amx_nextmap", CSmiLeFaCe[kazanan]);
   sonuc = kazanan;
   
   if(get_pcvar_num(elsonunubekle) == 1){
      g_LastRound = true;
      set_dhudmessage( 149,68,0, -1.0, -0.70, 2, 4.0, 11.0, 0.01, 1.5 )
      show_dhudmessage(0, "Sonraki Harita: %s^nHarita el sonunda degisecek",CSmiLeFaCe[kazanan])
   }
   else{
      set_task(1.0, "changelevel");
   }
   
   return PLUGIN_HANDLED;
}
public changelevel()
{
   set_cvar_float("mp_timelimit", 0.0);
   set_dhudmessage( 0,255,0, -1.0, -0.40, 0, 11.0, 6.0, 0.1, 1.5 )
   show_dhudmessage(0, "^nHarita %s olarak degistiriliyor", CSmiLeFaCe[sonuc]) 
   //client_cmd(0, "spk Gman/gman_wise")
   new iNum, szPlayers[32];
   get_players(szPlayers, iNum)
   for(new i; i < iNum; i++)
   {
      client_cmd(szPlayers[i], "drop;wait;wait;wait;wait;wait;drop;wait;wait;wait;wait;wait;drop");
      set_pev(szPlayers[i], pev_flags, pev(szPlayers[i], pev_flags) | FL_FROZEN)
   }
   
   set_task(3.5, "changelevel1");
   set_task(6.0, "changelevel2");
   
   
}
public changelevel1()
{
   new _modName[10]
   get_modname(_modName, 9)
   if (!equal(_modName, "zp"))
   {
      message_begin(MSG_ALL, SVC_INTERMISSION)
      message_end()
   }
}
public changelevel2()
{
   server_cmd("changelevel %s", CSmiLeFaCe[sonuc]);
}
public client_PreThink(id)
{
   if(!g_Vote)
      return;
      
   if(g_iTimerVote[id] <= -1)
      return;
   
   if(iAllVoted)
      g_iPlayerProcc = 100 / iAllVoted;
   else
      g_iPlayerProcc = 0;
   
   if((get_gametime() - g_iLastSec[id]) >= 1.0)
      if(g_iTimerVote[id] != 0)
         g_iTimerVote[id]--, ChooseMap(id), g_iLastSec[id] = get_gametime();
      else
         show_menu(id, 0, "^n"), g_iTimerVote[id] = -1;
}

stock ChatColor(const id, const input[], any:...)
{
   new count = 1, players[32]
   static msg[191]
   vformat(msg, 190, input, 3)
   format(msg, sizeof(msg), "^1[^4%s^1] %s", REKLAM, msg)
   replace_all(msg, 190, "!g", "^4")
   replace_all(msg, 190, "!y", "^1")
   replace_all(msg, 190, "!team", "^3")
   
   if (id) players[0] = id; else get_players(players, count, "ch")
   {
      for (new i = 0; i < count; i++)
      {
         if (is_user_connected(players[i]))
         {
            message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
            write_byte(players[i]);
            write_string(msg); 
            message_end();
         }
      }
   }
}

Harita Oylama (Map Chooser)

Gönderilme zamanı: Sal Ağu 15, 2017 3:07 pm
gönderen holigan
Oylama esnasında sol tarafta her hangi bir işlem yapılamıyor.
Örneğin harita oylaması mapin başlarında gelirse silah alma menüsü kullanılamıyor.
Onu da ayarlarmısın.
PaZee yazdı:plugine 4 tane map adanmis kusura bakma bazen geceleri sinyal gidip gelebiliyor buyur :D ;


Kod: Tümünü seç

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#define MAX_MAP      250

new g_iTimerVote[33];
new g_iNumRTV;
new g_iPlayerProcc;
new bool:g_LastRound;
new b_HasRTV[33];
new Float:g_iLastSec[33];
new bool:g_Vote;
new bool:b_HasAlreadyVoted[33];
new iAllVoted;
new sonuc;
new SmiLe[MAX_MAP][250],configsdir[250],komutdosyasi[250],CSmiLeFaCe[MAX_MAP][250],CSmiLeFaCee,FaCe[6],LeFa[6];
new REKLAMCVAR;
new REKLAM[32];
#define TimeVote 30
new bironcekiharita;
new bironcekiharitacevir[32];
new ondanbironcekiharita;
new ondanbironcekiharitacevir[32];
new ondanbirbironcekiharita;
new ondanbirbironcekiharitacevir[32];
new elsonunubekle
public plugin_init()
{
   register_plugin("CSM Harita Sistemi [RTV]", "2.0", "-CSmiLeFaCe");
   
   register_clcmd("say /RTV", "RockTheVote")
   register_clcmd("say !RTV", "RockTheVote")
   register_clcmd("say .RTV", "RockTheVote")
   register_clcmd("say /haritalar", "oynanilanharitalarinsirasi")
   register_clcmd("say !haritalar", "oynanilanharitalarinsirasi")
   register_clcmd("say .haritalar", "oynanilanharitalarinsirasi")
   register_concmd("say nextmap", "Show_Nextmap")
   
   register_menucmd(register_menuid("VoteMenu"), 1023, "ActionVoteMenu");
   
   register_logevent("RoundEnd", 2, "1=Round_End")
   elsonunubekle = register_cvar("csm_elsonunubekle","1")
   bironcekiharita = register_cvar("csm_bironcekiharita","YOK") 
   get_pcvar_string(bironcekiharita,bironcekiharitacevir,31)
   ondanbironcekiharita = register_cvar("csm_ondanbironcekiharita","YOK") 
   get_pcvar_string(ondanbironcekiharita,ondanbironcekiharitacevir,31)
   ondanbirbironcekiharita = register_cvar("csm_ondanbirbironcekiharita","YOK") 
   get_pcvar_string(ondanbirbironcekiharita,ondanbirbironcekiharitacevir,31)
   
   new suankimap[250];
   get_mapname(suankimap,249);
   
   set_cvar_string("csm_ondanbirbironcekiharita", ondanbironcekiharitacevir);
   set_cvar_string("csm_ondanbironcekiharita", bironcekiharitacevir);
   set_cvar_string("csm_bironcekiharita", suankimap);
   set_task(45.0, "ClCmdVote", _, _, _, "d") //Buradaki 45 timeleft'in bitmesine kaç saniye kala çalışacağını gösterir.
   
   register_cvar("amx_nextmap", "");
   set_cvar_string("amx_nextmap", "");
   REKLAMCVAR = register_cvar("csm_sayreklam","csplugin")
   get_pcvar_string(REKLAMCVAR,REKLAM,31)
   
}
public oynanilanharitalarinsirasi(id){
   new suankimap[250];
   get_mapname(suankimap,249);
   ChatColor(id,"Oynanilan haritalarin sirasi; !team%s !y--> !team%s !y--> !team%s !y--> !team%s",ondanbirbironcekiharitacevir,ondanbironcekiharitacevir ,bironcekiharitacevir, suankimap);
}
public plugin_natives()
{
   register_native("HaritaOyla", "ClCmdVote", 1)  //Başka eklentiler ile birleştirmek için native kullandım. 
}
public Show_Nextmap(id)
{
   new harita[32]
   get_cvar_string("amx_nextmap",harita,sizeof(harita) - 1)
   

   if(harita[0])
   {
      ChatColor(id, "!teamSonraki Harita: !g%s", harita)
   }
   else
      ChatColor(id, "!teamSonraki Harita daha oylanmadi.")
      
   
}

public RoundEnd()
   if(g_LastRound)
      set_task(1.0, "changelevel");

public RockTheVote(id)
{
   if(g_Vote)
   {
      ChatColor(id, "!teamOylama basladi.")
      return PLUGIN_CONTINUE;
   }
   if(b_HasRTV[id])
   {
      ChatColor(id, "!teamOylama icin hazirsiniz.")
      return PLUGIN_CONTINUE;
   }
   new iNum, szPlayers[32];
   get_players(szPlayers, iNum, "hc")

   g_iNumRTV++;

   b_HasRTV[id] = true;
   if(g_iNumRTV == iNum)
   {
      ChatColor(0, "!teamKatilimci!g(%d) !teamgerekli sayiya ulasti. Harita oylamasi geliyor..", g_iNumRTV)
      set_task(5.0, "ClCmdVote");
   }
   else
      ChatColor(0, "!teamOylama icin !g%d !teamkadar istege ihtiyacimiz var !gsay /RTV", iNum-g_iNumRTV)
      
   return PLUGIN_HANDLED;
}

public LoadMapsInVote()
{
   get_configsdir(configsdir,249);
   
   new szMapName[ 64 ];
   get_mapname( szMapName, 63 );
   new satirsayisi,sonuc;
   
   format(komutdosyasi,249,"%s/maps.ini",configsdir);
   
   for(new i=0,deger;i<MAX_MAP;i++){
      sonuc = read_file(komutdosyasi,i,SmiLe[i],249,satirsayisi);
      if(sonuc != 0){
         CSmiLeFaCee++;
         CSmiLeFaCe[CSmiLeFaCee] = SmiLe[i];
         deger++;}
   }
}


public ClCmdVote(){
   client_cmd(0, "spk Gman/gman_choose2")
   set_cvar_float("mp_timelimit", 0.0)
   set_task(1.0, "ValueVote", _, _, _, "a", 6);
}

public ValueVote()
{
   static timer = 6
   timer--
   switch(timer)
   {
      case 0: 
      {
         ChatColor(0, "!teamHarita oylamasi !gAKTIF")
         g_Vote = true;
         FaCe[0] = 0;
         FaCe[1] = 0;
         FaCe[2] = 0;
         FaCe[3] = 0;
         FaCe[4] = 0;
         startvote()
         arrayset(FaCe, 0, sizeof(FaCe));
         arrayset(g_iTimerVote, TimeVote-10, 33);
         arrayset(b_HasAlreadyVoted, false, 33);
         set_task(float(TimeVote), "endvote");
         timer = 6;
         set_cvar_string("amx_nextmap", "[Oylamada]");
      }
      default: 
      {
         ChatColor(0, "!teamHarita oylamasinin baslamasina !g%d saniye..", timer)
      }
   }
}

public startvote()
{
   if(!g_Vote)
      return PLUGIN_CONTINUE;
      
   CSmiLeFaCee = 0;
   LoadMapsInVote()
   new suankimap[250];
   get_mapname(suankimap,249);
   if(CSmiLeFaCee >= 6){
      LeFa[0] = random_num(1,CSmiLeFaCee);
      LeFa[1] = random_num(1,CSmiLeFaCee);
      LeFa[2] = random_num(1,CSmiLeFaCee);
      LeFa[3] = random_num(1,CSmiLeFaCee);
      LeFa[4] = random_num(1,CSmiLeFaCee);
      for(new i = 0;i<5;i++){
         for(new j = 0;j<5;j++){
            if(i == j)
               continue;
               
            if(LeFa[i] == LeFa[j] ||  equal(CSmiLeFaCe[LeFa[i]],suankimap) || equal(CSmiLeFaCe[LeFa[i]],bironcekiharitacevir) || equal(CSmiLeFaCe[LeFa[i]],ondanbironcekiharitacevir)){
               LeFa[i] = random_num(1,CSmiLeFaCee); // ||
               i = 0;}
               
         }
      }
   }
   
   return PLUGIN_HANDLED;
}
public ChooseMap(id)
{
   if(!g_Vote)
      return PLUGIN_CONTINUE;
      
   static Item[64];
   new Menu,szSec[32];
   
   formatex(Item,charsmax(Item),"\yHarita Oylama Zamani Toplam Oy %d : ^n\dOylamanin bitmesine \r%d \dSaniye^n",iAllVoted, g_iTimerVote[id], szSec)
   Menu = menu_create(Item,"ActionVoteMenu")
         
         
   formatex(Item,charsmax(Item),"\yRastgele Kullan")
   menu_additem(Menu,Item,"1")
   formatex(Item,charsmax(Item),"\r \w%s \d[\y%d%%\d]",CSmiLeFaCe[LeFa[1]], FaCe[1] * g_iPlayerProcc)
   menu_additem(Menu,Item,"2")
   formatex(Item,charsmax(Item),"\r \w%s \d[\y%d%%\d]",CSmiLeFaCe[LeFa[2]], FaCe[2] * g_iPlayerProcc)
   menu_additem(Menu,Item,"3")
   formatex(Item,charsmax(Item),"\r \w%s \d[\y%d%%\d]",CSmiLeFaCe[LeFa[3]], FaCe[3] * g_iPlayerProcc)
   menu_additem(Menu,Item,"4")
   formatex(Item,charsmax(Item),"\r \w%s \d[\y%d%%\d]",CSmiLeFaCe[LeFa[4]], FaCe[4] * g_iPlayerProcc)
   menu_additem(Menu,Item,"5")
   formatex(Item,charsmax(Item),"\rOylamaya Katilma")
   menu_additem(Menu,Item,"6")
   
   menu_setprop(Menu, MPROP_EXITNAME, "\rCikis") 
   menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL) 
   menu_display(id, Menu)

   return PLUGIN_HANDLED
}
public ActionVoteMenu(id,menu,item)
{
   new szName[32]
   get_user_name(id, szName, 31)
   if(item == MENU_EXIT)
   {
      menu_destroy(menu)
      return PLUGIN_HANDLED
   }
   new access,callback,data[6],iname[64]
   
   menu_item_getinfo(menu,item,access,data,5,iname,63,callback)
   
   
   new key = str_to_num(data)
   
   if(!b_HasAlreadyVoted[id])
   {
   switch(key)
   {
      case 1:
      {
         new tus = random_num(1,5)
         FaCe[tus]++
         client_cmd(id, "spk Gman/gman_noreg")
         b_HasAlreadyVoted[id] = true;
         ChatColor(0, "!g%s !teamoyuncusunun sectigi harita !g%s", szName, CSmiLeFaCe[LeFa[tus]]);      
         iAllVoted++;
      }
      case 2:
      {
         FaCe[key-1]++
         client_cmd(id, "spk Gman/gman_noreg")
         b_HasAlreadyVoted[id] = true;
         ChatColor(0, "!g%s !teamoyuncusunun sectigi harita !g%s", szName, CSmiLeFaCe[LeFa[key-1]]);      
         iAllVoted++;
      }
      case 3:
      {
         FaCe[key-1]++
         client_cmd(id, "spk Gman/gman_noreg")
         b_HasAlreadyVoted[id] = true;
         ChatColor(0, "!g%s !teamoyuncusunun sectigi harita !g%s", szName, CSmiLeFaCe[LeFa[key-1]]);      
         iAllVoted++;         
      }
      case 4:
      {
         FaCe[key-1]++
         client_cmd(id, "spk Gman/gman_noreg")
         b_HasAlreadyVoted[id] = true;
         ChatColor(0, "!g%s !teamoyuncusunun sectigi harita !g%s", szName, CSmiLeFaCe[LeFa[key-1]]);      
         iAllVoted++;         
      }
      case 5:
      {
      
         FaCe[key-1]++
         client_cmd(id, "spk Gman/gman_noreg")
         b_HasAlreadyVoted[id] = true;
         ChatColor(0, "!g%s !teamoyuncusunun sectigi harita !g%s", szName, CSmiLeFaCe[LeFa[key-1]]);      
         iAllVoted++;         
      }
      case 6:
      {
         if(!b_HasAlreadyVoted[id])
         {
            ChatColor(0, "!g%s !teamoylamaya katilmadi.", szName);
            b_HasAlreadyVoted[id] = true;
         }
         return PLUGIN_CONTINUE;
      }
      
   }
   }
   
   menu_destroy(menu)
   return PLUGIN_HANDLED
}

public endvote()
{
   new kazanan = LeFa[0], eniyiharita = FaCe[0];
   for(new i = 0; i <5; i++){
      if(FaCe[i] > eniyiharita){
         kazanan = LeFa[i];
         eniyiharita = FaCe[i];}
   }
   
   g_Vote = false;
   if(!is_map_valid(CSmiLeFaCe[kazanan]))
   {
      FaCe[0] = 0;
      FaCe[1] = 0;
      FaCe[2] = 0;
      FaCe[3] = 0;
      FaCe[4] = 0;
      iAllVoted = 0; 
      client_cmd(0, "spk Gman/gman_nowork")
      set_task(5.0, "ClCmdVote");
      ChatColor(0, "!teamSeçilen harita !g%s ^"!ycstrike/maps!g^" !teamklasöründe !gYOK.!teamOylama islemi yeniden yapilacak.", CSmiLeFaCe[kazanan])
      return PLUGIN_HANDLED;
   }
   
   ChatColor(0, "!teamSonraki Harita: !g%s", CSmiLeFaCe[kazanan])
   set_cvar_string("amx_nextmap", CSmiLeFaCe[kazanan]);
   sonuc = kazanan;
   
   if(get_pcvar_num(elsonunubekle) == 1){
      g_LastRound = true;
      set_dhudmessage( 149,68,0, -1.0, -0.70, 2, 4.0, 11.0, 0.01, 1.5 )
      show_dhudmessage(0, "Sonraki Harita: %s^nHarita el sonunda degisecek",CSmiLeFaCe[kazanan])
   }
   else{
      set_task(1.0, "changelevel");
   }
   
   return PLUGIN_HANDLED;
}
public changelevel()
{
   set_cvar_float("mp_timelimit", 0.0);
   set_dhudmessage( 0,255,0, -1.0, -0.40, 0, 11.0, 6.0, 0.1, 1.5 )
   show_dhudmessage(0, "^nHarita %s olarak degistiriliyor", CSmiLeFaCe[sonuc]) 
   //client_cmd(0, "spk Gman/gman_wise")
   new iNum, szPlayers[32];
   get_players(szPlayers, iNum)
   for(new i; i < iNum; i++)
   {
      client_cmd(szPlayers[i], "drop;wait;wait;wait;wait;wait;drop;wait;wait;wait;wait;wait;drop");
      set_pev(szPlayers[i], pev_flags, pev(szPlayers[i], pev_flags) | FL_FROZEN)
   }
   
   set_task(3.5, "changelevel1");
   set_task(6.0, "changelevel2");
   
   
}
public changelevel1()
{
   new _modName[10]
   get_modname(_modName, 9)
   if (!equal(_modName, "zp"))
   {
      message_begin(MSG_ALL, SVC_INTERMISSION)
      message_end()
   }
}
public changelevel2()
{
   server_cmd("changelevel %s", CSmiLeFaCe[sonuc]);
}
public client_PreThink(id)
{
   if(!g_Vote)
      return;
      
   if(g_iTimerVote[id] <= -1)
      return;
   
   if(iAllVoted)
      g_iPlayerProcc = 100 / iAllVoted;
   else
      g_iPlayerProcc = 0;
   
   if((get_gametime() - g_iLastSec[id]) >= 1.0)
      if(g_iTimerVote[id] != 0)
         g_iTimerVote[id]--, ChooseMap(id), g_iLastSec[id] = get_gametime();
      else
         show_menu(id, 0, "^n"), g_iTimerVote[id] = -1;
}

stock ChatColor(const id, const input[], any:...)
{
   new count = 1, players[32]
   static msg[191]
   vformat(msg, 190, input, 3)
   format(msg, sizeof(msg), "^1[^4%s^1] %s", REKLAM, msg)
   replace_all(msg, 190, "!g", "^4")
   replace_all(msg, 190, "!y", "^1")
   replace_all(msg, 190, "!team", "^3")
   
   if (id) players[0] = id; else get_players(players, count, "ch")
   {
      for (new i = 0; i < count; i++)
      {
         if (is_user_connected(players[i]))
         {
            message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
            write_byte(players[i]);
            write_string(msg); 
            message_end();
         }
      }
   }
}