// TMW2 Script // // @k // Broadcast, and broadcast to #world too // // @servmsg // Experimental, uses servicemessage() - requires up to date server - script @k 32767,{ end; OnCall: .@request$ = strcharinfo(0)+": "; .@request$ += implode(.@atcmd_parameters$, " "); channelmes("#world", .@request$); announce l(.@request$), bc_all|bc_npc; end; OnServMsg: .@request$ = strcharinfo(0)+": "; .@request$ += implode(.@atcmd_parameters$, " "); // This can be slow, beware .@c = getunits(BL_PC, .@players, MAX_CYCLE_PC); for (.@i = 0; .@i < .@c; .@i++) { message(.@players[.@i], .@request$); } end; OnBuff: .@n$=strtoupper(strcharinfo(0, "JESUSALVA", playerattached())); // Disabled command, used for debug purposes .@c = getunits(BL_PC, .@players, MAX_CYCLE_PC); for (.@i = 0; .@i < .@c; .@i++) { attachrid(.@players[.@i]); sc_start SC_INCMHPRATE, 300000, 100; sc_start SC_INCMSPRATE, 300000, 100; sc_start SC_INCFLEERATE, 300000, 100; sc_start SC_INCHITRATE, 300000, 100; sc_start SC_WALKSPEED, 300000, 150; sc_start SC_ATTHASTE_POTION3, 300000, 50; percentheal 100, 100; dispbottom l("YOU WERE BLESSED BY %s", .@n$); dispbottom l("YOU CAN FEEL THE POWER FLOWING TROUGH YOU."); detachrid(); } end; OnInstDestroy: .@request = implode(.@atcmd_parameters$, " "); if (.@request != 0) instance_destroy(.@request); end; OnInstCheck: .@request$ = implode(.@atcmd_parameters$, " "); dispbottom has_instance2(.@request$); end; OnPurify: getmapxy(.@m$, .@x, .@y, 0); .@r=60; .@b=BL_PET; .@c=getunits(.@b, .@mbs, false, .@m$, .@x-.@r, .@y-.@r, .@x+.@r, .@y+.@r); for (.@i = 0; .@i < .@c; .@i++) { specialeffect(FX_LIGHTNING, AREA, .@mbs[.@i]); unitwarp(.@mbs[.@i], "boss", 25, 25); } end; OnHarm: harm(getcharid(3), 500, HARM_PHYS); end; OnHarm2: .@id=getcharid(3); detachrid(); harm(.@id, 500, HARM_MISC, Ele_Holy); end; OnInit: bindatcmd "k", "@k::OnCall", 60, 80, 1; bindatcmd "servmsg", "@k::OnServMsg", 80, 99, 1; bindatcmd "blessing", "@k::OnBuff", 80, 99, 1; bindatcmd "harm", "@k::OnHarm", 80, 80, 1; bindatcmd "cruelty", "@k::OnHarm2", 99, 99, 1; bindatcmd "instcheck", "@k::OnInstCheck", 99, 100, 1; bindatcmd "instdestr", "@k::OnInstDestroy", 99, 100, 1; bindatcmd "burnlivio", "@k::OnPurify", 99, 100, 1; end; } // kamibroadcast( message{, sender} ) function script kamibroadcast { .@msg$=getarg(0); .@snd$=getarg(1, ""); // Send to #world if (.@snd$ == "") channelmes("#world", .@msg$); else channelmes("#world", "[ "+.@snd$+" ] : "+.@msg$); // Make an announce if (.@snd$ == "") announce .@msg$, bc_all|bc_npc; else announce .@snd$+" : "+.@msg$, bc_all|bc_npc; return; }