QQ登录

只需一步,快速开始

搜索

免费自助文章链接,禁止站外链接:一次最多7天

文视教程 Contagion传染病 教你创建第一个AngelScripts插件脚本教程 进服公告

视频教程:Contagion传染病 教你创建第一个AngelScripts插件脚本教程 进服公告

游戏官方API查询:点击查看

Plugin Interface
Description
Class used for plugin interface related purposes.

SetAuthor
SetName
SetVersion

Forwards
Description
Forwards that is ran automatically

Hooks
Description
All the available events that can be used by plugins & map scripts
Player::OnPlayerConnected

Chat
Description
Class used for chat related purposes.

以上是我这个教程用到的函数代码官方API查询地址及描述介绍.

开始之前先说下我的情况,
我的本意是写一个无限刷僵尸的插件,但我在写插件之前是一点代码语言都不会且毫无头绪
特别是AngelScripts,国内外都没有找到任何相关的教程,
唯一有点帮助的还是[汉化]Sourcemod plugins:点击查看,仅供参考,如果你也能像我一样看的懂的话.

我实现这第一个插件的主要来源是大量的机翻和参考官方的脚本源码及大量看不懂的运算符查阅,
所以我现在也处于摸索阶段,唯一不同的是,我已经成功实现第一个插件,所以决定记录下来,以便后来人有需求可以借鉴学习.

  1. //When The Plugin Is Starting.
  2. void OnPluginInit()
  3. {
  4.         PluginData::SetAuthor("XiongTianQi.CN");
  5.         PluginData::SetName("Joingame");
  6.         PluginData::SetVersion("0.1");
  7.         
  8.         Events::Player::OnPlayerConnected.Hook( @OnPlayerConnected );
  9.         
  10. }

  11. //When The Player Has Joined The Game.
  12. HookReturnCode OnPlayerConnected(CTerrorPlayer@ pPlayer)
  13. {
  14.         
  15.         Chat.PrintToChat(all,"{gold}[{green}As{gold}]{white}:欢迎进入服务器");
  16.         return HOOK_HANDLED;
  17.         
  18.         
  19. }
复制代码


接下来是说下我整个过程的思路:
1.首先借鉴了老外P4欢迎插件的视频方式方法:点击查看,了解到写一个插件大概的样子,期间大量的翻译软件翻译代码和查阅资料理解其含义就不讲述了,

2.其次借鉴官方的adminmenu.as和ReflectFriendlyFire.as文件源码做为参考,因为教程写的插件和我们要写的插件本质上不一样,只能借鉴比对,无法照搬,
ReflectFriendlyFire.as下载地址:点击查看
其中:
  1. //When The Plugin Is Starting.
  2. void OnPluginInit()
  3. {
  4.         PluginData::SetAuthor("XiongTianQi.CN");
  5.         PluginData::SetName("Joingame");
  6.         PluginData::SetVersion("0.1");
  7.         
  8.         Events::Player::OnPlayerConnected.Hook( @OnPlayerConnected );
  9.         
  10. }
复制代码
很容易理解到set就是设置后面就是关联的插件版本,插件作者,插件名字等相关信息.
Plugin = 插件
Data = 数据
SetVersion = 设置插件版本
SetAuthor = 设置插件作者
SetName = 设置插件名称

void OnPluginInit
void是什么意思:点击查看
OnPluginInit是什么意思:点击查看

需要使用到:OnPlayerConnected,作用是当玩家加入时会调用这个参数.
配套的返回值:Events::Player::OnPlayerConnected.Hook( @OnPlayerConnected ); 写入到:void OnPluginInit
  1. //When The Player Has Joined The Game.
  2. HookReturnCode OnPlayerConnected(CTerrorPlayer@ pPlayer)
  3. {
  4.         
  5.         Chat.PrintToChat(all,"{gold}[{green}As{gold}]{white}:欢迎进入服务器");
  6.         return HOOK_HANDLED;
  7.         
  8.         
  9. }
复制代码