引用 | 編輯
可乐渴了
2020-01-30 20:33 |
樓主
▼ |
||
x1
*教程仅给小白提供思路及参考*有什么问题请及时留言回复 等级系统该如何写出,我将给予你们一个完整的思路 Level -> XP -> Points 那么我们该如何进行整理 首先 1.Level 2.XP 3.Points 数量是三个 那就是说我们的数组需要三个位置来储存这三个参数 例: Save_PlayerData[33][3] *Save_PlayerData[33][0] = Level *Save_PlayerData[33][1] = XP *Save_PlayerData[33][2] = Points 这三个参数我们已经放到了数组里进行表示 那么等级系统该如何让这三个参数分别各自工作呢 1.等级经验计算的公式 2.什么情况下等级提升 3.如何获取等级经验 先说第 1 点: 首先我们数组通常在没有进行赋值的情况下为 0 我举个例子 if (Save_PlayerData[33][1] > (Save_PlayerData[33][0] + 1) * 100) 这是一个经验公式 (经验 > 等级 + 1 * 100) 这里小白可能没理解 我再详细说一下 如果经验 > 等级 + 1 * 100 代入值就是 你所获取的经验 > 0 + 1 * 100 那么您的等级将会提升 同时这也是第 2 点 第 3 点: public fw_PlayerKilled(victim, attacker, shouldgib) 这是死亡事件 那么当我们杀死一个人的时候可以使攻击者经验增加 同时进行一个判断等级的工作 // 例子代码 public fw_PlayerKilled(victim, attacker, shouldgib) { if (attacker == victim || !is_user_connected(attacker)) return HAM_IGNORED Save_PlayerData[attacker][1] ++ if (Save_PlayerData[1] > (Save_PlayerData[0] + 1) * 100) { Save_PlayerData[0] ++ // 等级增加 Save_PlayerData[2] ++ // 技能点增加 } return HAM_IGNORED } *以上的教程算是完成了 虽然可能一时半会看不懂 但是要多看几次我相信你们自然明了 可乐 在这里谢谢大家观赏啦!有什么问题请留言 我们可以共同讨论 x1
|
引用 | 編輯
弒血
2020-01-31 07:55 |
1樓
▲ ▼ |
下面是引用 可乐渴了 於 2020-01-30 20:33 發表的 原创,|教你如何使用数组写出等级系统: fw_PlayerKilled內的判斷忘了判斷attacker哦(使用者)! 原: if (Save_PlayerData[1] > (Save_PlayerData[0] + 1) * 100) { Save_PlayerData[0] ++ // 等級增加 Save_PlayerData[2] ++ // 技能點增加 } 修改: if (Save_PlayerData[attacker][1] > (Save_PlayerData[attacker][0] + 1) * 100) { Save_PlayerData[attacker][0] ++ // 等級增加 Save_PlayerData[attacker][2] ++ // 技能點增加 } x1 |