takımının oyuncusuna sadece bomba hasar versin ve...

Konu

#1
selamlar takım arkadaşımız sadece bombadan hasar alsın ve EĞER YANLIŞLIKLA TAKIM ARKADAŞINI BOMBAYLA ÖLDÜRÜRSE ROUND BOYU DONUP KALSIN yani ateş falan edemesin sadece etrafa baksın.Yazı olursa iyi olur.
#2
PHP Kod:
#pragma semicolon 1

#include <amxmodx>
#include <reapi>

new bool:freezed[MAX_CLIENTS+1];

new const 
tag[] = "webailesi";

public 
plugin_init() 
{
    register_plugin("BombaKillFreeze""0.1""KayraLynch");
    RegisterHookChain(RG_CBasePlayer_Killed"CBasePlayer_Killed_Post", .post true);
    RegisterHookChain(RG_CBasePlayer_TakeDamage"CBasePlayer_TakeDamage_Pre", .post false);
    RegisterHookChain(RG_CSGameRules_RestartRound"CSGameRules_RestartRound_Pre", .post false);
}

public 
CBasePlayer_Killed_Post(const pVictimpAttackeriGib
{
    if(!
is_user_connected(pAttacker) || pVictim == pAttacker
    {
        return;
    }
    if(
get_member(pAttackerm_iTeam) == get_member(pVictimm_iTeam) && get_member(pVictimm_bKilledByGrenade)) 
    {
        client_print_color(0,0,"^1[^3%s^1] ^1%n ^4Adli Oyuncu ^1%n ^4Adli Takim Arkadasini Bombayla Oldurdugu Icin Donduruldu ^1!",tag,pAttacker,pVictim);
        new flags get_entvar(pAttackervar_flags);
        if(~flags FL_FROZEN)
        {
            set_entvar(pAttackervar_flagsflags FL_FROZEN);
            freezed[pAttacker] = true;
        }
    }
}

public 
CBasePlayer_TakeDamage_Pre(const pVictimpInflictorpAttackerFloat:flDamagebitsDamageType
{
    if(!is_user_connected(pAttacker) || !rg_is_player_can_takedamage(pVictimpAttacker) || pVictim == pAttacker
    {
        return;
    }
    if(get_member(pAttackerm_iTeam) == get_member(pVictimm_iTeam) && bitsDamageType != DMG_GRENADE)
    {
        SetHookChainArg(4ATYPE_FLOAT0.0);
    }
}

public 
CSGameRules_RestartRound_Pre() 
{
    for(new 
1<= MaxClientsi++) 
    {
        new flags get_entvar(ivar_flags);
        if(flags FL_FROZEN)
        {
            set_entvar(ivar_flagsflags & ~FL_FROZEN);
            freezed[i] = false;
        }
    }

Not : mp_friendlyfire cvarını 1 yapın.
Discord: Lynchk | Steam: Tıkla
#3
(25-07-2021, 13:21)orucoglukayra Adlı Kullanıcıdan Alıntı:
PHP Kod:
#pragma semicolon 1

#include <amxmodx>
#include <reapi>

new bool:freezed[MAX_CLIENTS+1];

new const 
tag[] = "webailesi";

public 
plugin_init() 
{
    register_plugin("BombaKillFreeze""0.1""KayraLynch");
    RegisterHookChain(RG_CBasePlayer_Killed"CBasePlayer_Killed_Post", .post true);
    RegisterHookChain(RG_CBasePlayer_TakeDamage"CBasePlayer_TakeDamage_Pre", .post false);
    RegisterHookChain(RG_CSGameRules_RestartRound"CSGameRules_RestartRound_Pre", .post false);
}

public 
CBasePlayer_Killed_Post(const pVictimpAttackeriGib
{
    if(!
is_user_connected(pAttacker) || pVictim == pAttacker
    {
        return;
    }
    if(
get_member(pAttackerm_iTeam) == get_member(pVictimm_iTeam) && get_member(pVictimm_bKilledByGrenade)) 
    {
        client_print_color(0,0,"^1[^3%s^1] ^1%n ^4Adli Oyuncu ^1%n ^4Adli Takim Arkadasini Bombayla Oldurdugu Icin Donduruldu ^1!",tag,pAttacker,pVictim);
        new flags get_entvar(pAttackervar_flags);
        if(~flags FL_FROZEN)
        {
            set_entvar(pAttackervar_flagsflags FL_FROZEN);
            freezed[pAttacker] = true;
        }
    }
}

public 
CBasePlayer_TakeDamage_Pre(const pVictimpInflictorpAttackerFloat:flDamagebitsDamageType
{
    if(!is_user_connected(pAttacker) || !rg_is_player_can_takedamage(pVictimpAttacker) || pVictim == pAttacker
    {
        return;
    }
    if(get_member(pAttackerm_iTeam) == get_member(pVictimm_iTeam) && bitsDamageType != DMG_GRENADE)
    {
        SetHookChainArg(4ATYPE_FLOAT0.0);
    }
}

public 
CSGameRules_RestartRound_Pre() 
{
    for(new 
1<= MaxClientsi++) 
    {
        new flags get_entvar(ivar_flags);
        if(flags FL_FROZEN)
        {
            set_entvar(ivar_flagsflags & ~FL_FROZEN);
            freezed[i] = false;
        }
    }

Not : mp_friendlyfire cvarını 1 yapın.
teşekkürler fakat silahla sıkınca altta yazı çıkıyor onu kapatabilir misiniz ve ölen takım arkadaşına şöyle sorsun "takım arkadaşın seni bilerek mi öldürdü? evet derse freezlencek hayır derse freezlenmicek yapabilir misin?
#4
Eklentiyi 0' dan yazdım, biraz aceleyle yazdım, hatalar olabilir.
PHP Kod:
#pragma semicolon 1

#include <amxmodx>
#include <reapi>

new const sayTag[] = "wA";

new 
bool:freezelendi[MAX_CLIENTS+1];

public 
plugin_init() 
{
    
register_plugin("BombaKillFreeze""0.1""suriyelikene");
    
RegisterHookChain(RG_CBasePlayer_Killed"@PlayerKill", .post=true);
    
RegisterHookChain(RG_CSGameRules_RestartRound"@rStart", .post=false);
}
@
rStart(){
    for(new 
iPlayer 1iPlayer <= MaxClientsiPlayer++) {
        if(
is_user_alive(iPlayer) && is_user_connected(iPlayer) && freezelendi[iPlayer])
        @
oyuncucoz(iPlayer);
        
freezelendi[iPlayer]=false;
    }
}
@
PlayerKill(const victim, const attacker){
    if(
victim == attacker) return;
    if(!
is_user_connected(attacker) || !is_user_connected(victim)) return;
    if(
get_user_weapon(attacker) != CSW_HEGRENADE) return;
    
    if(
get_member(attackerm_iTeam) == get_member(victimm_iTeam) && get_member(victimm_bKilledByGrenade)) 
    {
        @
soru(attacker);
    }
}
@
soru(const iPlayer){
    new 
Menu menu_create(fmt("\wTakim Arkadasini \yBombayla Bilerek Mi \rOldurdun ??"), "@soru_");
    
menu_additem(Menu,"\rEvet \wBilerek \dÖldürdüm","1");
    
menu_additem(Menu,"\yHayır \wBilerek \dÖldürmedim","2");
    
menu_setprop(MenuMPROP_EXITNAME,"\wKapat");menu_display(iPlayerMenu);
}
@
soru_(const iPlayer,const iMenu, const iItem) {
    if(
iItem == MENU_EXIT ) { menu_destroy(iMenu);return PLUGIN_HANDLED; }
    new 
iData[6], iL_Key;
    
menu_item_getinfo(iMenuiItem_iDatacharsmax(iData));
    
iL_Key str_to_num(iData);
    switch(
iL_Key) {
        case 
1: {
            @
oyuncudondur(iPlayer);
            
freezelendi[iPlayer]=true;
            
client_print_color(0,0,"^1[^3%s^1] ^1%n ^4adli oyuncu ^4takim arkadasini bombayla oldurdugu icin donduruldu",sayTag,iPlayer);
            
client_print_color(iPlayer,iPlayer,"^1[^3%s^1]^4 Bir sonraki round freezen kalkacak",sayTag);
        }
        case 
2: {
            
client_print_color(iPlayer,iPlayer,"^1[^3%s^1] ^4Bir daha ki sefere dikkat et ^3:) ^1!",sayTag);
        }
    }
    
menu_destroy(iMenu);return PLUGIN_HANDLED;
}
@
oyuncudondur(const iPlayer){
    new 
flags=get_entvar(iPlayervar_flags);
    if(~
flags FL_FROZEN) {
        
set_entvar(iPlayervar_flagsflags FL_FROZEN);
    }
}
@
oyuncucoz(const iPlayer){
    new 
flags=get_entvar(iPlayervar_flags);
    if(
flags FL_FROZEN){
        
set_entvar(iPlayervar_flagsflags & ~FL_FROZEN);
    }

Oyuncu eğer menüden evet bilerek öldürdüm derse, bir sonraki rounda kadar freezeli kalacaktır.
#5
(25-07-2021, 23:36)suriyelikene Adlı Kullanıcıdan Alıntı: Eklentiyi 0' dan yazdım, biraz aceleyle yazdım, hatalar olabilir.
PHP Kod:
#pragma semicolon 1

#include <amxmodx>
#include <reapi>

new const sayTag[] = "wA";

new 
bool:freezelendi[MAX_CLIENTS+1];

public 
plugin_init() 
{
    
register_plugin("BombaKillFreeze""0.1""suriyelikene");
    
RegisterHookChain(RG_CBasePlayer_Killed"@PlayerKill", .post=true);
    
RegisterHookChain(RG_CSGameRules_RestartRound"@rStart", .post=false);
}
@
rStart(){
    for(new 
iPlayer 1iPlayer <= MaxClientsiPlayer++) {
        if(
is_user_alive(iPlayer) && is_user_connected(iPlayer) && freezelendi[iPlayer])
        @
oyuncucoz(iPlayer);
        
freezelendi[iPlayer]=false;
    }
}
@
PlayerKill(const victim, const attacker){
    if(
victim == attacker) return;
    if(!
is_user_connected(attacker) || !is_user_connected(victim)) return;
    if(
get_user_weapon(attacker) != CSW_HEGRENADE) return;
    
    if(
get_member(attackerm_iTeam) == get_member(victimm_iTeam) && get_member(victimm_bKilledByGrenade)) 
    {
        @
soru(attacker);
    }
}
@
soru(const iPlayer){
    new 
Menu menu_create(fmt("\wTakim Arkadasini \yBombayla Bilerek Mi \rOldurdun ??"), "@soru_");
    
menu_additem(Menu,"\rEvet \wBilerek \dÖldürdüm","1");
    
menu_additem(Menu,"\yHayır \wBilerek \dÖldürmedim","2");
    
menu_setprop(MenuMPROP_EXITNAME,"\wKapat");menu_display(iPlayerMenu);
}
@
soru_(const iPlayer,const iMenu, const iItem) {
    if(
iItem == MENU_EXIT ) { menu_destroy(iMenu);return PLUGIN_HANDLED; }
    new 
iData[6], iL_Key;
    
menu_item_getinfo(iMenuiItem_iDatacharsmax(iData));
    
iL_Key str_to_num(iData);
    switch(
iL_Key) {
        case 
1: {
            @
oyuncudondur(iPlayer);
            
freezelendi[iPlayer]=true;
            
client_print_color(0,0,"^1[^3%s^1] ^1%n ^4adli oyuncu ^4takim arkadasini bombayla oldurdugu icin donduruldu",sayTag,iPlayer);
            
client_print_color(iPlayer,iPlayer,"^1[^3%s^1]^4 Bir sonraki round freezen kalkacak",sayTag);
        }
        case 
2: {
            
client_print_color(iPlayer,iPlayer,"^1[^3%s^1] ^4Bir daha ki sefere dikkat et ^3:) ^1!",sayTag);
        }
    }
    
menu_destroy(iMenu);return PLUGIN_HANDLED;
}
@
oyuncudondur(const iPlayer){
    new 
flags=get_entvar(iPlayervar_flags);
    if(~
flags FL_FROZEN) {
        
set_entvar(iPlayervar_flagsflags FL_FROZEN);
    }
}
@
oyuncucoz(const iPlayer){
    new 
flags=get_entvar(iPlayervar_flags);
    if(
flags FL_FROZEN){
        
set_entvar(iPlayervar_flagsflags & ~FL_FROZEN);
    }

Oyuncu eğer menüden evet bilerek öldürdüm derse, bir sonraki rounda kadar freezeli kalacaktır.
suriyelikene öldürene değil ölene soracak bunu?
#6
(25-07-2021, 23:41)Savunucu Adlı Kullanıcıdan Alıntı:
(25-07-2021, 23:36)suriyelikene Adlı Kullanıcıdan Alıntı: Eklentiyi 0' dan yazdım, biraz aceleyle yazdım, hatalar olabilir.
PHP Kod:
#pragma semicolon 1

#include <amxmodx>
#include <reapi>

new const sayTag[] = "wA";

new 
bool:freezelendi[MAX_CLIENTS+1];

public 
plugin_init() 
{
    
register_plugin("BombaKillFreeze""0.1""suriyelikene");
    
RegisterHookChain(RG_CBasePlayer_Killed"@PlayerKill", .post=true);
    
RegisterHookChain(RG_CSGameRules_RestartRound"@rStart", .post=false);
}
@
rStart(){
    for(new 
iPlayer 1iPlayer <= MaxClientsiPlayer++) {
        if(
is_user_alive(iPlayer) && is_user_connected(iPlayer) && freezelendi[iPlayer])
        @
oyuncucoz(iPlayer);
        
freezelendi[iPlayer]=false;
    }
}
@
PlayerKill(const victim, const attacker){
    if(
victim == attacker) return;
    if(!
is_user_connected(attacker) || !is_user_connected(victim)) return;
    if(
get_user_weapon(attacker) != CSW_HEGRENADE) return;
    
    if(
get_member(attackerm_iTeam) == get_member(victimm_iTeam) && get_member(victimm_bKilledByGrenade)) 
    {
        @
soru(attacker);
    }
}
@
soru(const iPlayer){
    new 
Menu menu_create(fmt("\wTakim Arkadasini \yBombayla Bilerek Mi \rOldurdun ??"), "@soru_");
    
menu_additem(Menu,"\rEvet \wBilerek \dÖldürdüm","1");
    
menu_additem(Menu,"\yHayır \wBilerek \dÖldürmedim","2");
    
menu_setprop(MenuMPROP_EXITNAME,"\wKapat");menu_display(iPlayerMenu);
}
@
soru_(const iPlayer,const iMenu, const iItem) {
    if(
iItem == MENU_EXIT ) { menu_destroy(iMenu);return PLUGIN_HANDLED; }
    new 
iData[6], iL_Key;
    
menu_item_getinfo(iMenuiItem_iDatacharsmax(iData));
    
iL_Key str_to_num(iData);
    switch(
iL_Key) {
        case 
1: {
            @
oyuncudondur(iPlayer);
            
freezelendi[iPlayer]=true;
            
client_print_color(0,0,"^1[^3%s^1] ^1%n ^4adli oyuncu ^4takim arkadasini bombayla oldurdugu icin donduruldu",sayTag,iPlayer);
            
client_print_color(iPlayer,iPlayer,"^1[^3%s^1]^4 Bir sonraki round freezen kalkacak",sayTag);
        }
        case 
2: {
            
client_print_color(iPlayer,iPlayer,"^1[^3%s^1] ^4Bir daha ki sefere dikkat et ^3:) ^1!",sayTag);
        }
    }
    
menu_destroy(iMenu);return PLUGIN_HANDLED;
}
@
oyuncudondur(const iPlayer){
    new 
flags=get_entvar(iPlayervar_flags);
    if(~
flags FL_FROZEN) {
        
set_entvar(iPlayervar_flagsflags FL_FROZEN);
    }
}
@
oyuncucoz(const iPlayer){
    new 
flags=get_entvar(iPlayervar_flags);
    if(
flags FL_FROZEN){
        
set_entvar(iPlayervar_flagsflags & ~FL_FROZEN);
    }

Oyuncu eğer menüden evet bilerek öldürdüm derse, bir sonraki rounda kadar freezeli kalacaktır.
suriyelikene öldürene değil ölene soracak bunu?
böyle olması daha mantıklı olur bence ölen takım arkadaşı kendi isteğiyle evet diyebilr ve adam boşuna freeze yer
#7
Yanlış anlamışım, şimdi bilgisiyar başından kalktım, yarın müsait olunca ilgileneceğim.
#8
(25-07-2021, 23:43)Beast Adlı Kullanıcıdan Alıntı:
(25-07-2021, 23:41)Savunucu Adlı Kullanıcıdan Alıntı: suriyelikene öldürene değil ölene soracak bunu?
böyle olması daha mantıklı olur bence ölen takım arkadaşı kendi isteğiyle evet diyebilr ve adam boşuna freeze yer
kim kendinin freeze yemesini ister ki ?
#9
Bende kısmı anlamadım ama yine de yapmıştım Çok güldüm
Yarın müsait olunca ilgileneceğim.
#10
PHP Kod:
#pragma semicolon 1

#include <amxmodx>
#include <reapi>

new bool:freezed[MAX_CLIENTS+1],killer[MAX_CLIENTS+1];

new const 
tag[] = "webailesi";

public 
plugin_init() 
{
    register_plugin("BombaKillFreeze""0.1""KayraLynch");
    RegisterHookChain(RG_CBasePlayer_Killed"CBasePlayer_Killed_Post", .post true);
    RegisterHookChain(RG_CBasePlayer_TakeDamage"CBasePlayer_TakeDamage_Pre", .post false);
    RegisterHookChain(RG_CSGameRules_RestartRound"CSGameRules_RestartRound_Pre", .post false);
}

public 
CBasePlayer_Killed_Post(const pVictimpAttackeriGib
{
    if(!is_user_connected(pAttacker) || pVictim == pAttacker
    {
        return;
    }
    if(get_member(pAttackerm_iTeam) == get_member(pVictimm_iTeam) && get_member(pVictimm_bKilledByGrenade)) 
    {
        
killer[pVictim] = pAttacker;
        
cevapla(pVictim);
    }
}

public 
cevapla(id)
{
    new 
menu menu_create(fmt("\y%s \d- \wTakim Arkadasin Seni Bilerek Mi Oldurdu ?"tag), "cevapla2");

    
menu_additem(menufmt("\y%s \d- \wEvet Bilerek Oldurdu"tag));
    
menu_additem(menufmt("\y%s \d- \wHayir Bilerek Oldurmedi"tag));

    
menu_setprop(menuMPROP_EXITNAME,fmt"\y%s \d- \wCikis"tag));
    
menu_setprop(menu,MPROP_NUMBER_COLOR,"\d");
    
menu_display(idmenu);
}

public 
cevapla2(const id, const menu, const item) {

    if(item == MENU_EXIT
    {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
    switch(item
    {
        case 0:
        {
            new 
flags get_entvar(killer[id], var_flags);
            if(~
flags FL_FROZEN
            {
                
set_entvar(killer[id], var_flagsflags FL_FROZEN);
                
client_print_color(0,0,"^1[^3%s^1] ^1%n ^4Adli Oyuncu Takim Arkadasini Bombayla Oldurdugu Icin Donduruldu ^1!",tag,killer[id]);
            }
        }
        case 
1:
        {
            
menu_destroy(menu);
        }
    }

    menu_destroy(menu);
    return PLUGIN_HANDLED;
}

public 
CBasePlayer_TakeDamage_Pre(const pVictimpInflictorpAttackerFloat:flDamagebitsDamageType
{
    if(!is_user_connected(pAttacker) || !rg_is_player_can_takedamage(pVictimpAttacker) || pVictim == pAttacker
    {
        return;
    }
    if(get_member(pAttackerm_iTeam) == get_member(pVictimm_iTeam) && bitsDamageType != DMG_GRENADE)
    {
        
SetHookChainArg(4ATYPE_FLOAT0.0);
    }
}

public 
CSGameRules_RestartRound_Pre() 
{
    for(new 1<= MaxClientsi++) 
    {
        new flags get_entvar(ivar_flags);
        if(flags FL_FROZEN)
        {
            set_entvar(ivar_flagsflags & ~FL_FROZEN);
            freezed[i] = false;
        }
    }

Discord: Lynchk | Steam: Tıkla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task
Kayıt Ol
Discord Adresimize Katılın