1. sayfa (Toplam 1 sayfa)

İsyan varken kaldırma hatası

Gönderilme zamanı: Pzt Ağu 09, 2021 2:32 pm
gönderen vburakustunel
Merhaba, aşağıda attığım eklenti isyan varken mahkumların kaldırılmasını sağlıyor fakat kaldırınca CT takımı da kalkıyor ve silah odasında olanlar buga giriyor. Bunu engeller misiniz? ct takımı kaldırılmasın.

İsyan varken kaldırma hatası

Gönderilme zamanı: Pzt Ağu 09, 2021 2:38 pm
gönderen bestcore
buyur;

Kod: Tümünü seç

#pragma semicolon 1

#include <amxmodx>
#include <reapi>
#include <fakemeta>

new const isyanmuzik[][] = {
	"isyanbg/isyan.wav",
	"isyanbg/isyanyok.wav"
};

new const TAG[] = "BlueGaming";

new bool:iRebel,bool:iRioter[MAX_PLAYERS+1],Float:fTotalDMG,Float:iCvar,iKilled;

public plugin_init() {
	register_plugin("Gelismis Isyan", "1.2", "suriyelikene");

	RegisterHookChain(RG_CSGameRules_RestartRound, "@RoundStart", .post=false);
	RegisterHookChain(RG_CBasePlayer_TakeDamage, "@TakeDamage", .post=false);
	RegisterHookChain(RG_CBasePlayer_Killed, "@PlayerKill", .post=true);

	bind_pcvar_float(create_cvar("isyan_minhasar","30"), iCvar);			//Ct Kac Hasar Yiyince Eklenti Calissin
}
public plugin_precache(){
	for(new i; i < sizeof(isyanmuzik); i++) precache_sound(isyanmuzik[i]);
}
@RoundStart(){
	iRebel = true;
	fTotalDMG = 0.0;

	for(new i=1;i<MaxClients;i++) {
		iRioter[i] = false;
	}
}
@TakeDamage(const pVictim, pInflictor, pAttacker, Float:flDamage, bitsDamageType) {
	if(!is_user_connected(pInflictor) || !rg_is_player_can_takedamage(pVictim, pAttacker) || pVictim==pAttacker) return;
	if(get_member(pInflictor, m_iTeam) != TEAM_TERRORIST && get_member(pVictim, m_iTeam) != TEAM_CT) return;
	static iT;
	rg_initialize_player_counts(iT);
	if(iRebel) fTotalDMG += flDamage;

	if(fTotalDMG >= iCvar && iRebel && iT>1){
		for(new pPlayer =1; pPlayer <= MaxClients; pPlayer++) {
			if(get_member(pPlayer, m_iTeam) != TEAM_TERRORIST)
			{
				continue;
			}
			if(is_user_alive(pPlayer) && IsStuck(pPlayer)) {
				client_cmd(pPlayer, "-jump;-duck");
				new Float:origin[3];
				get_entvar(pPlayer, var_origin, origin);
				origin[2]+=35.0;
				set_entvar(pPlayer, var_origin, origin);
			}
		}
		iRebel = false;
		rg_send_audio(0, isyanmuzik[random_num(0, charsmax(isyanmuzik))]);
		set_hudmessage(random_num(0, 255), random_num(0, 255), random_num(0, 255), -1.0, 0.20, 2, 1.0, 1.0);
		show_hudmessage(0,"[ - Isyan Basladi - ]^n[ - Gomulu Olan Mahkumlar Kaldirildi - ]^n(- %s -)",TAG);
		for(new ia; ia < 3; ia++)
		client_print_color(0, 0, "^1[^3%s^1] ^4Mahkumlar ^1Isyan Baslatti ^4Gomulu Mahkumlar ^3Kaldirildi^1.", TAG);
	}
}
@PlayerKill(const pVictim,pAttacker) {
	if(!is_user_connected(pAttacker) || pVictim == pAttacker) return;
	if( get_member(pAttacker, m_iTeam) == TEAM_TERRORIST && get_member(pVictim, m_iTeam) == TEAM_CT){
		iRioter[pAttacker] = true;
		iKilled = pVictim;
	}
	if(get_member(pVictim, m_iTeam) == TEAM_TERRORIST  && get_member(iKilled, m_iTeam) == TEAM_CT && iRioter[pVictim]){
		rg_round_respawn(iKilled);
		iRioter[pVictim] = false;
		client_print_color(iKilled,iKilled,"^1[^3%s^1] ^4Seni Olduren Terorist ^1Olduruldugu Icin ^3Otomatik Revlendin",TAG);
	}
}
bool:IsStuck(id) {

	static Float:Origin[3];
	get_entvar(id, var_origin, Origin);

	engfunc(EngFunc_TraceHull, Origin, Origin, IGNORE_MONSTERS, get_entvar(id, var_flags) & FL_DUCKING ? HULL_HEAD : HULL_HUMAN, 0, 0);

	return bool:get_tr2(0, TR_StartSolid);
}