samp吧 关注:15,512贴子:401,095

[教程]从" 0 "认识SAMP服务端开游及简单脚本编写 (送给萌新)

只看楼主收藏回复

=================================RT==================================


IP属地:上海1楼2020-02-27 17:28回复


    IP属地:吉林2楼2020-02-27 18:01
    回复
      顶技术贴


      IP属地:辽宁来自Android客户端3楼2020-02-27 18:01
      回复
        终于来了,gkd


        IP属地:广东来自Android客户端4楼2020-02-27 18:04
        回复
          1. Q: 侠盗猎车手:圣安地列斯的SAMP联机器官网地址是什么?
          A: www点sa-mp点com。
          2. Q: SAMP服务端在哪里可以下载?
          A: SAMP联机器官网 - Downloads - "SA-MP Windows Server Download"下有个橙色字体"SA-MP 0.3.7-R2 Windows Server" 。
          (PS : 0.3.7-R2是服务端的版本,“ - “前面就是玩家客户端所需要对应的版本,假设你开的是0.3.7-R2的服务端,知道是0.3.7的客户端都可以连接到你的服务器且0.3DL的客户端则无法连接)。
          3. Q: 编写SAMP服务器脚本工具是什么?
          A: Pawno(在服务端里面有个自带的Pawno,在下面会说到)。
          4. Q: 我需要去学习一些什么专业的语言吗?
          A: 当然,SAMP脚本用到的语言是最基础的"C语言"。
          5. Q: 可是我什么都不会,以前从来没有接触过怎么办?
          A: 不尝试接触,怎么能学会?SAMP的脚本程序还是很好理解的。
          = =真的就是一些很简单的问题,但是很多人都会疏忽这些小东西。这些小东西反而是很多小白找不到的。


          IP属地:上海5楼2020-02-27 18:04
          回复
            现在开始我一步一步来,能讲到最细我就讲到最细(尽我所能让你更能理解)。
            首先我们需要从官网下载服务端 (就是你要架设服务器用到的工具) ,因为你下载下来的是一个压缩包,所以我们需要将它解压出来 (解压到哪里随意,你开心就好,这个无关紧要),然后你会看到以下文件:

            filterscripts-------------脚本文件(在主体脚本上附加一些游戏内容)
            gamemodes-----------主体文件(服务器的内容核心文件,需要里面的内容才能成功架设服务器)
            include------------------文件库(因为我用的很少,所以具体它的工作是什么,我也不是很清楚:大佬可以补充下)
            npcmodes--------------NPC文件(俗称BOT,机器人,电脑玩家,你可以录制一些机器人将他们的行为内容等放进去)
            pawno-------------------脚本编写器(就是我上面说到的我们需要用到的脚本编写工具)
            scriptfiles---------------信息存储文件(比如玩家的信息,车辆信息,乱七八糟的功能信息都在这,这里是放存储的并非说你在里面建立一个文本,名字是你,那这个服务器就有你这个玩家了。后面我会说到如何存储)
            announce--------------这个应该是一个通知程序(你不会去打开它,也无法编辑它。所以可以忽略,大佬知道可以补充)
            samp-license---------申明文件(里面有SAMP官方想对你说的话及各种事件声明。可以不用理它)
            samp-server----------服务器架设就靠它了(你需要运行它,才能让你的服务器运行)
            server------------------服务器设置(里面的内容我会单独说)
            server-readme-------服务器事件记录(里面会有你服务器在运行中所产生的内容:可以查到玩家的对话)
            ==============上述有问题,大家可以在层里纠正下,毕竟我也不是非常的熟悉,谢谢=================


            IP属地:上海6楼2020-02-27 18:29
            收起回复
              楼主辛苦了


              IP属地:山东来自Android客户端7楼2020-02-27 19:01
              回复
                福利,谢谢楼主


                IP属地:山西8楼2020-02-27 19:11
                回复
                  首先,我们来试一下架设一个属于我们自己的服务器。
                  双击运行我上面说到的"samp-server"应用文件(exe可以运行文件)。 并且在你的客户端添加IP:127.0.0.1(这个是本地IP,可以在本地玩,当然你要是能将你的内网映射到公网或者你有自己的服务器,你可以在百度IP下你的地址并添加进去。)
                  你会发现就跳出来一个黑色的框框一闪而过,然后什么都没有。你们会以为或许他在后台运行了吧,刷新下 客户端发现他还是关着的。(这个有很多问题会导致你不能架设成功你的服务器,当然黑框保持运行,上面且没有错误信息,那我也不知道了。)
                  碰到一闪而过问题,首先我们找到同目录下的 "server" 配置文件(cfg结尾的文件),你双击他会需要你打开他的应用文件。我们右击它,找到 "用记事本打开" 。

                  一切设置完以后,我们在运行下 "samp-sever"你就会看到一个黑色的框框保持着运行。
                  一个简单的服务器就算架设完成了,你可以到你的127.0.0.1:7777游玩属于你自己的服务器。


                  IP属地:上海9楼2020-02-27 19:29
                  收起回复
                    我们来到客户端:这边会显示一些我们刚才在"server.cfg"里面的内容:比如服务器名称,玩家数量等

                    进入游戏,双击跳过界面,在双击选择人物,选择完以后,点击下方spawn的按钮 出生,就来到了下面这个界面。


                    IP属地:上海10楼2020-02-27 19:43
                    收起回复


                      IP属地:陕西11楼2020-02-27 21:56
                      回复
                        上面的教程和层里大家的补充,已经可以让你独立架设一个自己的服务器了。
                        接下来开始讲修改部分。
                        先介绍下我们的编辑器 "pawno" 的界面。

                        新建一个Pwn后缀的脚本文件(快捷键:Ctrl+N)
                        打开一个Pwn后缀的脚本文件(快捷键:Ctrl+O)
                        存储当前文档内容(并不会告诉你哪里错误,只是单纯的保存.)(快捷键:Ctrl+S)
                        查询 “关键字”(快捷键:Ctrl+F)
                        查询下一个/上一个关键字(他需要建立在查询上还能使用)(快捷键:下一个查询[F3] 上一个查询[F4])
                        关键词替换(很实用的工具,可以批量帮你替换,而不是你一个个去替换)(快捷键:Ctrl+H)
                        编译(上面说了,服务端只会读取amx后缀文件,pwn不会读取。它就是创造amx后缀文件的神奇按钮。)
                        (快捷键:编译[F5],查询第几行[Ctrl+G])
                        编译介绍:

                        上图出现一堆东西,那三行你不知道啥意思,我来解释下:
                        三行前面都是一致的,说明这是警告(Warnings)地方的所在位置,可以在途中看到
                        ()括号内的数字代表了警告内容的位置在哪。
                        后面就是为什么警告。
                        最后出现3 Warnings.意思就是告诉你,你的脚本有三处警告,但是还不至于错误。所以他是可以编译出amx的。
                        那错误的样子如下图:

                        最后一行显示5 Error,
                        和上面相同的道理:地址,行数,然后会告诉你哪个是警告,哪个是错误,为什么错误。
                        错误的话就不会形成amx结尾的文集,就没法读取你的游戏脚本。


                        IP属地:上海12楼2020-02-27 22:19
                        收起回复


                          IP属地:上海来自Android客户端13楼2020-02-27 22:20
                          回复
                            现在尝试着改变下游戏里的文字:
                            要用到的按钮有:
                            找到我们的 "Gamemodes" 文件夹,在里面寻找我们在 "Server.cfg" 中 gamemode 选项后填写的文件名字。
                            打开 “”grandlarc.pwn“” pwn后缀的文件,这个就是我们的游戏主脚本。(amx是打不开的)
                            然后里面就会看到密密麻麻让你头大的英文单词。然后把它最小化,开启我们的服务器,进入它。
                            进去之后我们会在左上角看到下图:
                            SA-MP 0.3.7-R4 版本启动:客户端运行的,我们是无法在游戏脚本中修改的
                            Connecting to 127.0.0.1:7777....:连接到 [服务器的地址+端口]
                            Connected.Joining the game... :接通.并加入这个游戏
                            后面开始除了Connected to 是无法在游戏脚本中修改的,其余的都可以。
                            ========================================================
                            我们来试着修改下 [ Welcome to Grand Larceny ]
                            首先,我们将游戏最小化。
                            将 [Pawno最大化] ,又是密密麻麻的英文,看的头疼。
                            查询关键词: [ Welcome to ](关键词内容可以你自己看情况而定)
                            他会跳到一个和关键词一样的地方,并且给那个和关键词一样的地方上色,一眼就能看到。
                            使用按钮你会听到系统发出警报声:dong dong dong。(是搜索到最上面/下面一个关键词,告诉你到底/顶了)

                            SendClientMessage看字面意思,或者你百度翻一下:【发送客户端消息】
                            那意思就是 [ SendClientMessage ]这个函数是给玩家客户端发送消息所使用的。使用这个函数的效果就和我们一开始要搜索 【 Welcome to 】是一样的。(这样你就知道了,这个函数使用后的效果是啥样子的)
                            然后,你发现看不懂后面啥意思,那我们就需要上 [ wiki点sa-mp点com ] 去查找这个函数的使用方法。


                            IP属地:上海14楼2020-02-27 22:50
                            回复
                              打开 wiki网站,就会如下图:
                              你会说都是英文我咋看得懂。很多浏览器是自带网页翻译的,你可以勉强看看机器化翻译。
                              然后找到下图地方:

                              在 [ search ] 有一个编辑框,你可以在里面输入你不知道如何使用的函数。输入完成点 [ Go ] 按钮。
                              来到下图界面。寻找到和你函数一样的英文,在可以点击的地方,点击进去。

                              就会来到下图这个网页,他会给你解释,和举一些简单的例子。

                              ====================================================================================
                              在 [""] 号之间我们可以看到 【Welcome to {88AA88}G{FFFFFF}rand {88AA88}L{FFFFFF}arceny】这么一串英文。
                              看不懂里面还有什么 88AA88 没关系,我们尝试这先将它删除。
                              得到 【 Welcome to Grand Larceny】,这和我们一开始看到的英文是一样的,我们尝试给他改成 【 欢迎来到我的第一个服务器 】

                              那每次修改,只保存是不会让地图生成的。我们给他编译下。编译器的内容会显示出现3个Warning。
                              上面说到出现 【 警告 】,脚本还是会生成新的amx的,所以我们暂时不理他。
                              将服务端关闭在打开一次,到游戏里在看看会有什么变化。

                              已经和我们第一次进游戏时不同了,下图是为修改。

                              游戏中 [ Welcome to Grand Larceny ] 变成了我们在Pwn文本里修改的 [ 欢迎来到我的第一个服务器 ]
                              恭喜你解锁第一个成就,"Hello,World!"


                              IP属地:上海15楼2020-02-27 23:23
                              收起回复