OK論壇

 找回密碼
 註冊
查看: 1136|回復: 3

終極密碼出現map報錯 , 請高手明鑑

 關閉 [複製鏈接]
  • TA的每日心情

    2017-4-5 06:13 PM
  • 簽到天數: 139 天

    連續簽到: 2 天

    [LV.7]常住居民III

    發表於 2014-4-7 18:52:20 | 顯示全部樓層 |閱讀模式
    EA
    私服版號: 13091
    問題內容: 腳本問題
    本帖最後由 hiphopiove 於 2014-4-14 08:07 PM 編輯

    1. //=============== 活動地圖設置 ===============
    2. quiz_00        mapflag        noteleport
    3. quiz_00        mapflag        nosave

    4. //=============== 主城NPC ================
    5. job_cru,33,99,4        script        終極密碼        816,{

    6.         if (getgmlevel() >= 90) {
    7.                 mes "- 是否進行遊戲設置初始化(OnInit) -";
    8.                 next;
    9.                 menu "跳過",GMJ00, "設置初始化",ReOnInit;
    10.         }

    11. GMJ00:
    12.         callfunc "f_Code_Main_NPC",0;
    13.         end;

    14. // 每天固定場次【終極密碼】,修改/增加OnClockHHMM,即可調整活動時間/場次

    15. OnClock0150:
    16. OnClock0950:
    17. OnClock1750:
    18.         callfunc "f_Code_Main_NPC",1;
    19.         end;

    20. ReOnInit:
    21.         close2;
    22. OnInit:
    23.         waitingroom "終極密碼",0;
    24. //=============== 終極密碼設置 ===============
    25. // 活動狀態(0:停止 1:報名中 2:活動進行中)
    26.         set $@Code_State,0;
    27. // 活動類型(1:搶頭香 2:淘汰賽)
    28.         set $@Code_Type,1;
    29. // 活動名稱
    30.         set $@Code_Name$,"密碼";
    31. // 活動費用
    32.         set $@Code_Zeny,10000;
    33. // 最低啟動人數限制
    34.         set $@Code_P1,4;
    35. // 最多進行人數限制
    36.         set $@Code_P2,50;
    37. // 可領取獎品人數(搶頭香)
    38.         set $@Code_P3,3;
    39. // 可領取獎品人數(淘汰賽)
    40.         set $@Code_P4,3;
    41. // 一般固定活動獎品列表,單數是獎品ID,偶數是獎品數量(隨機取得,名次決定抽獎次數)
    42. // 例:setarray $@Code_Prize[1],60003,6003,6003,6003,6003,12208;
    43. // 501:紅色藥水ID,1:數量1個;502:赤色藥水ID,2:數量2個;503:黃色藥水,3:數量3個;最後以;結尾
    44.         setarray $@Code_Prize[1],7726,1,7025,3,670,20,670,15,670,10;
    45. // 主城設定
    46.         set $@BackCity_X,155;
    47.         set $@BackCity_Y,55;
    48.         set $@Main_Twon$,"prontera"+$@BackCity_X+" "+$@BackCity_Y+"";
    49. }

    50. function        script        f_Code_Main_NPC        {
    51. // 固定場次判定/啟動
    52. if ( getarg(0) == 1) goto OpenDailyCode;

    53. // GM管理選單
    54. if ( 10 <= getgmlevel()) {
    55.         mes "[星月]";
    56.         mes "GM管理選單";
    57.         switch($@Code_State) {
    58.                 case 0:
    59.                         mes "現在的活動狀態:^ff0000關閉中^000000";
    60.                         mes "現在時間:^FF0000"+ gettimestr("%Y-%m/%d %H:%M:%S",20)+"^000000";
    61.                         menu        "跳過GM選單",MENU01,
    62.                                 "現在開啟【終極密碼】",Start_Code,
    63.                                 "現在開啟【終極炸彈】",Start_Bom,
    64.                                 "進入活動場地(隱身)",GMIn01,
    65.                                 "進入活動場地",GMIn02;
    66.                         break;
    67.                 case 1:
    68.                         mes "現在的活動狀態:^ffa500報名中^000000";
    69.                         mes "現在時間:^FF0000"+ gettimestr("%Y-%m/%d %H:%M:%S",20)+"^000000";
    70.                         menu        "跳過GM選單",MENU01,
    71.                                 "現在進行【活動】",-,
    72.                                 "進入活動場地(隱身)",GMIn01,
    73.                                 "進入活動場地",GMIn02;
    74.                         next;
    75.                         setnpctimer 595000,"SYS_Code_Join";
    76.                         mes "[星月]";
    77.                         announce "[活動公告]:【終極" + $@Code_Name$ + "】被GM啟動了,五秒後進行,要參加的請找【星月】NPC報名!!",15,"0xff0000";
    78.                         mes "【終極" + $@Code_Name$ + "】五秒後進行";
    79.                         close;
    80.                 case 2:
    81.                         mes "現在的活動狀態:^008000進行中^000000";
    82.                         mes "現在時間:^FF0000"+ gettimestr("%Y-%m/%d %H:%M:%S",20)+"^000000";
    83.                         menu        "跳過GM選單",MENU01,
    84.                                 "進入活動場地(隱身)",GMIn01,
    85.                                 "進入活動場地",GMIn02;
    86.                         break;
    87.         }

    88. MENU01:
    89.         next;
    90. }

    91. set @Prize_Name$,getitemname($@Code_Prize[1]) + "[" + $@Code_Prize[2] + "個]";
    92. for (set @TEMP,3;@TEMP<getarraysize($@Code_Prize);set @TEMP,@TEMP+2){
    93.         set @Prize_Name$,@Prize_Name$ + "、" + getitemname($@Code_Prize[@TEMP]) + "[" + $@Code_Prize[@TEMP+1] + "]";
    94. }

    95. // 活動在關閉狀態
    96. if ($@Code_State == 0) {
    97.         if (Get_Code ==1) {
    98.                 mes "[星月]";
    99.                 mes "活動費用退回了,請確認";
    100.                 set Zeny,Zeny+$@Code_Zeny;
    101.                 set Get_Code,0;
    102.                 next;
    103.         }
    104.         mes "[星月]";
    105.         mes "【終極密碼】的活動時間為:";
    106.         mes "^FF6600每天早上2、10點,晚上6點^000000 各有一場次";
    107.         mes "活動獎品^FF6600(隨機取得)^000000:";
    108.         mes "^FF6600" + @Prize_Name$ + "^000000";
    109.         mes "請踴躍參加,謝謝!!";
    110.         close;
    111. }

    112. // 活動在進行中狀態
    113. if ($@Code_State == 2) {
    114.         mes "[星月]";
    115.         mes "【終極" + $@Code_Name$ + "】已經開始了,請參加下一場次的活動吧";
    116.         close;
    117. }

    118. // 活動在報名狀態(報名名單查核)
    119. if ($@Code_State == 1 && Get_Code == 1) {
    120.         for (set @TEMP,1;@TEMP<=$@Code_People_Num+1;set @TEMP,@TEMP+1){
    121.                 if ($@Code_Play_Temp[@TEMP] == getcharid(0)) goto Code_Waiting;
    122.         }
    123.         mes "[星月]";
    124.         mes "您有[報名但未參與活動記錄]";
    125.         mes "前回報名費用退回了,請確認";
    126.         set Zeny,Zeny+$@Code_Zeny;
    127.         set Get_Code,0;
    128.         next;
    129. }

    130. // 活動在報名狀態(報名)
    131. if ($@Code_State == 1) {
    132.         mes "[星月]";
    133.         mes "【終極" + $@Code_Name$ + "】規則如下:";
    134.         switch($@Code_Type) {
    135.                 case 1:
    136.                         mes "^FF6600☆ 優先猜中金庫密碼的為勝利者";
    137.                         break;
    138.                 case 2:
    139.                         mes "^FF6600☆ 不踩到炸彈,存活越久的為勝利者";               
    140.                         break;
    141.         }
    142.         mes "☆ " + $@Code_Name$ + "範圍為:1∼人數×200";
    143.         mes "☆ 超時未輸入【終極" + $@Code_Name$ + "】者淘汰^000000";
    144.         next;
    145.         if ($@Code_People_Num != 0) {
    146.                 mes "[星月]";
    147.                 mes "目前的報名名單如下:";
    148.                 for (set @TEMP,1;@TEMP<$@Code_People_Num+1;set @TEMP,@TEMP+1){
    149.                         mes @TEMP + ". ^FF6600" + $@Code_Play_Temp$[@TEMP] + "^000000[" + $@Code_Play_Temp[@TEMP] + "]";
    150.                 }
    151.                 mes "------------------------";
    152.                 next;
    153.         }
    154.         mes "【終極" + $@Code_Name$ + "】開放報名中";
    155.         mes "報名費用:^FF6600" + $@Code_Zeny + " Zeny^000000";
    156.         if ($@Code_Bom_Prize[1] != 0 && $@Code_Type == 2){
    157.                 mes "活動獎品:^FF6600";
    158.                 for (set @TEMP,1;@TEMP<=$@Code_P4*2;set @TEMP,@TEMP+2){
    159.                         if ($@Code_Bom_Prize[@TEMP] != 0){
    160.                                 mes "第" + (@TEMP+1)/2 + "名:" + getitemname($@Code_Bom_Prize[@TEMP]) + "[" + $@Code_Bom_Prize[@TEMP+1] + "個]";
    161.                         }
    162.                 }
    163.         }else{
    164.                 mes "活動獎品^FF6600(隨機取得)^000000:";
    165.                 mes "^FF6600" + @Prize_Name$ + "^000000";
    166.         }
    167.         mes "^FF0000報名前,請詳讀規則,以免權益受損^000000";
    168.         mes "你想要參加嗎??";
    169.         next;
    170.         menu        "我要參加",-,
    171.                 "我不想要參加",EXIT;

    172.         if (Zeny < $@Code_Zeny) goto NO_ZENY;

    173.         if ($@Code_People_Num >= $@Code_P2) {
    174.                 mes "[星月]";
    175.                 mes "抱歉,現在活動人數已滿";
    176.                 mes "(最多" + $@Code_P2 + "人進行【終極" + $@Code_Name$ + "】)";
    177.                 mes "請參加下一場次的活動吧";
    178.                 close;
    179.         }

    180.         set Get_Code,1;
    181.         set $@Code_People_Num,$@Code_People_Num+1;
    182.         setarray $@Code_Play_Temp[$@Code_People_Num],getcharid(0);
    183.         setarray $@Code_Play_Temp$[$@Code_People_Num],strcharinfo(0);
    184.         set Zeny,Zeny-$@Code_Zeny;
    185.         goto Code_Waiting;
    186.         close;
    187. }

    188. NO_ZENY:
    189.         mes "[星月]";
    190.         mes "你的金錢不足,不能參加哦!!";
    191.         close;

    192. Code_Waiting:
    193.         mes "[星月]";
    194.         mes "你已經報名了,請等待活動開始";
    195.         mes "目前的報名名單如下:";
    196.         for (set @TEMP,1;@TEMP<$@Code_People_Num+1;set @TEMP,@TEMP+1){
    197.                 mes @TEMP + ". ^FF6600" + $@Code_Play_Temp$[@TEMP] + "^000000[" + $@Code_Play_Temp[@TEMP] + "]";
    198.         }

    199.         close;


    200. EXIT:
    201.         mes "[星月]";
    202.         mes "想要參加時,再來找我吧";
    203.         close;

    204. // 開啟【終極密碼】
    205. Start_Code:
    206.         next;
    207.         set $@Code_Type,1;
    208.         set $@Code_Name$,"密碼";
    209.         initnpctimer "SYS_Code_Join";
    210.         //waitingroom "*【終極" + $@Code_Name$ + "】*",0;
    211.         mes "[星月]";
    212.         mes "已開啟【終極" + $@Code_Name$ + "】";
    213.         sleep2(1000);
    214.         goto MENU01;

    215. // 開啟【終極炸彈】
    216. Start_Bom:
    217.         deletearray $@Code_Bom_Prize[1],$@Code_P4*2;
    218.         next;
    219. // 【終極炸彈】自訂獎品
    220.         for (set @TEMP,1;@TEMP<=$@Code_P4;set @TEMP,@TEMP+1){
    221. Bom_Prize_Name:
    222.                 mes "[星月]";
    223.                 mes "^FF6600請設置活動獎品、數量";
    224.                 mes "若設置錯誤,活動將不開啟^000000";
    225.                 if (@TEMP == 1) {
    226.                         mes "輸入^FF0000[9]^000000,取消自訂獎品";
    227.                 }else{
    228.                         mes "輸入^FF0000[9]^000000,終止自訂獎品^000000";
    229.                 }
    230.                 mes "最多設置到第" + $@Code_P4 + "名獎品";
    231.                 mes "請輸入^FF0000第" + @TEMP + "名^000000獎品";
    232.                 next;
    233.                 input @TEMP1;
    234.                 // 不要、停止自訂獎品(輸入9)
    235.                 if (@TEMP1 == 9) {
    236.                         goto Bom_menu;
    237.                 }
    238.                 // 自訂獎品查驗
    239.                 if (getitemname(@TEMP1) == "null"){
    240.                         mes "^FF0000沒有這個物品,請重新輸入^000000";
    241.                         next;
    242.                         goto Bom_Prize_Name;
    243.                 }
    244. Bom_Prize_Num:
    245.                 next;
    246.                 mes "請輸入數量";
    247.                 input @TEMP2;
    248.                 if (@TEMP2 == 0){
    249.                         mes "^FF0000數量不可低於0,請重新輸入^000000";
    250.                         goto Bom_Prize_Num;
    251.                 }
    252.                 next;
    253.                 setarray $@Code_Bom_Prize[(@TEMP*2)-1],@TEMP1,@TEMP2;
    254.         }
    255. Bom_menu:
    256.         if ($@Code_Bom_Prize[1] != 0){
    257.                 mes "[星月]";
    258.                 mes "您設置的活動獎品、數量:^FF6600";
    259.                 for (set @TEMP,1;@TEMP<=$@Code_P4*2;set @TEMP,@TEMP+2){
    260.                         if ($@Code_Bom_Prize[@TEMP] != 0){
    261.                                 mes "第" + (@TEMP+1)/2 + "名:" + getitemname($@Code_Bom_Prize[@TEMP]) + "[" + $@Code_Bom_Prize[@TEMP+1] + "個]";
    262.                         }
    263.                 }
    264.                 mes "^000000------------------------";
    265.                 mes "是否正確??";
    266.                 menu        "正確",-,
    267.                         "返回修改",Start_Bom;
    268.                 next;
    269.         }
    270.         set $@Code_Type,2;
    271.         set $@Code_Name$,"炸彈";
    272.         initnpctimer "SYS_Code_Join";
    273.         //waitingroom "*【終極" + $@Code_Name$ + "】*",0;
    274.         mes "[星月]";
    275.         mes "已開啟【終極" + $@Code_Name$ + "】";
    276.         sleep2(1000);
    277.         goto MENU01;

    278. // GM活動場地突入
    279. GMIn01:
    280.         setoption(64);
    281. GMIn02:
    282.         warp "quiz_00",10,116;
    283.         end;

    284. OpenDailyCode:
    285.         if ($@Code_State != 0) end;
    286.         set $@Code_Type,1;
    287.         set $@Code_Name$,"密碼";
    288.         initnpctimer "SYS_Code_Join";
    289.         //waitingroom "*【終極" + $@Code_Name$ + "】*",0;
    290.         end;
    291. }

    292. //=============== 報 名 ===============
    293. -        script        SYS_Code_Join        -1,{
    294. // 活動報名廣播
    295. OnTimer1000:
    296.         disablenpc "主持人【星月】";
    297.         deletearray $@Code_Play_Temp,$@Code_P2+1;
    298.         deletearray $@Code_Play_Temp$,$@Code_P2+1;
    299.         set $@Code_People_Num,0;
    300.         set $@Code_State,1;
    301.         announce "[活動公告]:【終極" + $@Code_Name$ + "】還有10分鐘就要開始,要參加的請找【星月】NPC報名!!",15;
    302.         end;

    303. OnTimer300000:

    304.         announce "[活動公告]:【終極" + $@Code_Name$ + "】還有5分鐘就要開始,要參加的請找【星月】NPC報名!!",15;
    305.         end;

    306. OnTimer540000:

    307.         announce "[活動公告]:【終極" + $@Code_Name$ + "】還有1分鐘就要開始,要參加的請找【星月】NPC報名!!",15;
    308.         end;

    309. OnTimer600000:


    310. // 報名名單查核 離線者刪除
    311.         for (set .TEMP,1;.TEMP<=$@Code_People_Num;set .TEMP,.TEMP+1){
    312. Check_Code1:
    313.                 if (attachrid(getcharid(3,$@Code_Play_Temp$[.TEMP])) == 0) {
    314.                         set $@Code_People_Num,$@Code_People_Num-1;
    315.                         deletearray $@Code_Play_Temp[.TEMP],1;
    316.                         deletearray $@Code_Play_Temp$[.TEMP],1;
    317.                         detachrid;
    318.                         goto Check_Code1;
    319.                 }
    320.         }
    321.         if ($@Code_People_Num == 0) goto No_people;
    322.         if ($@Code_People_Num < $@Code_P1) goto LESS_PEOPLE;
    323. // 自動傳送入場
    324.         set $@Code_State,2;
    325.         announce "[活動公告]:【終極" + $@Code_Name$ + "】參加人員:",15;
    326.         announce "------------------------",15;
    327.         for (set .TEMP,1;.TEMP<=$@Code_People_Num;set .TEMP,.TEMP+1){
    328.                 announce .TEMP + ". " + $@Code_Play_Temp$[.TEMP] + "[" + $@Code_Play_Temp[.TEMP] + "]",15;
    329.                 attachrid(getcharid(3,$@Code_Play_Temp$[.TEMP]));
    330.                 set $@WarpGameMap_X,rand(11,25);
    331.                 set $@WarpGameMap_Y,rand(101,128);
    332.                 atcommand $@Code_Play_Temp$[.TEMP] + ":@warp quiz_00 "+$@WarpGameMap_X+" "+$@WarpGameMap_Y+"";
    333.                 detachrid;
    334.                 sleep2 1000;
    335.         }
    336.         announce "------------------------",15;
    337.         announce "[活動公告]:【終極" + $@Code_Name$ + "】參加人數" + $@Code_People_Num + "人,現在開始!!",15;

    338.         sleep2(1000);
    339.         initnpctimer "SYS_Code_Index";
    340.         goto SYS_EndTime;

    341. LESS_PEOPLE:
    342.         announce "[活動公告]:【終極" + $@Code_Name$ + "】報名人數:" + $@Code_People_Num + "人 (報名且在線人數)!!",15;
    343.         announce "[活動公告]:【終極" + $@Code_Name$ + "】人數低於" + $@Code_P1 + "人參加,本回活動取消!!",15;
    344.         announce "[活動公告]:有報名的,請找我領回報名費用",15;
    345.         goto SYS_EndTimer;

    346. No_people:
    347.         announce "[活動公告]:【終極" + $@Code_Name$ + "】無人參加,本回活動取消!!",15;

    348. SYS_EndTimer:
    349.         set $@Code_State,0;

    350. SYS_EndTime:
    351.         stopnpctimer;
    352.         setnpctimer 0,"SYS_Code_Join";
    353.         delwaitingroom "星月";
    354.         end;
    355. }

    356. //=============== 活動規則說明 ===============
    357. quiz_00.gat,11,116,5        script        SYS_Code_Index        -1,{
    358. OnTimer100:
    359.         MapAnnounce "quiz_00","【終極" + $@Code_Name$ + "】開始前,請先詳讀規則:",17,"0xff0000";
    360.         switch($@Code_Type) {
    361.                 case 1:
    362.                         MapAnnounce "quiz_00","☆ 優先猜中金庫密碼的為勝利者",17,"0xff0000";
    363.                         break;
    364.                 case 2:
    365.                         MapAnnounce "quiz_00","☆ 不踩到炸彈,存活越久的為勝利者",17,"0xff0000";
    366.                         break;
    367.         }
    368.         MapAnnounce "quiz_00","☆ 密碼範圍為:1∼人數×200",17,"0xff0000";
    369.         MapAnnounce "quiz_00","☆ 超時未輸入【終極" + $@Code_Name$ + "】者淘汰",17,"0xff0000";
    370.         MapAnnounce "quiz_00","☆ 再給各位20秒準備,【終極" + $@Code_Name$ + "】即將開始。",17,"0xff0000";
    371.         end;

    372. OnTimer20100:
    373. // 暫存變數初始化
    374.         set $@TEMP_P,1;
    375.         switch($@Code_Type) {
    376.                 case 1:
    377.                         set $@TEMP_N,$@Code_P3;
    378.                         if ($@Code_People_Num < $@TEMP_N) set $@TEMP_N,$@Code_People_Num;
    379.                         break;
    380.                 case 2:
    381.                         set $@TEMP_N,$@Code_P4;
    382.                         if ($@Code_Bom_Prize[1] != 0){
    383.                                 for (set .TEMP,2;.TEMP<=$@Code_P4*2;set .TEMP,.TEMP+2){
    384.                                         if ($@Code_Bom_Prize[.TEMP] == 0){
    385.                                                 set $@TEMP_N,$@TEMP_N-1;
    386.                                         }
    387.                                 }
    388.                         }
    389.                         if ($@Code_People_Num < $@TEMP_N) set $@TEMP_N,$@Code_People_Num;
    390.                         break;
    391.         }
    392.         set $@TEMP_C_MIN,1;
    393.         set $@TEMP_C_MAX,((getarraysize($@Code_Play_Temp)-1)*200);
    394.         set $@TEMP_CODE,rand(2,(((getarraysize($@Code_Play_Temp)-1)*200)-1));
    395.         enablenpc "主持人【星月】";
    396.         initnpctimer "主持人【星月】";
    397.         stopnpctimer;
    398.         setnpctimer 0,"SYS_Code_Index";
    399.         end;
    400. }

    401. //=============== 【終極密碼】 ===============
    402. quiz_00.gat,16,116,5        script        主持人【星月】        793,{
    403. set Get_Code,0;
    404. if (getcharid(0) == $@Code_Play_Temp[$@TEMP_P]){
    405.         MapAnnounce "quiz_00","【終極" + $@Code_Name$ + "】:" + $@TEMP_C_MIN + " ∼ " + $@TEMP_C_MAX,17;
    406. // 測試階段GM除錯用 ==== 密碼顯示 ====
    407. //        MapAnnounce "quiz_00","【終極" + $@Code_Name$ + "】:" + $@TEMP_CODE,17;
    408.         MapAnnounce "quiz_00",strcharinfo(0) + ",請於時限內輸入:【終極" + $@Code_Name$ + "】",17;
    409.         input @temp;
    410. // 猜中的處理
    411.         if (@temp == $@TEMP_CODE){
    412.                 switch($@Code_Type) {
    413.                 // 【終極密碼】猜中的處理
    414.                         case 1:
    415.                                 MapAnnounce "quiz_00",strcharinfo(0) + ",恭喜你,【終極" + $@Code_Name$ + "】被你猜中囉",17,"0x008000";
    416.                 // 【終極密碼】第一名獎品處理
    417.                 Code_Code_F1:
    418.                                 emotion 46;
    419.                                 announce "[活動公告]:【終極" + $@Code_Name$ + "】的第[" + ($@Code_P3-$@TEMP_N+1) + "]名:[ " + strcharinfo(0) + " ],恭喜你啦!!",15;
    420.                                 for (set @Prize,1;@Prize<=$@TEMP_N;set @Prize,@Prize+1){
    421.                                         set @i,rand(1,(getarraysize($@Code_Prize)-1)/2);
    422.                                         getitem $@Code_Prize[(@i*2)-1],$@Code_Prize[@i*2];
    423.                                         announce "[活動公告]:恭喜 " + strcharinfo(0) + " 領到獎品 [" + getitemname($@Code_Prize[(@i*2)-1]) + "(" + $@Code_Prize[@i*2] + "個)]",15;
    424.                                 }
    425.                                 set $@TEMP_N,$@TEMP_N-1;
    426.                                 if ($@Code_State == 0) goto End_Code_Warp;
    427.                                 break;
    428.                 // 【終極炸彈】猜中的處理
    429.                         case 2:
    430.                                 if ($@TEMP_N < $@Code_People_Num){
    431.                                         MapAnnounce "quiz_00",strcharinfo(0) + ",【終極" + $@Code_Name$ + "】被你踩到了爆炸了",17,"0xff0000";
    432.                                         emotion 23;
    433.                                 }
    434.                                 if ($@TEMP_N >= $@Code_People_Num){
    435.                 // 【終極炸彈】第一名獎品處理
    436.                 Code_Bom_F1:
    437.                                         MapAnnounce "quiz_00",strcharinfo(0) + ",恭喜你,在【終極" + $@Code_Name$ + "】存活下來,成為[第" + $@TEMP_N + "名]",17,"0x008000";
    438.                                         emotion 14;
    439.                                         announce "[活動公告]:【終極" + $@Code_Name$ + "】的第[" + $@TEMP_N + "]名:[ " + strcharinfo(0) + " ],恭喜你啦!!",15;
    440.                 // 【終極炸彈】獎品處理
    441.                                         if ($@Code_Bom_Prize[1] != 0){
    442.                                                 getitem $@Code_Bom_Prize[($@TEMP_N*2)-1],$@Code_Bom_Prize[($@TEMP_N*2)];
    443.                                                 announce "[活動公告]:恭喜 " + strcharinfo(0) + " 領到獎品 [" + getitemname($@Code_Bom_Prize[($@TEMP_N*2)-1]) + "(" + $@Code_Bom_Prize[($@TEMP_N*2)] + "個)]",15;
    444.                                         }else{
    445.                                                 for (set @Prize,1;@Prize<=($@Code_P4-$@TEMP_N+1);set @Prize,@Prize+1){
    446.                                                         set @i,rand(1,(getarraysize($@Code_Prize)-1)/2);
    447.                                                         getitem $@Code_Prize[(@i*2)-1],$@Code_Prize[@i*2];
    448.                                                         announce "[活動公告]:恭喜 " + strcharinfo(0) + " 領到獎品 [" + getitemname($@Code_Prize[(@i*2)-1]) + "(" + $@Code_Prize[@i*2] + "個)]",15;
    449.                                                 }
    450.                                         }
    451.                                         set $@TEMP_N,$@TEMP_N-1;
    452.                                         if ($@Code_State == 0) goto End_Code_Warp;
    453.                                 }
    454.                                 break;
    455.                 }
    456.                 sleep2(2000);
    457.                 atcommand "@warp " + $@Main_Twon$;
    458.                 set $@Code_People_Num,$@Code_People_Num-1;
    459.                 deletearray $@Code_Play_Temp[$@TEMP_P],1;
    460.                 deletearray $@Code_Play_Temp$[$@TEMP_P],1;
    461.                 set $@TEMP_C_MIN,1;
    462.                 set $@TEMP_C_MAX,((getarraysize($@Code_Play_Temp)-1)*200);
    463.                 set $@TEMP_CODE,rand(2,(((getarraysize($@Code_Play_Temp)-1)*200)-1));
    464.                 setnpctimer 0,"主持人【星月】";
    465.                 close;
    466.         }
    467. // 沒猜中的處理
    468.         if (@temp > $@TEMP_C_MIN && @temp < $@TEMP_C_MAX){
    469.                 switch($@Code_Type) {
    470.                         case 1:
    471.                                 MapAnnounce "quiz_00",strcharinfo(0) + ",可惜,並沒有猜中密碼!!",17,"0xffff00";
    472.                                 break;
    473.                         case 2:
    474.                                 MapAnnounce "quiz_00",strcharinfo(0) + ",好險,沒有踩到炸彈!!",17,"0xffff00";
    475.                                 break;
    476.                 }
    477.                 if (@temp > $@TEMP_CODE) set $@TEMP_C_MAX,@temp;
    478.                 if (@temp < $@TEMP_CODE) set $@TEMP_C_MIN,@temp;
    479.                 set $@TEMP_P,$@TEMP_P+1;
    480.                 setnpctimer 0,"主持人【星月】";
    481.                 close;
    482.         }
    483. // 猜錯(超過範圍)的處理
    484.         if (@temp <= $@TEMP_C_MIN || @temp >= $@TEMP_C_MAX){
    485.                 MapAnnounce "quiz_00",strcharinfo(0) + ",請輸入範圍內的數字,別亂猜",17,"0xff0000";
    486.                 close;
    487.         }
    488. }
    489.         mes strcharinfo(0) + ",還沒輪到你,別亂點!!";
    490.         close;

    491. OnTimer100:
    492. // 剩下最後1人 直接成為第一名
    493.         if ($@TEMP_N >= 1 && $@Code_People_Num == 1){
    494.                 set $@Code_State,0;
    495.                 stopnpctimer;
    496.                 attachrid(getcharid(3,$@Code_Play_Temp$[1]));
    497.                 switch($@Code_Type) {
    498.                         case 1:
    499.                                 goto Code_Code_F1;
    500.                                 break;
    501.                         case 2:
    502.                                 set $@TEMP_N,1;
    503.                                 goto Code_Bom_F1;
    504.                                 break;
    505.                 }
    506.                 end;
    507.         }
    508.         delwaitingroom "主持人【星月】";
    509.         waitingroom "*活動主持人*",0;
    510.         if ($@TEMP_N == 0) goto End_Code_Warp;
    511. Check_Code:
    512. // 活動名單查核 沒人結束活動
    513.         if ($@Code_People_Num == 0) goto End_Code;
    514. // 活動名單查核 離線者刪除
    515.         if ($@Code_Play_Temp$[$@TEMP_P] != ""){
    516.                 if (attachrid(getcharid(3,$@Code_Play_Temp$[$@TEMP_P])) == 0) {
    517.                         set $@Code_People_Num,$@Code_People_Num-1;
    518.                         deletearray $@Code_Play_Temp[$@TEMP_P],1;
    519.                         deletearray $@Code_Play_Temp$[$@TEMP_P],1;
    520.                         goto Check_Code;
    521.                 }
    522.         }
    523. // 活動名單查核 最後一人,回到第一人
    524.         if ($@Code_Play_Temp$[$@TEMP_P] == ""){
    525.                 set $@TEMP_P,1;
    526.         }

    527.         MapAnnounce "quiz_00","【終極" + $@Code_Name$ + "】:[剩 " + $@TEMP_N + " 個獎項][輪到第 " + $@TEMP_P + " / " + $@Code_People_Num + " 位玩家]",17;
    528.         MapAnnounce "quiz_00","【終極" + $@Code_Name$ + "】:" + $@TEMP_C_MIN + " ∼ " + $@TEMP_C_MAX,17;
    529.         MapAnnounce "quiz_00","請[ " + $@Code_Play_Temp$[$@TEMP_P] + " ],於20秒內,點我輸入【終極" + $@Code_Name$ + "】",17;
    530.         end;

    531. // 太久沒猜的處理(淘汰)
    532. OnTimer20100:
    533.         MapAnnounce "quiz_00","[ " + $@Code_Play_Temp$[$@TEMP_P] + " ],超時未輸入【終極" + $@Code_Name$ + "】,取消資格",17;
    534.         attachrid(getcharid(3,$@Code_Play_Temp$[$@TEMP_P]));
    535.         atcommand $@Code_Play_Temp$[$@TEMP_P] + ":@warp " + $@Main_Twon$;
    536.         detachrid;
    537.         deletearray $@Code_Play_Temp[$@TEMP_P],1;
    538.         deletearray $@Code_Play_Temp$[$@TEMP_P],1;
    539.         set $@Code_People_Num,$@Code_People_Num-1;
    540.         end;

    541. OnTimer21500:
    542.         setnpctimer 0,"主持人【星月】";
    543.         initnpctimer "主持人【星月】";
    544.         end;

    545. // 活動結束 自動傳送回主城
    546. End_Code_Warp:
    547.         if ($@Code_People_Num == 0) goto End_Code;

    548. End_Code:
    549.         areawarp "quiz_00",10,100,26,128,"volterra",99,150;
    550.         disablenpc "主持人【星月】";
    551.         delwaitingroom "主持人【星月】";
    552.         waitingroom "請等待活動開始",0;
    553.         announce "[活動公告]:【終極" + $@Code_Name$ + "】本回結束了,謝謝各位的參與",15;
    554.         stopnpctimer;
    555.         setnpctimer 0,"主持人【星月】";
    556.         set $@TEMP_P,0;
    557.         set $@Code_State,0;
    558.         end;

    559. OnInit:
    560.         disablenpc "主持人【星月】";
    561.         waitingroom "請等待活動開始",0;
    562. // 測試階段GM除錯用 ==== 活動中的名單 ====
    563. //        if ( 1 <= getgmlevel() ) {
    564. //                for (set .TEMP,1;.TEMP<$@Code_People_Num+1;set .TEMP,.TEMP+1){
    565. //                        mes .TEMP + ". ^FF6600" + $@Code_Play_Temp$[.TEMP] + "[" + $@Code_Play_Temp[.TEMP] + "]^000000";
    566. //                }
    567. //        }
    568. // 測試階段GM除錯用 ==== 活動中的名單 ====
    569. //        announce "[這是測試點1]",15;
    570. //        for (set .TEMP,1;.TEMP<$@Code_People_Num+1;set .TEMP,.TEMP+1){
    571. //                announce .TEMP + ". " + $@Code_Play_Temp$[.TEMP] + "[" + $@Code_Play_Temp[.TEMP] + "]",15;
    572. //        }

    573. }
    複製代碼

    本帖子中包含更多資源

    您需要 登錄 才可以下載或查看,沒有帳號?註冊

    x

    評分

    參與人數 1積分 -30 現金 -30 積極性 -30 違規 +1 收起 理由
    goddameit -30 -30 -30 + 1 閒置超過三天

    查看全部評分

    回復

    使用道具 舉報

  • TA的每日心情
    慵懶
    2020-5-9 12:35 PM
  • 簽到天數: 987 天

    連續簽到: 1 天

    [LV.10]以壇為家III

    發表於 2014-4-7 19:22:37 | 顯示全部樓層
    你確定放對了腳本??
    我可沒找到任何字眼 "getelementofarray"
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情

    2017-4-5 06:13 PM
  • 簽到天數: 139 天

    連續簽到: 2 天

    [LV.7]常住居民III

     樓主| 發表於 2014-4-7 20:13:01 | 顯示全部樓層
    emistry 發表於 2014-4-7 07:22 PM
    你確定放對了腳本??
    我可沒找到任何字眼 "getelementofarray"

    應該放對吧

    不然怎麼終極密碼要除錯 ..

    我是不確定放的對不對

    語法我也不會看
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    擦汗
    2018-9-15 03:18 PM
  • 簽到天數: 842 天

    連續簽到: 1 天

    [LV.10]以壇為家III

    發表於 2014-4-8 18:38:07 | 顯示全部樓層
    這腳本有瑕疵 不過影響不大就是
    關鍵字 $@Code_Play_Temp$[@TEMP] 如果想修正的話 再細究吧
    基本上來說就是殘存的東西沒刪除乾淨
    報名的時候range超出範圍
    回復 支持 反對

    使用道具 舉報

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

    本版積分規則

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

    GMT+8, 2024-4-26 09:02 PM , Processed in 0.052190 second(s), 23 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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