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.
Konu
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 pVictim, pAttacker, iGib)
{
if(!is_user_connected(pAttacker) || pVictim == pAttacker)
{
return;
}
if(get_member(pAttacker, m_iTeam) == get_member(pVictim, m_iTeam) && get_member(pVictim, m_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(pAttacker, var_flags);
if(~flags & FL_FROZEN)
{
set_entvar(pAttacker, var_flags, flags | FL_FROZEN);
freezed[pAttacker] = true;
}
}
}
public CBasePlayer_TakeDamage_Pre(const pVictim, pInflictor, pAttacker, Float:flDamage, bitsDamageType)
{
if(!is_user_connected(pAttacker) || !rg_is_player_can_takedamage(pVictim, pAttacker) || pVictim == pAttacker)
{
return;
}
if(get_member(pAttacker, m_iTeam) == get_member(pVictim, m_iTeam) && bitsDamageType != DMG_GRENADE)
{
SetHookChainArg(4, ATYPE_FLOAT, 0.0);
}
}
public CSGameRules_RestartRound_Pre()
{
for(new i = 1; i <= MaxClients; i++)
{
new flags = get_entvar(i, var_flags);
if(flags & FL_FROZEN)
{
set_entvar(i, var_flags, flags & ~FL_FROZEN);
freezed[i] = false;
}
}
}
(25-07-2021, 13:21)orucoglukayra Adlı Kullanıcıdan Alıntı: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?Not : mp_friendlyfire cvarını 1 yapın.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 pVictim, pAttacker, iGib)
{
if(!is_user_connected(pAttacker) || pVictim == pAttacker)
{
return;
}
if(get_member(pAttacker, m_iTeam) == get_member(pVictim, m_iTeam) && get_member(pVictim, m_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(pAttacker, var_flags);
if(~flags & FL_FROZEN)
{
set_entvar(pAttacker, var_flags, flags | FL_FROZEN);
freezed[pAttacker] = true;
}
}
}
public CBasePlayer_TakeDamage_Pre(const pVictim, pInflictor, pAttacker, Float:flDamage, bitsDamageType)
{
if(!is_user_connected(pAttacker) || !rg_is_player_can_takedamage(pVictim, pAttacker) || pVictim == pAttacker)
{
return;
}
if(get_member(pAttacker, m_iTeam) == get_member(pVictim, m_iTeam) && bitsDamageType != DMG_GRENADE)
{
SetHookChainArg(4, ATYPE_FLOAT, 0.0);
}
}
public CSGameRules_RestartRound_Pre()
{
for(new i = 1; i <= MaxClients; i++)
{
new flags = get_entvar(i, var_flags);
if(flags & FL_FROZEN)
{
set_entvar(i, var_flags, flags & ~FL_FROZEN);
freezed[i] = false;
}
}
}
Eklentiyi 0' dan yazdım, biraz aceleyle yazdım, hatalar olabilir.
Oyuncu eğer menüden evet bilerek öldürdüm derse, bir sonraki rounda kadar freezeli kalacaktır.
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 = 1; iPlayer <= MaxClients; iPlayer++) {
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(attacker, m_iTeam) == get_member(victim, m_iTeam) && get_member(victim, m_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(Menu, MPROP_EXITNAME,"\wKapat");menu_display(iPlayer, Menu);
}
@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(iMenu, iItem, _, iData, charsmax(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(iPlayer, var_flags);
if(~flags & FL_FROZEN) {
set_entvar(iPlayer, var_flags, flags | FL_FROZEN);
}
}
@oyuncucoz(const iPlayer){
new flags=get_entvar(iPlayer, var_flags);
if(flags & FL_FROZEN){
set_entvar(iPlayer, var_flags, flags & ~FL_FROZEN);
}
}
(25-07-2021, 23:36)suriyelikene Adlı Kullanıcıdan Alıntı: Eklentiyi 0' dan yazdım, biraz aceleyle yazdım, hatalar olabilir.suriyelikene öldürene değil ölene soracak bunu?
Oyuncu eğer menüden evet bilerek öldürdüm derse, bir sonraki rounda kadar freezeli kalacaktır.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 = 1; iPlayer <= MaxClients; iPlayer++) {
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(attacker, m_iTeam) == get_member(victim, m_iTeam) && get_member(victim, m_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(Menu, MPROP_EXITNAME,"\wKapat");menu_display(iPlayer, Menu);
}
@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(iMenu, iItem, _, iData, charsmax(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(iPlayer, var_flags);
if(~flags & FL_FROZEN) {
set_entvar(iPlayer, var_flags, flags | FL_FROZEN);
}
}
@oyuncucoz(const iPlayer){
new flags=get_entvar(iPlayer, var_flags);
if(flags & FL_FROZEN){
set_entvar(iPlayer, var_flags, flags & ~FL_FROZEN);
}
}
(25-07-2021, 23:41)Savunucu Adlı Kullanıcıdan Alıntı:böyle olması daha mantıklı olur bence ölen takım arkadaşı kendi isteğiyle evet diyebilr ve adam boşuna freeze yer(25-07-2021, 23:36)suriyelikene Adlı Kullanıcıdan Alıntı: Eklentiyi 0' dan yazdım, biraz aceleyle yazdım, hatalar olabilir.suriyelikene öldürene değil ölene soracak bunu?
Oyuncu eğer menüden evet bilerek öldürdüm derse, bir sonraki rounda kadar freezeli kalacaktır.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 = 1; iPlayer <= MaxClients; iPlayer++) {
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(attacker, m_iTeam) == get_member(victim, m_iTeam) && get_member(victim, m_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(Menu, MPROP_EXITNAME,"\wKapat");menu_display(iPlayer, Menu);
}
@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(iMenu, iItem, _, iData, charsmax(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(iPlayer, var_flags);
if(~flags & FL_FROZEN) {
set_entvar(iPlayer, var_flags, flags | FL_FROZEN);
}
}
@oyuncucoz(const iPlayer){
new flags=get_entvar(iPlayer, var_flags);
if(flags & FL_FROZEN){
set_entvar(iPlayer, var_flags, flags & ~FL_FROZEN);
}
}
(25-07-2021, 23:43)Beast Adlı Kullanıcıdan Alıntı:kim kendinin freeze yemesini ister ki ?(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
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 pVictim, pAttacker, iGib)
{
if(!is_user_connected(pAttacker) || pVictim == pAttacker)
{
return;
}
if(get_member(pAttacker, m_iTeam) == get_member(pVictim, m_iTeam) && get_member(pVictim, m_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(menu, fmt("\y%s \d- \wEvet Bilerek Oldurdu", tag));
menu_additem(menu, fmt("\y%s \d- \wHayir Bilerek Oldurmedi", tag));
menu_setprop(menu, MPROP_EXITNAME,fmt( "\y%s \d- \wCikis", tag));
menu_setprop(menu,MPROP_NUMBER_COLOR,"\d");
menu_display(id, menu);
}
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_flags, flags | 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 pVictim, pInflictor, pAttacker, Float:flDamage, bitsDamageType)
{
if(!is_user_connected(pAttacker) || !rg_is_player_can_takedamage(pVictim, pAttacker) || pVictim == pAttacker)
{
return;
}
if(get_member(pAttacker, m_iTeam) == get_member(pVictim, m_iTeam) && bitsDamageType != DMG_GRENADE)
{
SetHookChainArg(4, ATYPE_FLOAT, 0.0);
}
}
public CSGameRules_RestartRound_Pre()
{
for(new i = 1; i <= MaxClients; i++)
{
new flags = get_entvar(i, var_flags);
if(flags & FL_FROZEN)
{
set_entvar(i, var_flags, flags & ~FL_FROZEN);
freezed[i] = false;
}
}
}
Benzer Konular
Yorum
2.119
Okunma
09-09-2023, 22:19
Yorum
4.434
Okunma
22-07-2023, 21:27
Yorum
3.927
Okunma
04-07-2023, 13:32
Yorum
4.076
Okunma
01-07-2023, 14:43
Yorum
6.699
Okunma
19-02-2023, 20:27
Yorum
7.194
Okunma
18-02-2023, 09:48