找回密碼
 註冊
[日本手機遊戲APPS下載] 手機遊戲專區 熱門短片

型男索女 
查看: 8528|回復: 10

[教學]教你整經驗值升Level AMXX

[複製鏈接]
發表於 8-2-2009 20:12:53 | 顯示全部樓層 |閱讀模式
本帖最後由 LSM 於 9-2-2009 11:03 編輯



  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <nvault>   //save exp時用的


  4. new PlayerXP[33],PlayerLevel[33]   //新增變數  playerEXP(經驗值) playerLevel(等級)

  5. new XP_Kill,XP_Hs,SaveXP // 一個固定的經驗值
  6. new g_vault  //用來save的數字

  7. new const LEVELS[7] = {    //const 即 constant(常數) 此處為每級EXP 等級數目不可大於[]內數字
  8. 0,
  9. 100,//你需要100exp
  10. 200,//200 exp
  11. 400,//400exp
  12. 800,
  13. 1600,
  14. 99999  //可防止某BUG
  15. }  


  16. public plugin_init()   //大致上BBQ都教了
  17. {
  18.     register_plugin("EXPLEVELmod", "1.0", "LSM")
  19.     register_event("DeathMsg", "eDeath", "a")     //殺人時發生 "eDeath" 時件
  20.     SaveXP = register_cvar("SaveXP","1")
  21.     XP_Kill=register_cvar("XP_per_kill", "20")   //指令 令殺人幾多exp
  22.     XP_Hs=register_cvar("XP_hs_bonus","20")
  23.     g_vault = nvault_open("expmod")              //開一個save 檔
  24.     register_clcmd("say /class", "ChangeClass")
  25.     register_clcmd("say_team /class", "ChangeClass")
  26.     register_clcmd("say /xp", "ShowHud")
  27.     register_clcmd("say_team /xp", "ShowHud")
  28. }  

  29. public eDeath( ) //function name
  30. {
  31.     new killer = read_data( 1 )  
  32.     new iVictim = read_data( 2 )
  33.     new headshot = read_data( 3 )
  34.     PlayerXP[killer] += get_pcvar_num(XP_Kill) //殺手增加XP_Kill 咁多exp
  35.     if(headshot)
  36.     PlayerXP[killer] += get_pcvar_num(XP_Hs) //爆頭的附加exp
  37.      while(PlayerXP[killer] >= LEVELS[PlayerLevel[attacker]]) //當exp大於
  38.     {  
  39.         client_print(killer, print_chat, "[Animal Mod] Congratulations! You are a level %i %s!", PlayerLevel[killer],CLASSES[PlayerClass[attacker]])
  40.         PlayerLevel[killer] += 1 //此變數加一
  41.     }
  42.     ShowHud(killer)
  43. }  

  44. public ShowHud(id) //HUD顯示器
  45. {
  46.     set_hudmessage(255, 0, 0, 0.75, 0.01, 0, 6.0, 15.0)
  47.     show_hudmessage(id, "Level: %i^nXP: %i^nClass: %s",PlayerLevel[id],PlayerXP[id])
  48. }  



  49. public client_connect(id)  //當某人入場
  50. {
  51.     if(get_pcvar_num(SaveXP) == 1)
  52.     {
  53.         // load save
  54.         LoadData(id)
  55.     }
  56. }  

  57. public client_disconnect(id) //類似上面 當有人離場
  58. {
  59.      if(get_pcvar_num(SaveXP) == 1)
  60.      {
  61.           SaveData(id)
  62.      }
  63. }  
  64. public SaveData(id)
  65. {

  66.     new AuthID[35] get_user_authid(id,AuthID,34)
  67.     new vaultkey[64],vaultdata[256]
  68.     format(vaultkey,63,"%s-Mod",AuthID)
  69.     format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id])
  70.     nvault_set(g_vault,vaultkey,vaultdata)
  71.     return PLUGIN_CONTINUE
  72. }  


  73. public LoadData(id)
  74. {
  75.     new AuthID[35] get_user_authid(id,AuthID,34)
  76.     new vaultkey[64],vaultdata[256]
  77.     // search
  78.     format(vaultkey,63,"%s-Mod",AuthID)
  79.     format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id])
  80.     // load the data
  81.     nvault_get(g_vault,vaultkey,vaultdata,255)
  82.     replace_all(vaultdata, 255, "#", " ")
  83.     new playerxp[32], playerlevel[32]
  84.     parse(vaultdata, playerxp, 31, playerlevel, 31)
  85.     PlayerXP[id] = str_to_num(playerxp)
  86.     PlayerLevel[id] = str_to_num(playerlevel)
  87.     return PLUGIN_CONTINUE
  88. }  
複製代碼


每個level 的能力





  1. public levelfunc(id)  //請設定一個引發的事件
  2. {
  3.      if playerLevel[id] >= X    //某一lv
  4.      {
  5.              XXXXXXXXXX(id)          // 效果 (請自設)
  6.      }
  7.      每一lv 整一次
  8. }

複製代碼

level.sma

2.95 KB, 下載次數: 1423

回復

使用道具 舉報

頭像被屏蔽
發表於 8-2-2009 20:28:39 | 顯示全部樓層
提示: 作者被禁止或刪除 內容自動屏蔽
回復 支持 反對

使用道具 舉報

 樓主| 發表於 12-2-2009 20:56:24 | 顯示全部樓層
2# 唔好kick我

升lv 的差不多都是這個寫法..
回復 支持 反對

使用道具 舉報

頭像被屏蔽
發表於 12-2-2009 21:04:03 | 顯示全部樓層
提示: 作者被禁止或刪除 內容自動屏蔽
回復 支持 反對

使用道具 舉報

發表於 12-2-2009 22:25:28 | 顯示全部樓層
new AuthID[35] get_user_authid(id,AuthID,34)

基本上 non-steam用唔到...
回復 支持 反對

使用道具 舉報

發表於 13-2-2009 07:24:16 | 顯示全部樓層
5# yathsing

用get_user_ip._.?
回復 支持 反對

使用道具 舉報

發表於 13-2-2009 15:58:43 | 顯示全部樓層
緊系用get_user_name 啦._.

ip可能流動.

不能最好都系get_user_authid...
回復 支持 反對

使用道具 舉報

發表於 13-2-2009 18:38:41 | 顯示全部樓層
唔該晒 但唔係好明~=.=
回復 支持 反對

使用道具 舉報

頭像被屏蔽
發表於 13-2-2009 22:28:15 | 顯示全部樓層
提示: 作者被禁止或刪除 內容自動屏蔽
回復 支持 反對

使用道具 舉報

頭像被屏蔽
發表於 13-2-2009 23:03:55 | 顯示全部樓層
提示: 作者被禁止或刪除 內容自動屏蔽
回復 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

小黑屋|Archiver|手機版|Nakuz.com |網站地圖

GMT+8, 9-5-2025 09:06 , Processed in 0.032328 second(s), 15 queries , MemCache On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回復 返回頂部 返回列表