PHP-IRC私有消息函数帮助
由于某些原因,我的机器人不会在IRC频道上向%的人发送私人消息。这是我的剧本:PHP-IRC私有消息函数帮助,php,irc,Php,Irc,由于某些原因,我的机器人不会在IRC频道上向%的人发送私人消息。这是我的剧本: <?php $ircServer = "///"; $ircPort = "6667"; $ircChannel = "#bots"; set_time_limit(0); $msg = $_POST['message']; $pr = $_POST['percentage']; $pr /= 100; $ircSocket = fsockopen($ircServer, $ircPort, $eN,
<?php
$ircServer = "///";
$ircPort = "6667";
$ircChannel = "#bots";
set_time_limit(0);
$msg = $_POST['message'];
$pr = $_POST['percentage'];
$pr /= 100;
$ircSocket = fsockopen($ircServer, $ircPort, $eN, $eS);
if ($ircSocket)
{
fwrite($ircSocket, "USER Lost rawr.test lol :code\n");
fwrite($ircSocket, "NICK Rawr" . rand() . "\n");
fwrite($ircSocket, "JOIN " . $ircChannel . "\n");
while(1)
{
while($data = fgets($ircSocket, 128))
{
echo nl2br($data);
flush();
// Separate all data
$exData = explode(' ', $data);
// Send PONG back to the server
if($exData[0] == "PING")
{
fwrite($ircSocket, "PONG ".$exData[1]."\n");
}
}
echo $eS . ": " . $eN;
}
shuffle($users);
$size = count($users);
$target = $size * $pr;
$target = $round($target);
for ($i = 0; $i <= $target; $i++) {
fwrite($ircSocket, "PRIVMSG " . $users[$i] . " :" . $msg . "\n");
}
}
?>
我甚至尝试删除Post数据,并用以下内容替换此部分:
$msg = $_POST['message'];
与
频道上的其他人没有收到私人消息。这是您的全部脚本吗
$users
未设置为任何值;您可能打算将其设置为用户名数组<代码>$round也未设置;您可能只是想调用内置的round()
函数。如果在for
循环中添加调试行,您至少可以告诉哪些用户(如果有)应该收到消息:
for ($i = 0; $i <= $target; $i++) {
echo "Sending message to ${users[$i]}\n";
fwrite($ircSocket, "PRIVMSG " . $users[$i] . " :" . $msg . "\n");
}
for($i=0;$i这是您的整个脚本吗?$users
没有设置为任何值;您可能想将其设置为用户名数组。$round
也没有设置;您可能只想调用内置的round()
功能。如果在for
循环中添加调试行,您至少可以告诉哪些用户(如果有)应该接收消息:
for ($i = 0; $i <= $target; $i++) {
echo "Sending message to ${users[$i]}\n";
fwrite($ircSocket, "PRIVMSG " . $users[$i] . " :" . $msg . "\n");
}
对于($i=0;$i),它仍然不起作用。我的任务是向bot写入命令,例如,我输入命令“Hello Get me”,它应该发送到IRC bot,将消息发送给IRC频道上的许多其他用户。(使用百分比系统)。@Raymond您缺少计算房间中用户列表的代码(您可能想发送一条消息),但您缺少了一些处理传入消息的内容——仔细想想,您实际上从未中断过while(1)
loop,你只是坐在那里永远接收消息而不处理它们。我似乎不明白,我已经尝试了很多方法。也许我的PHP技能不好。请告诉我。它仍然不起作用。我的任务是向机器人编写命令,例如,我输入命令“Hello Get me”它应该发送到IRC bot,将消息发送给IRC频道上的许多其他用户。(使用百分比系统)。@Raymond您缺少计算房间中用户列表的代码(您可能想发送一个),而你却错过了一些处理传入消息的方法——想想看,你实际上从来没有打破过,而(1)
循环,你只是永远坐在其中接收消息,而不处理它们。我似乎没有弄明白,我试过很多方法。也许我的PHP技能不太好。请告诉我。“$round”可能是个问题:)怎么做,先生?请告诉我确切的数字。“$round”可能是个问题:)怎么做,先生?请告诉我确切的数字。
for ($i = 0; $i <= $target; $i++) {
echo "Sending message to ${users[$i]}\n";
fwrite($ircSocket, "PRIVMSG " . $users[$i] . " :" . $msg . "\n");
}