Discord sunucumuz açılmıştır, hepinizi bekleriz

https://discord.gg/43gGDQe6tS

İSTEK Takım Değiştirme

Eklenti sorunlarınız ve özel eklenti istekleriniz

Moderatör: Moderatörler


Konu Sahibi
sinancalisci
Mesajlar: 35
Kayıt: Pzr Eki 11, 2020 11:04 pm

İSTEK Takım Değiştirme

Mesaj gönderen sinancalisci »

Merhaba DM bir mapta 20 dakika oynandıktan sonra otomatik olarak takımlar yer değiştirsin istiyorum ve değişiklik olduktan sonra fragları sıfırlamaması gerek eklentiyi düzenleyebilirmisiniz?
Bu mesaja eklenen dosyaları görüntülemek için gerekli izinlere sahip değilsiniz.

Link:
Linklerini gizle
Linki Kopyala

afan1990
Mesajlar: 67
Kayıt: Çrş Ağu 26, 2020 1:49 pm
Konum: Makedonya/Üsküp

İSTEK Takım Değiştirme

Mesaj gönderen afan1990 »

round süresini 20 dk yaparsan 2.round başladığında takımlar değişecektir ben böyle bişey düşündüm başkası istediğin gibi bişey yapabilir bilemiyorum

Kod: Tümünü seç

#include <amxmodx>
#include <cstrike>

#define DEGISECEKROUND 2

new saydir=0;
new degisti=0;

public plugin_init() {
    register_plugin("Takim Degistirme", "1.0", "marKeL");

    register_event("TextMsg", "res", "a", "2=#Game_will_restart_in","2=#Game_Commencing");
    register_event("SendAudio", "tewin", "a", "2&%!MRAD_terwin");
    register_event("SendAudio", "ctwin", "a", "2&%!MRAD_ctwin");
    register_event("SendAudio", "berabere", "a", "2&%!MRAD_rounddraw");
}

public res()
{
    saydir=0;
    set_task(1.0,"sorgula");
}

public tewin()
{
    saydir++;
    set_task(1.0,"sorgula");
}

public ctwin()
{
    saydir++;
    set_task(1.0,"sorgula");
}

public berabere()
{
    saydir++;
    set_task(1.0,"sorgula");
}

publi

Link:
Linklerini gizle
Linki Kopyala

afan1990
Mesajlar: 67
Kayıt: Çrş Ağu 26, 2020 1:49 pm
Konum: Makedonya/Üsküp

İSTEK Takım Değiştirme

Mesaj gönderen afan1990 »

ilkini tam atmamışım kb buyur :D

Kod: Tümünü seç

#include <amxmodx>
#include <cstrike>

#define DEGISECEKROUND 2

new saydir=0;
new degisti=0;

public plugin_init() {
    register_plugin("Round Takim Degistirme", "1.1", "marKeL");

    register_event("TextMsg", "res", "a", "2=#Game_will_restart_in","2=#Game_Commencing");
    register_event("SendAudio", "tewin", "a", "2&%!MRAD_terwin");
    register_event("SendAudio", "ctwin", "a", "2&%!MRAD_ctwin");
    register_event("SendAudio", "berabere", "a", "2&%!MRAD_rounddraw");
}

public res()
{
    saydir=0;
    set_task(1.0,"sorgula");
}

public tewin()
{
    saydir++;
    set_task(1.0,"sorgula");
}

public ctwin()
{
    saydir++;
    set_task(1.0,"sorgula");
}

public berabere()
{
    saydir++;
    set_task(1.0,"sorgula");
}

public sorgula(){
    if(saydir >= DEGISECEKROUND && degisti==0){
        set_hudmessage(0,255,0,-1.0,0.0,0,12.0,5.0);
        show_hudmessage(0,"Takimlar Yer Degistiriyor.");
        new players[32], inum, id;
        get_players(players, inum);
        for(new i;i<inum;i++){
            id = players[i]
            if(get_user_team(id) == 2){
                cs_set_user_team(id, CS_TEAM_T );
            }
            else if(get_user_team(id) == 1){
                cs_set_user_team(id, CS_TEAM_CT );
            }
        }
        server_cmd("sv_restart 1");
        degisti = 1;
    }
}

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

bestcore
Mesajlar: 1625
Kayıt: Cmt Eyl 30, 2017 12:44 pm
Konum: Samsun

İSTEK Takım Değiştirme

Mesaj gönderen bestcore »

afan1990 yazdı: Pzr May 16, 2021 10:28 pm ilkini tam atmamışım kb buyur :D
Cstrike değilde bu olayı reapi kütüphanesiyle kolaylıkla yapabilirsiniz. Demek istediğim 4 tane register oluşturacağına "RG_RoundEnd" ile tek registerde bitirebilirsiniz.
Örneklerini aşşağıya bırakıyorum;

Kod: Tümünü seç

#include <reapi> // Reapi kütüphanesi kurulu olmalıdır.

RegisterHookChain(RG_RoundEnd, "RG_RoundEnd_Post", .post = true); // Post true olmalıdır.

public RG_RoundEnd_Post(WinStatus:status, ScenarioEventEndRound:event, Float:tmDelay)
{
	switch(status)
	{
		case WINSTATUS_CTS:
		{
			// Roundu ct kazandiysa.
		}
		case WINSTATUS_TERRORIST:
		{
			// Roundu te kazandiysa.
		}
		case WINSTATUS_DRAW:
		{
			// Round berabere bittiyse.
		}
	}
}
* Ekstra olarak sunucuda bulunan bir cvar için "set_pcvar_num" kullanmanız daha sağlıklı olur.

Kod: Tümünü seç

set_pcvar_num(get_cvar_pointer("sv_restart"), 1);

Link:
Linklerini gizle
Linki Kopyala

afan1990
Mesajlar: 67
Kayıt: Çrş Ağu 26, 2020 1:49 pm
Konum: Makedonya/Üsküp

İSTEK Takım Değiştirme

Mesaj gönderen afan1990 »

bestcore yazdı: Pzr May 16, 2021 10:45 pm
afan1990 yazdı: Pzr May 16, 2021 10:28 pm ilkini tam atmamışım kb buyur :D
Cstrike değilde bu olayı reapi kütüphanesiyle kolaylıkla yapabilirsiniz. Demek istediğim 4 tane register oluşturacağına "RG_RoundEnd" ile tek registerde bitirebilirsiniz.
Örneklerini aşşağıya bırakıyorum;

Kod: Tümünü seç

#include <reapi> // Reapi kütüphanesi kurulu olmalıdır.

RegisterHookChain(RG_RoundEnd, "RG_RoundEnd_Post", .post = true); // Post true olmalıdır.

public RG_RoundEnd_Post(WinStatus:status, ScenarioEventEndRound:event, Float:tmDelay)
{
	switch(status)
	{
		case WINSTATUS_CTS:
		{
			// Roundu ct kazandiysa.
		}
		case WINSTATUS_TERRORIST:
		{
			// Roundu te kazandiysa.
		}
		case WINSTATUS_DRAW:
		{
			// Round berabere bittiyse.
		}
	}
}
* Ekstra olarak sunucuda bulunan bir cvar için "set_pcvar_num" kullanmanız daha sağlıklı olur.

Kod: Tümünü seç

set_pcvar_num(get_cvar_pointer("sv_restart"), 1);
önerilerin için teşekkürler,yeni başladığım için önerilerini dikkate alacağım :D

Link:
Linklerini gizle
Linki Kopyala
Cevapla