PandasWS / Pandas

熊猫模拟器 - 基于 rAthena 构建的中文仙境传说模拟器(欢迎加入QQ交流群:928171346)
https://pandas.ws
GNU General Public License v3.0
8 stars 2 forks source link

OnPCCashShop相关Filter及Event [聽風] #695

Open michaelwoooo opened 1 year ago

michaelwoooo commented 1 year ago

*OnPCCashShopOpenFilter:

打开商城前触发过滤器 [聽風]

中断说明: 中断后服务端会无视本次打开商城的请求


*OnPCCashShopBuyFilter:

点击购买按钮后还没有扣除CASH点数和拿到物品前触发过滤器 [聽風]

中断说明: 中断后服务端会无视本次购买请求

参数说明: @cashshop_nameid[] 购买物品的ID @cashshop_quantity[] 购买物品的数量 @cashshop_price[] 购买物品的单价 @cashshop_type[] 购买物品在商城中栏目类型 @cashshop_kafra 购买总共使用的卡普拉点数 @cashshop_count 总共购买物品种类(数组长度)


*OnPCCashShopBuyEvent:

商城购买成功后触发事件 [聽風]

事件关联: 关联到商城购买成功的玩家

携带参数: @cashshop_nameid[] 购买物品的ID @cashshop_quantity[] 购买物品的数量 @cashshop_price[] 购买物品的单价 @cashshop_type[] 购买物品在商城中栏目类型 @cashshop_kafra 购买总共使用的卡普拉点数 @cashshop_count 总共购买物品种类(数组长度)


*OnPCCashShopCloseEvent:

关闭商城后触发事件 [聽風]

事件关联: 关联到关闭商城的玩家

CairoLee commented 1 year ago

普通的 Event 比如:OnPCCashShopBuyEvent 和 OnPCCashShopCloseEvent 如果刚好碰见玩家正在执行其他脚本,会被压入队列。这是可以接受的么?会不会影响结果准确性?

Hong-Shin commented 1 year ago
OnPCCashShopBuyFilter:
    for ( .@i=0; .@i<@cashshop_count; .@i++ ) {
        dispbottom(sprintf("[Filter] nameid : %d | quantity : %d | price : %d | type : %d | kafra : %d", @cashshop_nameid[.@i] , @cashshop_quantity[.@i] , @cashshop_price[.@i] , @cashshop_type[.@i] , @cashshop_kafra ));

        if ( @cashshop_quantity[.@i] > 10 ) {
            processhalt;
            dispbottom "購買數量不能超過10個";
            end;
        }
    }
    end;

中斷購買後 一樣扣除商城點數沒收到物品

OnPCCashShopOpenFilter標籤 中斷後角色會無法移動