OK論壇

 找回密碼
 註冊
查看: 4463|回復: 14

無限之塔 腳本問題

 關閉 [複製鏈接]
  • TA的每日心情
    開心
    2013-3-5 08:43 AM
  • 簽到天數: 460 天

    連續簽到: 4 天

    [LV.9]以壇為家II

    發表於 2010-5-18 18:43:32 | 顯示全部樓層 |閱讀模式
    本帖最後由 DBC 於 2010/5/20 02:45 PM 編輯

    本來是使用EA13888  模擬器 開 無限之塔 腳本,運作上是都沒問題的

    但是 改換了 SeAr_1.3.236
    無限之塔 爬上80樓之後,這時候如果滅團回村,照理來說 可以向NPC領取獎勵
    但是玩家反應領取不到,去看了一下,map_server_sql.exe跑出了

    1. [渣昫]: npc_click: npc_id != 0
    複製代碼


    請問我該如何解決這問題呢...?

    提供腳本相關原碼

    1. e_tower,75,119,5        script        埃蘭之影        997,{
    2.         mes "[埃蘭之影]";
    3.         mes "找我有事嗎";
    4.         next;
    5.         if(@i==80)
    6.         {
    7.         mes "[埃蘭之影]";
    8.         mes "原來你到過80樓";
    9.         mes "這些東西就送給你了";
    10.         getitem 607,100;
    11.         set @i,0;
    12.         close;
    13.         }
    複製代碼


    如果需要其他相關資訊請跟我說>"<
    回復

    使用道具 舉報

  • TA的每日心情
    開心
    2024-9-6 01:09 AM
  • 簽到天數: 1324 天

    連續簽到: 1 天

    [LV.10]以壇為家III

    發表於 2010-5-19 02:08:47 | 顯示全部樓層
    是打死全部的怪才是 80吧 減團不是 79而已?
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2013-3-5 08:43 AM
  • 簽到天數: 460 天

    連續簽到: 4 天

    [LV.9]以壇為家II

     樓主| 發表於 2010-5-19 16:50:02 | 顯示全部樓層
    因為昨天有人爬到85滅團,但是卻領不到獎品  囧

    但是她們去一樓點領獎npc

    系統一直出現npc_click: npc_id != 0
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2024-9-6 01:09 AM
  • 簽到天數: 1324 天

    連續簽到: 1 天

    [LV.10]以壇為家III

    發表於 2010-5-19 17:16:06 | 顯示全部樓層
    本帖最後由 sinya 於 2010-5-19 05:29 PM 編輯

    npc_click: npc_id != 0
    這個跟領不領的到獎沒關係
    那是同時執行很多NPC才會出現的


    而且你也沒貼出 @i 變數相關腳本
    只貼 if(@i==80){領獎}
    根本無從看起
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2013-3-5 08:43 AM
  • 簽到天數: 460 天

    連續簽到: 4 天

    [LV.9]以壇為家II

     樓主| 發表於 2010-5-19 20:17:33 | 顯示全部樓層
    1. e_tower,71,117,5        script        無限之塔看守人        421,{
    2.         if( !getcharid(1) )
    3.         {
    4.                 mes "[無限之塔看守人]";
    5.                 mes "對不起,您沒有隊伍。";
    6.                 close;
    7.         }
    8.         if( getgmlevel()>90 )
    9.         {
    10.                 mes "[無限之塔看守人]";
    11.                 mes "尊貴的來賓";
    12.                 mes "你想做什麼?";
    13.                 next;
    14.                 switch( select( "重新開始","挑戰","我還沒準備好" ) )
    15.                 {
    16.                         case 1:
    17.                                 mes "[無限之塔看守人]";
    18.                                 mes "好的,沒問題.";
    19.                                 close2;
    20.                                 goto OnTimer14410000;

    21.                         case 2:
    22.                                 mes "[無限之塔看守人]";
    23.                                 mes "了不起,讓我們開始吧!";
    24.                                 close2;
    25.                                 for( set .@i,1; .@i<7; set .@i,.@i+1)
    26.                                         killmonsterall .@i+"@tower";
    27.                                 set .team,getcharid(1);
    28.                                 set .intest,1;
    29.                                 donpcevent "naght::OnRoom1";
    30.                                 warpparty "1@tower",50,355,.team;
    31.                                 initnpctimer;
    32.                                 announce "GM正在測試無限之塔.",bc_all;
    33.                                 close;
    34.                        
    35.                         case 3:
    36.                                 close;
    37.                 }
    38.         }
    39.         if(.intest)
    40.         {
    41.                 mes "[無限之塔看守人]";
    42.                 mes "GM現在正在測試無限之塔.";
    43.                 close;
    44.         }
    45.         if(!.team)
    46.         {
    47.                 if( getcharid(0) != getpartyleader(getcharid(1),2) )
    48.                 {
    49.                         mes "[無限之塔看守人]";
    50.                         mes "對不起,只有隊長才可以登記。";
    51.                         close;
    52.                 }
    53.                 else if( gettimetick(2) - ET_Tower > 43200 )
    54.                 {
    55.                         mes "[無限之塔看守人]";
    56.                         mes "歡迎 "+strcharinfo(0)+".";
    57.                         mes "你想登記進入無限之塔嗎?";
    58.                         mes "挑戰需要支付100W";
    59.                         next;
    60.                         switch( select( "是的","不要" ) )
    61.                         {
    62.                                 case 1:
    63.                                         getpartymember(getcharid(1));
    64.                                         if( $@partymembercount < 2 || zeny < 1000000 )
    65.                                         {
    66.                                                 mes "[無限之塔看守人]";
    67.                                                 mes "對不起,你的隊伍成員必須在二人以上或者金錢不夠.";
    68.                                                 close;
    69.                                         }
    70.                                         mes "[無限之塔看守人]";
    71.                                         mes "你只有4個小時的時間.";
    72.                                         mes "4小時後,你和你的全體隊員只有等待12小時後才能重新登記進入無限之塔。";
    73.                                         next;
    74.                                         mes "[無限之塔看守人]";
    75.                                         mes "你確定要登記嗎?";
    76.                                         next;
    77.                                         switch( select( "是的","不要" ) )
    78.                                         {
    79.                                                 case 1:
    80.                                                         mes "[無限之塔看守人]";
    81.                                                         mes "你的隊伍已經成功登記了.";
    82.                                                         set zeny,zeny-1000000;
    83.                                                         close2;
    84.                                                         set .ET_Slot,0;
    85.                                                         set .ET_Players$[.ET_Slot],strcharinfo(0);
    86.                                                         set .ET_Slot,.ET_Slot+1;
    87.                                                         set .team, getcharid(1);
    88.                                                         set ET_Tower, gettimetick(2);
    89.                                                         set .ET_Tower,1;
    90.                                                         getpartymember(getcharid(1));
    91.                                                         set .partymembers,$@partymembercount;
    92.                                                         announce "無限之塔已經被打開.",bc_all;
    93.                                                         mapannounce "e_tower","請"+getpartyname(.team)+"的隊伍成員(不包括隊長),確認登記.",bc_map;
    94.                                                         end;

    95.                                                 case 2:
    96.                                                         close;
    97.                                         }
    98.                                 case 2:
    99.                                         close;
    100.                         }
    101.                 }
    102.                 else
    103.                 {
    104.                         mes "[無限之塔看守人]";
    105.                         mes "對不起,12小時內不能重複挑戰.";
    106.                         close;
    107.                 }
    108.         }
    109.         else
    110.         {
    111.                 for(set .@i,0; .@i<getarraysize(.ET_Players$); set .@i,.@i+1)
    112.                 {//in case he signed up
    113.                         if( .ET_Players$[.@i] == strcharinfo(0) )
    114.                         {
    115.                                 mes "[無限之塔看守人]";
    116.                                 mes "對不起, 你已經登記過了.";
    117.                                 close;
    118.                         }
    119.                 }
    120.                 if(getcharid(1)!=.team)
    121.                 {
    122.                         mes "[無限之塔看守人]";
    123.                         mes "對不起, 隊員 "+getpartyname(.team)+" 已經登記過了.";
    124.                         mes "請稍後再來.";
    125.                         close;
    126.                 }
    127.                 else if( .ET_Tower < .partymembers)
    128.                 {
    129.                         if(gettimetick(2)-ET_Tower>43200)
    130.                         {
    131.                                 mes "[無限之塔看守人]";
    132.                                 mes "確認你的登記.";
    133.                                 next;
    134.                                 switch( select( "是","否" ) )
    135.                                 {
    136.                                         case 1:
    137.                                                 mes "[無限之塔看守人]";
    138.                                                 mes "已經登記成功.";
    139.                                                 close2;
    140.                                                 set .ET_Players$[.ET_Slot],strcharinfo(0);
    141.                                                 set .ET_Slot,.ET_Slot+1;
    142.                                                 set ET_Tower,gettimetick(2);
    143.                                                 set .ET_Tower, .ET_Tower+1;
    144.                                                 mapannounce "e_tower","須登記人數:"+.partymembers+" 已登記人數:"+.ET_Tower,bc_map;
    145.                                                 if(.ET_Tower==.partymembers)
    146.                                                 {
    147.                                                         mapannounce "e_tower","所有隊員都登記成功,冒險即將開始.",bc_map;
    148.                                                         donpcevent "naght::OnRoom1";
    149.                                                         warpparty "1@tower",50,355,.team;
    150.                                                         initnpctimer;
    151.                                                         end;
    152.                                                 }
    153.                                                 end;

    154.                                         case 2:
    155.                                                 close;
    156.                                 }
    157.                         }
    158.                         else
    159.                         {
    160.                                 mes "[無限之塔看守人]";
    161.                                 mes "對不起,你已經登記過了或者上次參加的時間離現在不到12小時.";
    162.                                 close;
    163.                         }
    164.                 }
    165.                 else if( getcharid(0) != getpartyleader(getcharid(1),2) )
    166.                 {
    167.                         for(set .@i,0; .@i <= 12; set .@i,.@i + 1 )
    168.                         {
    169.                                 if(.ET_Players$[.@i] == strcharinfo(0))
    170.                                 {
    171.                                         mes "[無限之塔看守人]";
    172.                                         mes "我將打開一個入口,它會把你傳送到第一層.";
    173.                                         close2;
    174.                                         warp "1@tower",50,355;
    175.                                         end;
    176.                                 }
    177.                         }
    178.                         mes "[無限之塔看守人]";
    179.                         mes "在登記正在處理的過程中,你不能進行登記,所以我不能允許你進入無限之塔。";
    180.                         close;
    181.                 }
    182.                 else
    183.                 {
    184.                         mes "[無限之塔看守人]";
    185.                         mes "你想離開還是回到你的隊友身邊?";
    186.                         next;
    187.                         switch( select( "離開.","返回." ) )
    188.                         {
    189.                                 case 1:
    190.                                         mes "[無限之塔看守人]";
    191.                                         mes "那就這樣吧.";
    192.                                         close2;
    193.                                         set .team,0;
    194.                                         set .ET_Tower,0;
    195.                                         setnpctimer 14404500;
    196.                                         startnpctimer;
    197.                                         end;

    198.                                 case 2:
    199.                                         for(set .@i,0; .@i <= 12; set .@i,.@i + 1 )
    200.                                         {
    201.                                                 if(.ET_Players$[.@i] == strcharinfo(0))
    202.                                                 {
    203.                                                         mes "[無限之塔看守人]";
    204.                                                         mes "我將打開一個入口,它會把你傳送到第一層.";
    205.                                                         close2;
    206.                                                         warp "1@tower",50,355;
    207.                                                         end;
    208.                                                 }
    209.                                         }
    210.                                         mes "[無限之塔看守人]";
    211.                                         mes "在登記正在處理的過程中,你不能進行登記,所以我不能允許你進入無限之塔。";
    212.                                         close;
    213.                         }
    214.                 }                       
    215.         }

    216. OnTimer3600000:
    217.         for( set .@i,1; .@i<7; set .@i,.@i+1)
    218.                 mapannounce .@i+"@tower","還剩3個小時.",bc_map;
    219.         end;

    220. OnTimer7200000:
    221.         for( set .@i,1; .@i<7; set .@i,.@i+1)
    222.                 mapannounce .@i+"@tower","還剩2個小時.",bc_map;
    223.         end;

    224. OnTimer10800000:
    225.         for( set .@i,1; .@i<7; set .@i,.@i+1)
    226.                 mapannounce .@i+"@tower","還剩1個小時.",bc_map;
    227.         end;

    228. OnTimer14400000:
    229.         for( set .@i,1; .@i<7; set .@i,.@i+1)
    230.                 mapannounce .@i+"@tower","時間到,你們將被傳送到天津主城.",bc_map;
    231.         end;
    232.        
    233. OnTimer14405000:
    234.         warpparty "prontera",156,181,getvariableofnpc(.team,"無限之塔看守人");
    235.         end;

    236. OnTimer14410000:
    237.         announce "無限之塔重新開放了",bc_all;
    238.         set .team,0;
    239.         set .ET_Tower,0;
    240.         set .intest,0;
    241.         set $@et_award,0;
    242.         for( set .@i,1; .@i<7; set .@i,.@i+1)
    243.                 killmonsterall .@i+"@tower";
    244.         for(set .@i,2; .@i<102; set .@i,.@i+1)
    245.                 disablenpc "ET_Warp_"+.@i;
    246.         disablenpc "納戶特基格";
    247.         disablenpc "warptonaght1";
    248.         disablenpc "warptonaght2";
    249.         disablenpc "ET_Exit";
    250.         end;

    251. OnInit:
    252.         disablenpc "納戶特基格";
    253.         disablenpc "warptonaght1";
    254.         disablenpc "warptonaght2";
    255.         disablenpc "ET_Exit";
    256.         for(set .@i,2; .@i<102; set .@i,.@i+1)
    257.                 disablenpc "ET_Warp_"+.@i;
    258.         end;

    259. OnPCLoadMapEvent:
    260.         getmapxy(.@m$,.@x,.@y,0);
    261.         if( (.@m$ == "1@tower" || .@m$ == "2@tower" || .@m$ == "3@tower" || .@m$ == "4@tower" || .@m$ == "5@tower") )
    262.         {
    263.                 if(!getvariableofnpc(.team,"無限之塔看守人"))
    264.                         warp "SavePoint",0,0;
    265.                 if(!@eting)
    266.                         set @eting,1;
    267.                 if( getcharid(0)==getpartyleader(getvariableofnpc(.team,"無限之塔看守人"),2) )
    268.                 {
    269.                         if( .@m$ == "2@tower" && !($@et_award&1) )
    270.                         {                       
    271.                                 getitem 7726,1;
    272.                                 set $@et_award,$@et_award|1;
    273.                         }
    274.                         else if( .@m$ == "3@tower" && !($@et_award&2) )
    275.                         {                       
    276.                                 getitem 7726,1;
    277.                                 set $@et_award,$@et_award|2;
    278.                         }
    279.                         else if( .@m$ == "4@tower" && !($@et_award&4) )
    280.                         {                       
    281.                                 getitem 7726,1;
    282.                                 set $@et_award,$@et_award|4;
    283.                         }
    284.                 }
    285.         }
    286.         end;

    287. OnPCLogoutEvent:
    288.         if(@eting)
    289.                 if((getmapusers("1@tower")+getmapusers("2@tower")+getmapusers("3@tower")+getmapusers("4@tower")+getmapusers("5@tower")+getmapusers("6@tower"))==1)
    290.                         donpcevent "無限之塔看守人::OnTimer14410000";
    291.         end;
    292. }
    複製代碼


    在此提供給您看了
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2024-9-6 01:09 AM
  • 簽到天數: 1324 天

    連續簽到: 1 天

    [LV.10]以壇為家III

    發表於 2010-5-19 22:39:37 | 顯示全部樓層
    本帖最後由 sinya 於 2010-5-19 10:43 PM 編輯

    你貼錯了吧 還是沒主程式 沒殺怪事件的? 也找不到@i

    還有太長 請用附件的 排版很亂  本來就很難看了 又亂掉更看不懂
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    奮斗
    2021-1-30 07:57 PM
  • 簽到天數: 101 天

    連續簽到: 1 天

    [LV.6]常住居民II

    發表於 2010-5-19 22:48:57 | 顯示全部樓層
    997,{ 好像有問題 太久沒用 望瞜
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2013-3-5 08:43 AM
  • 簽到天數: 460 天

    連續簽到: 4 天

    [LV.9]以壇為家II

     樓主| 發表於 2010-5-19 23:08:32 | 顯示全部樓層
    本帖最後由 DBC 於 2010-5-20 12:26 AM 編輯



    檔案上傳給您看了@@

    麻煩您了>"<
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2013-3-5 08:43 AM
  • 簽到天數: 460 天

    連續簽到: 4 天

    [LV.9]以壇為家II

     樓主| 發表於 2010-5-20 00:28:44 | 顯示全部樓層
    感謝sinya 大

    照您所說的修改好 沒問題了 感謝>"<

    但是,目前把樓層最後一隻怪物打死 還是會出現npc_click: npc_id != 0   @@
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2024-9-6 01:09 AM
  • 簽到天數: 1324 天

    連續簽到: 1 天

    [LV.10]以壇為家III

    發表於 2010-5-20 00:38:52 | 顯示全部樓層
    本帖最後由 sinya 於 2010-5-20 01:05 AM 編輯

    不 我發現還有錯 才砍掉...... 那個全域變數$@這樣 會造成洗裝
    我是覺得 是你領獎的方法錯了 我發現原本才是正確的 因為 80才能領超過 1 不能領

    是80樓 打完 過npc才能領  超過1樓都不行


    這是傳點npc全部殺死怪才會出現的

    1. 4@tower,354,395,0    script    ET_Warp_81    45,1,1,{
    2.     set @i,80;
    3.     warp "4@tower",53,271;
    4.     end;
    5. }
    複製代碼
    我告訢你正確的領獎方法 就是你打死 80f的怪 過npc @i才是 80
    這樣才能領  多一樓少一樓都不行



    你原本的領獎人員是這樣

    1. e_tower,75,119,5        script        埃蘭之影        997,{
    2.         mes "[埃蘭之影]";
    3.         mes "找我有事嗎";
    4.         next;
    5.         if(@i==80)
    6.         {
    7.         mes "[埃蘭之影]";
    8.         mes "原來你到過80樓";
    9.         mes "這些東西就送給你了";
    10.         getitem 607,100;
    11.         set @i,0;
    12.         close;
    13.         }
    14.         else if(@i==90)
    15.         {
    16.         mes "[埃蘭之影]";
    17.         mes "原來你到過90樓";
    18.         mes "這些東西就送給你了";
    19.         getitem 607,100;
    20.         getitem 547,50;
    21.         set @i,0;
    22.         close;
    23.         }
    24.         else if(@i==100)
    25.         {
    26.         mes "[埃蘭之影]";
    27.         mes "原來你到過100樓";
    28.         mes "這些東西就送給你了";
    29.         getitem 7092,1;
    30.         getitem 607,200;
    31.         getitem 547,100;
    32.         set @i,0;
    33.         close;
    34.         }
    35.         else if(@i==101)
    36.         {
    37.         mes "[埃蘭之影]";
    38.         mes "原來你打敗了夜勝魔";
    39.         mes "這些東西就送給你了";
    40.         getitem 7086,1;
    41.         getitem 7092,1;
    42.         getitem 607,450;
    43.         getitem 547,200;
    44.         set @i,0;
    45.         close;
    46.         }
    47.         else
    48.         {
    49.         mes "[埃蘭之影]";
    50.         mes "沒事別打擾我";
    51.         close;
    52.         }
    複製代碼



    至於npc_click: npc_id != 0
    應該是你自動++npc造成的吧 他在執行時++腳本 又同時執行別的npc才會出那種錯
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2013-3-5 08:43 AM
  • 簽到天數: 460 天

    連續簽到: 4 天

    [LV.9]以壇為家II

     樓主| 發表於 2010-5-20 01:23:13 | 顯示全部樓層
    不 我發現還有錯 才砍掉...... 那個全域變數$@這樣 會造成洗裝
    我是覺得 是你領獎的方法錯了 我發現原本才是正確的 因為 80才能領超過 1 不能領


    那大大你有辦法 修正嗎?><"

    不然都不能領獎勵了~"~
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2024-9-6 01:09 AM
  • 簽到天數: 1324 天

    連續簽到: 1 天

    [LV.10]以壇為家III

    發表於 2010-5-20 02:13:47 | 顯示全部樓層
    本帖最後由 sinya 於 2010-5-20 02:15 AM 編輯

    正確的領獎方法 :就是打死 80f的怪 過npc @i 才是 80
    這樣才能領  多一樓少一樓都不行
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2013-3-5 08:43 AM
  • 簽到天數: 460 天

    連續簽到: 4 天

    [LV.9]以壇為家II

     樓主| 發表於 2010-5-20 02:37:22 | 顯示全部樓層
    正確的領獎方法 :就是打死 80f的怪 過npc @i 才是 80
    這樣才能領  多一樓少一樓都不行
    sinya 發表於 2010-5-20 02:13 AM



        但是按照原腳本這樣執行

    在這模擬器下,好像沒辦法領~"~
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2024-9-6 01:09 AM
  • 簽到天數: 1324 天

    連續簽到: 1 天

    [LV.10]以壇為家III

    發表於 2010-5-20 08:14:31 | 顯示全部樓層

    1. e_tower,75,119,5        script        埃蘭之影        997,{
    2.         mes "[埃蘭之影]";
    3.         mes "找我有事嗎";
    4.         next;
    5.         if(@i>=80 && @i<90 && !prize80)
    6.         {
    7.         mes "[埃蘭之影]";
    8.         mes "原來你到過80樓";
    9.         mes "這些東西就送給你了";
    10.         getitem 607,100;
    11.         set @i,0;
    12.         set prize80,1;
    13.         close;
    14.         }
    15.         else if(@i>=90 && @i<100 && !prize90)
    16.         {
    17.         mes "[埃蘭之影]";
    18.         mes "原來你到過90樓";
    19.         mes "這些東西就送給你了";
    20.         getitem 607,100;
    21.         getitem 547,50;
    22.         set @i,0;
    23.         set prize90,1;
    24.         close;
    25.         }
    26.         else if(@i==100)
    27.         {
    28.         mes "[埃蘭之影]";
    29.         mes "原來你到過100樓";
    30.         mes "這些東西就送給你了";
    31.         getitem 7092,1;
    32.         getitem 607,200;
    33.         getitem 547,100;
    34.         set @i,0;
    35.         close;
    36.         }
    37.         else if(@i==101)
    38.         {
    39.         mes "[埃蘭之影]";
    40.         mes "原來你打敗了夜勝魔";
    41.         mes "這些東西就送給你了";
    42.         getitem 7086,1;
    43.         getitem 7092,1;
    44.         getitem 607,450;
    45.         getitem 547,200;
    46.         set @i,0;
    47.         close;
    48.         }
    49.         else
    50.         {
    51.         mes "[埃蘭之影]";
    52.         mes "沒事別打擾我";
    53.         close;
    54.         }
    55. }
    複製代碼
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2013-3-5 08:43 AM
  • 簽到天數: 460 天

    連續簽到: 4 天

    [LV.9]以壇為家II

     樓主| 發表於 2010-5-20 14:46:05 | 顯示全部樓層
    目前測試上沒什麼大問題
    先謝過sinya大了>"<
    回復 支持 反對

    使用道具 舉報

    您需要登錄後才可以回帖 登錄 | 註冊

    本版積分規則

    Archiver|手機版|小黑屋|OK討論區

    GMT+8, 2025-7-1 05:07 AM , Processed in 0.103610 second(s), 26 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回復 返回頂部 返回列表