Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Knife Mod

, нужна помощь ребята!
Santila
сообщение 19.1.2013, 22:23
Сообщение #1
Стаж: 17 лет

Сообщений: 71
Благодарностей: 3
Полезность: 0

Скрытый текст
Код
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <vault>
#include <fun>

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

#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("Knife Mod")
   register_menucmd(g_Menu, 1023, "knifemenu")
  
   register_clcmd("say /knife", "display_knife")
  
   CVAR_HIGHSPEED = register_cvar("km_highspeed","400")
   CVAR_LOWSPEED = register_cvar("km_lowspeed","170")
   CVAR_HEALTH_ADD = register_cvar("km_addhealth", "3")
   CVAR_HEALTH_MAX = register_cvar("km_maxhealth", "104")
   CVAR_DAMAGE = register_cvar("km_damage", "2")
   CVAR_LOWGRAV = register_cvar("km_lowgravity" , "300")
   CVAR_NORMGRAV = get_cvar_pointer("sv_gravity")
  
   set_task(480.0, "kmodmsg", 0, _, _, "b")
}

public plugin_precache() {
   precache_model("models/knife-mod/v_karatelu.mdl")
   precache_model("models/knife-mod/v_bita.mdl")
   precache_model("models/knife-mod/v_tixo.mdl")
   precache_model("models/knife-mod/v_toporik.mdl")
   precache_model("models/v_knife.mdl")
}

public display_knife(id) {
   new menuBody[512]
   add(menuBody, 511, "\rМеню Ножей\w^n^n")
   add(menuBody, 511, "1. Бита \y(Сильный удар\низкая скорость)\w^n")
   add(menuBody, 511, "2. Маньяк \y(Безшумная ходьба)\w^n")
   add(menuBody, 511, "3. Топорик \y(Быстрый бег)\w^n")
   add(menuBody, 511, "4. Каратель \y(Низкая гравитация)\w^n")
   add(menuBody, 511, "5. Мед.Нож \y(Регенирация ХП)\w^n^n")
   add(menuBody, 511, "0. Закрыть меню^n")
  
   new keys = ( 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<9 )
   show_menu(id, keys, menuBody, -1, "Knife Mod")
}

public knifemenu(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 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")
      }
      case 1: {
         format(vModel,55,"models/knife-mod/v_karatelu.mdl")
      }
      case 2: {
         format(vModel,55,"models/knife-mod/v_tixo.mdl")
      }
      case 3: {
         format(vModel,55,"models/knife-mod/v_toporik.mdl")
      }
      case 4: {
         format(vModel,55,"models/knife-mod/v_bita.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,"<< !!Глотая таблетки, регеню ХП!! >>")
      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() {
  
   client_print(0,print_chat,"[Narov4at] Пиши /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)
  
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/


такая проблема с ножом 4. Каратель \y(Низкая гравитация)\w^n") используя его лазиют по текстурам можно его изменить уменьшить гравитацию или вообще убрать ........... зарание спасибо!

Отредактировал: Santila, - 19.1.2013, 22:28
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя AndrewZ
сообщение 19.1.2013, 22:43
Сообщение #2


Иконка группы

Стаж: 18 лет
Город: Санкт-Петербург


Сообщений: 4700
Благодарностей: 2452
Полезность: 1018

Santila,
Код
CVAR_LOWGRAV = register_cvar("km_lowgravity" , "300")


Переменная km_lowgravity, стандартная гравитация - 800, дальше сам, ок?)


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Santila
сообщение 19.1.2013, 23:10
Сообщение #3
Стаж: 17 лет

Сообщений: 71
Благодарностей: 3
Полезность: 0

Цитата(AndrewZ @ 19.1.2013, 22:43) *
Santila,
Код
CVAR_LOWGRAV = register_cvar("km_lowgravity" , "300")


Переменная km_lowgravity, стандартная гравитация - 800, дальше сам, ок?)

тоесть хочешь сказать поменять переменную на 800 ???
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя AndrewZ
сообщение 19.1.2013, 23:49
Сообщение #4


Иконка группы

Стаж: 18 лет
Город: Санкт-Петербург


Сообщений: 4700
Благодарностей: 2452
Полезность: 1018

Цитата(Santila @ 19.1.2013, 23:10) *
тоесть хочешь сказать поменять переменную на 800 ???

Делай то, что говорит тебе сердце.


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Santila
сообщение 20.1.2013, 1:05
Сообщение #5
Стаж: 17 лет

Сообщений: 71
Благодарностей: 3
Полезность: 0

AndrewZ, ну если серьезно сделал ну не то всеровно гравитация осталась прежней (
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя AndrewZ
сообщение 20.1.2013, 1:13
Сообщение #6


Иконка группы

Стаж: 18 лет
Город: Санкт-Петербург


Сообщений: 4700
Благодарностей: 2452
Полезность: 1018

Santila,
Это потому, что ты сделал не то. Сделай то и все заработает.


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя RedL1ne
сообщение 20.1.2013, 1:14
Сообщение #7


Стаж: 15 лет

Сообщений: 3828
Благодарностей: 1854
Полезность: 876

в amxx.cfg прописывай
Код
km_lowgravity "800"


Для ускорения процесса еще пропиши под адм правами на сервере или напрямую в консоль серва
amx_cvar km_lowgravity 800
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя AndrewZ
сообщение 20.1.2013, 1:19
Сообщение #8


Иконка группы

Стаж: 18 лет
Город: Санкт-Петербург


Сообщений: 4700
Благодарностей: 2452
Полезность: 1018

Цитата(RedL1ne @ 20.1.2013, 1:14) *
в amxx.cfg прописывай
Код
km_lowgravity "800"


Для ускорения процесса еще пропиши под адм правами на сервере или напрямую в консоль серва
amx_cvar km_lowgravity 800

Зачем? Я и так достаточно подсказал, если и дальше так все разжевывать, то никто думать не будет.)


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: