註冊 登錄
OK論壇 返回首頁

a28981817的個人空間 http://okayro.com/?49944 [收藏] [複製] [分享] [RSS]

留言板

facelist

您需要登錄後才可以留言 登錄 | 註冊


marrionetter 2012-9-28 01:02 AM
那兩排的語法代表著
開始時間為 星期六 21:00 ~ 22:00

並且在 22:00時結束攻城戰。
marrionetter 2012-9-28 12:58 AM
請把
        if ( (gettime(4)==2) && (gettime(3)==23) ||
        (gettime(4)==5) && (gettime(3)>=21 && gettime(3)<23)) {

修改成
if (gettime(4)==6) && (gettime(3)==22)  {


還有
if( (gettime(4)==6) && (gettime(3)>=21 && gettime(3)<22) {

最左邊的 "(" 也請拔除
全部解決掉以後即可。
marrionetter 2012-9-28 12:51 AM
結構上不正確,上面與下面的語法必須對齊。
如果你是要達成 星期六 21:00 ~ 22:00 發生攻城戰

那你下面的結束時間檢查都必須跟著修改才可以
marrionetter 2012-9-28 12:48 AM
原本應該是

OnAgitInit:
        // 開始時間檢查
        if( (gettime(4)==2) && (gettime(3)>=21 && gettime(3)<23) ||
        (gettime(4)==5) && (gettime(3)>=21 && gettime(3)<23) ) {
                if (!agitcheck()) {
                        AgitStart;
                        callsub S_DisplayOwners;
                }
                end;
        }

        // 結束時間檢查
        if ( (gettime(4)==2) && (gettime(3)==23) ||
        (gettime(4)==5) && (gettime(3)>=21 && gettime(3)<23)) {
                if (agitcheck()) {
                        AgitEnd;
                        callsub S_DisplayOwners;
                }
                end;
        }
        end;


然而你的卻是

OnAgitInit:
        // 開始時間檢查
        if( (gettime(4)==6) && (gettime(3)>=21 && gettime(3)<22)  {
                if (!agitcheck()) {
                        AgitStart;
                        callsub S_DisplayOwners;
                }
                end;
        }

        // 結束時間檢查
        if ( (gettime(4)==2) && (gettime(3)==23) ||
        (gettime(4)==5) && (gettime(3)>=21 && gettime(3)<23)) {
                if (agitcheck()) {
                        AgitEnd;
                        callsub S_DisplayOwners;
                }
                end;
        }
        end;
marrionetter 2012-9-28 12:47 AM
a28981817: 我不知道改道什麼地方出問題ˊˋ
不知道能不能勞煩大大交我
這些是我有更改過的東西
還有出錯的圖示
可能小弟太膚淺 有什麼細節沒注意到還是更改錯誤ˊˋ
http:/ ...
....你,不知道結構以前,修改請務必注意
a28981817 2012-9-28 12:09 AM
我發覺我改一改出現問題
不知道是改到哪部分出現的問題
出現問題顯示
http://a.imageshack.us/img853/3065/43750061.png
marrionetter 2012-9-28 12:08 AM
a28981817: 找到從哪裡關閉不要的城戰了ˇˇ
但是華麗金屬 再非開放時間出現還是沒解決
一些相關後續補充,已經回覆到你的留言版裡頭
marrionetter 2012-9-27 11:50 PM
你似乎無法接收到短消息得模樣
故,在此發言。

引敘sinya的回覆所提及
在npc\guild\agit_template.txt 下搜尋monster

比如底下的

--
OnRecvCastle:
        RequestGuildInfo GetCastleData(strnpcinfo(2),1);

        // Spawn Monsters if the castle is empty.
        set .@GID, GetCastleData(strnpcinfo(2),1);
        if (.@GID == 0) {
                killmonsterall strnpcinfo(2);
                if (compare(strnpcinfo(2),"aldeg")) {
                        // Normal Spawns
                        monster strnpcinfo(2),0,0,"--ja--",1117,10;
                        monster strnpcinfo(2),0,0,"--ja--",1132,4;
                        monster strnpcinfo(2),0,0,"--ja--",1219,2;
                        monster strnpcinfo(2),0,0,"--ja--",1205,1;
                        monster strnpcinfo(2),0,0,"--ja--",1216,10;
                        monster strnpcinfo(2),0,0,"--ja--",1193,18;
                        monster strnpcinfo(2),0,0,"--ja--",1269,9;
                        monster strnpcinfo(2),0,0,"--ja--",1276,7;
                        monster strnpcinfo(2),0,0,"--ja--",1208,3;
                        monster strnpcinfo(2),0,0,"--ja--",1275,1;
                        monster strnpcinfo(2),0,0,"--ja--",1268,1;
                        monster strnpcinfo(2),0,0,"--ja--",1272,1;
                        // Set Emperium room spawn coordinates and spawn monsters.
                        if (strnpcinfo(2) == "aldeg_cas01") { setarray .@emproom[0],216,23; }
                        else if (strnpcinfo(2) == "aldeg_cas02") { setarray .@emproom[0],213,23; }
                        else if (strnpcinfo(2) == "aldeg_cas03") { setarray .@emproom[0],205,31; }
                        else if (strnpcinfo(2) == "aldeg_cas04") { setarray .@emproom[0],36,217; }
                        else if (strnpcinfo(2) == "aldeg_cas05") { setarray .@emproom[0],27,101; }
                        monster strnpcinfo(2),.@emproom[0],.@emproom[1],"--ja--",1272,1;
                        monster strnpcinfo(2),.@emproom[0],.@emproom[1],"--ja--",1270,4;
                        monster strnpcinfo(2),.@emproom[0],.@emproom[1],"--ja--",1268,1;
                        monster strnpcinfo(2),.@emproom[0],.@emproom[1],"--ja--",1219,1;
                        monster strnpcinfo(2),.@emproom[0],.@emproom[1],"--ja--",1276,5;


然後,以
                        // Set Emperium room spawn coordinates and spawn monsters.
                        if (strnpcinfo(2) == "aldeg_cas01") { setarray .@emproom[0],216,23; }
                        else if (strnpcinfo(2) == "aldeg_cas02") { setarray .@emproom[0],213,23; }
                        else if (strnpcinfo(2) == "aldeg_cas03") { setarray .@emproom[0],205,31; }
                        else if (strnpcinfo(2) == "aldeg_cas04") { setarray .@emproom[0],36,217; }
                        else if (strnpcinfo(2) == "aldeg_cas05") { setarray .@emproom[0],27,101; }


這幾行為中心點
以此中心點上方的monster行句,比如
                        monster strnpcinfo(2),0,0,"--ja--",1117,10; ← 闇神官
                        monster strnpcinfo(2),0,0,"--ja--",1132,4; ← 卡利斯格

這是非城戰時就會出現的敵人。
刪除掉以後,就不會再出現。


然後,下方的,比如
                        monster strnpcinfo(2),.@emproom[0],.@emproom[1],"--ja--",1272,1; ← 黑暗之王
                        monster strnpcinfo(2),.@emproom[0],.@emproom[1],"--ja--",1270,4; ← 鐘塔守護者


這些是城戰發生時才會出現的敵人
只要移除掉,城戰就不會出生


最後,看你是要保留部分
還是全部移除皆可。



最後,這些項目移除乾淨以後
請使用@reloadscript


它就不會再出現第二次。
sinya語中的重開伺服器就是這麼一回事。


教學終了。
marrionetter 2012-9-24 12:36 PM
當然,也有SET放在IF上方的特例
不過你還是先記住IF排第一,SET排第二的順序比較妥當。
marrionetter 2012-9-24 12:35 PM
-----------
yes:
                if (countitem(7268)<300) goto no;//設定所需物品 預設為小鬼靈
                delitem(7268),300;//設定所需物品 預設為小鬼靈
                set @gi,rand(301);
-----------------
順序上無問題,經過測試也無問題
總之,if格式就像是Q&A問答題

Q:一定在上方
A:一定在下方

而沒有A在上方,Q在下方這一回事
marrionetter 2012-9-24 12:29 PM
呼,還是提醒一下。


"大大"這個稱呼盡量少用為妙。
太過於使用此字詞非常容易遭人白眼

這點就無關乎版規了,而是人的感受問題。


你若要稱呼我,那麼即以兔子稱呼即可
無須追加任何稱謂。
a28981817 2012-9-24 12:18 PM
喔喔!可以了!
原來順序錯了,連原創者都不知道順序不對0.0,原創者資料還註明”沒錢不要點”

另外一個我自己改的 用物品交換的是
-----------
yes:
                if (countitem(7268)<300) goto no;//設定所需物品 預設為小鬼靈
                delitem(7268),300;//設定所需物品 預設為小鬼靈
                set @gi,rand(301);
-----------------
這樣子順序正確吧!?

大大真的是我開私服的貴人ˇˇ獲益良多,感激大大幫助!
marrionetter 2012-9-24 12:17 PM
嗯,腳本本身沒有問題。
只是set和if的順序相反導致閱讀錯誤罷了,對調過來即可解決。
marrionetter 2012-9-24 12:10 PM
a28981817: 不好意思想要請教一下,關於有個腳本我想詢問,
因為我自己寫好了,可以用,但是出現問題
腳本功能大概是用$$$可以抽頭飾,
我寫了兩個,是從別人修改的,一個是用 ...
再偵錯以前先提出一點
你的腳本有一個問題所在──順序不對

                menu "是,我要抽頭式",yes,"否,我再考慮看看",no;
        yes:
                set zeny,zeny-6000000; //設定金錢
                if (zeny<6000000) goto no;


你的順序反了,實際上應該是
                if (zeny<6000000) goto no;
                set zeny,zeny-6000000; //設定金錢


請對調看看。
marrionetter 2012-9-24 10:42 AM
嗯,提醒一下罷了。
積分規則本身是死的,運用他的人是活的

利用''別人寫好的腳本''來賺取''二手積分''
甚至盜取''其他人的腳本''來賺取''不實積分'',都也是有可能

這一點其實就跟法律一樣。

法律、版規,其實是拿來保障人的權益
但是也容易成為有心人士的工具,尤其對於擅長鑽漏洞的。


對於這點,你要怎麼樣看待或是怎麼樣面對
事實上皆是你的自由,想模仿也可,不屑此舉也行


這點我無資格有任何稅詞。


只是我希望你明白
為何每個人都不希望太直接幫忙的理由,是為何。

--

搜尋部分,建議使用GOOGLE
搜尋 RO私服 - XXXXX

另外,找找你私服端的說明檔案
裡頭其實有語法教學和GM指令等的

如果這些還是不足 [比如看不懂英文等]
那就設法去網路上尋找腳本的教學
a28981817 2012-9-24 10:24 AM
嗯嗯,了解,我會這說,是因為感覺很多人都求到腳本,不是像我ㄧ樣詳細問一個個了解一個個自己能了解的範圍,然後求到腳本就直接拿去腳本發佈區。不過真的積分是為了修改者跟原創者權益的確,我收回原本的話。
感謝大大教學我這些,不過我也表示,我自己心態絕對不是想要求到”東西”而已,我也是希望可以學習到怎麼修改甚至怎麼寫。
基本上我從0開始學習Orz發覺很多文章其實論壇收尋功能好像沒有這個理想,可能我要求也太多吧?反而用google更好收尋到OK論壇文章內容,可能我能力比較差吧,直接要拿別人寫好的進行修改,感覺滿困難的,但是如果有大大願意寫好然後告知說明內容,像大大一樣耐心教學,真的是滿心感激及受益良多。在此再次感激大大教學。
marrionetter 2012-9-24 09:56 AM
請學習如何自我改善腳本
而不是將期望托付在其他人身上

板上有不少文章可以爬、可以查詢
你可以參考絕大多數人的腳本作為基底來擇寫

這是我給你的建議。
marrionetter 2012-9-24 09:48 AM
a28981817: 我發覺大家不願意直接發腳本或者是直接幫忙改好
好像是很多人都會把腳本拿來賣QAQ''賺分樣子
你是因為看我無償幫你弄到底,所以才會這麼想
事實上,這本來就是你應該要會的東西


我想我必須得先說明清楚,我是基於回答者的立場
''突然''下了一個''決定''幫你把''那腳本''弄到底


而這個''決定''只能用在''我'' ''修改這一個腳本''身上
你不可套用在其他人身上


我不能認同
''大家不願意直接發腳本或者是直接幫忙改好''
''好像是很多人都會把腳本拿來賣QAQ''賺分樣子''

這兩句話,還請收回去。


沒有人有義務要進行作白工的事情
修改以及擇寫腳本需要花上很多時間和力氣去測試


這論壇之所以會有著積分系統在
就是為了顧及''擇寫者''和''修改者''的權益



請你深深思考這一點。
marrionetter 2012-9-24 08:08 AM
a28981817: 了解!!!
恩 萬分感恩∼
我懂那個線上系統很複雜

之前舊的我改
感覺也都是卡在線上系統都會出問題
然後我又不太會修改ˊˋ”

暫時先用這個吧
最高最低∼天堂?地 ...
理解即可。

我大概會在中午12點時以短消息方式把改良版移動過去
目前正在等短消息的冷卻時間結束中。

--
留言版之所以不直接貼該腳本連結的主因
我想你應該也知道其理由就是了。
marrionetter 2012-9-24 07:56 AM
短消息數量到上限,這兒說明。

>發覺測試紀錄都是跳出最低金額 或者最高金額獎勵
>測試紀錄中並無產生”最高及最低之間”的數值
>會不會是我什麼設定有錯誤還是…?

因為我只有設定成,取得最低以及最高的錢項目罷了
礙於隨機Rand的範圍只有32767

如果要作出亂數的話,整個腳本寫法都得改掉了
好比你要從最低 100萬和最高 500萬之間,隨機抽取 101萬 ~ 499萬

這個寫法將會導致現在的線上設定演出不同。


畢竟最主要麻煩點就在於你是得線上設定
而不是進去腳本內部動手改

假設你線上設定最低1塊錢,最高500萬


然而rand只有1 ~ 32767,
這樣演算出來的結果就是 1 ~ 32767,而並非 1 ~ 5000000


我這樣說,明白嗎?

--

姑且就最低 和 最高,兩者各取一値如何?
如果還是要改良成隨機型的,也請說一聲

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

GMT+8, 2024-5-3 05:12 AM , Processed in 0.022615 second(s), 11 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回頂部