引用 | 編輯
casper1315
2015-12-19 04:15 |
樓主
▼ |
||
x0
請問一下各位大大們 小弟是開超級英雄伺服要怎麼樣把槍械/人物 模組 編寫進去 技能檔裡面 熬夜熬了兩天 最後結果都是 失敗 失敗 失敗.....爬文也找不到類似的編寫方式 簡單說 我要怎麼樣讓一個技能 多一個人物模組 讓玩家點了技能之後 同時也擁有人物外表 該怎麼樣編寫 在這邊跪求各路邊寫大大們了>"< x0
|
引用 | 編輯
Nailaz
2015-12-20 10:27 |
1樓
▲ ▼ |
先#include <cstrike>
在技能功能新增此行 cs_set_user_model(index, "ABC") plugin_precache() 這裡新增 precache_model("models/player/ABC/ABC.mdl") 依此類推 x0 |
引用 | 編輯
casper1315
2015-12-22 21:30 |
2樓
▲ ▼ |
下面是引用 Nailaz 於 2015-12-20 10:27 發表的: 很抱歉>< 問題出在哪裡....我還是沒出現人物模組 我有照你說的方法去嘗試 可以幫我看一下嗎((你說的語法有給反紅)) // ALIEN! - from the Alien movie series. /* CVARS - copy and paste to shconfig.cfg //Alien alien_level 5 alien_health 125 //Default 125 alien_armor 125 //Default 125 alien_knifemult 0.0 //Damage multiplyer for his Knife alien_vision 160 //How far vision is zoomed out (must be 100 or higer because normal vision is 90) alien_tint 50 //How dark the green screen tint is (255-no sight, 0-perfect sight) alien_alpha 50 //Alpha level when invisible (0-invisible, 255-full visibility) alien_knifemode 0 //1-knife only can't change weapons, 0-Alien Vision on only when knifing (def 0) */ /* * v1.5 - vittu - 6/27/06 * - Updated to amxmodx only, requires amxx 1.70 or higher. * - Plus other minor code changes. * * v1.4 - vittu - 7/3/05 * - Fixed crash to AMX caused by the previous update, since * AMX can't register a MSG_ONE_UNRELIABLE message. * * v1.3 - vittu - 6/14/05 * - Minor code clean up. * * v1.2 - vittu - 3/18/05 * - Updated and cleaned code a bit. Still functions the same. * - Added new cvar alien_knifemode to allow weapon change or not, * old version was knife only. * */ #include <amxmodx> #include <superheromod> #include <cstrike> // GLOBAL VARIABLES new HeroName[] = "異型" new HasAlien[SH_MAXSLOTS+1] new AlienModeOn[SH_MAXSLOTS+1] new MsgSetFOV new CvarKnifeMult, CvarZoomVision, CvarTint, CvarAlphaValue, CvarMode //---------------------------------------------------------------------------------------------- public plugin_init() { // Plugin Info register_plugin("SUPERHERO Alien", "1.5", "Freecode/AssKicR") // DO NOT EDIT THIS FILE TO CHANGE CVARS, USE THE SHCONFIG.CFG register_cvar("alien_level", "5") register_cvar("alien_health", "125") register_cvar("alien_armor", "125") CvarKnifeMult = register_cvar("alien_knifemult", "0.0") CvarZoomVision = register_cvar("alien_vision", "160") CvarTint = register_cvar("alien_tint", "50") CvarAlphaValue = register_cvar("alien_alpha", "50") CvarMode = register_cvar("alien_knifemode", "0") // FIRE THE EVENT TO CREATE THIS SUPERHERO! shCreateHero(HeroName, "拿刀擁有特效", "使用刀時擁有更廣的視野", false, "alien_level") // REGISTER EVENTS THIS HERO WILL RESPOND TO! (AND SERVER COMMANDS) // INIT register_srvcmd("alien_init", "alien_init") shRegHeroInit(HeroName, "alien_init") // EVENTS register_event("ResetHUD", "new_spawn", "b") register_event("CurWeapon", "weapon_change", "be", "1=1") register_event("DeathMsg", "alien_death", "a") register_event("Damage", "alien_damage", "b", "2!0") // Let Server know about Alien's Variables shSetMaxHealth(HeroName, "alien_health") shSetMaxArmor(HeroName, "alien_armor") MsgSetFOV = get_user_msgid("SetFOV") } //---------------------------------------------------------------------------------------------- public alien_init() { // First Argument is an id new temp[6] read_argv(1, temp, 5) new id = str_to_num(temp) // 2nd Argument is 0 or 1 depending on whether the id has the hero read_argv(2, temp, 5) new hasPowers = str_to_num(temp) switch(hasPowers) { case true: { HasAlien[id] = true weapon_change(id) } case false: { //This gets run if they had the power but don't anymore if ( is_user_connected(id) && HasAlien[id] ) { alien_vision_off(id) shRemHealthPower(id) shRemArmorPower(id) } HasAlien[id] = false } } } //---------------------------------------------------------------------------------------------- public new_spawn(id) { if ( shModActive() && is_user_alive(id) && HasAlien[id] ) weapon_change(id) } //---------------------------------------------------------------------------------------------- public weapon_change(id) { if ( !shModActive() || !is_user_alive(id) || !HasAlien[id] ) return //new wpnid = read_data(2) // Do it this way since this might be called on alien_init or reset hud new clipNull, ammoNull, wpnid = get_user_weapon(id, clipNull, ammoNull) switch(wpnid) { case CSW_KNIFE: alien_vision_on(id) default: { // Force knife only or not? switch(get_pcvar_num(CvarMode)) { case 1: client_cmd(id, "weapon_knife") case 0: alien_vision_off(id) } } } } //---------------------------------------------------------------------------------------------- alien_vision_on(id) { if ( shModActive() && is_user_alive(id) && HasAlien[id] ) { AlienModeOn[id] = true // Prevent cvar from being set too low new Zoom = get_pcvar_num(CvarZoomVision) if ( Zoom < 100 ) { debugMessage("(Alien) Alien Vision must be set higher than 100, defaulting to 100", 0, 0) Zoom = 100 set_cvar_num("alien_vision", Zoom) } // Set Zoom message_begin(MSG_ONE, MsgSetFOV, {0,0,0}, id) write_byte(Zoom) message_end() // Set once before loop task setScreenFlash(id, 0, 200, 0, 13, get_pcvar_num(CvarTint)) set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, get_pcvar_num(CvarAlphaValue)) // Loop to make sure their screen stays green and they stay invisible set_task(1.0, "alien_loop", id, "", 0, "b") } } //---------------------------------------------------------------------------------------------- public alien_loop(id) { // Prevents loop from running on disconnected clients if ( !shModActive() || !is_user_connected(id) ) { remove_task(id) return } if ( HasAlien[id] && is_user_alive(id) ) { setScreenFlash(id, 0, 200, 0, 13, get_pcvar_num(CvarTint)) set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, get_pcvar_num(CvarAlphaValue)) } } //---------------------------------------------------------------------------------------------- alien_vision_off(id) { if ( !is_user_connected(id) || !AlienModeOn[id] ) return remove_task(id) // Quickly removes screenflash setScreenFlash(id, 0, 200, 0, 1, get_pcvar_num(CvarTint)) // Reset Zoom message_begin(MSG_ONE, MsgSetFOV, {0,0,0}, id) write_byte(90) //Normal, not Zooming message_end() // Resets alpha set_user_rendering(id) // Makes sure this function is only called once, if alien mode was on AlienModeOn[id] = false } //---------------------------------------------------------------------------------------------- public alien_damage(id) { if ( !shModActive() || !is_user_alive(id) ) return new weapon, bodypart, attacker = get_user_attacker(id, weapon, bodypart) if ( attacker <= 0 || attacker > SH_MAXSLOTS ) return if ( HasAlien[attacker] && weapon == CSW_KNIFE && is_user_alive(id) ) { new damage = read_data(2) new headshot = bodypart == 1 ? 1 : 0 // do extra damage new extraDamage = floatround(damage * get_pcvar_float(CvarKnifeMult) - damage) if ( extraDamage > 0 ) shExtraDamage(id, attacker, extraDamage, "knife", headshot) } } //---------------------------------------------------------------------------------------------- public alien_death() { new id = read_data(2) if ( !HasAlien[id] ) return alien_vision_off(id) } //---------------------------------------------------------------------------------------------- public client_connect(id) { HasAlien[id] = false AlienModeOn[id] = false // Yeah don't want any left over residuals remove_task(id) } //---------------------------------------------------------------------------------------------- public plugin_precache() { cs_set_user_model(index, "alien") precache_model("models/player/alien/alien.mdl") } x0 |