Fw: [活动] 第一届圣殿杯线上掷筊大赛活动开催

楼主: laechan (挥泪斩马云)   2014-07-01 16:13:55
※ [本文转录自 mud_sanc 看板 #1Jicng18 ]
作者: laechan (小太保) 看板: mud_sanc
标题: [活动] 第一届圣殿杯线上掷筊大赛活动开催
时间: Tue Jul 1 16:08:06 2014
> divine
divine(线上掷筊大赛)指令说明:
=================================================
divine -pay 付出 1000 影特币
divine -throw 做出掷筊的动作
参与条件: 等级 60 且身上或银行存款有 1000 影特币
只要有付出 1000 影特币的玩家,都可以马上开始掷筊
,做出掷筊的动作时会瞬间出现两个发光的筊自玩家的
手中丢出。
只要出现了圣筊,就可以一直掷,直到出现笑筊为止。
每天都可以 divine -pay 最多 10 次。
活动结束时将选出掷出了最多圣筊的前几名玩家,给予
奖品。首奖:可以许愿的油灯。
=================================================
指令就两个,divine -pay 与 divine -throw,每天可以玩 10 次,
掷出超过两个圣筊时讯息就会显示在公频上,破纪录时也会显示。
暂定就先举办个一星期至 10 天吧,比方今天 7/1 号,那就 7/7 号
或是 7/10 号小结一次,颁个奖这样,然后再重置。
目前只有首奖是确定的就是可以许愿,然后假设我们挑出前 n 名,
那第 n 名至少可拿到不少的影特币这样。
参加条件只有身上或银行存款要有 1000 影特币,以及必须是 60 级
以上的玩家这两个要求。
Laechan
程式码:
// /cmds/std/_divine.c
// laechan@sanc add in 2014/07/01
// 2014 暑假活动─圣殿掷筊大赛
#define DIVINE_PAY 1000
#define DIVINE_TIME 10
inherit DAEMON;
mapping divine_data;
static mapping divine_temp,divine_times;
static mixed divine_names;
int pays,max_throw;
void create()
{
mixed tmps;
string tmp;
seteuid(getuid(this_object()));
if(file_exists(__DIR__+"divine.o"))
restore_object(__DIR__+"divine");
if(!divine_data)
divine_data=([]);
if(!divine_temp)
divine_temp=([]);
if(!divine_times)
divine_times=([]);
if(!pays) pays=0;
if(!max_throw) max_throw=0;
if(!divine_names)
{
divine_names=({});
tmps=keys(divine_data);
foreach(tmp in tmps)
if(!undefinedp(divine_data[tmp]))
divine_names+=keys(divine_data[tmp]);
}
}
int save_room()
{
save_object(__DIR__+"divine");
return 1;
}
int cmd_divine(string str)
{
string names;
int n;
object me=this_player();
if(!str || str=="")
return notify_fail(@LONG
divine(线上掷筊大赛)指令说明:
=================================================
divine -pay 付出 1000 影特币
divine -throw 做出掷筊的动作
参与条件: 等级 60 且身上或银行存款有 1000 影特币
只要有付出 1000 影特币的玩家,都可以马上开始掷筊
,做出掷筊的动作时会瞬间出现两个发光的筊自玩家的
手中丢出。
只要出现了圣筊,就可以一直掷,直到出现笑筊为止。
每天都可以 divine -pay 最多 10 次。
活动结束时将选出掷出了最多圣筊的前几名玩家,给予
奖品。首奖:可以许愿的油灯。
=================================================
LONG
);
names=me->query("name");
if(str=="-pay")
{
if(me->query("level")<60)
return notify_fail("divine: 你的等级要达到 60 级才能参加比赛喔.\n");
if(me->query("wealth")<DIVINE_PAY && me->query("balance")<DIVINE_PAY)
return notify_fail("divine: 你身上或银行里头没有 "+DIVINE_PAY+
" 影特币喔.\n");
if(!undefinedp(divine_temp[names]))
return notify_fail("divine: 你已经有付过钱囉,可以开始掷筊了.\n");
if((int)divine_times[names]>=DIVINE_TIME)
return notify_fail("divine: 你今天已经付过 "+DIVINE_TIME+" 次钱了喔。\n");
pays++;
if(me->query("wealth")>DIVINE_PAY)
me->add("wealth",-DIVINE_PAY);
else
me->add("balance",-DIVINE_PAY);
divine_temp[names]=0;
if(undefinedp(divine_times[names]))
divine_times[names]=1;
else
divine_times[names]+=1;
if(undefinedp(divine_data[names[0..0]]))
divine_data[names[0..0]]=([]);
save_room();
// 有付钱时 divine_temp[names] 才会有资料
str="你付了 "+DIVINE_PAY+" 影特币给圣殿掷筊大赛主办单位。\n"+
"你目前的最佳纪录是 "+divine_data[names[0..0]][names]+" 次圣筊。\n"+
"而目前的最佳纪录是 "+max_throw+" 次圣筊。\n"+
"你现在可以开始 divine -throw 了。\n");
return notify_fail(str);
}
else if(str=="-throw")
{
if(undefinedp(divine_temp[names]))
return notify_fail("divine: 你要先 divine -pay 喔.\n");
show(me,me,"$N向着前方做出了掷筊的动作。\n"+
"只见两个发光的筊瞬间自你的手中飞出,不久后落到了地上。\n");
if(random(2)==random(2))
{
divine_temp[names]+=1;
write(HIR"【掷筊】恭喜!你掷出了圣筊!你可以再继续掷喔!"NOR"\n");
n=(int)divine_temp[names];
if(n>=3)
shout(CYN"【掷筊】恭喜!"+me->query("short")+NOR+CYN"掷出了 "+n+
" 次圣筊。"NOR"\n");
if(undefinedp(divine_data[names[0..0]][names]))
divine_data[names[0..0]][names]=1;
else if((int)divine_data[names[0..0]][names]<divine_temp[names])
divine_data[names[0..0]][names]=n;
if(n>max_throw)
{
write(HIR"【掷筊】你掷出了破纪录的 "+n+" 次圣筊了!"NOR"\n");
shout(CYN"【掷筊】恭喜!"+me->query("short")+NOR+CYN"掷出了破纪录的 "+
n+" 次圣筊!"NOR"\n");
max_throw=n;
}
save_room();
}
else
{
write(NOR+YEL"【掷筊】唉呀!你掷出了笑筊....欢迎下次再来参加喔!"NOR"\n"+
"你目前的掷筊大赛最佳纪录是: "+divine_data[names[0..0]][names]+
" 次圣筊。\n");
map_delete(divine_temp,names);
}
return notify_fail("");
}
return cmd_divine("");
}

Links booklink

Contact Us: admin [ a t ] ucptt.com