OK論壇

 找回密碼
 註冊
查看: 1372|回復: 9

自動販售 用SQL 資料庫 記錄販賣物品

 關閉 [複製鏈接]
  • TA的每日心情
    無聊
    2014-8-26 02:43 PM
  • 簽到天數: 31 天

    連續簽到: 1 天

    [LV.5]常住居民I

    發表於 2014-8-4 09:27:13 | 顯示全部樓層 |閱讀模式
    EA
    私服版號: Rathena 12234
    問題內容: 腳本問題
    本帖最後由 sdpeanut 於 2014-8-5 11:54 AM 編輯
    1. -        shop        groceries        -1,12257:8000,526:6000,610:5000,663:2500,522:1500,501:50,502:100,503:200,504:300,505:400,12020:1000,523:1000,525:500,606:1000,682:1000,683:1000,645:-1,656:-1,657:-1,601:-1,602:-1,611:-1,1065:-1,717:-1,715:-1,716:-1,1025:-1,1751:1,1752:1,1765:1,1772:1,1771:1,1773:1,7135:12000,7136:12000,678:50000,12622:1000000,26001:50000,6377:100000
    2. -        shop        shell2        -1,12257:8000


    3. mora,123,102,4        script        道具商人        606,{
    4.         switch(select("^0000FF購買物品","^0000FF販賣物品","^00FF50自動販賣","^D95401支票","^FF0000設定常用販賣列表","^FF8833重設販賣列表"))
    5.         {
    6.                 case 1:
    7.                         callshop "groceries",1;
    8.                         break;
    9.                 case 2:
    10.                         callshop "groceries",2;
    11.                         break;
    12.                 case 3:
    13.                         query_sql("SELECT count(`char_id`)  FROM `peddle` WHERE `char_id` = "+getcharid(0),.@count);
    14.                         mes "[ ^FF00C7自動販售^000000 ]";
    15.                         mes "^FF0000相同物品穿著也將一併售出^000000";
    16.                         mes "^FF0000自動販售之售價將不會因技能而變動^000000";
    17.                         mes "";
    18.                         mes "==== [ 以下是您將販售的列表 ] ====";
    19.                         for( set .@a,0; .@a < .@count; set .@a,.@a+100 )
    20.                         {
    21.                                 set .@arrsize,query_sql2("SELECT `item_id`  FROM `peddle` WHERE `char_id` = "+getcharid(0) ,.@item );
    22.                                 for(set .@i,0;.@i<.@arrsize;set .@i,.@i+1)
    23.                                 {
    24.                                         set .@itemid,getd(".@item"+.@i);
    25.                                         if( countitem(.@itemid) )
    26.                                                 mes getitemname(.@itemid) + "^0000FF " + countitem(.@itemid) + "^000000 個 x  ^FF0000" + getiteminfo(.@itemid,1) + " z^000000";
    27.                                 }
    28.                         }
    29.                         if(select("^0000FF確定販售^000000","取消")==1)
    30.                         {
    31.                                 for(set .@i,0;.@i<.@arrsize;set .@i,.@i+1)
    32.                                 {
    33.                                         set .@itemid,getd(".@item"+.@i);
    34.                                         if( set(.@c, countitem(.@itemid) ) )
    35.                                         {
    36.                                                 delitem .@itemid,.@c;
    37.                                                 set Zeny,Zeny+getiteminfo(.@itemid,1)*.@c;
    38.                                         }
    39.                                 }
    40.                         }
    41.                         close;
    42.                 case 4:
    43.                         switch(select("^0000FF購買支票","^037D01支票換幣")){
    44.                                 case 1:
    45.                                         mes "[ ^FF00C7購買支票^000000 ]";
    46.                                         mes "請問您要購買幾張支票呢 ?";
    47.                                         mes "一張支票 ^FF0000100,000,000^000000 z";
    48.                                         mes "另外要酌收^0000FF單筆^000000交易手續費 ^FF00004,000,000^000000";
    49.                                         next;
    50.                                         input .@i;
    51.                                         if( .@i <= 0 )
    52.                                         {
    53.                                                 mes "[ ^FF00C7購買支票^000000 ]";
    54.                                                 mes "取消交易";
    55.                                                 mes "歡迎再來 !";
    56.                                                 close;
    57.                                         }
    58.                                         if( Zeny < (.@i*100000000+4000000) )
    59.                                         {
    60.                                                 mes "[ ^FF00C7購買支票^000000 ]";
    61.                                                 mes "您的金錢不夠";
    62.                                                 mes "歡迎再來 !";
    63.                                                 close;
    64.                                         }
    65.                                         set Zeny,Zeny-(.@i*100000000+4000000);
    66.                                         getitem2 26020,.@i,0,0,0,254,0,getcharid(0),0;
    67.                                         close;
    68.                                 case 2:
    69.                                         mes "[ ^FF00C7支票換幣^000000 ]";
    70.                                         mes "請問您有幾張支票要換幣 ?";
    71.                                         next;
    72.                                         input .@i;
    73.                                         if(.@i > countitem(26020))
    74.                                         {
    75.                                                 mes "[ ^FF00C7支票換幣^000000 ]";
    76.                                                 mes "您支票不夠";
    77.                                                 close;
    78.                                         }
    79.                                         if( Zeny + ( .@i * 100000000 ) > 2000000000 )
    80.                                         {
    81.                                                 mes "[ ^FF00C7支票換幣^000000 ]";
    82.                                                 mes "兌換後您的錢超過20E";
    83.                                                 close;
    84.                                         }
    85.                                         delitem 26020,.@i;
    86.                                         set Zeny,Zeny+( .@i * 100000000 );
    87.                                         close;
    88.                         }
    89.                         break;
    90.                 case 5:
    91.                         callshop "shell2",2;
    92.                         npcshopattach "shell2";
    93.                         break;
    94.                 case 6:
    95.                         query_sql("DELETE FROM `peddle` WHERE `char_id` = "+getcharid(0));
    96.                         mes "[ ^FF00C7自動販售^000000 ]";
    97.                         mes "^FF0000已經重新設定 ! 謝謝您的光臨^000000";
    98.                         break;
    99.         }
    100.         close;


    101. OnBuyItem:
    102.         set .@arrsize,getarraysize(@bought_nameid);
    103.         for(set .@i,0;.@i<.@arrsize;set .@i,.@i+1)
    104.                 announce @bought_nameid[.@i]+" "+getitemname(@bought_nameid[.@i])+" "+@bought_quantity[.@i],bc_all;
    105.         end;

    106. OnSellItem:
    107.         set .@cid,getcharid(0);
    108.         set .@arrsize,getarraysize(@sold_quantity);
    109.         for(set .@i,0;.@i<.@arrsize;set .@i,.@i+1)
    110.         {
    111.                 query_sql("SELECT `item_id`  FROM `peddle` WHERE `char_id` = "+.@cid+" AND `item_id` = "+@sold_nameid[.@i],.@sql$);
    112.                 //announce .@sql$,bc_all;
    113.                 if(.@sql$=="")
    114.                         query_sql("INSERT INTO `peddle` (`char_id`, `item_id`) VALUES ( "+.@cid+","+@sold_nameid[.@i]+");");
    115.                 set .@sql$,"";
    116.         }
    117.         end;
    118. }
    複製代碼



    我依照  腳本內 SELECT `item_id`  FROM `peddle` WHERE `char_id`

    然後就在資料庫添加  peddle

    peddle 裡面再添加 pid  ,  char_id  ,  item_id

    是腳本的問題嗎?? 還是我操作的問題

    回復

    使用道具 舉報

  • TA的每日心情
    開心
    6 天前
  • 簽到天數: 1323 天

    連續簽到: 1 天

    [LV.10]以壇為家III

    發表於 2014-8-4 11:45:35 | 顯示全部樓層
    for( set .@a,0; .@a < .@count; set .@a,.@a+100 )     100是什意思 看不懂

    rathena 沒有 query_sql2
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    無聊
    2014-8-26 02:43 PM
  • 簽到天數: 31 天

    連續簽到: 1 天

    [LV.5]常住居民I

     樓主| 發表於 2014-8-4 12:09:37 | 顯示全部樓層
    sinya 發表於 2014-8-4 11:45 AM
    for( set .@a,0; .@a < .@count; set .@a,.@a+100 )     100是什意思 看不懂

    rathena 沒有 query_sql2

    這個是腳本的載點
    http://pan.baidu.com/s/1bnfDlef

    那如果說 ra沒有query_sql2

    是要另外新增嗎??  還是有其他辦法
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    6 天前
  • 簽到天數: 1323 天

    連續簽到: 1 天

    [LV.10]以壇為家III

    發表於 2014-8-4 12:57:10 | 顯示全部樓層
    本帖最後由 sinya 於 2014-8-4 01:16 PM 編輯

    當然有 , sqlquery時用 limit 每次限制 128筆輸出  , 把得到的資料用setd 存起來 就可以取代 query_sql2



    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    無聊
    2014-8-26 02:43 PM
  • 簽到天數: 31 天

    連續簽到: 1 天

    [LV.5]常住居民I

     樓主| 發表於 2014-8-4 13:28:54 | 顯示全部樓層
    sinya 發表於 2014-8-4 12:57 PM
    當然有 , sqlquery時用 limit 每次限制 128筆輸出  , 把得到的資料用setd 存起來 就可以取代 query_sql2
    ...

    謝謝妳的解答

    意思是說 要再另外新增一個 setd

    好讓 " 設定自動販賣物品 " 的資料能夠載入進去


    然後再用query 可以把資料抓出來使用

    是這個意思嗎??
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    無聊
    2014-8-26 02:43 PM
  • 簽到天數: 31 天

    連續簽到: 1 天

    [LV.5]常住居民I

     樓主| 發表於 2014-8-4 15:15:42 | 顯示全部樓層
    sinya 發表於 2014-8-4 12:57 PM
    當然有 , sqlquery時用 limit 每次限制 128筆輸出  , 把得到的資料用setd 存起來 就可以取代 query_sql2
    ...

    現在是可以存進去

    但存進去的資料有長有短




    還有提取的時候都顯示空白

    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    6 天前
  • 簽到天數: 1323 天

    連續簽到: 1 天

    [LV.10]以壇為家III

    發表於 2014-8-5 00:30:56 | 顯示全部樓層
    本帖最後由 sinya 於 2014-8-5 12:32 AM 編輯

    你可以請作者寫適合ra的版本 因為他的邏輯 我看不懂  二樓 那個 100 是寫錯吧
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    無聊
    2014-8-26 02:43 PM
  • 簽到天數: 31 天

    連續簽到: 1 天

    [LV.5]常住居民I

     樓主| 發表於 2014-8-5 01:52:11 | 顯示全部樓層
    sinya 發表於 2014-8-5 12:30 AM
    你可以請作者寫適合ra的版本 因為他的邏輯 我看不懂  二樓 那個 100 是寫錯吧

    說實在我也不懂為什麼要加 100


    好的!!  非常感謝妳

    我再試試看,真的不行我在找作者幫忙。
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    無聊
    2014-8-26 02:43 PM
  • 簽到天數: 31 天

    連續簽到: 1 天

    [LV.5]常住居民I

     樓主| 發表於 2014-8-5 01:55:37 | 顯示全部樓層
    sinya 發表於 2014-8-5 12:30 AM
    你可以請作者寫適合ra的版本 因為他的邏輯 我看不懂  二樓 那個 100 是寫錯吧

    另外想請教妳

    有哪些地方有在教怎麼使用SQL嗎??


    還是只能跑去書局買書來看在自己應用
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    開心
    6 天前
  • 簽到天數: 1323 天

    連續簽到: 1 天

    [LV.10]以壇為家III

    發表於 2014-8-5 05:15:48 | 顯示全部樓層
    sdpeanut 發表於 2014-8-5 01:55 AM
    另外想請教妳

    有哪些地方有在教怎麼使用SQL嗎??

    如果要學基本的 不用買書 網路找一找 就有了吧 私服會用到的語法不會太多








    回復 支持 反對

    使用道具 舉報

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

    本版積分規則

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

    GMT+8, 2024-5-8 04:49 PM , Processed in 0.073046 second(s), 21 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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