- 积分
- 561
- 最后登录
- 1970-1-1
- 阅读权限
- 60
- 帖子
- 精华
- 现金
- 吧币
|
本帖最后由 zgiat 于 2013-4-18 12:49 编辑
今天呢,我大搜索渡虎谷就来教大家如何在po开创一个只属于自己的房间
在这里成功是需要99%的运气和1%的诚意的(其中路由器是必须有的),
如果是妹子来看的话叫我一声“お兄様”我会很高兴的
当然我学会开房也是也是经过几位巨巨教导的结果
接下来我就把我从各位菊苣那所学整合成一份发表出来
于是乎,有耐心的就往下看吧
首先,打开你的开始菜单,找到运行,打开,输入cmd,回车
再在跳出的黑色窗口中输入ipconfig,回车
记住你的ip address,比如我的是192.168.100,你的肯定不一样
接着打开你的浏览器,在网址栏中输入192.168.1.1
接着跳出的窗口会叫你输入用户名和密码,用户名和密码默认都为admin
接着在跳出的窗口中找到转发规则点击,找到dmz主机点击,在DMZ 状态中选择启用,
在DMZ主机IP地址中输入刚才的ip address,保存
打开你的po文件夹,找到“server",打开,点击OPtions,选择第三项config,在server name中输入你房间的名字
在announcement中输入标题栏的html代码,比如我的是
<body style="background:qradialgradient(cx:1,cy:0,radius:1.1,fx:0.5,fy:0.5,stop:0.4 #FF9912,stop:0.5 #FEE8D6,stop:0.64 #EEE9E9,stop:0.65 #BDA0CB,stop:1 #7D26CD);"><img src='pokemon:385&gen=4' align=right/> <b><font size=25 face="Harrington" color=snow><center>渡虎谷</b><p><center> <b><font size=25 face="Harrington" color=red>爱情公寓<br>
效果如下图

设定好后点击右下角的apply(应用)
点击OPtions中的第一项players,左下角的authority为房间的权限调整
设定好后,打开po找到自己房间的名字,进入
在这里,就要考验大家99%的运气了
如果进不去的话那就说明你家的路由器不适合开服务器,那么你就不能开一个大家都能进入的房间,
不过进不去的大家不用灰心,我还有一个方法可以让你本人进去
打开你的po,在地址栏输入127.0.0.1,这样你就可以进去截图了,告诉大家你好歹也是开过房的男(女)人
下面呢我就教大家如何在自己开的房间中举行一次比赛
首先打开你的po文件夹,找到文件server,打开,点击OPtions,选择第四项scripts,在跳出的窗口中复制粘贴以下脚本
var HANDLERS = new POHandlers();
function POHandlers()
{
// Basic ones will have priority over special ones.
// Number is an auth level.
this.basic_handlers = {
"0": {
join:command_join,
},
"1": {
tournament:command_tournament,
deleteslot:command_deleteslot,
ballot:command_ballot,
nonballot:command_nonballot,
tourballot:command_tourballot,
html:command_html,
},
"2": {
tournament:command_tournament,
deleteslot:command_deleteslot,
ballot:command_ballot,
nonballot:command_nonballot,
tourballot:command_tourballot,
html:command_html,
},
"3": {
}
};
}
function handle_command(command_name, chan, src, data)
{
var src_auth = sys.auth(src);
if ((src_auth < 0) || (src_auth > 3)) return; // What auth is this again?
var src_object = SESSION.users(src);
var handler = HANDLERS.basic_handlers[src_auth][command_name];
if (!handler) {
// Non-DB auths here. Remove if not needed.
var non_db_levels = ["channel_master"]; // Example.
for (var index in non_db_levels) {
var level = non_db_levels[index];
if (src_object.levels[level]) {
var special_handler = HANDLERS.special_handlers[level][command_name];
if (special_handler) {
handler = special_handler;
break; // Command found. Nothing else to do.
}
}
}
}
if (handler)
{
handler(chan, src, data);
}
}
function command_html(chan,src,data)
{
sys.sendHtmlAll(data,"ROUTE 202");
}
function command_tournament(chan, src, data)
{
sys.deleteFile("tournamentlist.txt");
var para=data.split(',');
var name=para[0];var people=para[1];
sys.writeToFile("tournament.txt" , name+","+people);
sys.sendHtmlAll("<font color='#388273' size='5'><b>"+sys.name(src)+"举办了一次"+name+"比赛,参赛人数为"+people+"人<br>输入/join即可报名,报满截止!</b></font>", "ROUTE 202");
}
function command_join(chan, src, data)
{
if(sys.rand(1,11)>8)
return;
var para=sys.getFileContent("tournament.txt");
var parameter=para.split(',');
var name=parameter[0];var people=parameter[1];
var left;
if(people==0)
{
sys.sendMessage(src, "目前没有比赛。",chan);
if(sys.rand(1,10)==5)
sys.kick(src);
return;
}
else
{
if(sys.getFileContent("tournamentlist.txt"))
{
var competitor=sys.getFileContent("tournamentlist.txt");
var slot=competitor.split(',');
if(slot.length-1==people)
{
sys.sendMessage(src, "比赛报名已结束",chan);
return;
}
for(var n=0;n<slot.length;n++)
{
if(slot[n]==sys.name(src))
{
sys.sendMessage(src, "你已经报过名了",chan);
return;
}
}
sys.appendToFile("tournamentlist.txt",sys.name(src)+",");
left=people-slot.length;
sys.sendHtmlAll("<font color='#388273' size='+3'><b>"+sys.name(src)+"报名成功!比赛名额还剩余"+left+"人!</b></font>", "ROUTE 202");
if(slot.length%4==0)
{
sys.sendHtmlAll("<font color='#388273'><b>目前已报名选手:</b></font>", "ROUTE 202");
for(var m=1;m<slot.length;m++)
{
var j=m-1;
sys.sendHtmlAll("<font color='#388273'><b>"+m+"."+slot[j]+"</b></font>", "ROUTE 202");
}
sys.sendHtmlAll("<font color='#388273'><b>"+m+"."+sys.name(src)+"</b></font>", "ROUTE 202");
}
if(people==slot.length)
sys.sendHtmlAll("<font color='#388273' size='+5'><b>报名人数已满,截止报名</b></font>", "ROUTE 202");
}
else
{
sys.appendToFile("tournamentlist.txt",sys.name(src)+",");
left=people-1;
sys.sendHtmlAll("<font color='#388273' size='+3'><b>"+sys.name(src)+"报名成功!比赛名额还剩余"+left+"人!</b></font>", "ROUTE 202");
}
}
}
function command_deleteslot(chan, src, data)
{
var competitor=sys.getFileContent("tournamentlist.txt");
var slot=competitor.split(',');
var m=data-1;
var para=sys.getFileContent("tournament.txt");
var parameter=para.split(',');
var name=parameter[0];var people=parameter[1];
var left=people-slot.length+2;
sys.sendHtmlAll("<font color='#388273'><b>"+sys.name(src)+"撤销了"+slot[m]+"的报名,目前还有"+left+"个报名名额。</b></font>", "ROUTE 202");
sys.deleteFile("tournamentlist.txt");
for(var n=0;n+1<slot.length;n++)
if(n!=data-1)
sys.appendToFile("tournamentlist.txt",slot[n]+",");
}
function ballot(slot,p)
{
var temp;var m;
var k;
if(p==0)
k=slot.length;
else
k=slot.length-1;
var square=k*k/2;
for(var n=0;n<square;n++)
{
i=sys.rand(1,k);
j=sys.rand(1,k);
temp=slot;slot=slot[j];slot[j]=temp;
}
sys.writeToFile("tournament.txt","0,0");
var log;
log="<table><tr><td align='center'>(」?ω?)」ブー!(/?ω?)/バー!(」?ω?)」ブー!(/?ω?)/バー!</td></tr>";
log=log+"<tr><td align='center'><font color='#388273' size='+5'><b>接下来的比赛对阵为:</b></font></td></tr>";
for(n=0;n<k-1;n=n+2)
{
m=n+1;
log=log+"<tr><td align='center'><font color='#388273' size='+3'><b>"+slot[n]+" vs "+slot[m]+"</b></font></td></tr>";
}
if(k%2!=0)
log=log+"<tr><td align='center'><font color='#388273' size='+3'><b>"+slot[n]+"轮空</b></font></td></tr>";
log=log+"<tr><td align='center'>(」?ω?)」ブー!(/?ω?)/バー!(」?ω?)」ブー!(/?ω?)/バー!</tr></table></div>";
sys.sendHtmlAll(log, "ROUTE 202");
}
function command_tourballot(chan,src,data)
{
var competitor=sys.getFileContent("tournamentlist.txt");
var slot=competitor.split(',');
ballot(slot,1);
}
function command_ballot(chan, src, data)
{
var slot=data.split(',');
ballot(slot,0);
}
function command_nonballot(chan, src, data)
{
sys.sendHtmlAll("<font color='#388273'><b>接下来的比赛对阵为:</b></font>", "ROUTE 202");
var slot=data.split(',');
k=slot.length;
for(var n=0;n<k-1;n=n+2)
{
m=n+1;
sys.sendHtmlAll("<font color='#388273'><b>"+slot[n]+" vs "+slot[m]+"</b></font>", "ROUTE 202");
}
if(k%2!=0)
sys.sendHtmlAll("<font color='#388273'><b>"+slot[n]+"轮空</b></font>", "ROUTE 202");
}
({
beforeChatMessage: function(src, message, chan)
{
if ((message.length > 1) && (message[0] == '/' || message[0] == '!'))
{
// Command.
sys.stopEvent(); // do not print this message automatically
var command, command_data = "";
var pos = message.indexOf(' ');
if (pos == -1) {
command = message.substring(1).toLowerCase();
} else {
command = message.substring(1, pos).toLowerCase();
command_data = message.substr(pos + 1);
}
handle_command(command,chan, src, command_data);
}
}
})
这里请注意
1、切勿把自己设定为大师球,否则很多功能无法实现
2、在此脚本中我的服务器的主频道名字为Route 202,如果你的不是,请把脚本拖到word进行替换
3、如何查看自己服务器的主频道名字,你在自己开的房中随意发言,再打开后台就能看到每个发言之前括号中去掉#字内容即是
现在教大家几个代码
1.你可以在你开的房间中输入/html <font color='#FF0000'>公告</font>查看一下效果
/html后的内容就是你要输入的内容,可以使用彩色字,具体大家自己研究吧
2.然后是/tournament这个指令,输入/tounrament 比赛名,允许人数,比如/tournament 大魔斗演武,16
最后我要特别感谢教导给我这些的众多老师基友们,他们分别是@lyl,@Whatの,@Petal Dance,谢谢大家
|
|