教你如何使用数组写出等级系统

Home Home
引用 | 編輯 可乐渴了
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 發表的 原创,|教你如何使用数组写出等级系统: 到引言文
*教程仅给小白提供思路及参考
*有什么问题请及时留言回复


等级系统该如何写出,我将给予你们一个完整的思路 Level -> XP -> Points
.......



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
引用 | 編輯 可乐渴了
2020-01-31 15:22
2樓
  
下面是引用 弒血 於 2020-01-31 07:55 發表的 : 到引言文


fw_PlayerKilled內的判斷忘了判斷attacker哦(使用者)!

原:
.......
表情 谢谢你的补漏 我以为是变数却忽略它是一个数组

獻花 x0
引用 | 編輯 alan1235
2020-11-04 18:06
3樓
  
感謝,最近想寫像cso災厄那種升級等級系統,先參考看看 表情

獻花 x0
引用 | 編輯 G.M.I
2020-11-05 00:09
4樓
  
感謝教學 表情

獻花 x0