samp吧 关注:15,493贴子:400,682

【记录帖】重零开始写一个娱乐服,记录学习/开发过程

只看楼主收藏回复

一直都想写一个娱乐服,但是每次都是三分热度
这次开个帖记录一下希望能多写一点


IP属地:贵州1楼2018-11-30 09:44回复
    首先新解压一个0.3DL服务端
    准备一些要用的include和plugin
    includes
    zlang 通过读取文件内的key和字符串,配合gvar插件里来实现多语言..虽然不一定会用多语言,但是还是准备一下
    mdialog 处理dialog的,easydialog类似?但是没测试过效率..为什么不用easydialog呢,因为这个mdialog可以配合zlang直接写format的dialog,还自带了\\c居中,\\r右对齐的功能(中文测试下有点问题,应该不会经常用)..先用着,之后不行再换
    YSI 很强大的include..我经常用的timer,hook和iterate,其他的还没用过,这次找机会用用其他的
    其他的include记不起来要用哪些了,先就加这两个,其他要用到的之后再加
    plugins
    crashdetect 防止部分可以直接导致服务端崩溃的错误,错误信息会输出在控制台上
    mysql 数据库
    pawncmd 看测试结果好像是比其他cmd处理要快,使用也方便
    sampson 解析json
    sscanf 处理字符串
    streamer 动态obj,3d文本,pickup之类的,还有动态区域比较不错
    暂时用这些.


    IP属地:贵州2楼2018-11-30 10:08
    回复
      pawn编译器也换了samp社区修复的3.10.7,大量新增和修复的功能..
      这次项目名字暂时名命为framework
      先把自带的脚本和地图删了,新建一个framework.pwn

      server.cfg里改掉rcon密码,改掉gamemode,删掉filterscripts的脚本,加上plugins,默认人数改为10,npc改为0..默认的useartwork暂时改成0,以后要用的时候再改...
      编译运行一下服务端
      Loaded 6 plugins.
      Started server on port: 7777, with maxplayers: 10 lanmode is OFF.
      Filterscripts
      ---------------
      Loaded 0 filterscripts.
      framework gamemodeinit
      framework init
      Number of vehicle models: 0
      正常运行,然后接着下一步,开始写功能


      IP属地:贵州3楼2018-11-30 10:30
      收起回复
        首先是服务器相关的设置,我打算把server.cfg里的设置,还有一些关闭传送点,关闭特技奖励之内的东西写在这里面
        显示include ysi的hook,写一个hook的ongamemodeinit来测试一下

        主pwn里也是用include来包含这个pwn
        编译运行服务端
        =======================================
        | |
        | YSI version 4.00.0001 |
        | By Alex "Y_Less" Cole |
        | |
        =======================================
        server/settings gamemodeinit
        framework gamemodeinit
        framework init
        要注意的是,是先调用hook的回调,最后再调用public的
        之后写数据库的时候要注意加载顺


        IP属地:贵州4楼2018-11-30 10:40
        收起回复
          围观大神


          来自Android客户端5楼2018-11-30 10:50
          回复
            自动开关引擎先注释了,开了的话刷的车默认是关引擎的,测试比较麻烦,之后再改.
            要用zlang的时候才发现之前忘记了gvar插件,现在加上.
            新建一个language.pwn
            #include "..\gamemodes\Framework\Server\Language.pwn"
            添加一个语言,把默认语言设置为中文
            语言文件也进行分类..
            先随便写几句

            settings.pwn里,gamemodeinit的时候载入语言文件 defaultlang变量是在language.pwn里加的,获取的默认语言..
            然后再用key获取字符串,用sendrcon命令设置服务器的几个属性..


            IP属地:贵州6楼2018-11-30 11:54
            回复
              修复的编辑器地址发一下?


              IP属地:广东来自iPhone客户端7楼2018-11-30 13:29
              回复(4)
                写了一个游戏内用对话框查看的版本更新信息..


                IP属地:贵州9楼2018-11-30 15:20
                回复
                  冬梅?


                  IP属地:湖北来自Android客户端10楼2018-12-01 08:40
                  收起回复


                    IP属地:江西来自Android客户端11楼2018-12-01 09:10
                    收起回复
                      然后准备写账号注册了,先弄数据库
                      [数据库]成功连接到数据库 framework
                      [数据库]成功连接到数据库 information_schema

                      函数写好了,用的命令登陆,之后要用对话框,TD什么的再慢慢弄..

                      用SAMP自带的SHA256_HASH来加密密码.


                      IP属地:贵州13楼2018-12-01 15:50
                      回复
                        玩家账号我命名用的是account而不是user
                        然后写了一个切换语言的命令放在了settings里面,虽然现在只有中文语言

                        account.pwn里面创建表的时候只加了最基本的字段,id 名称 密码 注册ip 注册时间戳..
                        其他需要加的字段之后在其他的模块里用mysql查询information_schema数据库里的字段信息,如果没有字段就用sql语句创建字段,这样就可以在脚本里完成数据库字段的管理了..


                        IP属地:贵州14楼2018-12-01 15:58
                        回复
                          坚持吧


                          IP属地:山东15楼2018-12-01 17:10
                          收起回复
                            顶,加油哦


                            IP属地:山东来自Android客户端16楼2018-12-01 22:35
                            收起回复