OK論壇

 找回密碼
 註冊
查看: 1926|回復: 12

OnClock與set的問題

 關閉 [複製鏈接]
  • TA的每日心情
    開心
    2014-11-3 05:47 AM
  • 簽到天數: 38 天

    連續簽到: 1 天

    [LV.5]常住居民I

    發表於 2014-7-18 15:12:23 | 顯示全部樓層 |閱讀模式
    EA
    私服版號: rathena
    問題內容: 腳本問題
    本帖最後由 Animation_Cramp 於 2014-7-18 06:19 PM 編輯

    我想設定 #test 再每天午夜12點變成0

    於是我
    1. -        script        exp_re        -1,{

    2. OnClock0000:
    3.         set #test,0;
    4.         announce "當錢變數值"+#test+"",8;
    5.         end;
    6. }
    複製代碼
    有嘗試將OnClock改為當前時間下一分鐘做預備測試過...

    OnClock時間一到,DOC視窗ERROR訊息
    [error]: script_rid2sd: fatal error ! player not attached!
    [debug]: Function: set <2 parameters>:
    [debug]: data: variable name = '#test'
    [debug]: Data: number value=0
    [debug]: Source <NPC>: reset_set <invisible/not on a map>
    [error]: script:set: no player attached for player variable '#test'

    ---------------------------------------
    善用:global_reg_value 去找尋變數可以更方便
    回復

    使用道具 舉報

  • TA的每日心情
    慵懶
    2018-7-7 04:37 PM
  • 簽到天數: 414 天

    連續簽到: 1 天

    [LV.9]以壇為家II

    發表於 2014-7-18 16:09:05 | 顯示全部樓層
    #是帳號變數
    $才是全域變數

    沒有玩家去attach NPC
    #變數自然會跳error


    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2014-11-3 05:47 AM
  • 簽到天數: 38 天

    連續簽到: 1 天

    [LV.5]常住居民I

     樓主| 發表於 2014-7-18 16:24:27 | 顯示全部樓層
    resona 發表於 2014-7-18 04:09 PM
    #是帳號變數
    $才是全域變數

    那我要怎麼設定attach NPC呢?

    如果我這樣寫

    OnTimer1000:
    set #test,#test+1;

    那麼
    OnClock0000:
    要如何將set #test,0;
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2018-7-7 04:37 PM
  • 簽到天數: 414 天

    連續簽到: 1 天

    [LV.9]以壇為家II

    發表於 2014-7-18 17:32:13 | 顯示全部樓層
    本帖最後由 resona 於 2014-7-18 05:37 PM 編輯
    Animation_Cramp 發表於 2014-7-18 04:24 PM
    那我要怎麼設定attach NPC呢?

    如果我這樣寫

    script4each (忘記RA有沒有這個,沒有的話可能要源碼自己加)

    OnPCLoginEvent(在玩家登入的時候做檢查)
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2014-11-3 05:47 AM
  • 簽到天數: 38 天

    連續簽到: 1 天

    [LV.5]常住居民I

     樓主| 發表於 2014-7-18 17:45:08 | 顯示全部樓層
    resona 發表於 2014-7-18 05:32 PM
    script4each (忘記RA有沒有這個,沒有的話可能要源碼自己加)

    OnPCLoginEvent(在玩家登入的時候做檢查 ...

    測試過後
    如果使用 . or $ 會變成共用變數

    我想用#記錄在玩家帳號上面

    然後用OnClock將#test重置為0
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2023-9-25 11:37 PM
  • 簽到天數: 1686 天

    連續簽到: 1 天

    [LV.Master]伴壇終老

    發表於 2014-7-18 17:53:13 | 顯示全部樓層
    Animation_Cramp 發表於 2014-7-18 05:45 PM
    測試過後
    如果使用 . or $ 會變成共用變數

    query_sql  update

    #變數我印象中是在 global_reg_value 資料表

    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2023-12-30 04:16 AM
  • 簽到天數: 1322 天

    連續簽到: 1 天

    [LV.10]以壇為家III

    發表於 2014-7-18 17:53:25 | 顯示全部樓層
    Animation_Cramp 發表於 2014-7-18 05:45 PM
    測試過後
    如果使用 . or $ 會變成共用變數
    1. prontera,154,170,4        script        asdfjkl        875,{
    2.         announce "當錢變數值"+#test+"",8;
    3. close;
    4. OnClock0:       
    5.         query_sql("DELETE FROM `global_reg_value` WHERE str='#test'");
    6.         addrid(0);
    7.             if(playerattached()) {
    8.                 #test=0;
    9.         }
    10.         end;
    11. }
    複製代碼

    評分

    參與人數 1積分 +20 現金 +20 積極性 +20 收起 理由
    goddameit + 20 + 20 + 20

    查看全部評分

    回復 支持 反對

    使用道具 舉報

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

    連續簽到: 1 天

    [LV.10]以壇為家III

    發表於 2014-7-18 17:55:12 | 顯示全部樓層
    如果要容易。。。
    我本身覺得使用SQL最容易。。。

    用新的 SQL Table 來記載。
    然後
    1. OnClock0000:
    2. query_sql( "TRUNKCATE `table_name`" );
    3. end;
    複製代碼
    如果你還是要用以上的方法,你必須用 2 個變數
    1. OnPCLoginEvent:
    2. if( !#variable_check != gettime(8) ){
    3.      #variable_check = gettime(8);
    4.      #test = 0;
    5. }
    6. end;
    複製代碼
    當玩家進入遊戲會自動把變數 #test 變成 0.

    *gettime(<number> ) - 可以使用 4,5,8
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2014-11-3 05:47 AM
  • 簽到天數: 38 天

    連續簽到: 1 天

    [LV.5]常住居民I

     樓主| 發表於 2014-7-18 18:16:30 | 顯示全部樓層
    sinya 發表於 2014-7-18 05:53 PM

    謝謝 sinya的幫助
    這樣就了解到sql存取了哪些變數,以後遇到變數無法重置就能多善用sql去找尋變數直接跟改

    另外請問

    addrid(0);

    playerattached()

    這兩個是什麼

    然後,為什麼#cashed=0;算是包含在sql語法嗎
    還是說本來就可以這樣設定變數?


    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2023-12-30 04:16 AM
  • 簽到天數: 1322 天

    連續簽到: 1 天

    [LV.10]以壇為家III

    發表於 2014-7-18 18:50:48 | 顯示全部樓層
    addrid(0); 關聯線上所有人

    if(playerattached()) 檢查人物是否關連腳本 這好像可以不用 addrid(0) 已經關連了

    #cashed=0; 就..線上正在執行腳本的角色 的帳號變數 設定為0
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2014-11-3 05:47 AM
  • 簽到天數: 38 天

    連續簽到: 1 天

    [LV.5]常住居民I

     樓主| 發表於 2014-7-18 23:03:04 | 顯示全部樓層
    sinya 發表於 2014-7-18 06:50 PM
    addrid(0); 關聯線上所有人

    if(playerattached()) 檢查人物是否關連腳本 這好像可以不用 addrid(0) 已經 ...

    addrid(0);只適用於在線玩家才會運作?

    addrid(?);內容設定設定多少含意是什麼

    if(playerattached()) 則是只要關聯腳本就會關聯

    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2023-12-30 04:16 AM
  • 簽到天數: 1322 天

    連續簽到: 1 天

    [LV.10]以壇為家III

    發表於 2014-7-19 00:31:47 | 顯示全部樓層
    本帖最後由 sinya 於 2014-7-19 12:37 AM 編輯
    Animation_Cramp 發表於 2014-7-18 11:03 PM
    addrid(0);只適用於在線玩家才會運作?

    addrid(?);內容設定設定多少含意是什麼

    你都不看doc的嗎?

    https://raw.githubusercontent.co ... script_commands.txt

    這個不是嗎?


    *addrid(<type>{,<flag>{,<parameters>}});

    This command will attach other RIDs to the current script without detaching the
    invoking RID. It returns 1 if successful and 0 upon failure.

    <type> determines what RIDs are attached:
    0: All players in the server.
    1: All players in the map of the invoking player, or the invoking NPC if no player is attached.
    2: Party members of a specified party ID.
        [ Parameters: <party id> ]
    3: Guild members of a specified guild ID.
        [ Parameters: <guild id> ]
    4: All players in a specified area of the map of the invoking player (or NPC).
        [ Parameters: <x0>,<y0>,<x1>,<y1> ]

    Account ID: The specified account ID.

    <flag> can prevent certain players from being attached:
    0: Players are always attached. (default)
    1: Players currently running another script will not be attached.

    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    2014-11-3 05:47 AM
  • 簽到天數: 38 天

    連續簽到: 1 天

    [LV.5]常住居民I

     樓主| 發表於 2014-7-19 00:48:12 | 顯示全部樓層
    sinya 發表於 2014-7-19 12:31 AM
    你都不看doc的嗎?

    https://raw.githubusercontent.co ... script_commands.txt

    抱歉,不過還是謝謝sinya幫助我,會多看註解文doc
    回復 支持 反對

    使用道具 舉報

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

    本版積分規則

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

    GMT+8, 2024-4-26 03:32 PM , Processed in 0.060924 second(s), 24 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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