看板Maple
标 题[问题]在水球记录下作广播功能.....遇到问题
发信站元智大学风之塔 (Thu Oct 17 05:55:17 2002)
转信站Ptt!news.cs.nthu!bbs.yzu
※ 本文转录自 [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