Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <amxmisc>
- #include <engine>
- #include <vault>
- #include <fun>
- #define PLUGIN "[SRB] Knife Mod"
- #define VERSION "1.1"
- #define AUTHOR "Robby"
- #define TASK_INTERVAL 4.0
- #define MAX_HEALTH 255
- new knife_model[33]
- new g_Menu
- new CVAR_HIGHSPEED
- new CVAR_LOWSPEED
- new CVAR_LOWGRAV
- new CVAR_NORMGRAV
- new CVAR_HEALTH_ADD
- new CVAR_HEALTH_MAX
- new CVAR_DAMAGE
- public plugin_init() {
- register_plugin(PLUGIN, VERSION, AUTHOR)
- register_event( "Damage", "event_damage", "be" )
- register_event("CurWeapon","CurWeapon","be","1=1")
- g_Menu = register_menuid("[SRB] Knife Mod")
- register_menucmd(g_Menu, 1023, "knifemenu")
- register_clcmd("say /knife", "display_knife")
- CVAR_HIGHSPEED = register_cvar("km_highspeed","340")
- CVAR_LOWSPEED = register_cvar("km_lowspeed","170")
- CVAR_HEALTH_ADD = register_cvar("km_addhealth", "3")
- CVAR_HEALTH_MAX = register_cvar("km_maxhealth", "75")
- CVAR_DAMAGE = register_cvar("km_damage", "2")
- CVAR_LOWGRAV = register_cvar("km_lowgravity" , "400")
- CVAR_NORMGRAV = get_cvar_pointer("sv_gravity")
- set_task(480.0, "kmodmsg", 0, _, _, "b")
- }
- public plugin_precache() {
- precache_model("models/knife/v_rucni.mdl")
- precache_model("models/knife/v_mac.mdl")
- precache_model("models/knife/v_riba.mdl")
- precache_model("models/knife/v_kosa.mdl")
- precache_model("models/knife/v_srbija.mdl")
- precache_model("models/knife2/v_butcher.mdl")
- precache_model("models/knife2/p_butcher.mdl")
- precache_model("models/knife2/v_machete.mdl")
- precache_model("models/knife2/p_machete.mdl")
- precache_model("models/knife2/v_bak.mdl")
- precache_model("models/knife2/p_bak.mdl")
- precache_model("models/knife2/v_pocket.mdl")
- precache_model("models/knife2/p_pocket.mdl")
- precache_model("models/v_knife.mdl")
- precache_model("models/p_knife.mdl")
- }
- public display_knife(id)
- {
- new menu = menu_create("[SRB] Knife Mod:", "knifemenu");
- menu_additem(menu, "\rObicni Knife-i\y");
- menu_additem(menu, "\rPremium Knife-i\y");
- menu_additem(menu, "\bBesplatni Premium Knife-i \y");
- menu_additem(menu, "\rSpecialni Knife-i\y")
- menu_display(id, menu);
- }
- public knifemenu(id, menu, item)
- {
- //client_cmd(id, "spk QTM_CodMod/select");
- if(item == MENU_EXIT)
- {
- menu_destroy(menu);
- return PLUGIN_CONTINUE;
- }
- switch(item)
- {
- case 0:
- {
- Obicni(id)
- }
- case 1:
- {
- Premium(id)
- }
- case 2:
- {
- Besplatni(id)
- }
- case 3:
- {
- Specialni(id)
- }
- }
- return PLUGIN_CONTINUE;
- }
- public Obicni(id) {
- new menuBody[512]
- add(menuBody, 511, "\rObicni Knife-i\w^n^n")
- add(menuBody, 511, "1. Krvavi Mac \y(Veci Damage/Manji Speed)\w^n")
- add(menuBody, 511, "2. Losos \y(Necujan)\w^n")
- add(menuBody, 511, "3. Smrtonosna Kosa \y(Veca Speed)\w^n")
- add(menuBody, 511, "4. Metalne Sape \y(Manja Gravitacija)\w^n")
- add(menuBody, 511, "5. [SRB] Knife \y(Povecan Healt)\w^n^n")
- add(menuBody, 511, "0. Izadji^n")
- new keys = ( 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<9 )
- show_menu(id, keys, menuBody, -1, "[SRB] Knife Mod")
- }
- public SetKnife(id , Knife) {
- knife_model[id] = Knife
- new Clip, Ammo, Weapon = get_user_weapon(id, Clip, Ammo)
- if ( Weapon != CSW_KNIFE )
- return PLUGIN_HANDLED
- new vModel[56]
- switch(Knife)
- {
- case 0: {
- format(vModel,55,"models/knife/v_mac.mdl")
- }
- case 1: {
- format(vModel,55,"models/knife/v_riba.mdl")
- }
- case 2: {
- format(vModel,55,"models/knife/v_kosa.mdl")
- }
- case 3: {
- format(vModel,55,"models/knife/v_rucni.mdl")
- }
- case 4: {
- format(vModel,55,"models/knife/v_srbija.mdl")
- }
- }
- entity_set_string(id, EV_SZ_viewmodel, vModel)
- return PLUGIN_HANDLED;
- }
- public Premium(id) {
- new menuBody[512]
- add(menuBody, 511, "\rPremium Knife-i\w^n^n")
- add(menuBody, 511, "1. Krvavi Mac \y(Veci Damage/Manji Speed)\w^n")
- add(menuBody, 511, "2. Losos \y(Necujan)\w^n")
- add(menuBody, 511, "3. Smrtonosna Kosa \y(Veca Speed)\w^n")
- add(menuBody, 511, "4. Metalne Sape \y(Manja Gravitacija)\w^n")
- add(menuBody, 511, "5. [SRB] Knife \y(Povecan Healt)\w^n^n")
- add(menuBody, 511, "0. Izadji^n")
- new keys = ( 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<9 )
- show_menu(id, keys, menuBody, -1, "[SRB] Knife Mod")
- }
- public SetKnife2(id , Knife2) {
- knife_model[id] = Knife2
- new Clip, Ammo, Weapon = get_user_weapon(id, Clip, Ammo)
- if ( Weapon != CSW_KNIFE )
- return PLUGIN_HANDLED
- new vModel[56]
- switch(Knife2)
- {
- case 0: {
- format(vModel,55,"models/knife/v_mac.mdl")
- }
- case 1: {
- format(vModel,55,"models/knife/v_riba.mdl")
- }
- case 2: {
- format(vModel,55,"models/knife/v_kosa.mdl")
- }
- case 3: {
- format(vModel,55,"models/knife/v_rucni.mdl")
- }
- case 4: {
- format(vModel,55,"models/knife/v_srbija.mdl")
- }
- }
- entity_set_string(id, EV_SZ_viewmodel, vModel)
- return PLUGIN_HANDLED;
- }
- public Besplatni(id) {
- new menuBody[512]
- add(menuBody, 511, "\rBesplatni Premium Knife-i\w^n^n")
- add(menuBody, 511, "1. Krvavi Mac \y(Veci Damage/Manji Speed)\w^n")
- add(menuBody, 511, "2. Losos \y(Necujan)\w^n")
- add(menuBody, 511, "3. Smrtonosna Kosa \y(Veca Speed)\w^n")
- add(menuBody, 511, "4. Metalne Sape \y(Manja Gravitacija)\w^n")
- add(menuBody, 511, "5. [SRB] Knife \y(Povecan Healt)\w^n^n")
- add(menuBody, 511, "0. Izadji^n")
- new keys = ( 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<9 )
- show_menu(id, keys, menuBody, -1, "[SRB] Knife Mod")
- }
- public SetKnife3(id , Knife3) {
- knife_model[id] = Knife3
- new Clip, Ammo, Weapon = get_user_weapon(id, Clip, Ammo)
- if ( Weapon != CSW_KNIFE )
- return PLUGIN_HANDLED
- new vModel[56]
- switch(Knife3)
- {
- case 0: {
- format(vModel,55,"models/knife/v_mac.mdl")
- }
- case 1: {
- format(vModel,55,"models/knife/v_riba.mdl")
- }
- case 2: {
- format(vModel,55,"models/knife/v_kosa.mdl")
- }
- case 3: {
- format(vModel,55,"models/knife/v_rucni.mdl")
- }
- case 4: {
- format(vModel,55,"models/knife/v_srbija.mdl")
- }
- }
- entity_set_string(id, EV_SZ_viewmodel, vModel)
- return PLUGIN_HANDLED;
- }
- public Specialni(id) {
- new menuBody[512]
- add(menuBody, 511, "\rSpecialni Knife-i\w^n^n")
- add(menuBody, 511, "1. Krvavi Mac \y(Veci Damage/Manji Speed)\w^n")
- add(menuBody, 511, "2. Losos \y(Necujan)\w^n")
- add(menuBody, 511, "3. Smrtonosna Kosa \y(Veca Speed)\w^n")
- add(menuBody, 511, "4. Metalne Sape \y(Manja Gravitacija)\w^n")
- add(menuBody, 511, "5. [SRB] Knife \y(Povecan Healt)\w^n^n")
- add(menuBody, 511, "0. Izadji^n")
- new keys = ( 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<9 )
- show_menu(id, keys, menuBody, -1, "[SRB] Knife Mod")
- }
- public SetKnife4(id , Knife4) {
- knife_model[id] = Knife4
- new Clip, Ammo, Weapon = get_user_weapon(id, Clip, Ammo)
- if ( Weapon != CSW_KNIFE )
- return PLUGIN_HANDLED
- new vModel[56]
- switch(Knife4)
- {
- case 0: {
- format(vModel,55,"models/knife/v_mac.mdl")
- }
- case 1: {
- format(vModel,55,"models/knife/v_riba.mdl")
- }
- case 2: {
- format(vModel,55,"models/knife/v_kosa.mdl")
- }
- case 3: {
- format(vModel,55,"models/knife/v_rucni.mdl")
- }
- case 4: {
- format(vModel,55,"models/knife/v_srbija.mdl")
- }
- }
- entity_set_string(id, EV_SZ_viewmodel, vModel)
- return PLUGIN_HANDLED;
- }
- public event_damage( id ) {
- new victim_id = id;
- if( !is_user_connected( victim_id ) ) return PLUGIN_CONTINUE
- new dmg_take = read_data( 2 );
- new dmgtype = read_data( 3 );
- new Float:multiplier = get_pcvar_float(CVAR_DAMAGE);
- new Float:damage = dmg_take * multiplier;
- new health = get_user_health( victim_id );
- new iWeapID, attacker_id = get_user_attacker( victim_id, iWeapID );
- if( !is_user_connected( attacker_id ) || !is_user_alive( victim_id ) ) {
- return PLUGIN_HANDLED
- }
- if( iWeapID == CSW_KNIFE && knife_model[attacker_id] == 4 ) {
- if( floatround(damage) >= health ) {
- if( victim_id == attacker_id ) {
- return PLUGIN_CONTINUE
- }else{
- log_kill( attacker_id, victim_id, "knife", 0 );
- }
- return PLUGIN_CONTINUE
- }else {
- if( victim_id == attacker_id ) return PLUGIN_CONTINUE
- fakedamage( victim_id, "weapon_knife", damage, dmgtype );
- }
- }
- return PLUGIN_CONTINUE
- }
- public CurWeapon(id)
- {
- new Weapon = read_data(2)
- // Set Knife Model
- SetKnife(id, knife_model[id])
- // Task Options
- if(knife_model[id] == 0 && !task_exists(id) && Weapon == CSW_KNIFE)
- set_task(TASK_INTERVAL , "task_healing",id,_,_,"b")
- else if(task_exists(id))
- remove_task(id)
- // Abilities
- set_user_footsteps(id , ( (knife_model[id] == 2 && Weapon == CSW_KNIFE) ? 1 : 0) )
- new Float:Gravity = ((knife_model[id] == 1 && Weapon == CSW_KNIFE)? get_pcvar_float(CVAR_LOWGRAV) : get_pcvar_float(CVAR_NORMGRAV)) / 800.0
- set_user_gravity(id , Gravity)
- // Speed
- new Float:Speed
- if(Weapon != CSW_KNIFE || knife_model[id] < 3)
- return PLUGIN_CONTINUE
- else if(knife_model[id] == 3)
- Speed = get_pcvar_float(CVAR_HIGHSPEED)
- else if(knife_model[id] == 4)
- Speed = get_pcvar_float(CVAR_LOWSPEED)
- set_user_maxspeed(id, Speed)
- return PLUGIN_HANDLED
- }
- stock log_kill(killer, victim, weapon[],headshot) {
- user_silentkill( victim );
- message_begin( MSG_ALL, get_user_msgid( "DeathMsg" ), {0,0,0}, 0 );
- write_byte( killer );
- write_byte( victim );
- write_byte( headshot );
- write_string( weapon );
- message_end();
- new kfrags = get_user_frags( killer );
- set_user_frags( killer, kfrags++ );
- new vfrags = get_user_frags( victim );
- set_user_frags( victim, vfrags++ );
- return PLUGIN_CONTINUE
- }
- public task_healing(id) {
- new addhealth = get_pcvar_num(CVAR_HEALTH_ADD)
- if (!addhealth)
- return
- new maxhealth = get_pcvar_num(CVAR_HEALTH_MAX)
- if (maxhealth > MAX_HEALTH) {
- set_pcvar_num(CVAR_HEALTH_MAX, MAX_HEALTH)
- maxhealth = MAX_HEALTH
- }
- new health = get_user_health(id)
- if (is_user_alive(id) && (health < maxhealth)) {
- set_user_health(id, health + addhealth)
- set_hudmessage(0, 255, 0, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.1, 4)
- show_hudmessage(id,"<< !!HEAL IN PROGRESS!! >>")
- message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, id)
- write_short(1<<10)
- write_short(1<<10)
- write_short(0x0000)
- write_byte(0)
- write_byte(200)
- write_byte(0)
- write_byte(75)
- message_end()
- }
- else {
- if (is_user_alive(id) && (health > maxhealth))
- remove_task(id)
- }
- }
- public client_disconnect(id)
- {
- SaveData(id)
- if(task_exists(id)) remove_task(id)
- }
- public kmodmsg() {
- client_print(0,print_chat,"[[SRB] Knifes] Kucaj /knife da promenis svoj knife !!!")
- }
- public client_authorized(id)
- {
- LoadData(id)
- }
- SaveData(id)
- {
- new authid[32]
- get_user_authid(id, authid, 31)
- new vaultkey[64]
- new vaultdata[64]
- format(vaultkey, 63, "KMOD_%s", authid)
- format(vaultdata, 63, "%d", knife_model[id])
- set_vaultdata(vaultkey, vaultdata)
- }
- LoadData(id)
- {
- new authid[32]
- get_user_authid(id,authid,31)
- new vaultkey[64], vaultdata[64]
- format(vaultkey, 63, "KMOD_%s", authid)
- get_vaultdata(vaultkey, vaultdata, 63)
- knife_model[id] = str_to_num(vaultdata)
- }
Advertisement
Add Comment
Please, Sign In to add comment