[問題]在水球記錄下作廣播功能.....遇到問題
※ 本文轉錄自 [WindTop] 看板
作者: superlight (超級光) 看板: MaplePlan
標題: [問題]在水球記錄下作廣播功能.....遇到問題
時間: Sun Oct 6 04:03:46 2002
編輯talk.c想要在水球記錄下做出廣播的功能
一開始很簡單的把 ulist_broadcast(xo) 整個函數複製到
水球記錄那區,結果使用者在水球記錄下要廣播時,
輸入內容按下ENTER就斷線了,請問該怎麼修改呢?
我的系統是WindTop,具有SYSOP及全站廣播的功能
原始碼如下:
static int
ulist_broadcast(xo)
XO *xo;
{
int num;
pickup *pp;
UTMP *up;
BMW bmw;
char buf[80],ans,admin;
num = cuser.userlevel;
if (!(num & (PERM_SYSOP)) &&
(!(num & PERM_PAGE) || !(cuser.ufo & UFO_PAL)))
return XO_NONE;
num = xo->max;
if (num < 1)
return XO_NONE;
bmw.caller = 0;
bmw_edit(NULL, "廣播", &bmw, 0);
sprintf(buf,"廣播%s",bmw.msg);
strcpy(bmw.msg,buf);
admin = check_admin(cuser.userid);
if(admin && !(cuser.ufo & UFO_PAL))
{
if((ans = vans("使用 SYSOP 廣播嗎? [y/N]")) != 'Y' && ans != 'y')
admin = 0;
if((ans = vans("確定全站廣播嗎? [y/N]")) != 'Y' && ans != 'y')
return XO_INIT;
}
if (!(cuser.ufo & UFO_PAL) && admin)
{
strcpy(bmw.userid,"SYSOP");
/*bmw.sender = 1;*/
}
if (bmw.caller)
{
pp = ulist_pool;
while (--num >= 0)
{
up = pp[num];
if (can_message(up) && (!(up->ufo & UFO_BROADCAST)||
(HAS_PERM(PERM_SYSOP|PERM_CHATROOM) && !(cuser.ufo & UFO_PAL))))
{
bmw.recver = up->userno;
bmw_send(up, &bmw);
}
}
}
return XO_INIT;
}
--
※ Origin: 元智大學 風之塔 <bbs.yzu.edu.tw>
※ From : www.pme.nthu.edu.tw
Maple 近期熱門文章
PTT數位生活區 即時熱門文章
-4
30