Oyun Dedektörü Oyun Eklentileri SourcePawn Eklentiler Eklenti Otomatik Clan Tag Değiştirme Eklentisi
Otomatik Clan Tag Değiştirme Eklentisi
akosetr
Otomatik Clan Tag Değiştirme Eklentisi
3
115
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Konuyu Okuyanlar:1 Ziyaretçi
Şuan Offine!
Şuan Offine!
akosetr Özel Üye
**
Özel Üye
  • Konular6
  • Mesajlar13
  • Rep puanı 0
Round başından itibaren 50 saniyelik timer ile Sunucuda ki tüm kişilerin (istediğiniz , istemediğiniz tag gözetmeksizin) belirlediğiniz şekilde değişmesini sağlar : 

Düzenlemeniz gereken kısım : 
CS_SetClientClanTag(i,"LibertyJB"); 

PHP Kod :
#include <sourcemod>
#include <cstrike>
#include <sdktools>


#pragma tabsize 0


 
public Plugin myinfo =
{
    
name "Klan Tagı Otomatik Değiştirme",
    
author "akosetr",
    
description "İstenmeyen Klan Taglarını Otomatik Değiştirme",
    
version "1.0",
    
url "https://steamcommunity.com/id/akosetr"
}

public 
OnPluginStart() 
{

    
HookEvent("round_start"Round_Baslangic);
}


public 
Action:Round_Baslangic(Handle:event, const String:name[], bool:dontBroadcast
{
    
CreateTimer(50.0Degistir);
}

public 
Action:Degistir(Handle:timer)
{

for(new 
i=1i<=MaxClientsi++)
    {
        if(
IsClientConnected(i))
        {
            if(
IsClientInGame(i))
            {
                
                
         CS_SetClientClanTag(i,"LibertyJB");
                    }
                }
            }
        } 
Şuan Offine!
Şuan Offine!
ByDexter Yetkili
*****
Yetkili
  • Konular22
  • Mesajlar25
  • Rep puanı 1
Kodu güncel apiye taşıdım ve eğer kullanıcının tagı yoksa tag değiştirme yaptım.

PHP Kod :
#include <sourcemod>
#include <cstrike>
#include <multicolors>

#pragma semicolon 1
#pragma newdecls required

public Plugin myinfo 
{
    
name "Klan Tagı Otomatik Değiştirme"
    
author "akosetr, ByDexter"
    
description "İstenmeyen Klan Taglarını Otomatik Değiştirme"
    
version "1.1"
    
url "https://steamcommunity.com/id/akosetr"
}

public 
void OnPluginStart()
{
    
HookEvent("round_start"Event_Clantag);
    
HookEvent("round_end"Event_Clantag);
    
HookEvent("player_spawn"Event_Clantag);
    
HookEvent("player_death"Event_Clantag);
}


public 
Action Event_Clantag(Event event, const char[] namebool dontBroadcast)
{
    for(
int client 1client <= MaxClientsclient++)
    {
        if (
IsValidClient(client))
        {
            
char clanTag[16];
            
CS_GetClientClanTag(clientclanTag16);
            if (
StrEqual(clanTag"SonJeton"true))
            {
                
// Boş
            
}
            else
            {
                
CS_SetClientClanTag(client"SonJeton");
                
CPrintToChat(client"{lightred}[SonJeton] {default}Yasaklı etiket kullandığınızdan dolayı {green}etiketiniz değiştirildi!");
            }
        }
    }
}

stock bool IsValidClient(int client)
{
    if (
client || client MaxClients)
        return 
false;
    if (!
IsClientConnected(client))
        return 
false;
    if (
IsFakeClient(client))
        return 
false;
    return 
IsClientInGame(client);

[Resim: GmjwZ2.png]
Şuan Offine!
Şuan Offine!
akosetr Özel Üye
**
Özel Üye
  • Konular6
  • Mesajlar13
  • Rep puanı 0
Daha güzel olmuş , eline sağlık .
Şuan Offine!
Şuan Offine!
AshesBeneath Yönetici
*******
Yönetici
  • Konular14
  • Mesajlar16
  • Rep puanı 4
StrEqual fonksiyonu zaten boolean değer geri döndürüyor yani sadece en fazla 2 farklı senaryo olabilir:
Ya doğrudur (true) ya da yanlış (false)
Doğru olup olmadığını kontrol edip harici senaryoları else ile bağlamak yerine direk yanlış olup olmadığını kontrol etmen daha optimize yöntem olur. Aynı işi ne kadar az işlem yaparak halledersen o kadar verimli olur.
PHP Kod :
if (!StrEqual(clanTag"SonJeton"true))
{
    
CS_SetClientClanTag(client"SonJeton");
    
CPrintToChat(client"{lightred}[SonJeton] {default}Yasaklı etiket kullandığınızdan dolayı {green}etiketiniz değiştirildi!");


Ayrıca event'ler ile çalışırken, hook ettiğin event'lerin içinden veri çekme veya değiştirme yapmadığın sürece EventHookMode_PostNoCopy flag ekle çünkü varsayılanda SourceMod event hooklarken içindeki tüm bilgileri de çekmektedir ve bunları önbelleğinde kopyalamaktadır. Bu PostNoCopy flag'i bu süreci event için harici tutmaktadır.
Bu eklentide event sadece bir kontrol noktası niyetine kullanılmaktadır (Event olduğu an event ile doğrudan alakası olmayan başka şeyler yapılıyor) yani event içinden herhangi bir veri kullanılmamaktadır. (Kaynak: https://wiki.alliedmods.net/Events_(SourceMod_Scripting))
PHP Kod :
HookEvent("round_start"Event_ClantagEventHookMode_PostNoCopy);
HookEvent("round_end"Event_ClantagEventHookMode_PostNoCopy);
HookEvent("player_spawn"Event_ClantagEventHookMode_PostNoCopy);
HookEvent("player_death"Event_ClantagEventHookMode_PostNoCopy); 
See you beneath the ashes
Rockstar Social Club ID (GTA Online)
Steam 


Hızlı Menü: