回文章列表
作者TonyQ.bbs@bbs.wretch.cc (沉默是金) 看板: itoc
標題Re: 有人願意幫忙除錯一下嗎?
時間無名小站 (2008/02/07 Thu 16:33:19)
※ 引述《thryte.bbs@cpu.tfcis.org (風)》之銘言:
> 這是我自己寫抽紅包金額的系統,
> 但是我原先為了防止有人在抽第二次所以就直接在該用戶的檔案裡作紀錄,
> 不過,現在卻出現說抽過的人卻沒有辦法在進去該選項,
> 因為最初計畫是沒有抽過的會有一個畫面,
> 但是有抽過的又有另外一個畫面,
> 因此就不知道是哪邊出問題,
> 不知道有沒有大大能幫忙debug一下....
> /*-------------------------------------------------------*/
> /* redenvelope.c                                         */
> /*-------------------------------------------------------*/
> /* target : 紅包系統                                     */
> /* create : 08/02/05                                     */
> /* update :   /  /                                       */
> /* author : s890510@bbs.cs.ntou.edu.tw                   */
> /*-------------------------------------------------------*/
> #include "bbs.h"
> #ifdef HAVE_GAME
> #define mouts(x,y,s)    { move(x, y); outs(s); }
> static void get_screen(int mode)
> {
>     FILE *fp;
>     char *fpath, buf[ANSILINELEN];
>     if (mode == 0)
>     {
>         fpath = "etc/game/redenvelope.again";
>         move(1, 0);
>     }
>     else if (mode == 1)
>     {
>         fpath = "etc/game/redenvelope.get";
>         move(2, 0);
>     }
>     if (!(fp = fopen(fpath, "r")))
>         return;
>     while (fgets(buf, ANSILINELEN, fp))
>         outs(buf);
>     fclose(fp);
> }
> static void have_redenvelope()
> {
>     while(1)
      ^^^^^^^^
    這裡確定沒有寫錯嗎?。?
    下面那個method 是有break  不過這裡沒有欸

    這樣不會變成無窮迴圈嗎 ?.?

    (沒有試過啦...純粹看了一圈覺得這裡很詭異 )

>     {
>         get_screen(0);
>         move(14,10);
>         prints("站長:領過了還想要領?門都沒有!");
>     }
> }
> static void get_redenvelope()
> {
>     char buf[80],fpath[64];
>     int rand_gold = 0,randum;
>     srand(time(NULL) + cuser.userno);
>     while(1)
>     {
>         if (vans("準備好要領紅包了嗎(Y/N)?")!= 'y')
>             break;
>         get_screen(1);
>         move(14,10);
>         prints("%s:嘿嘿~錢不太夠了,給點紅包錢吧~",cuser.userid);
>         move(15,10);
>         prints("站長:給你給你(隨便抓一些錢放進紅包),祝你新春愉快~");
>         randum = rand() % 2000000 + 1;
>         move(16,10);
>         if((randum % 9) == 0)
>         {
>             randum = (randum/100000)+1;
>             rand_gold = 1;
>             prints("系統:你獲得了%d金幣",randum);
>             cuser.gold += randum;
>         }
>         else
>         {
>             prints("系統:你獲得了%d銀幣",randum);
>             cuser.money += randum;
>         }
>         if(rand_gold == 1)
>             sprintf(buf, "%-13s領取了紅包 -%d 金 (%s)\n", cuser.userid,
> randum,
> Now());
>         else
>             sprintf(buf, "%-13s領取了紅包 -%d 銀 (%s)\n", cuser.userid,
> randum,
> Now());
>         f_cat(FN_RUN_REDENVELOPE_LOG, buf);
>         usr_fpath(fpath, cuser.userid, "redenvelope");
>         sprintf(buf, "已領取了紅包");
>         f_cat(fpath, buf);
>     }
> }
> static void redenvelope()
> {
>     FILE *fp;
>     char fpath[64];
>     usr_fpath(fpath, cuser.userid, "redenvelope");
>     if(fp = fopen(fpath, "r"))
>     {
>         have_redenvelope();
>     }
>     else
>     {
>         get_redenvelope();
>     }
> }
> int main_redenvelope()
> {
>     vs_bar("領紅包");
>     redenvelope();
>     return 0;
> }
> #endif  /* HAVE_GAME */
--
夫兵者不祥之器物或惡之故有道者不處君子居則貴左用兵則貴右兵者不祥之器非君子
之器不得已而用之恬淡為上勝而不美而美之者是樂殺人夫樂殺人者則不可得志於天下
矣吉事尚左凶事尚右偏將軍居左上將軍居右言以喪禮處之殺人之眾以哀悲泣之戰勝以
喪禮處之道常無名樸雖小天下莫能臣侯王若能守之萬物將自賓天地相合以降甘露民莫
之令而自均始制有名名亦既有夫亦將知止知止可以不殆譬道之在 218.171.123.159
文章選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻