本羊今晚用YDWE自测时,弹出如下错误:

function Trig_Trade_gold_Actions takes nothing returns nothing
set udg_PlayerIndex=S2I(SubStringBJ(GetEventPlayerChatString(),11,12))
set udg_Amount=S2I(SubStringBJ(GetEventPlayerChatString(),14,18))
call AdjustPlayerStateBJ(udg_Amount,ConvertedPlayer(udg_PlayerIndex),PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ((udg_Amount*-1),GetTriggerPlayer(),PLAYER_STATE_RESOURCE_GOLD)
endfunction
function InitTrig_Trade_gold takes nothing returns nothing
set gg_trg_Trade_gold=CreateTrigger()
call TriggerRegisterPlayerChatEvent(gg_trg_Trade_gold,Player(0),"-givegold",false)
call TriggerRegisterPlayerChatEvent(gg_trg_Trade_gold,Player(1),"-givegold",false)
call TriggerRegisterPlayerChatEvent(gg_trg_Trade_gold,Player(2),"-givegold",false)
call TriggerRegisterPlayerChatEvent(gg_trg_Trade_gold,Player(3),"-givegold",false)
call TriggerRegisterPlayerChatEvent(gg_trg_Trade_gold,Player(4),"-givegold",false)
call TriggerRegisterPlayerChatEvent(gg_trg_Trade_gold,Player(5),"-givegold",false)
call TriggerRegisterPlayerChatEvent(gg_trg_Trade_gold,Player(6),"-givegold",false)
call TriggerAddAction(gg_trg_Trade_gold,function Trig_Trade_gold_Actions)
endfunction

本羊费力的理解了以上触发,大意是:

当某个玩家输入-givegold 01 10000时,要求系统对这段命令进行截取,截取第11~12个字符作为被捐赠人(的索引),截取14~18个字符作为被捐赠金额,最后再执行捐赠人减钱,被捐赠人加钱。

游戏的时候当你输入“-givegold”游戏报错是因为你这段命令不符合要求,系统没办法截取被捐赠人(的索引)和捐赠金额因此而茫然。

修复想法是:加条件来判断命令的长度是否正确或是否满足。比如:

判断你输入的命令长度是否大于12,

是的话执行捐赠,不是的话提示玩家输入有误。

可惜我不会作图,不懂怎么写。。。