欢迎光临散文网 会员登陆 & 注册

整点有的没的[CSGO 社区插件开发笔记]

2021-11-29 13:08 作者:ExFANTAZ  | 我要投稿


记一笔正儿八经的怎么开个正常的csgo服务器:

社区服Neko服主的开服笔记www.steamstart.com/thread-2-1-1.html

经验来自https://dpii.club/archives/160

首先随便租一个服务器,淘宝买一个腾讯云48包年,操作系统就Ubuntu18

工具我选择Xshell Xftp(蓝色为控制台指令)

首先shell连接到服务器后安装环境依赖:

控制台需要用shift+ins黏贴,退格需要按住ctrl,操作错误就重来吧

部署服务器脚本:

执行server脚本:

./csgoserver install

然后需要去steam申请服务器令牌GSTL(Game Server Login Token):

    https://steamcommunity.com/dev/managegameservers

    CSGO的appid为730

按提示遇到Y/N:Y?就按回车直到:

================================= 

Install Complete! 

 To start server type:

./csgoserver start


插个题外话:

./csgoserver的后接指令可以使用缩写

st = start

sp = stop

r = restart

i = install

c = console



到这里就能进服玩一圈了

你可能会看见一些关于备份_default.cfg这些内容,直接去lgsm/config-lgsm/csgoserver中操作就行,记得填写令牌

接下来是SourceMod和MetaMod的安装

经验同样来自https://dpii.club/archives/242

./csgoserver mods-install

先装MM再装sm

管理员来自sm插件,因此直接serverfiles/csgo/addons/sourcemod/configs/admins_simple.ini找到这个文件最后另起一行写入:"STEAM_1:0:XXXXXXXXX" "99:z"  {使用status在游戏内游玩服务器查询}

既然是开发相关笔记,那么:

首先

sourcmod的官网总站导航:www.sourcemod.net

    插件检索下载:www.sourcemod.net/plugins.php

    sp编译.smx:www.sourcemod.net/compiler.php

    API定义查询:sm.alliedmods.net/new-api/

开发工具选择VSCode,IDE插件SourcePawn,开发语法是C++

sp语言并不是面向对象的语言,甚至不包括语法糖

*注:SourcePawn会下载相关库文件,同样可以在serverfiles/csgo/addons/sourcemod/scripting/include中找到同样的库文件

总共71个inc文件,可以在上文中查到具体用法

还有一些工具来自SourceMOD的discord

    在线编译工具(需要自备库)spider.limetech.io

    反编译工具headlinedev.xyz/lysis/

    正则表达式regex101.com

    偏移表查询asherkin.github.io/vtable/

还有一个是Hummer的工具集valvedev.info/tools/chrono_index.html

.smx放到sourcemod/plugins    |    .smx是二进制文件,是插件本体

.sp通常放在sourcemod/scripting    |    .sp仅为脚本文件,不顶用的

.phrases.txt放在sourcemod/translations    |    translations顾名思义就是翻译

来讲点得劲的,自瞄插件

先介绍一下来源和作者:

ExtremeBlackLiu(国内OTC3就是他在更新)

    bbs.keter.pub/space-uid-10.html

DarkGL(一个和我一样大的波兰人但是从事编程已有13年,谷歌翻译看波兰语实在emmm)

    darkgl.pl/o-autorze/

[源码] 服务端自瞄插件 SourceMod插件

adminaim.sp:

作者提供了源码,咱看到首先得去看怎么使用

include,导入库

Plugin:myinfo,插件信息

new bool:aimOn[ MAXPLAYERS ],应该是新建了一个开关叫aim on

OnPluginStart,在api文档中描述:

当插件完全初始化并解析所有已知的外部引用时调用。这在插件的生命周期中只调用一次,并与OnPluginEnd()配对。

如果在此回调期间抛出任何运行时错误,则该插件将被标记为失败。

RegAdminCmd,这里应该有3个类似指令Reg=regist(注册) Cmd=command(指令) Admin管理员,Console控制台,Server服务器


那么可以看到注册的命令是aim,因此需要管理员在服务器内使用 "!aim"

返回aimMenu函数

这里看到一个Action、createMenu、Plugin_Handled可以查询得到:

还有一个明显是创建菜单。我们也查一下用法:

CreateMenu Function

使用默认样式创建新的空菜单。

接下来createMenu指到一个代码块

接下来的东西我并非能看明白,但是读到这里我知道的是:

需要管理员在聊天板里敲    !aim

然后会有个默认样式的菜单跳出来

大概笔记就写到这里,需要更扎实的C++功底和对api的熟悉度














整点有的没的[CSGO 社区插件开发笔记]的评论 (共 条)

分享到微博请遵守国家法律