errori la knife_mod

Modificari necesare ale pluginurilor

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

User avatar
CsN^ ;x
Membru eXtream
Membru eXtream
Posts: 3560
Joined: 02 Apr 2012, 16:58
Detinator Steam: Nu
CS Status: Retras din domeniul Counter-Strike
Reputatie: Fost moderator
Location: Bucuresti
Has thanked: 797 times
Been thanked: 607 times

12 Sep 2013, 23:18

Am si eu niste errori la knife_mod .
errori din logs | Afiseaza codul
L 09/12/2013 - 20:28:47: Start of error session.
L 09/12/2013 - 20:28:47: Info (map "deathrun_piirates") (file "addons/amxmodx/logs/error_20130912.log")
L 09/12/2013 - 20:28:47: [CSTRIKE] Invalid player 3
L 09/12/2013 - 20:28:47: [AMXX] Displaying debug trace (plugin "knife_mod.amxx")
L 09/12/2013 - 20:28:47: [AMXX] Run time error 10: native error (native "cs_get_user_team")
L 09/12/2013 - 20:28:47: [AMXX]    [0] knife_mod.sma::check (line 77)
sursa plugin | Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <engine> 
#include <vault>
#include <fun> 
#include <cstrike>

#define PLUGIN "Knife Mod"
#define VERSION "1.0" 
#define AUTHOR "spunko"

#define TASK_INTERVAL 4.0  
#define MAX_HEALTH 255  
#define TAG "INFO"

new knife_model[33] 
new g_MenuT 
new g_MenuCT

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_MenuT = register_menuid("Terro Knife") 
   g_MenuCT = register_menuid("CT Menu")
   register_menucmd(g_MenuT, 1023, "knife_T") 
   register_menucmd(g_MenuCT, 1023, "knife_CT")
   
   register_clcmd("say /knife", "check")
   register_clcmd("say knife", "check")
   register_clcmd("say_team knife", "check")
   register_clcmd("say_team /knife", "check")
   register_clcmd("say cutit", "check")
   register_clcmd("say_team cutit", "check")
   register_clcmd("say /cutit", "check")
   register_clcmd("say_team /cutit", "check")
   
   
   CVAR_HIGHSPEED = register_cvar("km_highspeed","600")
   CVAR_LOWSPEED = register_cvar("km_lowspeed","170")
   CVAR_HEALTH_ADD = register_cvar("km_addhealth", "10")
   CVAR_HEALTH_MAX = register_cvar("km_maxhealth", "120")
   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-mod/v_lcs.mdl")
   precache_model("models/knife-mod/p_knife.mdl")
   precache_model("models/knife-mod/v_machete.mdl")
   precache_model("models/knife-mod/p_machete.mdl")
   precache_model("models/knife-mod/v_bak.mdl")
   precache_model("models/knife-mod/p_bak.mdl")
   precache_model("models/knife-mod/v_pocket.mdl")
   precache_model("models/knife-mod/p_pocket.mdl")
   precache_model("models/v_knife.mdl") 
   precache_model("models/p_knife.mdl")
}  

public check(id) 
{ 
    switch(cs_get_user_team(id))   
    {   
        case CS_TEAM_T:   
            Knife_T(id)   
           
        case CS_TEAM_CT:   
            Knife_CT(id)   
    }   
    return PLUGIN_HANDLED
} 

public Knife_T(id) 
{
       new menuBody[512]
       add(menuBody, 511, "Knife Mod \r[ \yDR\r.\yLEGENDCS\r.\yCOM \r]^n^n")
       add(menuBody, 511, "\r1.\w Cutit de vanatoare \y(\rNu se aud pasii\y)^n")
       add(menuBody, 511, "\r2.\w Suriu \y(\rviteza mare\y)^n")
       add(menuBody, 511, "\r3.\w Satar \y(\rGravitatie Mica\y)^n")
       add(menuBody, 511, "\r4.\w Normal Knife \y(\rRegenerarea hp\y)^n^n")
       add(menuBody, 511, "\r0.\w Exit^n")
   
       new keys = (1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<9)
       show_menu(id, keys, menuBody, -1, "Terro Knife")    
}

public Knife_CT(id) 
{   
       new menuBody[512]
       add(menuBody, 511, "Knife Mod \r[ \yDR\r.\yLEGENDCS\r.\yCOM \r]^n^n")
       add(menuBody, 511, "\r1.\w Maceta \y(\rMai mult dmg/viteza redusa\y)^n")
       add(menuBody, 511, "\r2.\w Cutit de vanatoare \y(\rNu se aud pasii\y)^n")
       add(menuBody, 511, "\r3.\w Suriu \y(\rviteza mare\y)^n")
       add(menuBody, 511, "\r4.\w Satar \y(\rGravitatie Mica\y)^n")
       add(menuBody, 511, "\r5.\w Normal Knife \y(\rRegenerarea hp\y)^n^n")
       add(menuBody, 511, "\r0.\w Exit^n")
   
       new keys = ( 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<9 )
       show_menu(id, keys, menuBody, -1, "CT Menu") 
} 

public knife_CT(id, key) 
{
   switch(key) 
   {
      case 0: SetKnife(id , 4)
      case 1: SetKnife(id , 2)
      case 2: SetKnife(id , 3)
      case 3: SetKnife(id , 1)
      case 4: SetKnife(id , 0)
      default: return PLUGIN_HANDLED
   }
   SaveData(id)
   return PLUGIN_HANDLED
}  

public knife_T(id, key) 
{ 
    switch(key) 
   { 
       case 0: SetKnife(id , 2) 
      case 1: SetKnife(id , 3) 
      case 2: SetKnife(id , 1) 
      case 3: SetKnife(id , 0) 
   } 
    SaveData(id) 
    return PLUGIN_HANDLED    
}

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],pModel[56]
   
   switch(Knife)
   {
     case 0: {
         format(vModel,55,"models/v_knife.mdl")
         format(pModel,55,"models/p_knife.mdl")
      }
      case 1: {
          format(vModel,55,"models/knife-mod/v_lcs.mdl")
          format(pModel,55,"models/p_knife.mdl")
      }
      case 2: {
         format(vModel,55,"models/knife-mod/v_bak.mdl")
         format(pModel,55,"models/knife-mod/p_bak.mdl")
      }
      case 3: {
         format(vModel,55,"models/knife-mod/v_pocket.mdl")
         format(pModel,55,"models/knife-mod/p_pocket.mdl")
      }
      case 4: {
         format(vModel,55,"models/knife-mod/v_machete.mdl")
         format(pModel,55,"models/knife-mod/p_machete.mdl")
      }
   } 
   
   entity_set_string(id, EV_SZ_viewmodel, vModel)
   entity_set_string(id, EV_SZ_weaponmodel, pModel)
   
   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) {  
   if(task_exists(id)) remove_task(id)  
}  


public kmodmsg() { 
   
   xColor( 0, "Scrie !g/knife!n pentru a schimba !tCUTITUL!n !" );
}  

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)
   
} 
stock xColor(const id, const input[], any:...)
{
	new count = 1, players[32]
	static msg[320], msg2[320]
	vformat(msg, 190, input, 3)
	format(msg2, 190, "!g[!g%s!g]!n %s", TAG, msg)
	replace_all(msg2, 190, "!g", "^4")
	replace_all(msg2, 190, "!n", "^1")
	replace_all(msg2, 190, "!t", "^3")
	replace_all(msg2, 190, "!t2", "^0")
	if (id)
		players[0] = id
	else
		get_players(players, count, "ch")
	for (new i = 0; i < count; i++)
	{
		if (is_user_connected(players))
		{
			message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players)
			write_byte(players)
			write_string(msg2)
			message_end()
		}
	}
}

Rog sa ma rezolvati si mine daca se poate si daca se poate sa imi scoateti cutitul cu numaru 1 si numaru 2 si sa ramana numerele 3,4,5 dar 3 sa devina 1 si tot asa daca ati inteles cum dar sa rezolvati si eroarea aia :) .
Multumesc .
Addons HNS level,gravity,xp DOWNLOAD ( e țeapă)
https://5filme.com/ - un simplu site de filme pentru timpul liber
RoyalServer
User avatar
tweky
Fost moderator
Fost moderator
Posts: 2707
Joined: 22 Jun 2009, 01:54
Detinator Steam: Da
CS Status: Inactiv
Detinator server CS: Da
SteamID: twekymihai
Reputatie: Fost eXtream Mod
Nume anterior: Mihaita
Fost Membru Club eXtreamCS
Location: Ilfov
Has thanked: 127 times
Been thanked: 173 times

12 Sep 2013, 23:35

| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <engine> 
#include <vault>
#include <fun> 
#include <cstrike>

#define PLUGIN "Knife Mod"
#define VERSION "1.0" 
#define AUTHOR "spunko"

#define TASK_INTERVAL 4.0  
#define MAX_HEALTH 255  
#define TAG "INFO"

new knife_model[33] 
new g_MenuT 
new g_MenuCT

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_MenuT = register_menuid("Terro Knife") 
   g_MenuCT = register_menuid("CT Menu")
   register_menucmd(g_MenuT, 1023, "knife_T") 
   register_menucmd(g_MenuCT, 1023, "knife_CT")
   
   register_clcmd("say /knife", "check")
   register_clcmd("say knife", "check")
   register_clcmd("say_team knife", "check")
   register_clcmd("say_team /knife", "check")
   register_clcmd("say cutit", "check")
   register_clcmd("say_team cutit", "check")
   register_clcmd("say /cutit", "check")
   register_clcmd("say_team /cutit", "check")
   
   
   CVAR_HIGHSPEED = register_cvar("km_highspeed","600")
   CVAR_LOWSPEED = register_cvar("km_lowspeed","170")
   CVAR_HEALTH_ADD = register_cvar("km_addhealth", "10")
   CVAR_HEALTH_MAX = register_cvar("km_maxhealth", "120")
   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-mod/v_lcs.mdl")
   precache_model("models/knife-mod/p_knife.mdl")
   precache_model("models/knife-mod/v_machete.mdl")
   precache_model("models/knife-mod/p_machete.mdl")
   precache_model("models/knife-mod/v_bak.mdl")
   precache_model("models/knife-mod/p_bak.mdl")
   precache_model("models/knife-mod/v_pocket.mdl")
   precache_model("models/knife-mod/p_pocket.mdl")
   precache_model("models/v_knife.mdl") 
   precache_model("models/p_knife.mdl")
}  

public check(id) 
{ 
    switch(cs_get_user_team(id))   
    {   
        case CS_TEAM_T:   
            Knife_T(id)   
           
        case CS_TEAM_CT:   
            Knife_CT(id)   
    }   
    return PLUGIN_HANDLED
} 

public Knife_T(id) 
{
       new menuBody[512]
       add(menuBody, 511, "Knife Mod \r[ \yDR\r.\yLEGENDCS\r.\yCOM \r]^n^n")
       add(menuBody, 511, "\r1.\w Satar \y(\rGravitatie Mica\y)^n")
       add(menuBody, 511, "\r2.\w Normal Knife \y(\rRegenerarea hp\y)^n^n")
       add(menuBody, 511, "\r0.\w Exit^n")
   
       new keys = ( 1<<2 | 1<<3 | 1<<9)
       show_menu(id, keys, menuBody, -1, "Terro Knife")    
}

public Knife_CT(id) 
{   
       new menuBody[512]
       add(menuBody, 511, "Knife Mod \r[ \yDR\r.\yLEGENDCS\r.\yCOM \r]^n^n")
       add(menuBody, 511, "\r1.\w Suriu \y(\rviteza mare\y)^n")
       add(menuBody, 511, "\r2.\w Satar \y(\rGravitatie Mica\y)^n")
       add(menuBody, 511, "\r3.\w Normal Knife \y(\rRegenerarea hp\y)^n^n")
       add(menuBody, 511, "\r0.\w Exit^n")
   
       new keys = ( 1<<2 | 1<<3 | 1<<4 | 1<<9 )
       show_menu(id, keys, menuBody, -1, "CT Menu") 
} 

public knife_CT(id, key) 
{
   switch(key) 
   {
      case 2: SetKnife(id , 3)
      case 3: SetKnife(id , 1)
      case 4: SetKnife(id , 0)
      default: return PLUGIN_HANDLED
   }
   SaveData(id)
   return PLUGIN_HANDLED
}  

public knife_T(id, key) 
{ 
    switch(key) 
   { 
       case 0: SetKnife(id , 2) 
      case 1: SetKnife(id , 3) 
      case 2: SetKnife(id , 1) 
      case 3: SetKnife(id , 0) 
   } 
    SaveData(id) 
    return PLUGIN_HANDLED    
}

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],pModel[56]
   
   switch(Knife)
   {
     case 0: {
         format(vModel,55,"models/v_knife.mdl")
         format(pModel,55,"models/p_knife.mdl")
      }
      case 1: {
          format(vModel,55,"models/knife-mod/v_lcs.mdl")
          format(pModel,55,"models/p_knife.mdl")
      }
      case 2: {
         format(vModel,55,"models/knife-mod/v_bak.mdl")
         format(pModel,55,"models/knife-mod/p_bak.mdl")
      }
      case 3: {
         format(vModel,55,"models/knife-mod/v_pocket.mdl")
         format(pModel,55,"models/knife-mod/p_pocket.mdl")
      }
      case 4: {
         format(vModel,55,"models/knife-mod/v_machete.mdl")
         format(pModel,55,"models/knife-mod/p_machete.mdl")
      }
   } 
   
   entity_set_string(id, EV_SZ_viewmodel, vModel)
   entity_set_string(id, EV_SZ_weaponmodel, pModel)
   
   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) {  
   if(task_exists(id)) remove_task(id)  
}  


public kmodmsg() { 
   
   xColor( 0, "Scrie !g/knife!n pentru a schimba !tCUTITUL!n !" );
}  

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)
   
} 
stock xColor(const id, const input[], any:...)
{
	new count = 1, players[32]
	static msg[320], msg2[320]
	vformat(msg, 190, input, 3)
	format(msg2, 190, "!g[!g%s!g]!n %s", TAG, msg)
	replace_all(msg2, 190, "!g", "^4")
	replace_all(msg2, 190, "!n", "^1")
	replace_all(msg2, 190, "!t", "^3")
	replace_all(msg2, 190, "!t2", "^0")
	if (id)
		players[0] = id
	else
		get_players(players, count, "ch")
	for (new i = 0; i < count; i++)
	{
		if (is_user_connected(players))
		{
			message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players)
			write_byte(players)
			write_string(msg2)
			message_end()
		}
	}
}


Nu am testat. :)
my website
:hand_over_mouth: :ghosts:

1. vevios.ro

2. minios.ro
User avatar
CryWolf
Administrator
Administrator
Posts: 6505
Joined: 07 Aug 2008, 16:33
Detinator Steam: Da
Reputatie: Administrator
Fost Scripter
Manager CS2.eXtream.Ro
Fost Detinator ZM.eXtream.Ro
Fost manager CS.eXtream.Ro
Fost manager CSGO.eXtream.Ro
Fost manager global
Location: Botosani
Discord: crywolf1989
Has thanked: 202 times
Been thanked: 850 times
Contact:

12 Sep 2013, 23:38

Fratilor la astfel de erori AMX-ul spune clar

Code: Select all

L 09/12/2013 - 20:28:47: [CSTRIKE] Invalid player 3
CSTRIKE (Modulul CSTRIKE) raporteaza ca playerul este invalid, deci asta provine ca userul respectiv nu mai este conectat, si provine cand folositi set_task fara verificare deci inainte de linia 77 adauga asa:

Code: Select all

if ( !is_user_connected ( id ) || !is_user_alive ( id ) )
             return 1;
Si pluginul va returna functia daca userul nu mai exista pe Server sau este mort!

return PLUGIN_HANDLED; de astfel returneaza erorile!
NU IMI MAI DA-TI PM CU CERERE AJUTOR/SAMD, FOLOSITI FORUMUL, CITESC MAJORITATEA TOPICURILOR.
www.dark-arena.com , SERVERE CS / CS2 / L4D AU REVENIT ONLINE.
www.diasporaiptv.ro - SERVICII PREMIUM IPTV

Image

Image
User avatar
CsN^ ;x
Membru eXtream
Membru eXtream
Posts: 3560
Joined: 02 Apr 2012, 16:58
Detinator Steam: Nu
CS Status: Retras din domeniul Counter-Strike
Reputatie: Fost moderator
Location: Bucuresti
Has thanked: 797 times
Been thanked: 607 times

12 Sep 2013, 23:39

Nu cred ca merge dar hai sa incerc .
EDIT : CryWolf il poti face tu cum am cerut si cu cele 3 cutite doar ?
Addons HNS level,gravity,xp DOWNLOAD ( e țeapă)
https://5filme.com/ - un simplu site de filme pentru timpul liber
User avatar
CryWolf
Administrator
Administrator
Posts: 6505
Joined: 07 Aug 2008, 16:33
Detinator Steam: Da
Reputatie: Administrator
Fost Scripter
Manager CS2.eXtream.Ro
Fost Detinator ZM.eXtream.Ro
Fost manager CS.eXtream.Ro
Fost manager CSGO.eXtream.Ro
Fost manager global
Location: Botosani
Discord: crywolf1989
Has thanked: 202 times
Been thanked: 850 times
Contact:

12 Sep 2013, 23:47

Iti scot de la ambele echipe si 1 si 2 ?
NU IMI MAI DA-TI PM CU CERERE AJUTOR/SAMD, FOLOSITI FORUMUL, CITESC MAJORITATEA TOPICURILOR.
www.dark-arena.com , SERVERE CS / CS2 / L4D AU REVENIT ONLINE.
www.diasporaiptv.ro - SERVICII PREMIUM IPTV

Image

Image
User avatar
CsN^ ;x
Membru eXtream
Membru eXtream
Posts: 3560
Joined: 02 Apr 2012, 16:58
Detinator Steam: Nu
CS Status: Retras din domeniul Counter-Strike
Reputatie: Fost moderator
Location: Bucuresti
Has thanked: 797 times
Been thanked: 607 times

12 Sep 2013, 23:55

Da man,mersi frumos.
@ TwEky scuze dar pe crywolf le are in scripting ;)) dar oricum am bagat si pe al tau pe server astept a se schimbe mapa :) dar cred ca ai gresit oricum ca ai uitat sa scoti niste modele :| .
Last edited by tweky on 13 Sep 2013, 00:27, edited 1 time in total.
Reason: stiu , modelele nu le-am scos, asta am uitat , functiona si asa dar acele linii erau in plus in sma.
Addons HNS level,gravity,xp DOWNLOAD ( e țeapă)
https://5filme.com/ - un simplu site de filme pentru timpul liber
User avatar
CryWolf
Administrator
Administrator
Posts: 6505
Joined: 07 Aug 2008, 16:33
Detinator Steam: Da
Reputatie: Administrator
Fost Scripter
Manager CS2.eXtream.Ro
Fost Detinator ZM.eXtream.Ro
Fost manager CS.eXtream.Ro
Fost manager CSGO.eXtream.Ro
Fost manager global
Location: Botosani
Discord: crywolf1989
Has thanked: 202 times
Been thanked: 850 times
Contact:

13 Sep 2013, 00:14

Poftim, testeaz am scos tot ce nu mai era necesar de la acele clase de cutit + am facut update la functia de a verifica echipe (check) conform tutorialului AMXX de optimizare!
knife_mod.sma | Afiseaza codul
[code=php]
#include <amxmodx>
#include <amxmisc>
#include <engine> 
#include <vault>
#include <fun> 
#include <cstrike>

#define PLUGIN "Knife Mod"
#define VERSION "1.0" 
#define AUTHOR "spunko"

#define TASK_INTERVAL 4.0  
#define MAX_HEALTH 255  
#define TAG "INFO"

new knife_model[33] 
new g_MenuT 
new g_MenuCT

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_MenuT = register_menuid("Terro Knife") 
    g_MenuCT = register_menuid("CT Menu")
    register_menucmd(g_MenuT, 1023, "knife_T") 
    register_menucmd(g_MenuCT, 1023, "knife_CT")
    
    register_clcmd("say /knife", "check")
    register_clcmd("say knife", "check")
    register_clcmd("say_team knife", "check")
    register_clcmd("say_team /knife", "check")
    register_clcmd("say cutit", "check")
    register_clcmd("say_team cutit", "check")
    register_clcmd("say /cutit", "check")
    register_clcmd("say_team /cutit", "check")
    
    
    CVAR_HIGHSPEED = register_cvar("km_highspeed","600")
    CVAR_LOWSPEED = register_cvar("km_lowspeed","170")
    CVAR_HEALTH_ADD = register_cvar("km_addhealth", "10")
    CVAR_HEALTH_MAX = register_cvar("km_maxhealth", "120")
    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-mod/v_lcs.mdl")
    precache_model("models/knife-mod/p_knife.mdl")
    precache_model("models/knife-mod/v_bak.mdl")
    precache_model("models/knife-mod/p_bak.mdl")
    precache_model("models/v_knife.mdl") 
    precache_model("models/p_knife.mdl")
}  

public check ( id ) 
{
    if ( !is_user_connected ( id ) || !is_user_alive ( id ) )
        return 1;
    
    new team = get_user_team ( id )
    switch ( team )
    {
        case CS_TEAM_T:   
            Knife_T ( id );
        
        case CS_TEAM_CT:   
            Knife_CT ( id );
    }
    
    return PLUGIN_HANDLED;
} 

public Knife_T(id) 
{
    new menuBody[512]
    add(menuBody, 511, "Knife Mod \r[ \yDR\r.\yLEGENDCS\r.\yCOM \r]^n^n")
    add(menuBody, 511, "\r1.\w Satar \y(\rGravitatie Mica\y)^n")
    add(menuBody, 511, "\r2.\w Normal Knife \y(\rRegenerarea hp\y)^n^n")
    add(menuBody, 511, "\r0.\w Exit^n")
    
    new keys = (1<<0 | 1<<1 | 1<<2 | 1<<9)
    show_menu(id, keys, menuBody, -1, "Terro Knife")    
}

public Knife_CT(id) 
{   
    new menuBody[512]
    add(menuBody, 511, "Knife Mod \r[ \yDR\r.\yLEGENDCS\r.\yCOM \r]^n^n")
    add(menuBody, 511, "\r1.\w Suriu \y(\rviteza mare\y)^n")
    add(menuBody, 511, "\r2.\w Satar \y(\rGravitatie Mica\y)^n")
    add(menuBody, 511, "\r3.\w Normal Knife \y(\rRegenerarea hp\y)^n^n")
    add(menuBody, 511, "\r0.\w Exit^n")
    
    new keys = ( 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<9 )
    show_menu(id, keys, menuBody, -1, "CT Menu") 
} 

public knife_CT(id, key) 
{
    switch(key) 
    {
        case 0: SetKnife(id , 1)
        case 1: SetKnife(id , 0)
        default: return PLUGIN_HANDLED
    }
    SaveData(id)
    return PLUGIN_HANDLED
}  

public knife_T(id, key) 
{ 
    switch(key) 
    { 
        case 0: SetKnife(id , 3) 
        case 1: SetKnife(id , 1) 
        case 2: SetKnife(id , 0)
        default: return 1;
    } 
    SaveData(id) 
    return PLUGIN_HANDLED    
}

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],pModel[56]
    
    switch(Knife)
    {
        case 0: {
            format(vModel,55,"models/v_knife.mdl")
            format(pModel,55,"models/p_knife.mdl")
        }
        case 1: {
            format(vModel,55,"models/knife-mod/v_lcs.mdl")
            format(pModel,55,"models/p_knife.mdl")
        }
        case 2: {
            format(vModel,55,"models/knife-mod/v_bak.mdl")
            format(pModel,55,"models/knife-mod/p_bak.mdl")
        }
    } 
    
    entity_set_string(id, EV_SZ_viewmodel, vModel)
    entity_set_string(id, EV_SZ_weaponmodel, pModel)
    
    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) {  
    if(task_exists(id)) remove_task(id)  
}  


public kmodmsg() { 
    
    xColor( 0, "Scrie !g/knife!n pentru a schimba !tCUTITUL!n !" );
}  

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)

} 
stock xColor(const id, const input[], any:...)
{
    new count = 1, players[32]
    static msg[320], msg2[320]
    vformat(msg, 190, input, 3)
    format(msg2, 190, "!g[!g%s!g]!n %s", TAG, msg)
    replace_all(msg2, 190, "!g", "^4")
    replace_all(msg2, 190, "!n", "^1")
    replace_all(msg2, 190, "!t", "^3")
    replace_all(msg2, 190, "!t2", "^0")
    if (id)
    players[0] = id
    else
    get_players(players, count, "ch")
    for (new i = 0; i < count; i++)
    {
        if (is_user_connected(players))
        {
            message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players)
            write_byte(players)
            write_string(msg2)
            message_end()
        }
    }
} [/code]
NU IMI MAI DA-TI PM CU CERERE AJUTOR/SAMD, FOLOSITI FORUMUL, CITESC MAJORITATEA TOPICURILOR.
www.dark-arena.com , SERVERE CS / CS2 / L4D AU REVENIT ONLINE.
www.diasporaiptv.ro - SERVICII PREMIUM IPTV

Image

Image
User avatar
CsN^ ;x
Membru eXtream
Membru eXtream
Posts: 3560
Joined: 02 Apr 2012, 16:58
Detinator Steam: Nu
CS Status: Retras din domeniul Counter-Strike
Reputatie: Fost moderator
Location: Bucuresti
Has thanked: 797 times
Been thanked: 607 times

13 Sep 2013, 00:48

E o problema man ,cand apas numerele 1-2-3 nu imi da cutitele care sunt scrie adica suriu nici nu eadaca apas numaru 1 imi da satar si daca apasa 2 imi apare knife-ul normal regeneratorul :) si numaru 3 nu mai da nimica .
| Afiseaza codul
[code]    new menuBody[512]
    add(menuBody, 511, "Knife Mod \r[ \yDR\r.\yLEGENDCS\r.\yCOM \r]^n^n")
    add(menuBody, 511, "\r1.\w Satar \y(\rGravitatie Mica\y)^n")
    add(menuBody, 511, "\r2.\w Normal Knife \y(\rRegenerarea hp\y)^n^n")
    add(menuBody, 511, "\r0.\w Exit^n")
    
    new keys = (1<<0 | 1<<1 | 1<<2 | 1<<9)
    show_menu(id, keys, menuBody, -1, "Terro Knife")    
}

public Knife_CT(id) 
{   
    new menuBody[512]
    add(menuBody, 511, "Knife Mod \r[ \yDR\r.\yLEGENDCS\r.\yCOM \r]^n^n")
    add(menuBody, 511, "\r1.\w Suriu \y(\rviteza mare\y)^n")
    add(menuBody, 511, "\r2.\w Satar \y(\rGravitatie Mica\y)^n")
    add(menuBody, 511, "\r3.\w Normal Knife \y(\rRegenerarea hp\y)^n^n")
    add(menuBody, 511, "\r0.\w Exit^n")[/code]
La tero sunt scrie doar 2 cutite si la ct 3 :|
Addons HNS level,gravity,xp DOWNLOAD ( e țeapă)
https://5filme.com/ - un simplu site de filme pentru timpul liber
User avatar
CryWolf
Administrator
Administrator
Posts: 6505
Joined: 07 Aug 2008, 16:33
Detinator Steam: Da
Reputatie: Administrator
Fost Scripter
Manager CS2.eXtream.Ro
Fost Detinator ZM.eXtream.Ro
Fost manager CS.eXtream.Ro
Fost manager CSGO.eXtream.Ro
Fost manager global
Location: Botosani
Discord: crywolf1989
Has thanked: 202 times
Been thanked: 850 times
Contact:

13 Sep 2013, 13:19

te rog explica care cutite (nume) sa ramana ca tu mi-ai zis sa scot 1, 2, 3 dar ct au cu un cutit in minus fata de terro, explica mai jos asa:
CT:
CUTIT ASTA
CUTIT ASTA
CUTIT ASTA

T:
CUTIT ASTA
CUTIT ASTA
CUTIT ASTA

+ ca pluginul foloseste old menu si e vraza sau sunt eu varza in el nu ma inteleg, il schimb pana revii tu cu reply la new menu!
NU IMI MAI DA-TI PM CU CERERE AJUTOR/SAMD, FOLOSITI FORUMUL, CITESC MAJORITATEA TOPICURILOR.
www.dark-arena.com , SERVERE CS / CS2 / L4D AU REVENIT ONLINE.
www.diasporaiptv.ro - SERVICII PREMIUM IPTV

Image

Image
User avatar
CsN^ ;x
Membru eXtream
Membru eXtream
Posts: 3560
Joined: 02 Apr 2012, 16:58
Detinator Steam: Nu
CS Status: Retras din domeniul Counter-Strike
Reputatie: Fost moderator
Location: Bucuresti
Has thanked: 797 times
Been thanked: 607 times

13 Sep 2013, 13:25

Vreau knife-urile astea

Code: Select all

    precache_model("models/knife-mod/v_lcs.mdl")
    precache_model("models/knife-mod/p_knife.mdl")
    precache_model("models/knife-mod/v_bak.mdl")
    precache_model("models/knife-mod/p_bak.mdl")
    precache_model("models/v_knife.mdl") 
    precache_model("models/p_knife.mdl")
Tero :
1.Suriu - p_bak.mdl
2.Satar - v_lcs.mdl
3.Normal - v_knife.mdl

CT :
1.Suriu - p_bak.mdl
2.Satar - v_lcs.mdl
3.Normal - v_knife.mdl

Deci acuma e bine ,sper ca ai intels acum :) .
Addons HNS level,gravity,xp DOWNLOAD ( e țeapă)
https://5filme.com/ - un simplu site de filme pentru timpul liber
User avatar
CryWolf
Administrator
Administrator
Posts: 6505
Joined: 07 Aug 2008, 16:33
Detinator Steam: Da
Reputatie: Administrator
Fost Scripter
Manager CS2.eXtream.Ro
Fost Detinator ZM.eXtream.Ro
Fost manager CS.eXtream.Ro
Fost manager CSGO.eXtream.Ro
Fost manager global
Location: Botosani
Discord: crywolf1989
Has thanked: 202 times
Been thanked: 850 times
Contact:

13 Sep 2013, 14:01

Hai ca ma scos din sarite pluginul asta cu meniul ...
knife_mod.sma | Afiseaza codul
[code=php]
#include <amxmodx>
#include <amxmisc>
#include <engine> 
#include <vault>
#include <fun> 
#include <cstrike>

#define PLUGIN "Knife Mod"
#define VERSION "1.0" 
#define AUTHOR "spunko"

#define TASK_INTERVAL 4.0  
#define MAX_HEALTH 255  
#define TAG "INFO"

new knife_model[33] 
new g_MenuT 
new g_MenuCT

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_MenuT = register_menuid("Terro Knife") 
    g_MenuCT = register_menuid("CT Menu")
    register_menucmd(g_MenuT, 1023, "knife_T") 
    register_menucmd(g_MenuCT, 1023, "knife_CT")
    
    register_clcmd("say /knife", "check")
    register_clcmd("say knife", "check")
    register_clcmd("say_team knife", "check")
    register_clcmd("say_team /knife", "check")
    register_clcmd("say cutit", "check")
    register_clcmd("say_team cutit", "check")
    register_clcmd("say /cutit", "check")
    register_clcmd("say_team /cutit", "check")
    
    
    CVAR_HIGHSPEED = register_cvar("km_highspeed","600")
    CVAR_LOWSPEED = register_cvar("km_lowspeed","170")
    CVAR_HEALTH_ADD = register_cvar("km_addhealth", "10")
    CVAR_HEALTH_MAX = register_cvar("km_maxhealth", "120")
    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-mod/v_lcs.mdl")
    precache_model("models/knife-mod/p_knife.mdl")
    precache_model("models/knife-mod/v_bak.mdl")
    precache_model("models/knife-mod/p_bak.mdl")
    precache_model("models/v_knife.mdl") 
    precache_model("models/p_knife.mdl")
}  

public check ( id ) 
{
    if ( !is_user_connected ( id ) || !is_user_alive ( id ) )
        return 1;
    
    new team = get_user_team ( id )
    switch ( team )
    {
        case CS_TEAM_T: Knife_T ( id );
        
        case CS_TEAM_CT: Knife_CT ( id );
    }
    
    return 1;
} 

public Knife_T(id) 
{   
    new menu = menu_create ( "Knife Mod \r[ \yDR\r.\yLEGENDCS\r.\yCOM \r]", "knife_T" );
    
    menu_additem ( menu, "\w Suriu \y(\rviteza mare\y)^n", "1", 0 );
    menu_additem ( menu, "\w Satar \y(\rGravitatie Mica\y)^n", "2", 0 );
    menu_additem ( menu, "\w Normal Knife \y(\rRegenerarea hp\y)^n", "3", 0 );
    
    menu_setprop( menu, MPROP_NUMBER_COLOR, "\r" );
    menu_setprop ( menu, MPROP_EXIT, MEXIT_ALL );
    
    menu_display ( id, menu, 0 );
}

public Knife_CT(id) 
{
    new menu = menu_create ( "Knife Mod \r[ \yDR\r.\yLEGENDCS\r.\yCOM \r]", "knife_CT" );
    
    menu_additem ( menu, "\w Suriu \y(\rviteza mare\y)^n", "1", 1 );
    menu_additem ( menu, "\w Satar \y(\rGravitatie Mica\y)^n", "2", 1 );
    menu_additem ( menu, "\w Normal Knife \y(\rRegenerarea hp\y)^n^n", "3", 1 );
    
    menu_setprop( menu, MPROP_NUMBER_COLOR, "\r" );
    menu_setprop ( menu, MPROP_EXIT, MEXIT_ALL );
    
    menu_display ( id, menu, 1 );
} 


public knife_CT ( id, menu, item ) 
{
    if ( !is_user_alive ( id ) )
        return 1;
    
    if ( item == MENU_EXIT )
    {
        menu_destroy ( menu );
        
        return 1;
    }
    
    new data [ 6 ], szName [ 64 ];
    new access, callback;
    
    menu_item_getinfo ( menu, item, access, data, charsmax ( data ), szName, charsmax ( szName ), callback );
    
    new key = str_to_num ( data );
    
    switch ( key )
    {
        case 1: SetKnife(id , 3)
        case 2: SetKnife(id , 2)
        case 3: SetKnife(id , 1)
    }
    SaveData ( id );
    menu_destroy ( menu );
    
    return 1;
}  

public knife_T( id, menu, item) 
{ 
    
    if ( !is_user_alive ( id ) )
        return 1;
    
    if ( item == MENU_EXIT )
    {
        menu_destroy ( menu );
        
        return PLUGIN_HANDLED;
    }
    
    new data [ 6 ], szName [ 64 ];
    new access, callback;
    
    menu_item_getinfo ( menu, item, access, data, charsmax ( data ), szName, charsmax ( szName ), callback );
    
    new key = str_to_num ( data );
    
    switch ( key )
    {
        case 1: SetKnife(id , 3) 
        case 2: SetKnife(id , 2)
        case 3: SetKnife(id , 1) 
    }
    SaveData ( id )
    menu_destroy ( menu );
    
    return 1;
}

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],pModel[56]
    
    switch ( Knife )
    {
        case 1: {
            format(vModel,55,"models/v_knife.mdl")
            format(pModel,55,"models/p_knife.mdl")
        }
        case 2: {
            format(vModel,55,"models/knife-mod/v_lcs.mdl")
            format(pModel,55,"models/p_knife.mdl")
        }
        case 3: {
            format(vModel,55,"models/knife-mod/v_bak.mdl")
            format(pModel,55,"models/knife-mod/p_bak.mdl")
        }
    } 
    
    entity_set_string(id, EV_SZ_viewmodel, vModel)
    entity_set_string(id, EV_SZ_weaponmodel, pModel)
    
    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) {  
    if(task_exists(id)) remove_task(id)  
}  


public kmodmsg() { 
    
    xColor( 0, "Scrie !g/knife!n pentru a schimba !tCUTITUL!n !" );
}  

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)

} 
stock xColor(const id, const input[], any:...)
{
    new count = 1, players[32]
    static msg[320], msg2[320]
    vformat(msg, 190, input, 3)
    format(msg2, 190, "!g[!g%s!g]!n %s", TAG, msg)
    replace_all(msg2, 190, "!g", "^4")
    replace_all(msg2, 190, "!n", "^1")
    replace_all(msg2, 190, "!t", "^3")
    replace_all(msg2, 190, "!t2", "^0")
    if (id)
    players[0] = id
    else
    get_players(players, count, "ch")
    for (new i = 0; i < count; i++)
    {
        if (is_user_connected(players))
        {
            message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players)
            write_byte(players)
            write_string(msg2)
            message_end()
        }
    }
} [/code]
NU IMI MAI DA-TI PM CU CERERE AJUTOR/SAMD, FOLOSITI FORUMUL, CITESC MAJORITATEA TOPICURILOR.
www.dark-arena.com , SERVERE CS / CS2 / L4D AU REVENIT ONLINE.
www.diasporaiptv.ro - SERVICII PREMIUM IPTV

Image

Image
User avatar
CsN^ ;x
Membru eXtream
Membru eXtream
Posts: 3560
Joined: 02 Apr 2012, 16:58
Detinator Steam: Nu
CS Status: Retras din domeniul Counter-Strike
Reputatie: Fost moderator
Location: Bucuresti
Has thanked: 797 times
Been thanked: 607 times

13 Sep 2013, 14:34

Acum nu mai imi da cutitele,cand scriu /knife nu imi mai apare meniul.
EDIT : Merge la tero sa scri /knife si iti apare meniu si vezi ca l-ai facut prea labartat adica e ceva gen

Code: Select all

1.Cutit

2.Cutit

3.Cutit
Te rog sa faci sa mearga si la ct :|
Addons HNS level,gravity,xp DOWNLOAD ( e țeapă)
https://5filme.com/ - un simplu site de filme pentru timpul liber
Post Reply

Return to “Modificari pluginuri”

  • Information
  • Who is online

    Users browsing this forum: Baidu [Spider] and 12 guests