引用 | 編輯
freeze02468
2013-12-20 19:54 |
樓主
▼ |
||
x0
請問各位大大一件重要的問題... 就是有辦法更改下圖中的SPR嗎? (不是用覆蓋的,是改新增武器的SPR!希望各位大大能知道小弟在問什麼...我不太會解釋...) 小弟爬了很多文章到目前為止沒有看過有大大發教學文或插件... 如果有大大會的話,能麻煩教教小弟嗎? 真的很感激! x0
|
引用 | 編輯
a7811311622
2013-12-20 20:56 |
1樓
▲ ▼ |
下面是引用 freeze02468 於 2013-12-20 19:54 發表的 關於武器的SPR...:沒教學的原因…其實挺普通的…因為 AlliedModders 有教學了… https://forums.alliedmods.net/showthread.php?t=175632 x1 |
引用 | 編輯
freeze02468
2013-12-20 23:11 |
2樓
▲ ▼ |
下面是引用 a7811311622 於 2013-12-20 20:56 發表的 : 謝謝a78大大的回覆! 每次有問題都是大大在幫我 不過是英文...努力翻譯中... 我相信很快又會有問題要請問大大了... x0 |
引用 | 編輯
freeze02468
2013-12-21 02:20 |
3樓
▲ ▼ |
||||||||||
想請問一下大大...
假如我想要更改閃靈的SPR 請問要更改哪一些指令? P.S 小弟在插件中加進去的指令前面都加上 "// 閃靈" 方便大大看有那些要更改的地方
x0 |
引用 | 編輯
a7811311622
2013-12-21 13:07 |
4樓
▲ ▼ |
下面是引用 freeze02468 於 2013-12-21 02:20 發表的 :話說…你都設定買的閃靈是用 weapon_m3 改的… 那你怎麼全部要設定SPR的只顧著複製SMA卻忘記要將範例的 weapon_knife 改成 weapon_m3 ? 還有 OnAddToPlayerKnife 裡面的內容也要改… 對照表:https://wiki.alliedmods.net/CS_WeaponList_Message_Dump 複製程式 write_string( "weapon_ArkFlare" ); // 武器名稱自己定,不過要記得和 register_clcmd("weapon_ArkFlare"這裡一樣 write_byte( -1 ); // 看對照表,例如m3的數值是5 write_byte( -1 ); // 看對照表,例如m3的數值是32,不過這可以自訂… write_byte( -1 ); // 看對照表 write_byte( -1 ); // 看對照表 write_byte( 4 ); // 看對照表,例如m3的數值是0,代表武器欄位的第一個位置,設成1就會跑到小槍的位置 write_byte( 1 ); // 看對照表,例如m3的數值是5,如果上一個參數有變動就不建議亂改 write_byte( CSW_KNIFE ); // 看對照表,例如m3的數值是CSW_M3,就是21 write_byte( 0 ); // 看對照表,例如m3的數值是0,這邊會有數值的大都是手榴彈那類的 x0 |
引用 | 編輯
freeze02468
2013-12-21 14:25 |
5樓
▲ ▼ |
||||||||||
下面是引用 a7811311622 於 2013-12-21 13:07 發表的 : 真的很不好意思大大... 請問一下我這樣子改對嗎? SPR 有成功換成閃靈的了! 不過...連 M3 的SPR也換成閃靈的了... 那有辦法將M3 和閃靈的SPR分開嗎? 抱歉小弟不懂這些...好複雜...
x0 |
引用 | 編輯
a7811311622
2013-12-21 14:37 |
6樓
▲ ▼ |
下面是引用 freeze02468 於 2013-12-21 14:25 發表的 :只要是新增武器的插件鐵定都會有個變數是用來紀錄玩家是否擁有新武器… 例如這插件是用 has_hellm3[id] 這個… 複製程式 public OnAddToPlayerKnife( const item, const player ) { if( pev_valid( item ) && is_user_alive( player ) ) // just for safety. { if( has_hellm3[ player ] ) // 有撿到新武器 { message_begin( MSG_ONE, MsgIndexWeaponList, .player = player ); write_string( "weapon_m1887" ); // WeaponName write_byte( 5 ); // PrimaryAmmoID write_byte( 32 ); // PrimaryAmmoMaxAmount write_byte( -1 ); // SecondaryAmmoID write_byte( -1 ); // SecondaryAmmoMaxAmount write_byte( 0 ); // SlotID (0...N) write_byte( 5 ); // NumberInSlot (1...N) write_byte( CSW_M3 ); // WeaponID write_byte( 0 ); // Flags message_end(); } else // 沒撿到新武器,只是普通的武器 { message_begin( MSG_ONE, MsgIndexWeaponList, .player = player ); write_string( "weapon_m3" ); // WeaponName write_byte( 5 ); // PrimaryAmmoID write_byte( 32 ); // PrimaryAmmoMaxAmount write_byte( -1 ); // SecondaryAmmoID write_byte( -1 ); // SecondaryAmmoMaxAmount write_byte( 0 ); // SlotID (0...N) write_byte( 5 ); // NumberInSlot (1...N) write_byte( CSW_M3 ); // WeaponID write_byte( 0 ); // Flags message_end(); } } } x1 |
引用 | 編輯
freeze02468
2013-12-21 18:55 |
7樓
▲ ▼ |
引用 | 編輯
freeze02468
2013-12-22 23:07 |
8樓
▲ ▼ |
引用 | 編輯
a7811311622
2013-12-23 11:45 |
9樓
▲ ▼ |
下面是引用 freeze02468 於 2013-12-22 23:07 發表的 :問題主要是沒修改 OnItemSlotKnife 的內容… 複製程式 public OnItemSlotKnife( const item ) { if (!pev_valid(item)) return HAM_IGNORED; static owner owner = pev(weapon, pev_owner) if (has_hellm3[owner]) { SetHamReturnInteger( 1 ); return HAM_SUPERCEDE; } return HAM_IGNORED; } 不過我做了測試後…覺得 Ham_Item_ItemSlot 的用途實在有夠少… 整段刪除也無所謂…反正不影響 SPR 結果… x1 |
引用 | 編輯
freeze02468
2013-12-23 21:47 |
10樓
▲ ▼ |
||||||||||
下面是引用 a7811311622 於 2013-12-23 11:45 發表的 : a78 大大您好!! 能請教請問大大一個問題嗎? 剛才問這麼多問題真不好意思 我可能知道問題出在哪裡了...改了這段之後就正常了! 好像是在 public fw_takedamage 這部分... 之前大大跟小弟講的好像是缺回傳值... 請問是要加上 return HAM_IGNORED; 嗎? 小弟試過好像不是這個...
x0 |
引用 | 編輯
a7811311622
2013-12-23 23:07 |
11樓
▲ ▼ |
下面是引用 freeze02468 於 2013-12-23 21:47 發表的 :第一個錯誤是因為你在409行弄了 return HAM_IGNORED; 導致第411行永遠無法執行… 而且下面的內容可以刪了…那行是我以前弄得有問題的殺人圖改法… 那篇教學早就被一群盜文者和NST愚民弄爛到我不想管了… 那高威望的垃圾內容笑笑就好… x0 |
引用 | 編輯
freeze02468
2013-12-23 23:43 |
12樓
▲ ▼ |
我詛咒那些盜文者在電腦桌前暴斃....
我覺得大大發的那篇是神作 為了要看到那篇我還特地回文去衝威望.... 那請問大大有其他的方法能夠改善嗎? x0 |
引用 | 編輯
a7811311622
2013-12-24 09:50 |
13樓
▲ ▼ |
引用 | 編輯
freeze02468
2013-12-24 13:18 |
14樓
▲ ▼ |
引用 | 編輯
a7811311622
2013-12-24 15:02 |
15樓
▲ ▼ |
引用 | 編輯
freeze02468
2013-12-24 19:23 |
16樓
▲ ▼ |
引用 | 編輯
a7811311622
2013-12-24 20:13 |
17樓
▲ ▼ |
引用 | 編輯
freeze02468
2013-12-24 20:51 |
18樓
▲ ▼ |
引用 | 編輯
freeze02468
2013-12-24 21:51 |
19樓
▲ ▼ |
下面是引用 a7811311622 於 2013-12-24 20:13 發表的 : 不好意思大大能再請教一個問題嗎? http://bbs.mychat.to/reads.php?tid=920090 史萊姆大大說有增加 "獨立殺人圖示" 不過殺人圖示卻是骷髏頭... 請問要去哪裡設定呢? 剛剛小弟爬文找到解決辦法了~ 還有請問大大殺人訊息的關鍵字是什麼? 因為小弟想每個插件都找找看有沒有殺人訊息... x0 |
引用 | 編輯
a7811311622
2013-12-24 22:25 |
20樓
▲ ▼ |
下面是引用 freeze02468 於 2013-12-24 21:51 發表的 :理論上找到的會是這個 get_user_msgid("DeathMsg") x1 |
引用 | 編輯
freeze02468
2013-12-24 22:30 |
21樓
▲ ▼ |
下面是引用 a7811311622 於 2013-12-24 22:25 發表的 : 感謝大大的指點~ 努力尋找中... x0 |
引用 | 編輯
freeze02468
2013-12-25 01:14 |
22樓
▲ ▼ |
||||||||||
下面是引用 a7811311622 於 2013-12-24 22:25 發表的 : 不好意思大大... 弄了好久結果到了最後還是一樣...所以決定放棄... 小弟想改用史萊姆大大的 DeathMsg 試試看... 請問大大能指點我該怎麼做嗎...? 真對不起...小弟問題真的很多...大大您應該很想打我吧 這一次解決後應該就沒有問題再問了! 參考了史萊姆大大的源碼後... 我只知道要先加一行 register_message(get_user_msgid("DeathMsg"), "message_DeathMsg") 在 public plugin_init() 裡... 還有加 public message_DeathMsg() 進去插件裡..再來就卡住了... 小弟已經在加入的指令前面都標註了"// 殺人圖示"...方便大大看... 如果可以的話...能請大大幫小弟看一看哪裡需要改的嗎? 真的很感激!
x0 |
引用 | 編輯
a7811311622
2013-12-25 09:48 |
23樓
▲ ▼ |
下面是引用 freeze02468 於 2013-12-25 01:14 發表的 :這樣加就差不多了… 不過會有問題的不是武器插件沒加 DeathMsg 而是別的插件也發送 DeathMsg 訊息… 正因為這效果每個插件都能寫…所以每個插件都該懷疑… 如果某些插件沒源碼而你有AMXX的反編譯工具(amx disassembler)的話… 每個插件都反編譯後找看看裡面有沒有 string "DeathMsg" 或是 string "message_deathmsg" 這兩個… 很快就能確定這插件會不會干擾了… x0 |
引用 | 編輯
freeze02468
2013-12-25 16:39 |
24樓
▲ ▼ |
||||||||||
下面是引用 a7811311622 於 2013-12-25 09:48 發表的 : 謝謝大大的指點~ 小弟已經剛剛看過了所有的源碼...幾乎每個都有"DeathMsg" 多虧有大大DeathMsg的問題解決了!! 還有小弟之前講的話要收回來...請大大無視這句話...
真對不起大大! 希望大大別介意才好... 就是小弟在買了M249後 再買 MG3 會出現一件神奇的事情... 接下來恐怖的事情發生了... 接著撿MG3...然後子彈變100發...但是可以正常補彈到200 能請大大幫小弟看看是哪個環節出錯了嗎...? 真的很感激! 一直麻煩大大我覺得很愧疚...
x0 |
引用 | 編輯
a7811311622
2013-12-25 20:36 |
25樓
▲ ▼ |
下面是引用 freeze02468 於 2013-12-25 16:39 發表的 : 這個和上面提到的 DeathMsg 一樣… 有辦法在任何插件加入修改彈藥量的效果… 所以只要有兩個以上的插件做同樣的事情… 只會呈現一種結果… 看這情況應該是買完武器後有哪個插件莫名的設定了武器彈藥量… 至於是哪個插件…同上…又是猜猜看了… 關鍵字應該是「Ham_Item_AttachToPlayer」… 不過這部分的命名可能不像 DeathMsg 這麼好找… x0 |
引用 | 編輯
freeze02468
2013-12-25 20:55 |
26樓
▲ ▼ |
下面是引用 a7811311622 於 2013-12-25 20:36 發表的 : 又是找找看了... 大大對不起,小弟沒將詳細情況寫出來...小弟遇到的狀況是 買了M249之後(拿在手上)...再買MG3就會發生MG3被丟棄...然後手上拿的是M249的情況...而買完之後手上的M249彈藥量有200發...接著手上的M249可以補彈...補彈之後會變成100發...接著去撿起地上的MG3...MG3的彈藥量是100發...然後也可以補彈...補完之後變成200發這樣 簡單來講就好像只是模組換了一樣... 我講得很複雜...希望大大知道小弟的問題是什麼... x0 |
引用 | 編輯
a7811311622
2013-12-26 00:02 |
27樓
▲ ▼ |
下面是引用 freeze02468 於 2013-12-25 20:55 發表的 :無語…原因是知道了… 主要是你這插件某地方程式碼位置順序排錯了… 複製程式 public zp_extra_item_selected(id, itemid) { if (itemid == g_item) { if (has_item[id]) { client_print(id, print_center, "你已經擁有此武器") return; } has_item[id] = 1 set_money(id, get_money(id) - cv_num(cvar_cost)) if (has_weapon(id, 1)) drop_weapons(id, 1) // 這行改放到 has_item[id] = 1 上面即可 fm_give_item(id, wpn_class[CHANGE_WEAPON]) new weapon = fm_find_ent_by_owner(-1, wpn_class[CHANGE_WEAPON], id) cs_set_weapon_ammo(weapon, cv_num(cvar_clip)) cs_set_user_bpammo(id, CHANGE_WEAPON, cv_num(cvar_bpammo)) client_print(id, print_chat, "你購買了%s", new_wpn) } } x1 |
引用 | 編輯
freeze02468
2013-12-26 01:28 |
28樓
▲ ▼ |
||||||||||
下面是引用 a7811311622 於 2013-12-26 00:02 發表的 : 大大您好~ 小弟在此感謝大大不厭其煩地解決我的問題!!! 不過其實...小弟一直很納悶... 就是有辦法解決槍聲重疊的問題嗎? 大大這是您上次教我的這篇文章: http://bbs.mychat.to/reads.php?tid=993377 在射擊的時候槍聲會產生重疊... 小弟每天都有拚命在找教學文但都苦無答案...畢竟要完美改槍聲真的很難辦到 請問有辦法直接在插件裡面做修改嗎...? P.S Hsk大大的消除插件小弟有用過...但是失敗了...跟下面大大一樣... http://bbs.mychat.to/sindex.php?t919162.html 小弟也有參考過這篇...不過依然失敗... http://bbs.mychat.to/sindex.php?t868478.html
x0 |
引用 | 編輯
a7811311622
2013-12-26 10:32 |
29樓
▲ |
下面是引用 freeze02468 於 2013-12-26 01:28 發表的 :現在的槍聲…基本上都不算完美… 模擬方法1: 犧牲了一些內容:V檔的動作、彈孔 前者多寫點內容還可彌補…後者的模擬就很多都不太完美… 最主要的就是子彈打中牆壁時的煙…印象中沒人模擬的和原本CS的一樣… 模擬方法2: 犧牲自己聽到的槍聲…因為槍聲是在 client-side 發出的… 最開始的零點幾秒還是會聽到原槍聲…不過零點幾秒之後的槍聲就能被覆蓋… 最沒感覺的就是射速快的…原槍聲都還沒播完就播放下一發… 新槍聲很難聽到… 根本不模擬了: 像史萊姆就直接把sounds資料夾裡的槍聲檔移走…讓原本的槍聲連播放都不行… 之後再用插件處理無聲的槍聲… x0 |