⭐🚀 TkyNET | Blacklist ve Profesyonel DDoS Korumalı TeamSpeak 3 Sunucuları 🚀⭐
Sponsor Görsel
🇹🇷 TR Lokasyon | 🛡️ Gelişmiş DDoS Koruması | ⚡ Düşük Ping | 🎧 Kesintisiz TS3 | Hostlar
Sponsor Görsel 2
SponsorSponsor

Konu

#1
Merhabalar, Oyt'de çalışacak duvardan mermi geçmesini engelleme plugini istiyorum elimde bir plugin var lakin oyt de çalışmıyor mağlesef lakin diyer sunucularda çalışıyor yüklerken hata da vermiyor ama genede mermilerin geçmesini engellemiyor bu konuda yardımcı olacak arkadaşa şimdiden teşekkür ediyorum.

oyt de çalışmayan diyer sunucularda çalışan duvardan mermi geçmesini engelleyen plugin kodu;

Kod:
#include <amxmodx>
#include <fakemeta>

new normalTrace[33], lastTrace[33], cvEnabled, weapon, dummy;

// plugin load
public plugin_init()
{
    register_plugin("No Walls","0.13","Avalanche");

    register_cvar("nowalls_version","0.13",FCVAR_SERVER);
    cvEnabled = register_cvar("nowalls_enabled","1");

    register_event("ResetHUD","event_resethud","b");
    register_clcmd("fullupdate","cmd_fullupdate");

    register_forward(FM_TraceLine,"fw_traceline");
    register_forward(FM_PlayerPostThink,"fw_playerpostthink");
}

// reset normal trace id on join or leave
public client_connect(id)
{
    normalTrace[id] = 0;
}

public client_disconnected(id)
{
    normalTrace[id] = 0;
}

// player spawns, and some other such things
public event_resethud(id)
{
    lastTrace[id] = 0;
}

// block forced resethud call
public cmd_fullupdate(id)
{
    return PLUGIN_HANDLED;
}

// traceline hook, meat and bones of the entire plugin
public fw_traceline(Float:vecStart[3],Float:vecEnd[3],ignoreM,id,ptr) // pentToSkip == id, for clarity
{
    if(!is_user_connected(id))
        return FMRES_IGNORED;

    // grab normal trace
    if(!normalTrace[id])
    {
        normalTrace[id] = ptr;
        return FMRES_IGNORED;
    }

    // ignore normal trace
    else if(ptr == normalTrace[id])
        return FMRES_IGNORED;

    // no functionality
    if(!get_pcvar_num(cvEnabled))
        return FMRES_IGNORED;

    // not a player entity, or player is dead
    if(!is_user_alive(id))
        return FMRES_IGNORED;

    // not shooting anything
    if(!(pev(id,pev_button) & IN_ATTACK))
        return FMRES_IGNORED;

    weapon = get_user_weapon(id,dummy,dummy);

    // using a shotgun, expect multiple tracelines
    if(weapon == CSW_M3 || weapon == CSW_XM1014)
        return FMRES_IGNORED;

    // this is a second traceline, for shooting through walls
    if(ptr == lastTrace[id])
    {
        // values sure to throw off any traceline
        set_tr(TR_vecEndPos,Float:{4096.0,4096.0,4096.0});
        set_tr(TR_AllSolid,1);
        set_tr(TR_pHit,0);
        set_tr(TR_iHitgroup,0);
        set_tr(TR_flFraction,1.0);

        return FMRES_SUPERCEDE;
    }

    // remeber traceline index for next time
    lastTrace[id] = ptr;

    return FMRES_IGNORED;
}

// finished client calculations, reset our traceline index
public fw_playerpostthink(id)
{
    lastTrace[id] = 0;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par }
*/

#2
.........
PHP Kod:
#pragma semicolon 1
#include <amxmodx>
#include <fakemeta>
new nwatch[33],lastmark[33],scontrol;
public 
plugin_init(){
    
register_plugin
    
("Mermi Gecirmeme","0.14","Avalanche-Aconyonn");

    
scontrol register_cvar("scontrol","1");
    
register_clcmd("gecir","gecirx");
    
register_event("ResetHUD","eResetHUD","b");
    
register_forward(FM_TraceLine,"fTraceLine");
    
register_forward(FM_PlayerPostThink,"fPlayerPostThink");
}
public 
client_connect(id){
    
nwatch[id] = 0;
}
#if AMXX_VERSION_NUM < 183
public client_disconnect(id){
    
nwatch[id] = 0;
}
#else
public client_disconnected(id){
    
nwatch[id] = 0;
}
#endif
public eResetHUD(id){
    
lastmark[id] = 0;
}
public 
gecirx(id){
    return 
PLUGIN_HANDLED;
}
public 
fTraceLine(id,control){
    new 
doll;
    if(!
is_user_connected(id)){
        return 
FMRES_IGNORED;
    }
    if(!
nwatch[id]){
        
nwatch[id] = control;
        return 
FMRES_IGNORED;
    }
    else if(
control == nwatch[id]){
        return 
FMRES_IGNORED;
    }
    if(!
get_pcvar_num(scontrol)){
        return 
FMRES_IGNORED;
    }
    if(!
is_user_alive(id)){
        return 
FMRES_IGNORED;
    }
    if(!(
pev(id,pev_button) & IN_ATTACK)){
        return 
FMRES_IGNORED;
    }
    if(
get_user_weapon(id,doll,doll) == CSW_M3 || get_user_weapon(id,doll,doll) == CSW_XM1014){
        return 
FMRES_IGNORED;
    }
    if(
control == lastmark[id]){
        
set_tr(TR_vecEndPos,Float:{4096.0,4096.0,4096.0});
        
set_tr(TR_AllSolid,1);
        
set_tr(TR_pHit,0);
        
set_tr(TR_iHitgroup,0);
        
set_tr(TR_flFraction,1.0);
        return 
FMRES_SUPERCEDE;
    }
    
lastmark[id] = control;
    return 
FMRES_IGNORED;
}
public 
fPlayerPostThink(id){
    
lastmark[id] = 0;

sola dosis facit venenum..
#3
Kontrol edip haber vericem teşekkür ediyorum hocam
#4
Konunuz "Çözülmüş İsteklere" taşınmıştır.
Linksta

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task