AngelScript Contagion的脚本用法

Contagion脚本用法

  • +API使用说明
    • - HOOK 说明
      • - 玩家
        • 1.玩家已登录服务器
        • 2.当玩家人物被创建
        • 3.当玩家人物受到伤害
    • - 错误解决

—>返回Contagion目录<—

+API使用说明

官方API网站连接

- HOOK 说明

Events::Player::OnPlayerConnected.Hook( @OnPlayerConnected );	//玩家已进入服务器
Events::Player::OnPlayerSpawn.Hook( @OnPlayerSpawn );	//当玩家人物被创建
Events::Player::OnPlayerDamaged.Hook( @OnPlayerDamaged );	//当玩家受到伤害
Events::Player::PlayerSay.Hook( @OnPlayerSay );	//玩家聊天框被使用
Events::Infected::OnInfectedKilled.Hook( @OnInfectedKilled );	//当感染者死亡

- 玩家

1.玩家已登录服务器

用法说明:当玩家已经进入(不是连接中)服务器时,触发指令,这里用欢迎信息来显示

//	聊天框信息输出 all=全体人员 {purple}颜色代码 pBasePlayer=pPlayer

HookReturnCode OnPlayerConnected(CTerrorPlayer@ pPlayer)
{
	CBasePlayer@ pBasePlayer = pPlayer.opCast();	
	Chat.PrintToChat( all, "{purple}[紫冰] {white}欢迎 {azure}"+ pPlayer.GetPlayerName() +" {white}加入{green}紫冰专属服务器." );
	Chat.PrintToChat(pBasePlayer, "{purple}[紫冰] {white}QQ群: {green}208327622");
    return HOOK_CONTINUE;
}

2.当玩家人物被创建

用法说明:玩家选择人物进入游戏后,系统会提示下面信息

//玩家出生
HookReturnCode OnPlayerSpawn(CTerrorPlayer@ pPlayer)
{
	Chat.PrintToChat( all, "{purple}[紫冰] {azure}"+ pPlayer.GetPlayerName() +" {white}被创建出来了." );
	return HOOK_CONTINUE;
}

3.当玩家人物受到伤害

用法说明:当玩家被攻击受伤时,系统提示信息

//玩家受到伤害
HookReturnCode OnPlayerDamaged(CTerrorPlayer@ pPlayer, CTakeDamageInfo &in DamageInfo)
{
	CBaseEntity @pEntityPlayer = ToBaseEntity( pPlayer );	//实体转换
	int iHealthMax = pEntityPlayer.GetMaxHealth();
	int iHealth = pEntityPlayer.GetHealth();
	pEntityPlayer.SetHealth( Math::clamp( iHealth, 0, iHealthMax ) );
	Chat.PrintToChat( pPlayer, "{purple}[紫冰] {azure}"+pPlayer.GetPlayerName() +"{white}当前剩余血量:{green}"+ pEntityPlayer.GetHealth()+"{white}/"+ iHealthMax);
	return HOOK_CONTINUE;
}

- 错误解决

1.Error: Not all paths return a value
解决方法,添加return HOOK_CONTINUE;
2. Error: Identifier ‘strvar’ is not a data type //
错误:无法识别 ‘strvar’ ,没有这种数据类型
解决:查看所有数据类型
3.Error: Can’t implicitly convert from ‘CBasePlayer@&’ to ‘CBaseEntity@&’.
错误: 不能隐式地从’CBasePlayer@&‘转换到’CBaseEntity@&’。
解决:添加CBasePlayer
例子:CBasePlayer@ pTerrorBasePlayer = pTerrorPlayer.opCast(); //设定CBasePlayer,取CTerrorPlayer定义
CBaseEntity@ pBaseEntity = pTerrorBasePlayer.opCast(); //IsAlive需要定义CBaseEntity来转换CBasePlayer


# +原创游戏模式
## - 豆腐模式
>本模式灵感来源生化危机的豆腐模式.
>- 模式只有近战武器
>- 噩梦难度下丧尸伤害约20HP.
>- 游戏指令:!hp查看自己当前血量.
>▶ 模式开启方法:
1.控制台输入exec doufu
2.投票重新开始当前回合.
Hardcore mode with only melee weapons
How to open the mode.
1. Enter exec doufu on the console
2. Vote to restart the current turn.
1.[GITHUB](https://github.com/ZBzibing/Contagion)
2.[Steam创意工坊](https://steamcommunity.com/sharedfiles/filedetails/?id=2967885126)

# +修复官方BUG
## 地图修复
## 其他修复
## - 官方提供的GLOCK 18C武器修复
[GITHUB](https://github.com/ZBzibing/Contagion)
未完待续,正在自行摸索学习中

你可能感兴趣的:(游戏,Angelscript)