Eklenti nedendir bilmiyorum foruma yüklenmedi. İçine yapıştırırsın.
Kod: Tümünü seç
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>
#define PLUGIN "BicakMenu"
#define VERSION "1.0"
#define AUTHOR "Tunns[C]&Blue"
#define serverismi "CSDURAGI"
new const Knife1Model[66] = "models/klasor/modeladi1.mdl";
new const Knife2Model[66] = "models/klasor/modeladi2.mdl";
new const Knife3Model[66] = "models/klasor/modeladi3.mdl";
new const Knife4Model[66] = "models/klasor/modeladi4.mdl";
new bool: Knife1[33];
new bool: Knife2[33];
new bool: Knife3[33];
new bool: Knife4[33];
new bool: KnifeKitle[33];
//Vurus Gucu
#define is_valid_player(%1) (1 <= %1 <= 32)
new
Bicak1_dmg,
hsBicak1_dmg,
knock_Bicak1,
Bicak2_dmg,
hsBicak2_dmg,
knock_Bicak2,
Bicak3_dmg,
hsBicak3_dmg,
knock_Bicak3,
Bicak4_dmg,
hsBicak4_dmg,
knock_Bicak4
new engel2[33]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /knife","menugir")
register_logevent("elbasi", 2, "1=Round_Start")
register_logevent("elsonu", 2, "1=Round_End")
register_event("CurWeapon", "CurentWeapon", "be", "1=1");
RegisterHam(Ham_TakeDamage, "player", "FwdTakeDamage", 0)
// Vurus Gucu
/* Normal Vurus */
Bicak1_dmg = register_cvar("ea_bicak1","1")
Bicak2_dmg = register_cvar("ea_bicak1","2")
Bicak3_dmg = register_cvar("ea_bicak3","3")
Bicak4_dmg = register_cvar("ea_bicak4","4")
/* Kafaya Vurus */
hsBicak1_dmg = register_cvar("ea_hsbicak1","10")
hsBicak2_dmg = register_cvar("ea_hsbicak1","20")
hsBicak3_dmg = register_cvar("ea_hsbicak3","30")
hsBicak4_dmg = register_cvar("ea_hsbicak4","40")
/* Geri Tepme */
knock_Bicak1 = register_cvar("ea_knock_bicak1","5.0")
knock_Bicak2 = register_cvar("ea_knock_bicak4","5.0")
knock_Bicak3 = register_cvar("ea_knock_bicak4","5.0")
knock_Bicak4 = register_cvar("ea_knock_bicak4","5.0")
}
public plugin_precache()
{
precache_model(Knife1Model);
//precache_model(Knife2Model);
//precache_model(Knife3Model);
//precache_model(Knife4Model);
}
public client_putinserver(id)
{
Knife1[id] = false;
Knife2[id] = false;
Knife3[id] = false;
Knife4[id] = false;
}
public Menu(id) {
if(get_user_team(id) == 2){
new menu, Menuz[512]
formatex(Menuz, charsmax(Menuz), "\y[\rBicak Menu\y]")
menu = menu_create(Menuz, "menu_handler")
formatex(Menuz, charsmax(Menuz), "\y[\r%s\y] \d//\rBicak \d1",serverismi)
menu_additem(menu, Menuz, "1", 0)
formatex(Menuz, charsmax(Menuz), "\y[\r%s\y] \d//\rBicak \d2",serverismi)
menu_additem(menu, Menuz, "2", 0)
if(get_user_flags(id) & ADMIN_BAN)
{
formatex(Menuz, charsmax(Menuz), "\y[\r%s\y] \d//\rBicak \d3",serverismi)
menu_additem(menu, Menuz, "3", 0)
formatex(Menuz, charsmax(Menuz), "\y[\r%s\y] \d//\rBicak \d4",serverismi)
menu_additem(menu, Menuz, "4", 0)
}
else
{
client_print(id,print_center,"Burasi Adminlere Ozel :/")
}
formatex(Menuz, charsmax(Menuz), "\rCikis")
menu_setprop(menu,MPROP_EXITNAME,Menuz)
menu_setprop(menu,MPROP_EXIT, MEXIT_ALL)
menu_display(id, menu, 0)
return PLUGIN_HANDLED;
}
else {
client_print(id,print_center,"Sadece insanlar bu menuye girebilir.")
}
return PLUGIN_HANDLED
}
public menu_handler(id, menu, item)
{
if( item == MENU_EXIT )
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], iName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
new key = str_to_num(data);
new adminismi[32]
get_user_name(id,adminismi,31)
switch(key)
{
case 1: {
KnifeKitle[id] = true;
Knife1[id] = true;
engel2[id] = true
CurentWeapon(id);
}
case 2: {
KnifeKitle[id] = true;
Knife2[id] = true;
engel2[id] = true
CurentWeapon(id);
}
case 3: {
KnifeKitle[id] = true;
Knife3[id] = true;
engel2[id] = true
CurentWeapon(id);
}
case 4: {
KnifeKitle[id] = true;
Knife4[id] = true;
engel2[id] = true
CurentWeapon(id);
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public CurentWeapon(id) {
if(get_user_weapon(id) == CSW_KNIFE) {
if(Knife1[id])
set_pev(id, pev_viewmodel2, Knife1Model);
if(Knife2[id])
set_pev(id, pev_viewmodel2, Knife2Model);
if(Knife3[id])
set_pev(id, pev_viewmodel2, Knife3Model);
if(Knife4[id])
set_pev(id, pev_viewmodel2, Knife4Model);
}
}
/////////////////////////////////////////////////
public client_disconnected(id)
{
engel2[id] = false
}
public client_connect(id)
{
engel2[id] = false
}
public elsonu(id)
{
engel2[id] = 0
}
public elbasi()
{
new players[32], inum;
static Uid;
get_players(players, inum)
for(new i; i < inum; i++) {
Uid = players[i];
engel2[Uid] = 0;
}
}
public menugir(id)
{
if(!is_user_alive(id))
{
return PLUGIN_HANDLED;
}
if(engel2[id] == 1)
{
client_print(id,print_chat,"[ %s ] Bicakmenuye Her Round 1 Defa Girebilirsin.!",serverismi)
return PLUGIN_HANDLED;
}
engel2[id] = 0
Menu(id)
return PLUGIN_HANDLED;
}
/////////////////////////////////7
public FwdTakeDamage(victim, inflictor, attacker, Float:damage, damage_bits)
{
if(!is_valid_player(attacker) || !is_valid_player(victim)) return HAM_IGNORED
if (is_valid_player(attacker) && get_user_weapon(attacker) == CSW_KNIFE)
{
if(Knife1[attacker]){
SetHamParamFloat(4, get_pcvar_float(Bicak1_dmg))
new Float:vec[3];
new Float:oldvelo[3];
pev(victim, pev_velocity, oldvelo);
create_velocity_vector(victim , attacker , vec);
vec[0] += oldvelo[0] + get_pcvar_float(knock_Bicak1);
vec[1] += oldvelo[1] + 0;
set_pev(victim, pev_velocity, vec);
if(get_pdata_int(victim, 75) == HIT_HEAD)
{
SetHamParamFloat(4, get_pcvar_float(hsBicak1_dmg))
}
}
else if(Knife2[attacker]){
SetHamParamFloat(4, get_pcvar_float(Bicak2_dmg))
new Float:vec[3];
new Float:oldvelo[3];
pev(victim, pev_velocity, oldvelo);
create_velocity_vector(victim , attacker , vec);
vec[0] += oldvelo[0] + get_pcvar_float(knock_Bicak2);
vec[1] += oldvelo[1] + 0;
set_pev(victim, pev_velocity, vec);
if(get_pdata_int(victim, 75) == HIT_HEAD)
{
SetHamParamFloat(4, get_pcvar_float(hsBicak2_dmg))
}
}
else if(Knife3[attacker]){
SetHamParamFloat(4, get_pcvar_float(Bicak3_dmg))
new Float:vec[3];
new Float:oldvelo[3];
pev(victim, pev_velocity, oldvelo);
create_velocity_vector(victim , attacker , vec);
vec[0] += oldvelo[0] + get_pcvar_float(knock_Bicak3);
vec[1] += oldvelo[1] + 0;
set_pev(victim, pev_velocity, vec);
if(get_pdata_int(victim, 75) == HIT_HEAD)
{
SetHamParamFloat(4, get_pcvar_float(hsBicak3_dmg))
}
}
else if(Knife4[attacker]){
SetHamParamFloat(4, get_pcvar_float(Bicak4_dmg))
new Float:vec[3];
new Float:oldvelo[3];
pev(victim, pev_velocity, oldvelo);
create_velocity_vector(victim , attacker , vec);
vec[0] += oldvelo[0] + get_pcvar_float(knock_Bicak4);
vec[1] += oldvelo[1] + 0;
set_pev(victim, pev_velocity, vec);
if(get_pdata_int(victim, 75) == HIT_HEAD)
{
SetHamParamFloat(4, get_pcvar_float(hsBicak4_dmg))
}
}
}
return HAM_HANDLED
}
stock create_velocity_vector(victim,attacker,Float:velocity[3])
{
if(!zp_get_user_zombie(victim) || !is_user_alive(attacker))
return 0;
new Float:vicorigin[3];
new Float:attorigin[3];
pev(victim, pev_origin , vicorigin);
pev(attacker, pev_origin , attorigin);
new Float:origin2[3]
origin2[0] = vicorigin[0] - attorigin[0];
origin2[1] = vicorigin[1] - attorigin[1];
new Float:largestnum = 0.0;
if(floatabs(origin2[0])>largestnum) largestnum = floatabs(origin2[0]);
if(floatabs(origin2[1])>largestnum) largestnum = floatabs(origin2[1]);
origin2[0] /= largestnum;
origin2[1] /= largestnum;
if (Knife1[attacker])
{
velocity[0] = ( origin2[0] * get_pcvar_float(knock_Bicak1) * 10000 ) / floatround(get_distance_f(vicorigin, attorigin));
velocity[1] = ( origin2[1] * get_pcvar_float(knock_Bicak1) * 10000 ) / floatround(get_distance_f(vicorigin, attorigin));
}
else if (Knife2[attacker])
{
velocity[0] = ( origin2[0] * get_pcvar_float(knock_Bicak2) * 10000 ) / floatround(get_distance_f(vicorigin, attorigin));
velocity[1] = ( origin2[1] * get_pcvar_float(knock_Bicak2) * 10000 ) / floatround(get_distance_f(vicorigin, attorigin));
}
else if (Knife3[attacker])
{
velocity[0] = ( origin2[0] * get_pcvar_float(knock_Bicak3) * 10000 ) / floatround(get_distance_f(vicorigin, attorigin));
velocity[1] = ( origin2[1] * get_pcvar_float(knock_Bicak3) * 10000 ) / floatround(get_distance_f(vicorigin, attorigin));
}
else if (Knife4[attacker])
{
velocity[0] = ( origin2[0] * get_pcvar_float(knock_Bicak4) * 10000 ) / floatround(get_distance_f(vicorigin, attorigin));
velocity[1] = ( origin2[1] * get_pcvar_float(knock_Bicak4) * 10000 ) / floatround(get_distance_f(vicorigin, attorigin));
}
if(velocity[0] <= 20.0 || velocity[1] <= 20.0)
velocity[2] = random_float(200.0 , 275.0);
return 1;
}
///////////////////////////////////////////////
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par }
*/