// 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: // 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 JESUSALVA"); 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; OnSkry: dispbottom l("STR: %d AGI %d VIT %d", readparam2(bStr), readparam2(bAgi), readparam2(bVit)); end; OnJustDoIt: //dispbottom l("STR: %d AGI %d VIT %d", readparam2(bStr), readparam2(bAgi), readparam2(bVit)); //unitskilluseid(getcharid(3), GD_LEADERSHIP, 1, getcharid(3)); // This is only for testing $@KAMELOT_WAVE[getcharid(2)]=2; //doevent(instance_npcname("#KDoor0422", $@KAMELOT_ID[getcharid(2)])+"::OnEmergency"); // areasc(range, time, skill code, who targets, power, filter) //areasc(9, 20000, SC_MAGNIFICAT, BL_PC, 1, "filter_sameguild"); end; OnInit: bindatcmd "k", "@k::OnCall", 60, 80, 1; bindatcmd "servmsg", "@k::OnServMsg", 80, 99, 1; bindatcmd "blessing", "@k::OnBuff", 99, 100, 1; bindatcmd "skry", "@k::OnSkry", 80, 80, 1; bindatcmd "gdreco", "@k::OnJustDoIt", 80, 80, 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; }