pandasws / pandas Goto Github PK
View Code? Open in Web Editor NEW熊猫模拟器 - 基于 rAthena 构建的中文仙境传说模拟器(欢迎加入QQ交流群:928171346)
Home Page: https://pandas.ws
License: GNU General Public License v3.0
熊猫模拟器 - 基于 rAthena 构建的中文仙境传说模拟器(欢迎加入QQ交流群:928171346)
Home Page: https://pandas.ws
License: GNU General Public License v3.0
// Use SQL item_db, mob_db and mob_skill_db for the map server? (yes/no)
use_sql_db: yes
当设置 item_db, mob_db and mob_skill_db 从数据库读取后 @reloadmobdb 无效。
使用 @reloadmobdb 显示提示加载成功,实际 mob_db 数据并未重载, item_db 或 mob_skill_db 应该也是这样的情况。
你好,我之前试了下https://github.com/rAthenaCN/ROClientPatchCN和ROClientFullCN的客户端,另外用nemo试着diff了下20180620的exe.但运行后提示dll错误. 我又下了ro321上的kro0603客户端,放了20180620和20200401的exe进去都会提示错误,(GetTableIntValueForC,CTwitterDataMgr::CreateInstance()这样的).请问如何才能得到一份正常的客户端呢.
如标题
该指令在使用时对怪物的atk1,atk2未达到预期的效果.
MATK1,MAKT2可能存在同样的问题。
请描述您从克隆此工程之后, 是如何一步一步操作, 最终使问题出现的:
使用setunitdata指令修改怪物的atk1、atk2(matk1\matk2)
使用setunitdata指令理论认为应该会修改怪物攻击力为指定数值。
实际结果因为怪物属性等原因,怪物的攻击力应该是各种属性的计算结果,可能保存在内存中。
(以上猜测来源raorg)
所以导致修改后的atk1、atk2无法达到预期的数值,还有可能会因为怪物自身属性的变化而变小。
随着属性增加可以理解 ,但是实际atk随着属性增加而变低,实在无法理解。
所以认为该指令存在一定问题,至少在修改atk方面 存在异常,其他属性修改暂时没有遇到问题。
setunitdata 33/34/35/36 四项参数,无法达到预期数值效果,还可能降低。
https://rathena.org/board/topic/121072-setunitdata-doesnt-change-mobs-atkmatk/#comment-366735
https://rathena.org/board/topic/121834-wrong-calculating-atk-with-setunitdata/#comment-369940
附RA该问题的讨论帖子。
ItemDB Type: 物品的类型,可选的值如下:
20 护身符类道具, 只要放入玩家背包, 就会立刻促发使用脚本
等待从rAcn迁移
提议:
增加四个事件,用以分别返回玩家的输出伤害,承受伤害,治疗量,被治疗量
可能会用以的场景:副本、GVG
新增db\item_droprate.txt设置全局单一掉率设置,此掉率无视倍率。
item_trade 中设置物品“不可掉落”后,第三个字段的 GM 等级限制无效。比如在 item_trade.txt 中设置了 501,1,99
此时会发现 99 级的GM无法把道具丢在地面上。
map.cpp 中 map_addflooritem
的检测代码有问题,没判断GM等级。下来需要修改一下,同时需要 blame 为什么 map_addflooritem
中使用了:(itemdb_traderight(item->nameid)&1)
只要修改 groups.conf map伺服器就會跳 [錯誤] comf/groups.conf:1 - syntax error
我只是將groups.conf 底部的 all_skill: false 改成 all_skill: true
改其他的也會跳這種錯誤comf/groups.conf:1 - syntax error 即使改回去原本的 也是會跳錯誤
角色一進入遊戲就卡住了 不能動
部分人有幫我測試 都表示功能正常
可是我重載 再使用一次 也是一樣
這是我在架設的過程中 哪邊沒修改到嗎?
問題原因 使用win7內建記事本做修改 會導致編碼更動
实现 show_mob_info 选项拓展的时候,conf 文件中对应选项的说明没有更新,后面更新一下
在創造繁體中文名稱角色後登入,名稱會顯示????
之後將資料庫設定成BIG5後
資料庫確實可以輸入繁體中文了
inter-athena.conf 也設定default_codepage: big5
但在創造繁體中文名稱角色進入遊戲後就會跳出錯誤
1.main資料庫設定成BIG5
2.inter-athena.conf 也設定default_codepage: big5
3.執行 ./athena-start start
4.創造繁體中文名稱腳色
5.進入遊戲
6.模擬器就跳錯
順利進入遊戲 並正常顯示繁體中文
情景重现:
1、刷几千个道具,刷到人物负重即满为止 2、把道具丢手推车里,人物继续刷负重 3、从手推车里把道具拿出来,如果该道具超过人物负重,该道具直接消失(如果一次性拿出几百上千个的话,一样按拿出数量消失)
正常应该像仓库拿出来那样,提示负重已满,道具无变化
在變量商店設置點數需求為 #CASHPOINTS 進行消費後,
進入遊戲畫面右上角的商城,
將不會扣除變量商店所花費的點數
可以進行花費
// 測試用NPC
iz_int02,20,29,5 script 現金點數交易 11007,{
callshop "pointshop_Cashshops2",1;
end;
}
提供一个NPC给玩家,用于查询魔物在哪里,然后可以直接飞到目标地图。
就算使用 getmapunits
指令,也都需要将 dynamic_mobs
设置为 false,以此扩大 600MB的内存占用才能实现。希望能够有指令直接支持。
提供以下一些脚本指令,或类似的指令,用于比较方便的实现上述功能:
该反馈来自 luffy,验证一下问题是否存在,并看看如何解决
在 Windows 10 中微软引入了"非 Unicode 程序的语言" 设置中,多了一个“Beta 版:使用 Unicode UTF-8 提供全球语言支持”的选项,只要勾选了该选项,就会导致繁体中文系统下终端翻译数据库 translate_tw.yml
载入失败
请描述您从克隆此工程之后, 是如何一步一步操作, 最终使问题出现的:
能够正确的加载繁体中文终端翻译数据库,并使终端输出繁体中文的文本信息
感谢群里的“NIFL”同学提出此问题,提交个 issue 备忘
方便管理Server信息、内存以及着色的优秀启动管理程式
让熊猫可运行 LeeStarter/rAthenaCN Starter.NET
rAthenaCN Starter.NET Ver.1.0.0.6 仅支持旧版 rAthenaCN
CairoLee/rAthenaCN_Release@56159bf
[新增] 携带 rAthenaCN 专用的 LeeStarter 启动管理器(需安装微软的.Net Framework 4.0框架才能运行)
默认情况下 ra 限制的数据库 ip 存放都是 32 个字节~ 放域名(特别是阿里云的RDS域名)有时候是不够用的,需要放宽一下限制
因为 rAthena 内部的一个限制,“聽”和“凯”等部分特殊字无法作为角色名~ 记得处理下
[Fatal Error]: utf8_u2g: iconv was failed: Invalid or incomplete multibyte or wide character
[Fatal Error]: utf8_u2g: the strUtf8 param value: // MDEF‚ same as above. (MDEF * value)
记忆坑的做法
*OnPCAttackFilter:
事件描述
当玩家攻击且造成伤害时触发
注意: 本事件由BetterRA.conf中 attack_filter_target 配置 与 脚本指令 unitatkeventmark 共同控制
参数说明(注意, 返回参数不带任何符号)
dmg_type 攻击类型(使用位于运算, 计算是不是想要的攻击类型)
dmg_damage 本次攻击伤害, 最大不超过 2147483647
dmg_skillid 本次攻击所使用的技能ID, 如果为普通攻击则为0
dmg_skilllv 本次攻击所使用的技能等级, 如果为普通攻击则为0
dmg_targettype 本次攻击的目标类型(实体类型)(使用位于运算, 计算是不是想要的类型)
dmg_targetgid 本次攻击目标的GID
dmg_mobid 本次攻击目标的魔物ID, 如果不为魔物则为0
dmg_mark 返回由脚本指令 unitatkeventmark 设置的标记
中断说明:
中断后可通过修改 dmg_damage 参数来修改本次伤害的实际值(可设置为0)
攻击类型参数说明:
按攻击范围:
BF_SHORT: 近距离攻击
BF_LONG: 远距离攻击
默认: BF_SHORT+BF_LONG
按攻击类型:
BF_WEAPON: 武器攻击
BF_MAGIC: 魔法攻击
BF_MISC: 混合攻击
默认: BF_WEAPON
按技能类型:
BF_NORMAL: 普通攻击
BF_SKILL: 技能攻击
默认: 如果攻击类型是 BF_WEAPON (only) BF_NORMAL, 否则 BF_SKILL+BF_NORMAL.
实体类型参数说明:
BL_PC - 玩家
BL_PET - 宠物
BL_HOM - 生命体
BL_MER - 佣兵
BL_ELEM - 元素
### 猥琐熊猫咋实现,你随意~
BUILDIN_FUNC(messagecolor) {
struct block_list *bl = map_id2bl( script_getnum(st,2) );
if (!bl) {
ShowWarning("buildin_messagecolor: Error in finding object GID %d!\n", script_getnum(st,2));
return SCRIPT_CMD_FAILURE;
}
clif_messagecolor( bl, script_getnum(st,4), script_getstr(st,3), true, AREA);
return SCRIPT_CMD_SUCCESS;
}
BUILDIN_DEF(messagecolor,"isi"),
增加一个mapflag,限制标签地图内设定的最高伤害值
根据鱿鱼
同学的描述,开启自动拾取的情况下,
哪怕背包还有空间,有时候会出现无法自动拾取道具的情况。
1、登陆角色
2、@alootid +4001
3、@monster 1002 50
4、全部杀死召唤出来的魔物
物品背包没满的情况下,全部的卡片都被拾取
物品背包没满的情况下,有部分卡片没被拾取
客户端版本: 20170614
工作模式: 全部
问题描述:
当前结果:
在游戏内容中反映的情况是 两个NPC叠在一起,如果在输入第二条指令的时候更改NPC坐标,可以看到这一个NPC脚本生成了2个NPC。就是说.txt和.txt空格 是两个NPC了。
预期结果:
预期结果原本以为会读取第一条指令的NPC
重现步骤:
使用reloadnpcfile指令使用的时候,如果在结尾的txt后面加一个空格,会导致这个npc被复制,相当于读取了一个txtnpc和一个txt空格npc.
例如输入以下两条指令:
@reloadnpcfile npc/re/ceshi/ceshi.txt
@reloadnpcfile npc/re/ceshi/ceshi.txt空格
两个npc内容一致,mapserver还会提示重复的npc。
官方信息: 无
可能会影响结果的一些修改:
出现该问题的原因:因为测试脚本的时候经常需要重新读取这个脚本...因为服务器设定同一句话发送次数不能超过10次.所以使用在命令后面加空格的方式连续发送.结果导致出现这个问题.
对副本的来源地图设置一个有参数的 mapflag(例如 mobdroprate),但是初始化一个副本后,发现给定的掉率数值不正确
请描述您从克隆此工程之后, 是如何一步一步操作, 最终使问题出现的:
3@guild mapflag mobdroprate 10000
0013@guild
@mapinfo
查询地图标记状态应该和脚本文件中设置的掉率一致
请问该如何在Ubuntu下编译这个服务端
第一次调用 ShowInfo 会把 后面的这个 latin1 值 吃掉
导致 charset 初始化失败
后面两个数据库的设置就没有问题
[Info]: Pandas Version: v1.0.7-dev
[Info]: Console translation system was deactivated.
[Info]: Diagnostic information: Langinfo: UTF-8 | Locale: C.UTF-8
[Warning]: You are running rAthena with root privileges, it is not necessary.
[Info]: Server uses 'select' as event dispatcher
[Info]: Server supports up to '1024' concurrent connections.
[Info]: Server crashdump file will be saved to: 'dumps/'
[Info]: Finished reading conf/import/inter_conf.txt.
[Info]: Finished reading conf/inter_athena.conf.
[Info]: Finished reading conf/import/login_conf.txt.
[Info]: Finished reading conf/login_athena.conf.
[Info]: Done reading '0' messages in 'conf/msg_conf/import/login_msg_conf.txt'.
[Info]: Done reading '23' messages in 'conf/msg_conf/login_msg.conf'.
[Info]: Detected the Log database character set is latin1.
[SQL]: DB error - Can't initialize character set (path: /usr/share/mysql/charsets/)
[Debug]: at /root/Pandas/src/login/loginlog.cpp:226 - SHOW VARIABLES LIKE 'character_set_database';
[Info]: Ipban connection made.
[Info]: Detected the Ipban database character set is latin1.
[Info]: Server will connect to 'Ipban' database using 'latin1'.
[Info]: Detected the Login-Server database character set is latin1.
[Info]: Server will connect to 'Login-Server' database using 'latin1'.
[Status]: The login-server is ready (Server is listening on the port 6900).
目前的 renttime
指令只能控制已穿戴的装备,未来可以实现一个 idx 版本的 renttime
指令,扩大控制范围和灵活度
目前存在部分文件还未确认是否支持 UTF8-BOM 编码,未来需要逐个确认
总结一下主要就是 YAML 文件、libconfig文件
截止 2021年02月06日,主要文件已经全部处理完毕,剩下的 cfg 和 charhelp.txt 无需处理
您请求实现的功能是否和某个问题相关?描述一下
希望一个道具可以用多个 pet 指令来指定支持捕捉多种宠物
描述一下您喜欢的解决方案
根据官方设定,一个魔物捕捉道具应该只能抓一个宠物;希望能让它支持多个,实现方式比如原来写一个 pet xxxx;
现在可以支持写多个就行 pet xxxx; pet yyyy;
这样
其他附加信息
可能需要考虑一下,Pandas 自己添加的用于识别捕捉道具的相关自定义函数。
以前若值支持一个 pet xxxx; 的话,肯定可以准确读取到 xxxx 这个魔物id,但是若支持多个的话,代码中这个可能也需要进行一些调整
hideonnpc不应再触发OnTouch及OnTouch_
unloadnpc不可卸载自身,unloadcopynpc应可干掉自己。
至于是否end,你琢磨哈
如果使用新客户端提供的鉴定方式:Ctrl+鼠标右键
那么正在和 NPC 对话或者玩家正在执行其他事件的时候,将无法触发对应的鉴定事件
这样可能会导致事件丢失或者遗漏
建议解决方案:
有其他事件或者和NPC对话的时候,禁止使用 Ctrl+鼠标右键 等方式鉴定道具
[Status]: Done reading '0' entries in 'db/import/homunculus_db.txt'.
[Status]: Done reading '150' levels in 'db/db/re/exp_homun.txt'.
[Status]: Done reading '0' levels in 'db/db/import/exp_homun.txt'.
[Status]: Done reading '82' entries in 'db/homun_skill_tree.txt'.
您请求实现的功能是否和某个问题相关?描述一下
在 brAthena 中有一段代码用来获取客户端的 mac 地址,不知道这个mac是游戏客户端的,还是客户端网关的,需要分析一下。顺便看下利用价值,以及什么版本的客户端支持。
描述一下您喜欢的解决方案
如果是客户端的mac地址,那么相对来说就有一点利用价值。可以进行多开检测判定。
但是用来做封设备的话,其实意义不会太大。
毕竟mac地址是可以修改的,达不到封禁效果,而多开时候修改mac会掉线……
其他附加信息
使用 script4each 系列指令时,若 <脚本> 逻辑复杂,全部写在一行可读性很差
支持通过 NPC::ONEVENT 方式指定要执行的具体代码
请用清晰简洁的语言来描述你所遇到的问题。
例如:当我想要 [...] 的时候总是很麻烦 / 很沮丧。
请用清晰简洁的语言来描述你希望的解决方案或者预期。
例如:通过脚本指令可以禁止角色通过传送阵。
如果你考虑过其他的替代方案,可以在这里简明扼要的描述一下。
例如:我想通过 OnTouch 把靠近的角色送到其他地方,避免玩家
进入传送阵,但是玩家感觉会很奇怪。
如果可能的话,请在此补充与此问题相关的截图或其他一切信息。
rAthenaCN_script_commands.txt
当instance_create("副本名称")时,而instance_db.txt中又没有对应的“副本名称”时,MAP直接崩掉
调试代码段
// Searching a Free Instance
// 0 is ignored as this means "no instance" on maps
ARR_FIND(1, MAX_INSTANCE_DATA, i, instance_data[i].state == INSTANCE_FREE);
if( i >= MAX_INSTANCE_DATA )
return -4;
instance_data[i].type = db->id;
instance_data[i].state = INSTANCE_IDLE;
instance_data[i].owner_id = owner_id;
instance_data[i].mode = mode;
instance_data[i].keep_limit = 0;
instance_data[i].keep_timer = INVALID_TIMER;
instance_data[i].idle_limit = 0;
instance_data[i].idle_timer = INVALID_TIMER;
instance_data[i].regs.vars = i64db_alloc(DB_OPT_RELEASE_DATA);【引发了未经处理的异常:读取访问权限冲突。
db 是 nullptr。】
instance_data[i].regs.arrays = NULL;
instance_data[i].cnt_map = 0;
比如想要保持道具唯一ID的情况下,调整物品的其他属性的话,往往需要先记住道具的参数,然后 delitem 再重新 getitem2 特别麻烦。
希望能够和 Sear 一样提供类似 setinventoryinfo 的脚本指令可以来进行更快捷的设置。
*getinventoryinfo(<位置序号>, <类型>);
*setinventoryinfo <位置序号>, <类型>, <值>("<值>");
作用: 根据物品栏位置编号查询物品信息。
返回-1,如果物品不存在或类型不正确。
类型:
0: id
1: 数量
2: 是否装备
3: 精炼值
4: 是否鉴定
5: 是否损坏
6: 卡片1
7: 卡片2
8: 卡片3
9: 卡片4
10: 租赁到期时间
11: 耐久度修复后可以使用的时间
12: 当前耐久度
13: 耐久度最大值
14: 装备序列号(可叠加物品慎用)
15: 随机属性1奖励
16: 随机属性2奖励
17: 随机属性3奖励
18: 随机属性4奖励
19: 随机属性5奖励
20: 随机属性1值1
21: 随机属性2值1
22: 随机属性3值1
23: 随机属性4值1
24: 随机属性5值1
25: 随机属性1值2
26: 随机属性2值2
27: 随机属性3值2
28: 随机属性4值2
29: 随机属性5值2
30: 绑定,bind
备注:上述请求由 ヽ木蚂蚁α
提出,提交一个 issues 避免忘记
缺陷描述
来自dashuiguo的反馈,使用 gettimestr("%H:%M:%S",21,6); 获取的时间不符合预期,返回的是 08:00:06
重现此问题的步骤
直接执行脚本:gettimestr("%H:%M:%S",21,6);
预期的正确行为
返回:00:00:06
程序编译模式 (请完善以下信息):
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.