CSGO Tarzi Otomatik Map&Team Değiştirme
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
Arkadaşlar yapan kişiye gerekli ödülü veririz, şimdiden teşekkürler.
Cevap: CSGO Tarzi Otomatik Map&Team Değiştirme
oylanacak mapler neye göre seçilecek ?
Cevap: CSGO Tarzi Otomatik Map&Team Değiştirme
Alıntı:
akcaliberkk Nickli Üyeden Alıntı
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
- - - - - - - - - -
Alıntı:
akcaliberkk Nickli Üyeden Alıntı
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
Cevap: CSGO Tarzi Otomatik Map&Team Değiştirme
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
Alıntı:
akcaliberkk Nickli Üyeden Alıntı
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
- - - - - - - - - -
Alıntı:
akcaliberkk Nickli Üyeden Alıntı
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
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
Alıntı:
akcaliberkk Nickli Üyeden Alıntı
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
- - - - - - - - - -
Alıntı:
akcaliberkk Nickli Üyeden Alıntı
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
PHP- Kodu:
/* 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(PLUGIN, VERSION, AUTHOR)
if(!file_exists(mapcycle)) {
new f = 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..6: set_task(0.1,"delayed_team_change",players[i])
case 7..14: set_task(0.2,"delayed_team_change",players[i])
case 15..22: set_task(0.3,"delayed_team_change",players[i])
case 23..31: set_task(0.4,"delayed_team_change",players[i])
}
}
set_task(1.0,"SendNotification")
}
public delayed_team_change(id) {
switch(cs_get_user_team(id)) {
case CS_TEAM_T: cs_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 randomNum1, randomNum2, randomNum3;
new mapname[32];
new szData[32],txtlen;
new found = -1;
get_mapname(mapname,31)
for(new line; line<maxlines; line++) {
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[i],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, _max, exception1, exception2 = -1, exception3 = -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(szMod, 9)
if (!equal(szMod, "zp"))
{
message_begin(MSG_ALL, SVC_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[], {Float, Sql, Resul,_}:...) {
new msg[191], players[32], count = 1;
static len;
len = formatex(msg, charsmax(msg), "^x01" );
vformat(msg[len], charsmax(msg) - len, string, 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();
}
}
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.