CSPLague
CSGO Tarzi Otomatik Map&Team Değiştirme - Printable Version

+- CSPLague (https://www.csplague.com)
+-- Forum: CS 1.6 Plugin (Eklenti) Bölümü (https://www.csplague.com/forumdisplay.php?fid=6)
+--- Forum: [İSTEK] Cs 1.6 Plugin İstek Bölümü (https://www.csplague.com/forumdisplay.php?fid=80)
+---- Forum: Çözülmüş İstekler (https://www.csplague.com/forumdisplay.php?fid=87)
+---- Thread: CSGO Tarzi Otomatik Map&Team Değiştirme (/showthread.php?tid=8323)

Pages: 1 2


CSGO Tarzi Otomatik Map&Team Değiştirme - ccozancc - 13-08-13

Selam arkadaşlar sizden bir isteğimiz var.
Cs 1.6 public serverimiza CSGO tarzı map&team değiştirme plugini arıyoruz. Tam olarak istediğimiz plugini açıklamak gerekirse skor toplamı 10a ulaştığında otomatik teamlar yer değişicek (tler ct ye, ctler t ye) yine skor toplamı 18 olduğunda otomatik map oylaması yapacak ve yine skor toplamı 20ye ulaştığında otomatik seçilen mapa geçilecek.
Bir nevi maç plugini olucak maç plugininden farkı ise 18.elde otomatik map oylaması ve 20.elin sonunda otomatik seçilen mapa geçmesi

Böyle bir plugin hazırlayabilecek arkadaşlar öm atarsa sevinirim. Şimdiden teşekkürler.


Not: Buna benzer bir plugin kullanıyoruz ancak toplam 10. elde değil hangi team 10. ele ulaşırsa teamlar yer değişiyor, burda şöyle bi sorun ortaya çıkartıyor; diyelim skor t9 ve ct9 yani toplam 18, direk oylama yapıyor ve 1el için teamlar değişiyor ardından da map değişiyor. O yüzden böyle değilde yukarda anlattığım gibi bir plugin arıyoruz.

Ayrıca böyle bir plugini gerçekleştirebilirsek Türkiye'nin ilk maçpub serverıyla hizmet vermeye başlıyacağız. Serverımız da sizinde adınız geçebilir :)



Cevap: CSGO Tarzi Otomatik Map&Team Değiştirme - ccozancc - 15-08-13

Arkadaşlar yapan kişiye gerekli ödülü veririz, şimdiden teşekkürler.


Cevap: CSGO Tarzi Otomatik Map&Team Değiştirme - akcaliberkk - 15-08-13

oylanacak mapler neye göre seçilecek ?


Cevap: CSGO Tarzi Otomatik Map&Team Değiştirme - ccozancc - 15-08-13

akcaliberkk dateline='' Wrote: oylanacak mapler neye göre seçilecek ?

nasıl normal bir public serverda otomatik oylama yapıyor aynı öyle şekil olucak eğer öyle bir şey mümkün değilse bilindik maplar oylanacak karışık olarak d2 inf nuke train mirage tuscan d2002

- - - - - - - - - -

akcaliberkk dateline='' Wrote: oylanacak mapler neye göre seçilecek ?

nasıl normal bir public serverda otomatik oylama yapıyor aynı öyle şekil olucak eğer öyle bir şey mümkün değilse bilindik maplar oylanacak karışık olarak d2 inf nuke train mirage tuscan d2002


Cevap: CSGO Tarzi Otomatik Map&Team Değiştirme - ccozancc - 17-08-13

arkadaşlar güncel


Cevap: CSGO Tarzi Otomatik Map&Team Değiştirme - akcaliberkk - 17-08-13

Takımlar değiştiğinde skorları değiştiremeyiz ama. Ancak cs den farklı bir skor tabelası yapılırsa mümkün olur


Cevap: CSGO Tarzi Otomatik Map&Team Değiştirme - ccozancc - 17-08-13

akcaliberkk dateline='' Wrote: Takımlar değiştiğinde skorları değiştiremeyiz ama. Ancak cs den farklı bir skor tabelası yapılırsa mümkün olur

takımlar değiştiğinde skorların sıfırlanması gerekmiyor

- - - - - - - - - -

akcaliberkk dateline='' Wrote: Takımlar değiştiğinde skorları değiştiremeyiz ama. Ancak cs den farklı bir skor tabelası yapılırsa mümkün olur

takımlar değiştiğinde skorların sıfırlanması gerekmiyor


Cevap: CSGO Tarzi Otomatik Map&Team Değiştirme - akcaliberkk - 17-08-13

Sıfırlanır demedim zaten. Terorist 7 : 3 CT iken takımlar değişirse skorlar da aynı şekilde değişmez. Yine Terorist 7 : 3 CT olur


Cevap: CSGO Tarzi Otomatik Map&Team Değiştirme - ccozancc - 17-08-13

akcaliberkk dateline='' Wrote: Sıfırlanır demedim zaten. Terorist 7 : 3 CT iken takımlar değişirse skorlar da aynı şekilde değişmez. Yine Terorist 7 : 3 CT olur

hangi teamın kaç skora sahip olduğu önemsiz skor toplamına göre map ve team değişmesi gerekiyor zaten, skor toplamı 10 olunca teamlar yer değişicek ve 18. elde otomatik oylama yapılcak 20.elde seçilen mapa geçilecek

- - - - - - - - - -

akcaliberkk dateline='' Wrote: Sıfırlanır demedim zaten. Terorist 7 : 3 CT iken takımlar değişirse skorlar da aynı şekilde değişmez. Yine Terorist 7 : 3 CT olur

hangi teamın kaç skora sahip olduğu önemsiz skor toplamına göre map ve team değişmesi gerekiyor zaten, skor toplamı 10 olunca teamlar yer değişicek ve 18. elde otomatik oylama yapılcak 20.elde seçilen mapa geçilecek


Cevap: CSGO Tarzi Otomatik Map&Team Değiştirme - akcaliberkk - 18-08-13

PHP Code:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <hamsandwich>

#define PLUGIN "Auto Map Changer"
#define VERSION "1.0"
#define AUTHOR "akcaliberkk"

#define TASK_NOTIFICATION 1546

new round;
new 
vote[3];
new 
nextmap[32];
new 
menu
new szMap1[32],szMap2[32],szMap3[32];
new const 
mapcycle[] = "addons/amxmodx/configs/mapcycle_csgo.ini";

public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    if(!
file_exists(mapcycle)) {
        new 
fopen(mapcycle,"wt")
        
fclose(f)
    }
    
    
register_event("HLTV","eNewRound","a","1=0","2=0")
    
register_event("TextMsg","eRestart","a","2=#Game_will_restart_in","2=#Game_Commencing")
}
public 
eNewRound() {
    
round++
    if(
round == 10) {
        
swap_teams()
    }
    else if(
round == 18) {
        
start_map_vote()
    }
    else if(
round == 20) {
        
change_map()
    }
    
}
public 
eRestart() {
    
round 0
}

// TEAM SWAP

public swap_teams() {
    new 
players[32],inum;
    
get_players(players,inum)
    for(new 
i;i<inum;i++) {
        switch(
i) {
            case 
0..6set_task(0.1,"delayed_team_change",players[i])
            case 
7..14set_task(0.2,"delayed_team_change",players)
            case 
15..22set_task(0.3,"delayed_team_change",players)
            case 
23..31set_task(0.4,"delayed_team_change",players)
        }
    }
    
set_task(1.0,"SendNotification")
}
public 
delayed_team_change(id) {
    switch(
cs_get_user_team(id)) {
        case 
CS_TEAM_Tcs_set_user_team(id,CS_TEAM_CT)
        case 
CS_TEAM_CT:  cs_set_user_team(id,CS_TEAM_T)
    }
    
ExecuteHamB(Ham_CS_RoundRespawn,id)
}
public 
SendNotification() {
    
ColorChat(0,"^4*** Takimlar Degistirildi !")
}
// VOTE

public start_map_vote() {
    
    new 
players[32],inum;
    
get_players(players,inum)
    
    new 
maxlines file_size(mapcycle,1)
    new 
randomNum1randomNum2randomNum3;
    new 
mapname[32];
    new 
szData[32],txtlen;
    new 
found = -1;
    
get_mapname(mapname,31)
    
    for(new 
lineline<maxlinesline++) {
        
szData[0] = 0
        read_file
(mapcycle,line,szData,31,txtlen)
        
        if(
equali(szData,mapname)) {
            
found line
        
}
        else if(!
szData[0]) {
            
maxlines--
        }
    }
    
    
randomNum1 = (found == -1) ? random_num(0,maxlines) : random_num2(0,maxlines,found)
    
randomNum2 = (found == -1) ? random_num2(0,maxlines,randomNum1) : random_num2(0,maxlines,found,randomNum1)
    
randomNum3 = (found == -1) ? random_num2(0,maxlines,randomNum2,randomNum1) : random_num2(0,maxlines,found,randomNum1,randomNum2)
    
    
read_file(mapcycle,randomNum1,szMap1,31,txtlen)
    
read_file(mapcycle,randomNum2,szMap2,31,txtlen)
    
read_file(mapcycle,randomNum3,szMap3,31,txtlen)
    
    
menu menu_create("\yMap Seciniz","vote_handle")
    
    
menu_additem(menu,szMap1,"")
    
menu_additem(menu,szMap2,"")
    
menu_additem(menu,szMap3,"")
    
menu_setprop(menu,MPROP_EXIT,MEXIT_NEVER)
    for(new 
i;i<inum;i++) {
        
menu_display(players,menu)
    }
    
ColorChat(0,"^4*** Sonraki Map Oylamasi Baslatildi !")
    
set_task(10.0,"vote_finish")
    return 
PLUGIN_HANDLED
}
public 
vote_handle(id,menu,item) {
    
    
vote[item]++
    
}
public 
vote_finish() {
    
menu_destroy(menu)
    if(
vote[0] >= vote[1] && vote[0] >= vote[2]) {
        
formatex(nextmap,31,szMap1)
    }
    else if(
vote[1] >= vote[0] && vote[1] >= vote[2]) {
        
formatex(nextmap,31,szMap2)
    }
    else if(
vote[2] >= vote[0] && vote[2] >= vote[1]) {
        
formatex(nextmap,31,szMap3)
    }
    
ColorChat(0,"^4*** Sonraki Map Oylamasi Bitti. Secilen Map: ^3%s",nextmap)
    return 
PLUGIN_HANDLED
}
stock random_num2_min_maxexception1exception2 = -1exception3 = -1) {
    new 
num random_num(_min,_max)
    while(
num == exception1 || num == exception2 || num == exception3) {
        
num random_num(_min,_max)
    }
    return 
num
}

// MAP CHANGE

public change_map() {
    new 
szMod[10]
    
get_modname(szMod9)
    
    if (!
equal(szMod"zp"))
    {
        
message_begin(MSG_ALLSVC_INTERMISSION)
        
message_end()
    }
    
    
set_task(2.0"mapChange")
    
ColorChat(0,"^4*** Map Degistiriliyor... Sonraki Map: ^3%s",nextmap)
}
public 
mapChange() {
    
server_cmd("changelevel %s",nextmap)
}

// STOCK

stock ColorChat(const id, const string[], {FloatSqlResul,_}:...) {
    new 
msg[191], players[32], count 1;
    
    static 
len;
    
len formatex(msgcharsmax(msg), "^x01" );
    
vformat(msg[len], charsmax(msg) - lenstring3);
    
    if(
id)players[0] = id;
    else 
get_players(players,count,"ch");
    
    for (new 
0counti++){
        
        if(
is_user_connected(players)){
            
            
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"),_players);
            
write_byte(players);
            
write_string(msg);
            
message_end();
        }
    }
    return;


configs klasörüne mapcycle_csgo.ini şeklinde bir dosya açın. İçine alt alta map isimlerini yazın.

Dikkat:

* 17. roundda dosyayı editlemeyin. Sadece ilk 16 round dosyayı düzenleyebilirsiniz.
* İki map ismi arasında boş bir satır olmasın.[/i][/i][/i][/i][/i][/i][/i][/i]