zxc12141214 發表於 2017-4-2 23:39:55

只要是有關判別裝備位置的語法都會錯位,例如getequipname(1)

本帖最後由 zxc12141214 於 2017-4-3 11:23 PM 編輯

我是使用RatenaCN1.6.3 SQL版
有爬了許多文章,我不知道這問題該怎麼搜尋,
我只知道可能跟scripts_athena裡的腳本有關,
因為我不喜歡太多的雜魚.. 所以將NPC都關閉,
請問有人能解答這是設定上哪個環節出錯誤嘛?

https://upload.cc/i/UkuZW7.jpg

如圖上顯示我身上就穿那樣,他怎麼給我亂判定位置..

在來這是腳本:https://pastebin.com/dl/QbdfstHJ

這是開機檔的部分:https://drive.google.com/file/d/0B7H8YNFWmFFeZnE5Y1JGc3NUaXM/view?usp=sharing

louis8604031 發表於 2017-4-2 23:52:59

rACN的equipment slot跟EA的不同
請自行修正

a91323 發表於 2017-4-2 23:53:30

https://github.com/rathena/rathena/blob/master/doc/script_commands.txt#L2533

RA有更改過

louis8604031 發表於 2017-4-2 23:58:01

簡單來說
更換這邊的順序 顯示就會正常了        setarray .@Equip$,"頭上","衣服","左手","右手","掛批","鞋子","飾品","飾品","頭中","頭下";內部腳本有沒有要動到自己研究囉

zxc12141214 發表於 2017-4-3 00:08:32

louis8604031 發表於 2017-4-2 11:52 PM static/image/common/back.gif
rACN的equipment slot跟EA的不同
請自行修正

equipment slot 這個是甚麼呀? 設定檔嘛?

zxc12141214 發表於 2017-4-3 00:10:09

a91323 發表於 2017-4-2 11:53 PM static/image/common/back.gif
https://github.com/rathena/rathena/blob/master/doc/script_commands.txt#L2533

RA有更改過

都是英文 哈哈...
我好多腳本都是用EA的判定寫法,
我該怎麼修正才能讓一切都正常?

還是只能利用腳本的寫法去修改成RA版了呢?

zxc12141214 發表於 2017-4-3 00:12:15

louis8604031 發表於 2017-4-2 11:58 PM static/image/common/back.gif
簡單來說
更換這邊的順序 顯示就會正常了內部腳本有沒有要動到自己研究囉

我有試過了,但是最後一個 頭飾下的位置,
我全身都有穿裝備,他還是判別不到...
所以那邊修改順序... 問題還是存在。

zxc12141214 發表於 2017-4-3 00:31:13

本帖最後由 zxc12141214 於 2017-4-3 12:35 AM 編輯

a91323 發表於 2017-4-2 11:53 PM static/image/common/back.gif
https://github.com/rathena/rathena/blob/master/doc/script_commands.txt#L2533

RA有更改過
//==============發現原因===================//
EQI_ACC_L (0)             - Accessory 1
EQI_ACC_R (1)             - Accessory 2
EQI_SHOES (2)             - Footgear (shoes, boots)
EQI_GARMENT (3)         - Garment (mufflers, hoods, manteaux)
EQI_HEAD_LOW (4)          - Lower Headgear (beards, some masks)
EQI_HEAD_MID (5)          - Middle Headgear (masks, glasses)
EQI_HEAD_TOP (6)          - Upper Headgear
EQI_ARMOR (7)             - Armor (jackets, robes)
EQI_HAND_L (8)            - Left hand (weapons, shields)
EQI_HAND_R (9)            - Right hand (weapons)

//所以改成這樣子對嗎?      set .@Size,getarraysize(.@Item);
      mes $@RrcssNPC_Str$;
      mes "請選擇您要拆除的物品選項。";
      next;
      setarray .@Equip$,"飾品左","飾品右","鞋子","斗篷","頭下","頭中","頭上","身體","左手","右手";
      for ( set @i,0; @i <= 9; set @i,@i+0 ) {
                if ( getequipid(@i) = 0 ) {
                        setd "@EquipName"+@i+"$",.@Equip$[@i]+"–^FF0000沒有裝備物品^000000";
                } else {
                        if ( getequipcardcnt(@i) ) {
                              setd "@EquipName"+@i+"$",.@Equip$[@i]+"–^0000FF"+getequipname(@i)+"^000000["+getitemslots(getequipid(@i))+"S]";
                        } else {
                              setd "@EquipName"+@i+"$",.@Equip$[@i]+"–^FF0000沒有插上卡片^000000";
                        }
                }
      }

-樂- 發表於 2017-4-3 00:53:45

zxc12141214 發表於 2017-4-3 12:31 AM static/image/common/back.gif
//==============發現原因===================//
EQI_ACC_L (0)             - Accessory 1
EQI_ACC_R...

直接測試不就知道對不對?

zxc12141214 發表於 2017-4-3 02:54:23

-樂- 發表於 2017-4-3 12:53 AM static/image/common/back.gif
直接測試不就知道對不對?

壇主~ 我感覺我快成功了..
但還是不是很懂到底哪裡出了問題...
左飾品變成0了以後,我根本摸不著頭緒...
我盡力的結果如下...

但是右飾品總是不顯示或是沒辦法正確判別有沒有卡片...//================================================//

        set .@Size,getarraysize(.@Item);
        mes $@RrcssNPC_Str$;
        mes "請選擇您要拆除的物品選項。";
        next;
        setarray .@Equip$,"飾品左","鞋子","斗篷","頭下","頭中","頭上","身體","左手","右手","飾品右";
        for ( set @i,1; @i <= 10; set @i,@i+1 ) {
                if ( getequipid(@i) <= 0 ) {
                        setd "@EquipName"+@i+"$",.@Equip$[@i]+"–^FF0000沒有裝備物品^000000";
                } else {
                        if ( getequipcardcnt(@i) ) {
                                setd "@EquipName"+@i+"$",.@Equip$[@i]+"–^0000FF"+getequipname(@i)+"^000000["+getitemslots(getequipid(@i))+"S]";
                        } else {
                                setd "@EquipName"+@i+"$",.@Equip$[@i]+"–^FF0000沒有插上卡片^000000";
                        }
                }
        }
        set @CItem,select(@EquipName1$,@EquipName2$,@EquipName3$,@EquipName4$,@EquipName5$,@EquipName6$,@EquipName7$,@EquipName8$,@EquipName9$,@EquipName0$);
        set @CardCount,getequipcardcnt(@CItem);
        for ( set @i,1; @i <= 10; set @i,@i+1 ) {
                setd "@EquipName"+@i+"$","";
        }
        if ( @CardCount == 0 )        {
                mes $@RrcssNPC_Str$;
                mes "這個物品並沒有插上卡片唷!";
                close;
        }
        mes "[多功能工匠][機率:^FF0000"+(.@CardRand1-(@CardCount*.@CardRand2))+"%^000000]";
        mes "拆除 ^0000FF"+getequipname(@CItem)+"^000000["+getitemslots(getequipid(@CItem))+"S] 上的卡片";
        mes "需要 ^FF0000金錢 "+(.@CardZeny1+(@CardCount*.@CardZeny2))+"^000000 z";
        for ( set @i,1; @i < .@Size; set @i,@i+1 ) {
                mes " 和 ^FF0000"+getitemname(.@Item[@i])+" "+.@INum[@i]+"^000000 個";
        }
        next;
        if (select("是的!","不了!")==2) {
                close;
        }
        if ( Zeny < (.@CardZeny1+(@CardCount*.@CardZeny2)) ) {
                mes $@RrcssNPC_Str$;
                mes "抱歉您身上的金錢不足!";
                close;
        }
        for ( set @i,1; @i < .@Size; set @i,@i+1 ) {
                if ( countitem(.@Item[@i]) < .@INum[@i] ) {
                        mes $@RrcssNPC_Str$;
                        mes "抱歉您身上的物品不足!";
                        close;
                }
        }
        mes $@RrcssNPC_Str$;
        mes "鏘!鏘!鏘!";
        next;
        if ( (.@CardRand1-(@CardCount*.@CardRand2)) < 100 ) {
                mes "[多功能工匠][機率:^FF0000"+(.@CardRand1-(@CardCount*.@CardRand2))+"%^000000]";
                mes "如果拆除失敗您想保留什麼?";
                next;
                switch(select("保留裝備!","保留卡片!")) {
                case 1: set @CardFailed,1; set .@Str$,"裝備"; break;
                case 2: set @CardFailed,2; set .@Str$,"卡片"; break;
                }
        }
        set Zeny,Zeny - (.@CardZeny1+(@CardCount*.@CardZeny2));
        for ( set @i,1; @i < .@Size; set @i,@i+1 ) {
                delitem .@Item[@i],.@INum[@i];
        }
        if ( (.@CardRand1-(@CardCount*.@CardRand2)) >= rand(100) ) {
                successremovecards @CItem;
                specialeffect2 EF_SANCTUARY;
                mes $@RrcssNPC_Str$;
                mes "恭喜您物品已拆除成功了!";
        } else {
                failedremovecards @CItem,@CardFailed;
                specialeffect2 EF_SUI_EXPLOSION;
                mes $@RrcssNPC_Str$;
                mes "抱歉您的物品拆除失敗了!";
                mes "已經盡力幫您保住"+.@Str$+"了!";
        }
        close;
}

IDUN-2 發表於 2017-4-3 13:10:16

zxc12141214 發表於 2017-4-3 02:54 AM static/image/common/back.gif
壇主~ 我感覺我快成功了..
但還是不是很懂到底哪裡出了問題...
左飾品變成0了以後,我根本摸不著頭緒.. ...

裝備位置要從0到9不是1到10



zxc12141214 發表於 2017-4-3 23:23:24

IDUN-2 發表於 2017-4-3 01:10 PM static/image/common/back.gif
裝備位置要從0到9不是1到10

謝謝~ 可能是語法的問題.. 整體還是怪怪的~
我先把它移到已解決~
起碼現在是可以正常使用的!
頁: [1]
查看完整版本: 只要是有關判別裝備位置的語法都會錯位,例如getequipname(1)