⭐🚀 TkyNET | Blacklist ve Profesyonel DDoS Korumalı TeamSpeak 3 Sunucuları 🚀⭐
Sponsor Görsel
Server ip : 95.173.173.2 || Ts3 : LCAPRO www.lcapro.net
Sponsor Görsel 2
SponsorSponsor

Yüksek Ping Işınlayıcı

Konu

#1
Merhaba,
Bu eklentiyi neden istiyorum ?
Surf & Bhop & Kz sunucularında yüksek ping ile zamanlayıcının geç başlaması açığı kullanılıyor. Bu açık, ani ping artışlarından kaynaklanıyor. Ani ping artışı olduğu zaman, zamanlayıcı geç başlıyor ve kolay yoldan rekor kırıyorlar. Bunun için araştırma yaptım ancak istediğim gibi bir eklenti bulamadım. 
İsteğe Gelirsek;
Belli bir ping'in üstüne çıkan oyuncu pingi çıkmadan önceki konumu baz alınıp oraya ışınlanmasını (teleport) istiyorum. Örneğin bir futbol sahası düşünün, orta sahayı geçince zamanlayıcı başlıyor. Oyuncu orta sahadan kaleye doğru koşmaya başladı ve ani pingi çıkmasıyla zamanlayıcı geç başladı istemeden bug yaptı, eklenti bu ping loss choke artışını anlayıp tekrardan eski konumu olan orta sahaya ışınlanmasını istiyorum. (Eklenti oyuncunun eski konumunu 3-5 saniyede bir kontrol ederse daha iyi bir sonuç alabiliriz.)
Destekleriniz için şimdiden teşekkürler,
İyi Forumlar,
#2
PHP Kod:
#pragma semicolon 1

#define DEBUG

#define PLUGIN_AUTHOR ""
#define PLUGIN_VERSION "0.00"

#include < sourcemod >
#include < sdktools >
#include < smlib >
#include < surftimer >

#pragma newdecls required

ConVar ping_timeping_difference;
float g_vecMAXPLAYERS ][ ], g_angleMAXPLAYERS ][ ];
Handle ping_timerMAXPLAYERS ];
int client_pingMAXPLAYERS ];
public 
Plugin myinfo 
{
    
name "",
    
author PLUGIN_AUTHOR,
    
description "",
    
version PLUGIN_VERSION,
    
url ""
};

public 
void OnPluginStart( )
{
    
HookEvent"player_spawn"EventPlayerSpawn );
    
ping_time CreateConVar"ping_time""5""Kaç saniyede 1 pingin kontrol edilceğini ayarlar" );
    
ping_difference CreateConVar"ping_difference""10""Maksimum ping farkini ayarlar" );
}
public 
void OnClientDisconnectint client )
{
    if( 
ping_timerclient ] != null delete ping_timerclient ];
}
public 
Action EventPlayerSpawnEvent event, const char[ ] namebool dontbroadcast )
{
    
int client GetClientOfUserIdevent.GetInt"userid" ) );
    if( 
ping_timerclient ] != null delete ping_timerclient ];
    if( 
IsClientInGameclient ) )
    {
        
GetClientAbsOriginclientg_vecclient ] );
        
GetClientEyeAnglesclientg_angleclient ] );
        
client_pingclient ] = Client_GetFakePingclient );
        
ping_timerclient ] = CreateTimerGetConVarFloatping_time ), CheckPingGetClientUserIdclient ), TIMER_REPEAT );
    }
}
public 
Action CheckPingHandle timerint userid )
{
    
int client GetClientOfUserIduserid );
    if( !
IsValidClientclient ) ) return Plugin_Stop;
    if( 
IsClientInGameclient ) && IsPlayerAliveclient ) )
    {
        if( 
Math_AbsClient_GetFakePingclient ) - client_pingclient ] ) >=  GetConVarIntping_difference ) )
        {
            
surftimer_SafeTeleportclientg_vecclient ], g_angleclient ], NULL_VECTOR );
            
client_pingclient ] = Client_GetFakePingclient );
        }
        else
        {
            
GetClientAbsOriginclientg_vecclient ] );
            
GetClientEyeAnglesclientg_angleclient ] );
            
client_pingclient ] = Client_GetFakePingclient );
        }
    }
    return 
Plugin_Continue;
}
stock bool IsValidClientint client )
{
    if( 
<= client <= MaxClients )
    {
        return 
true;
    }
    else
    {
        return 
false;
    }

Denemedim hatası varsa söylersin.
.smxping.smx(Dosya Boyutu: 7,06 KB | İndirme Sayısı: 0)
Son Düzenleme: 05-08-2020, 22:21, Düzenleyen: Anıl Can.

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da