OK論壇

 找回密碼
 註冊
查看: 1550|回復: 6

如何做到0点过后系统自动清除角色变量

 關閉 [複製鏈接]
  • TA的每日心情
    郁悶
    2015-2-17 09:48 AM
  • 簽到天數: 64 天

    連續簽到: 1 天

    [LV.6]常住居民II

    發表於 2014-10-7 12:05:37 | 顯示全部樓層 |閱讀模式
    EA
    私服版號: 3Ceam
    問題內容: 腳本問題
    本帖最後由 illuser 於 2014-10-14 04:25 PM 編輯

    我想做一种0点过后自动清除角色变量(非全局变量$的那种),但是发现用
    -        script        XXX        -1,{OnClock0000:


    }
    的场合,只能改变以$开头的全局变量,无法连接到个人变量、账号变量和个人临时变量等。

    如果是以NPC来控制,比如说过了0点接触某个NPC来改变个人变量的话,那么如果改角色在过了0点后,一直不接触此NPC,也无法实现清除该角色变量;

    同理,如果用OnPCLoginEven、OnPCLogoutEvent等来控制,该角色如果过了0点仍未下线或者登陆的场合,也无法改变。

    现在我的疑问是:有没有在0点过后,角色在什么都不动的情况下,系统自动将该角色的角色变量清零的办法呢?

    劳烦各位脚本高人帮忙解答,感激不尽了。        
    回復

    使用道具 舉報

  • TA的每日心情
    郁悶
    2015-2-17 09:48 AM
  • 簽到天數: 64 天

    連續簽到: 1 天

    [LV.6]常住居民II

     樓主| 發表於 2014-10-8 09:26:02 | 顯示全部樓層
    顶一下,防止超时。
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    擦汗
    2018-8-18 01:15 PM
  • 簽到天數: 1517 天

    連續簽到: 1 天

    [LV.Master]伴壇終老

    發表於 2014-10-9 14:22:32 | 顯示全部樓層
    SQL會簡單一點,
    直接做一個SQL表格做紀錄,
    零點就直接把記錄重置,
    這樣就不會有登不登錄的問題,
    也不會有NPC無法接觸的問題,
    減少了一些麻煩。

    會不會有問題,
    應該是不會有問題,
    之前嘗試寫過每日登錄記錄IP以及登錄天數,
    看看哪些用戶是使用跳板多開領獎勵。
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    郁悶
    2015-2-17 09:48 AM
  • 簽到天數: 64 天

    連續簽到: 1 天

    [LV.6]常住居民II

     樓主| 發表於 2014-10-10 09:06:17 | 顯示全部樓層
    game1993 發表於 2014-10-9 02:22 PM
    SQL會簡單一點,
    直接做一個SQL表格做紀錄,
    零點就直接把記錄重置,

    请问SQL表格记录具体是怎么写呢?我新学,对一些高深的脚本写法不太会。
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    擦汗
    2018-8-18 01:15 PM
  • 簽到天數: 1517 天

    連續簽到: 1 天

    [LV.Master]伴壇終老

    發表於 2014-10-10 13:49:27 | 顯示全部樓層
    illuser 發表於 2014-10-10 09:06 AM
    请问SQL表格记录具体是怎么写呢?我新学,对一些高深的&#330 ...

    EX 歸零寫法
    1. OnClock0000:
    2. query_sql"update char_daylogin set last_ip = '0' WHERE account_id > '2000000' ";
    複製代碼
    1. for ( set .@i,0; .@i<getarraysize(.@add); set .@i,.@i+1 )
    2. {
    3.         if ( getArg(0) == .@add[.@i] )
    4.         {
    5.                 set .@j,1;
    6.                 getitem .@aitem[.@i],.@anum[.@i];
    7.                 break;
    8.         }
    9. }       
    10.         set .@dayn,1;
    11.         getitem .@item[.@dayn],.@num[.@dayn];
    12.         <-----隱藏------>
    13.         query_sql("SELECT last_ip FROM `login` WHERE account_id = "+getcharid(3)+"", .@LastIp$);
    14.         query_sql"update char_daylogin set str = '"+getarg(0)+"' WHERE account_id ='"+getcharid(3)+"'";
    15.         query_sql"update char_daylogin set last_ip = '"+.@LastIp$+"' WHERE account_id ='"+getcharid(3)+"'";
    16.         end;
    17. }


    18. -        script        daylogin        -1,{
    19. OnClock0000:
    20. query_sql"update char_daylogin set last_ip = '0' WHERE account_id > '2000000' ";
    21. end;
    22. OnPCLoginEvent:
    23. query_sql("SELECT last_ip FROM `login` WHERE account_id = "+getcharid(3)+"", .@LastIp$);
    24. if(query_sql("SELECT *FROM `char_daylogin`WHERE `last_ip` = '"+.@LastIp$+"'")){end;}
    25. if(!query_sql("SELECT *FROM `char_daylogin`WHERE `account_id` = '"+getcharid(3)+"'")){query_sql "insert into char_daylogin ( account_id, last_ip ) values ( "+getcharid(3)+",'"+.@LastIp$+"')";}
    26.         if( gettime(7)%4==0 ) set .@pr,1;
    27.         if ( #daytime >= 366+.@pr )  set #daytime,1;
    28. if ( #daytime )
    29.         {
    30.                 if ( #daytime == gettime(8) )
    31.                 {
    32.                         set #daytime,gettime(8)+1;
    33.                         set #daylogin,#daylogin+1;
    34.                         callfunc "dayitem",#daylogin;
    35.                         end;
    36.                 }
    37.                 if ( #daytime < gettime(8) && #daytime != 1 )
    38.                 {
    39.                         set #daytime,gettime(8)+1;
    40.                         set #daylogin,1;
    41.                         callfunc "dayitem",1;
    42.                         end;
    43.                 }
    44.                 end;
    45.         }
    46.                 set #daytime,gettime(8)+1;
    47.                 set #daylogin,1;
    48.                 callfunc "dayitem",1;
    49.                 end;
    複製代碼
    很久沒有摸腳本了
    您自己參考一下
    裡面有
    新增表格
    紀錄登錄天數
    自動歸零
    每日IP只有一個帳號可以領取這樣
    寫法大概都是這樣
    您就揣摩一下吧
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    郁悶
    2015-2-17 09:48 AM
  • 簽到天數: 64 天

    連續簽到: 1 天

    [LV.6]常住居民II

     樓主| 發表於 2014-10-14 16:22:19 | 顯示全部樓層
    game1993 發表於 2014-10-10 01:49 PM
    EX 歸零寫法很久沒有摸腳本了
    您自己參考一下
    裡面有

    好高深的&#26679;子@ @
    &#35874;&#35874;你,我先去研究研究,不&#20250;的地方再&#35831;教你好&#21527;?
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    擦汗
    2018-8-18 01:15 PM
  • 簽到天數: 1517 天

    連續簽到: 1 天

    [LV.Master]伴壇終老

    發表於 2014-10-14 16:50:38 | 顯示全部樓層
    illuser 發表於 2014-10-14 04:22 PM
    好高深的&#26679;子@ @
    &#35874;&#35874;你,我先去研究研究,不&#20250;的地方再&#35831;教你好&#21527 ...

    恩都可以~
    製作表格
    方便查詢也可以介此簡單做排行
    只是我的技術比較差
    寫出來的怕給笑的(茶

    回復 支持 反對

    使用道具 舉報

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

    本版積分規則

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

    GMT+8, 2024-5-8 01:39 AM , Processed in 0.130431 second(s), 21 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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