Добро пожаловать на форум, Гость, это ваша панель
  • Страница 1 из 1
  • 1
Форум Perfect Soft » Моды и AMX Скриптинг CS 1.6 » CSSB War3FT MOD » Как сделать модель ножа для любой расы
Как сделать модель ножа для любой расы
SMaster
Дата: Четверг, 09.01.2014, 16:35 | Сообщение # 1
офлайн

  • Сообщения: 2189
  • Награды: 46
  • Замечания:
 
Шаг 1.

Подключаем в cssbWar3ftMod.sma
#include "war3ft/natives.cpp"
#include "war3ft/natives.h"

Регистрируем натив в public plugin_natives()
Код
register_native("cssbGetIdRace", "nativeGetIdRace", 1);


Шаг 2.
Делаем плагин который модель ножа будет менять.
Код
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

#include "war3ft/natives.h"

#define PLUGIN "CSSB WAR3FT RACE KNIFE"
#define VERSION "1.0"
#define AUTHOR "CSSB"

static const vMdlKnife[] = "models/war3ftknife/v_knife_ork.mdl"
static const pMdlKnife[] = "models/war3ftknife/p_knife_ork.mdl"

#define RACE_ID    3    //раса Орк

public plugin_init()
{
   register_plugin(PLUGIN, VERSION, AUTHOR);
     
   RegisterHam(Ham_Item_Deploy, "weapon_knife", "hamKnfItemDeploy", 1);
}

public plugin_precache()
{
   precache_model(vMdlKnife);
   precache_model(pMdlKnife);
}

public hamKnfItemDeploy(idWeapon)
{
   if(!pev_valid(idWeapon))
    return HAM_IGNORED;
     
   new idUser = pev(idWeapon, pev_owner);
     
   if(!is_user_alive(idUser))
    return HAM_IGNORED
     
   if(cssbGetIdRace(idUser) == RACE_ID)   
    fSetModelKnife(idUser);
     
   return HAM_HANDLED;
}

fSetModelKnife(idUser)
{
   set_pev(idUser, pev_viewmodel2, vMdlKnife);
   set_pev(idUser, pev_weaponmodel2, pMdlKnife);
}


ID рас берем с мода варика как они идут:
Код
#define RACE_UNDEAD  1
#define RACE_HUMAN    2
#define RACE_ORC    3
#define RACE_ELF            4
#define RACE_BLOOD    5
#define RACE_SHADOW    6
#define RACE_WARDEN    7
#define RACE_CRYPT    8
#define RACE_CHAMELEON   9
#define RACE_FROST_MAGE   10 //Ледяной маг
#define RACE_DEATH_KNIGHT  11 //Рацарь смерти
#define RACE_BLACK_MAGICIAN  12 //Черный маг
#define RACE_ALCHEMIST   13 //Алхимик
#define RACE_PRIEST    14  //Жрец


Пример:
#define RACE_ID 4 //раса Ельф

Шаг 3.
На базе этого простенького плагина делаем себе ножичек для любой расы.
Прикрепил архив с готовым кодом плагина.

PS: у кого версия мода 4.5 и выше,
натив уже вшит,поэтому можете свободно брать уже сам плагин и клепать ножи.

Некоторые просили вшить в сам мод,так вот решил сделать отдельно.Пользуемся кому нужно.
Прикрепления: cssbWar3ftRaceK.rar (565.3 Kb)


Наша группа вконтакте http://vk.com/nano_world_cs

Контакты:
ICQ 607786179
Skype xonahead

 
MrScooter
Дата: Четверг, 09.01.2014, 18:11 | Сообщение # 2
офлайн

  • Сообщения: 251
  • Награды: 0
  • Замечания:
 
Спасибо, Все работает!

 
Zep
Дата: Вторник, 18.03.2014, 19:28 | Сообщение # 3
офлайн

  • Сообщения: 199
  • Награды: 2
  • Замечания:
 
а как сделать в одном плагине сразу для нескольких расс?
 
SMaster
Дата: Среда, 19.03.2014, 11:31 | Сообщение # 4
офлайн

  • Сообщения: 2189
  • Награды: 46
  • Замечания:
 
Zep, Добавляешь по аналогии.
Знаний нужно минимум чтобы сделать.
Кратко расписал ниже,должно быть все понятно!

Сами модели ножа
Код
static const vMdlKnife_2[] = "models/war3ftknife/v_knife_elf.mdl"
static const pMdlKnife_2[] = "models/war3ftknife/p_knife_elf.mdl"


Код
#define RACE_ELF 4 //"Эльф


Добавляешь модели в прекеш
Код
precache_model(vMdlKnife_2);
precache_model(pMdlKnife_2);


// Проверка какая раса
Код
if(cssbGetIdRace(idUser) == RACE_ELF)
fSetModelKnife_2(idUser);


//Модель ножа ставит игроку
Код
fSetModelKnife_2(idUser)
{
set_pev(idUser, pev_viewmodel2, vMdlKnife_2);
set_pev(idUser, pev_weaponmodel2, pMdlKnife_2);
}


Наша группа вконтакте http://vk.com/nano_world_cs

Контакты:
ICQ 607786179
Skype xonahead

 
MaRs
Дата: Четверг, 26.06.2014, 16:54 | Сообщение # 5
офлайн

  • Сообщения: 26
  • Награды: 0
  • Замечания:
 
Плагин не компилируется((
cssbWar3ftRaceKnife.sma(5) : fatal error 100: cannot read from file: "war3ft/natives.h"


Сообщение отредактировал MaRs - Четверг, 26.06.2014, 16:57
 
B@RB@DO$
Дата: Суббота, 01.11.2014, 12:03 | Сообщение # 6
офлайн

  • Сообщения: 72
  • Награды: 0
  • Замечания:
 
Сделал так даже не знаю как я это сделал  surprised

Правильно сделал ??? скомпилировал и всё при компиляции выдает это но скомпилировало ножи отображает в игре кроме карты 35hp_2


Код
#include <amxmodx>  
  #include <fakemeta>  
  #include <hamsandwich>  
   
  #include "war3ft/natives.h"  
   
  #define PLUGIN "CSSB WAR3FT RACE KNIFE"  
  #define VERSION "1.0"  
  #define AUTHOR "CSSB"  
   
  static const vMdlKnife_1[] = "models/war3ftknife/raceknife/v_knife_undead.mdl" //раса Нежить
  static const vMdlKnife_2[] = "models/war3ftknife/raceknife/v_knife_human.mdl" //раса Человек
  static const vMdlKnife_3[] = "models/war3ftknife/raceknife/v_knife_orc.mdl" //раса Орк  
  static const vMdlKnife_4[] = "models/war3ftknife/raceknife/v_knife_elf.mdl" //раса Эльф
  static const vMdlKnife_5[] = "models/war3ftknife/raceknife/v_knife_blood.mdl" //раса Маг
  static const vMdlKnife_6[] = "models/war3ftknife/raceknife/v_knife_shadow.mdl" //раса Охотник
  static const vMdlKnife_7[] = "models/war3ftknife/raceknife/v_knife_warden.mdl" //раса Шпион
  static const vMdlKnife_8[] = "models/war3ftknife/raceknife/v_knife_crypt.mdl" //раса Лорд
  static const vMdlKnife_9[] = "models/war3ftknife/raceknife/v_knife_chameleon.mdl" //раса Полиморф
  static const vMdlKnife_10[] = "models/war3ftknife/raceknife/v_knife_frostmage.mdl" //раса Ледяной маг
   
  #define RACE_UNDEAD    1    //раса Нежить  
  #define RACE_HUMAN   2    //раса Человек
  #define RACE_ORC    3    //раса Орк  
  #define RACE_ELF   4    //раса Эльф
  #define RACE_BLOOD   5    //раса Маг
  #define RACE_SHADOW    6    //раса Охотник
  #define RACE_WARDEN    7    //раса Шпион
  #define RACE_CRYPT    8    //раса Лорд
  #define RACE_CHAMELEON   9    //раса Полиморф
  #define RACE_FROST_MAGE    10   //раса Ледяной маг
   
  public plugin_init()  
  {  
    register_plugin(PLUGIN, VERSION, AUTHOR);  
        
    RegisterHam(Ham_Item_Deploy, "weapon_knife", "hamKnfItemDeploy", 1);  
  }  
   
  public plugin_precache()  
  {  
    precache_model(vMdlKnife_1);  
    precache_model(vMdlKnife_2);    
    precache_model(vMdlKnife_3);
    precache_model(vMdlKnife_4);
    precache_model(vMdlKnife_5);
    precache_model(vMdlKnife_6);
    precache_model(vMdlKnife_7);
    precache_model(vMdlKnife_8);
    precache_model(vMdlKnife_9);
    precache_model(vMdlKnife_10);
  }  
   
  public hamKnfItemDeploy(idWeapon)  
  {  
    if(!pev_valid(idWeapon))  
     return HAM_IGNORED;  
        
    new idUser = pev(idWeapon, pev_owner);  
        
    if(!is_user_alive(idUser))  
     return HAM_IGNORED  
        
    if(cssbGetIdRace(idUser) == RACE_UNDEAD)    
     fSetModelKnife_1(idUser);  
     
    if(cssbGetIdRace(idUser) == RACE_HUMAN)    
     fSetModelKnife_2(idUser);  
     
    if(cssbGetIdRace(idUser) == RACE_ORC)    
     fSetModelKnife_3(idUser);  
     
    if(cssbGetIdRace(idUser) == RACE_ELF)    
     fSetModelKnife_4(idUser);  
     
    if(cssbGetIdRace(idUser) == RACE_BLOOD)    
     fSetModelKnife_5(idUser);  
     
    if(cssbGetIdRace(idUser) == RACE_SHADOW)    
     fSetModelKnife_6(idUser);  
     
    if(cssbGetIdRace(idUser) == RACE_WARDEN)    
     fSetModelKnife_7(idUser);  
     
    if(cssbGetIdRace(idUser) == RACE_CRYPT)    
     fSetModelKnife_8(idUser);  
     
    if(cssbGetIdRace(idUser) == RACE_CHAMELEON)    
     fSetModelKnife_9(idUser);  
     
    if(cssbGetIdRace(idUser) == RACE_FROST_MAGE)    
     fSetModelKnife_10(idUser);  
        
    return HAM_HANDLED;  
  }  
   
   fSetModelKnife_1(idUser)
  {  
    set_pev(idUser, pev_viewmodel2, vMdlKnife_1);
  }
   
    fSetModelKnife_2(idUser)
  {  
    set_pev(idUser, pev_viewmodel2, vMdlKnife_2);
  }
   
    fSetModelKnife_3(idUser)
  {  
    set_pev(idUser, pev_viewmodel2, vMdlKnife_3);
  }
   
    fSetModelKnife_4(idUser)
  {  
    set_pev(idUser, pev_viewmodel2, vMdlKnife_4);
  }
   
    fSetModelKnife_5(idUser)
  {  
    set_pev(idUser, pev_viewmodel2, vMdlKnife_5);
  }
   
    fSetModelKnife_6(idUser)
  {  
    set_pev(idUser, pev_viewmodel2, vMdlKnife_6);
  }
   
    fSetModelKnife_7(idUser)
  {  
    set_pev(idUser, pev_viewmodel2, vMdlKnife_7);
  }
   
    fSetModelKnife_8(idUser)
  {  
    set_pev(idUser, pev_viewmodel2, vMdlKnife_8);
  }
   
    fSetModelKnife_9(idUser)
  {  
    set_pev(idUser, pev_viewmodel2, vMdlKnife_9);
  }
   
    fSetModelKnife_10(idUser)
  {  
    set_pev(idUser, pev_viewmodel2, vMdlKnife_10);
  }
Прикрепления: 1554608.jpg (72.0 Kb)


Сообщение отредактировал B@RB@DO$ - Суббота, 01.11.2014, 12:04
 
KILLER7x7
Дата: Воскресенье, 02.11.2014, 00:06 | Сообщение # 7
офлайн

  • Сообщения: 94
  • Награды: 4
  • Замечания:
 
Вот только другой метод
Прикрепления: cssbWar3ftRaceK.sma (4.2 Kb)


killer7x7_ua





Сообщение отредактировал KILLER7x7 - Воскресенье, 02.11.2014, 00:42
 
B@RB@DO$
Дата: Воскресенье, 02.11.2014, 11:52 | Сообщение # 8
офлайн

  • Сообщения: 72
  • Награды: 0
  • Замечания:
 
KILLER7x7, Спасибо   wink
 
МУЖЫК
Дата: Понедельник, 26.01.2015, 23:46 | Сообщение # 9
офлайн

  • Сообщения: 50
  • Награды: 0
  • Замечания:
 
Цитата B@RB@DO$ ()
ножи отображает в игре кроме карты 35hp_2
    
Такая же проблема, подскажите, почему именно на этой карте не отображаются ножи?
 
B@RB@DO$
Дата: Вторник, 27.01.2015, 03:37 | Сообщение # 10
офлайн

  • Сообщения: 72
  • Награды: 0
  • Замечания:
 
МУЖЫК, смотри выше исходник выложил  KILLER7x7 там  отображаются только с нового раунда!
 
МУЖЫК
Дата: Суббота, 31.01.2015, 03:30 | Сообщение # 11
офлайн

  • Сообщения: 50
  • Награды: 0
  • Замечания:
 
Окей, ребят, скажите плз как сделать чтобы использовалась также модель P а не только V? как у киллера? попытался сам добавить - сервер не запускается, но плагин вроде компилится, скорее всего я просто неправильно чтото сделал. ничего не понимаю в этих кодах))
Прикрепления: 3187427.sma (1.6 Kb)
 
B@RB@DO$
Дата: Воскресенье, 01.02.2015, 01:10 | Сообщение # 12
офлайн

  • Сообщения: 72
  • Награды: 0
  • Замечания:
 
МУЖЫК,  


Код
static const vMdlKnife_2[] = "models/war3ftknife/v_knife_orc.mdl" //раса Орк    
static const pMdlKnife_2[] = "models/war3ftknife/p_knife_ork.mdl" тут правельное названия?
 
МУЖЫК
Дата: Суббота, 14.02.2015, 02:47 | Сообщение # 13
офлайн

  • Сообщения: 50
  • Награды: 0
  • Замечания:
 
B@RB@DO$, спасибо , я и не заметил, протестим - отпишусь)

Добавлено (14.02.2015, 02:47)
---------------------------------------------
не, дело не в этом. все равно не запускается сервер с этим плагином, хотя компилится все ок.

 
Ewer
Дата: Четверг, 05.03.2015, 01:11 | Сообщение # 14
офлайн

  • Сообщения: 87
  • Награды: 0
  • Замечания:
 
Тоже вот такая ошибка cssbWar3ftRaceKnife.sma(5) : fatal error 100: cannot read from file: "war3ft/natives.h" sad
 
Форум Perfect Soft » Моды и AMX Скриптинг CS 1.6 » CSSB War3FT MOD » Как сделать модель ножа для любой расы
  • Страница 1 из 1
  • 1
Поиск: