Jump to content

3TAJIOH

Members
  • Posts

    73
  • Joined

  • Last visited

Everything posted by 3TAJIOH

  1. I need to spawn not agressive monsters on event (normally monsters are agressive).
  2. Solved copyarray $mvpladderparty_member$, .@name$, $@partymembercount;
  3. Only first 3 party members are in the ranking. There were 8 charachters on the MVP Ladder arena map.
  4. How can I make guildmember can damage each other? Upd. Solution: setmapflag "guild_vs1-1",mf_pvp_noguild; setmapflag "guild_vs1-1",mf_pvp_noparty;
  5. I have the same problem. On event npc using pvpon but guildmembers cannot damage together. Upd. Solution: setmapflag "guild_vs1-1",mf_pvp_noguild; setmapflag "guild_vs1-1",mf_pvp_noparty;
  6. Hello. Solved this problem? @mathlister
  7. Effect of Lif homunculus skill Mental Change disappear after teleport by Fly Wing.
  8. I tried this. But I can register several times by 1 charachter... query_sql("SELECT `last_unique_id` FROM `login` WHERE `account_id` = '"+getcharid(3)+"'",.@mac$); for ( .@i = 0; .@i < getarraysize(.last_mac$); .@i++) { if ( .@mac$ == .last_mac$[.@i] ) { dispbottom "Dual Clients are not allowed for Battleground Events."; end; } }
  9. Yes, I Know. Players can use 3 windows. But I need to protect BG.
  10. Hello. Please help me. Need fix this script. Mac check doesn't work. //===== rAthena Script ======================================= //= BG Queue System //===== By: ================================================== //= Zeiyan (based on scripts by pajodex) //===== Current Version: ===================================== //= 1.0 //===============Description================================== // Simple BG Queue System with @joinbg / @leavebg / @bginfo // Comes with Pajodex's Fortress and Rune War BG scripts //==============Notes========================================= // I'm not sure if code is scalable or easy to configure. // Send me a message if there's anything I can improve on it //============================================================ function script F_ShuffleNumbers { deletearray getarg(2); .@static = getarg(0); .@range = getarg(1) +1 - .@static; .@count = getarg(3, .@range); if (.@range <= 0 || .@count <= 0) return 0; if (.@count > .@range) .@count = .@range; for (.@i = 0; .@i < .@range; ++.@i) .@temparray[.@i] = .@i; for (.@i = 0; .@i < .@count; ++.@i) { .@rand = rand(.@range); set getelementofarray( getarg(2), .@i ), .@temparray[.@rand] + .@static; .@temparray[.@rand] = .@temparray[--.@range]; } return .@count; } //================================================================== //================================================================== //================================================================== - script bgmain -1,{ OnInit: set .n$, "[^0D6501Battlegrounds^000000]"; //================@ Commands========================= bindatcmd "joinbg",strnpcinfo(3)+"::OnAtCmd",0,0; bindatcmd "leavebg",strnpcinfo(3)+"::OnLeave",0,0; bindatcmd "bginfo",strnpcinfo(3)+"::OnInfo",0,0; bindatcmd "bgstart",strnpcinfo(3)+"::OnBgStart",0,0; //=================Add your BG Main NPCs Here======================= setarray .bgevents$, "runewar#main", "fortress#main", "domination#main" ; //================Event Names (in order with NPCS==================== setarray .eventname$, "Rune War Event", "Fortress Battlegrounds", "Domination" ; end; //====================@bgstart================================ OnBgStart: if(#BGCD > gettimetick(2) ) { dispbottom "Starting Battleground Events have a cooldown of 24 Hours per account."; dispbottom "Time left: ^FF0000" + callfunc( "Time2Str", .renttime[ atoi( strnpcinfo(2) ) ] + #BGCD ); end; } //================================================================== //===========Check for on going events============================== //================================================================== for(.@i = 0; .@i < getarraysize(.bgevents$); .@i++) { if(getvariableofnpc(.start, .bgevents$[.@i])) { dispbottom "A battleground event instance for "+.eventname$[.@i]+" is already in progress."; end; } } //================================================================== //================Check for active registration===================== //================================================================== for(.@i = 0; .@i < getarraysize(.bgevents$); .@i++) { if(getvariableofnpc(.register, .bgevents$[.@i])) { dispbottom "An active registration for "+.eventname$[.@i]+" is already in progress."; end; } } //================================================================== mes .n$; mes "Which Battleground Event would you like to start?"; .@menu_item_size = getarraysize(.eventname$); for (.@i = 0; .@i < .@menu_item_size; .@i++) { .@menu$ = .@menu$ + (.@i > 0 ? ":" : "") + .eventname$[.@i]; } .@i = select( .@menu$ ) - 1; donpcevent .@bgevents$[.@i]+"::OnAtcmd"; announce strcharinfo(0)+" has started "+.@bgevents$[.@i]+".",0; sleep 1000; set #BGCD,gettimetick(2) + 86400; end; //================================================================== //===============@joinbg============================================ OnAtCmd: //================================================================== //===========Check for on going events============================== //================================================================== for(.@i = 0; .@i < getarraysize(.bgevents$); .@i++) { if(getvariableofnpc(.start, .bgevents$[.@i])) { dispbottom "A battleground event instance for "+.eventname$[.@i]+" is in progress."; end; } } //================================================================== //================Check for active registration===================== for(.@i = 0; .@i < getarraysize(.bgevents$); .@i++) { if(getvariableofnpc(.register, .bgevents$[.@i])) { set .@regison, .@regison + 1; } } //====================================================================== //================Sorry no active registration right now================ //====================================================================== if(.@regison == 0 && .@eventison == 0) { dispbottom "No battleground registration is active at this time."; end; } //================================================================== //================Job Check========================================= //================================================================== for(.@i = 0; .@i < getarraysize(.bgevents$); .@i++) { if(getvariableofnpc(.register, .bgevents$[.@i])) { for(.@x = 0; .@x < getvariableofnpc( .denyjobsize, .bgevents$[.@i] ); .@x++) { if( Class == getvariableofnpc( .denyjob[.@x], .bgevents$[.@i] )) { dispbottom jobname( Class ) +"s are not allowed for "+.eventname$[.@i]+"."; end; } } } } //================================================================== //================Base Level Check================================== //================================================================== for(.@i = 0; .@i < getarraysize(.bgevents$); .@i++) { if(getvariableofnpc(.register, .bgevents$[.@i])) { if(getvariableofnpc(.minblevel, .bgevents$[.@i]) > BaseLevel) { dispbottom "You are forbidden from joining this event."; dispbottom "You need to have a base level of at least "+getvariableofnpc(.minblevel, .bgevents$[.@i])+" to join "+.eventname$[.@i]+"."; end; } } } //===No Active BGs & there is an active registration in progress======== //====================================================================== //===================Proceed to Registration============================ //====================================================================== while ( .aid[.@i] != getcharid(3) && .@i < .size ) ++.@i; if ( .@i < .size ) { dispbottom "You are already in queue."; dispbottom "Please wait until the game starts."; end; } query_sql("SELECT `last_mac` FROM `login` WHERE `account_id` = '"+getcharid(3)+"'",.@mac$); for ( .@i = 0; .@i < getarraysize(.last_mac$); .@i++) { if ( .@mac$ == .last_mac$[.@i] ) { dispbottom "Dual Clients are not allowed for Battleground Events."; end; } } for(.@i = 0; .@i < getarraysize(.bgevents$); .@i++) { if(getvariableofnpc(.register, .bgevents$[.@i])) { dispbottom "You are now in queue for "+.eventname$[.@i]+"."; dispbottom "Use this time to prepare your items and equipment."; announce strcharinfo(0)+" has joined the "+.eventname$[.@i]+".",bc_blue; } } query_sql("SELECT `last_mac` FROM `login` WHERE `account_id` = '"+getcharid(3)+"'",.last_mac$[ .size++ ]); .aid[ .size++ ] = getcharid(3); for ( .@i = 0; .@i < .size; ++.@i ) { if ( !isloggedin( .aid[.@i] ) ) { deletearray .aid[.@i], 1; deletearray .last_mac$, 1; --.@i; --.size; } } end; //========================@leavebg=========================== //====================================================================== OnLeave: for ( .@i = 0; .@i < .size; ++.@i ) { if ( .aid[.@i] == getcharid(3) ) { deletearray .aid[.@i], 1; deletearray .last_mac$[.@i], 1; --.@i; --.size; dispbottom "You have left the queue for the event."; announce strcharinfo(0) +" has left the queue for the event!",bc_blue; end; } } dispbottom "You are not in queue for any events at this time."; end; //====================================================================== //================On Postpone Event===================================== //====================================================================== OnPostpone: deletearray .aid; deletearray .last_mac$; deletearray .@i; deletearray .size; end; //====================================================================== //================Rune War NPC Event==================================== //====================================================================== OnRuneStart: copyarray getvariableofnpc( .aid_, "runewar#main" ), .aid, .size; donpcevent "runewar#main::OnStart"; deletearray .aid; deletearray .last_mac$; .size = 0; end; //====================================================================== //================Fortress BG NPC Event================================= //====================================================================== OnFortStart: copyarray getvariableofnpc( .aid_, "fortress#main" ), .aid, .size; donpcevent "fortress#main::OnStart"; deletearray .aid; deletearray .last_mac$; .size = 0; end; //====================================================================== //===================Dota Match NPC Event=============================== //====================================================================== OnDominationStart: copyarray getvariableofnpc( .aid_, "domination#main" ), .aid, .size; donpcevent "domination#main::OnStart"; deletearray .aid; deletearray .last_mac$; .size = 0; end; //====================================================================== //================Information on BG Mechanics=========================== //=====================@bginfo========================================== OnInfo: mes .n$; mes "ZeiyanRO offers different battlegrounds event."; mes "I can provide information on the mechanics of each of them."; next; .@menu_item_size = getarraysize(.eventname$); for (.@i = 0; .@i < .@menu_item_size; .@i++) { .@menu$ = .@menu$ + (.@i > 0 ? ":" : "") + .eventname$[.@i]; } .@x = select( .@menu$ ) - 1; for (.@i = 0; .@i < .@menu_item_size; .@i++) { if(.@i == .@x) { mes "[ ^FF0000"+.eventname$[.@i]+"^000000 ]"; mes "Even Duration:^335EFF "+getvariableofnpc(.duration, .bgevents$[.@i])+" minutes^000000"; mes "Minimum Base Level:^335EFF "+getvariableofnpc(.minblevel, .bgevents$[.@i])+"^000000 "; mes "Minimum Participants:^335EFF "+getvariableofnpc(.minplayers, .bgevents$[.@i])+"^000000 "; next; //====================================================================== //================Rune War Mechanics==================================== //====================================================================== if(.@x == 0) { mes "[ ^FF0000"+.eventname$[.@x]+"^000000 ]"; mes "Several Runes will appear in the middle of the map that can grant the following power ups:"; next; mes "[ ^FF0000"+.eventname$[.@x]+"^000000 ]"; mes "^9B00FFInvisibility^000000"; mes "^0028FFDouble Damage^000000"; mes "^FF0000Haste^000000"; mes "^AACC06Illusion^000000"; mes "^06CC21Regeneration^000000"; next; mes "[ ^FF0000"+.eventname$[.@x]+"^000000 ]"; mes "Whichever team has the most kills before the game ends wins."; mes "Logging out and abandoning will have penalties for this event."; close; } //====================================================================== //===================Fortress BG Mechanics============================== //====================================================================== if(.@x == 1) { mes "[ ^FF0000"+.eventname$[.@x]+"^000000 ]"; mes "Each team is spawned in their own mini Fortress that can regenerate their HP/SP."; next; mes "[ ^FF0000"+.eventname$[.@x]+"^000000 ]"; mes "Fortresses will drain the enemy player's HP and grant regeneration to owners."; next; next; mes "[ ^FF0000"+.eventname$[.@x]+"^000000 ]"; mes "Whichever team that has the control of the Main Fortress before the end of the game wins."; mes "Logging out and abandoning will have penalties for this event."; close; } //====================================================================== //===================Domination BG Mechanics============================ //====================================================================== if(.@x == 2) { mes "[ ^FF0000"+.eventname$[.@x]+"^000000 ]"; mes "Capture several flags on the map to gain points more flags captured at a given time will provide more points overtime."; next; mes "[ ^FF0000"+.eventname$[.@x]+"^000000 ]"; mes "Whichever team has the most points before the game ends wins."; mes "Logging out and abandoning will have penalties for this event."; close; } //====================================================================== } } //====================================================================== }
  11. Looking for a script with save point on guild location and kick charachters if they are not in guild.
  12. Just change (rand(50) == 0) to (rand(50) < 5)
  13. Yes, new monsters don't spawn.
  14. Sometimes on 2nd floor after killing all monsters, mini-boss Commander doesn't appear. // Commander 1 2@gl_k,1,1,0 script #ghmemorialmob05 HIDDEN_WARP_NPC,{ end; OnStart: enablenpc instance_npcname("#ghmemorialmob05"); for ( .@i = 1; .@i <= 7; .@i++ ) enablenpc instance_npcname("#ogh_2-" + .@i); end; OnMyMobDead: if (rand(50) == 0) {// can re-spawn mapannounce 'map_name$[1], "Evil Forces are appearing in this area.", bc_map,0xFFFF44,FW_NORMAL,15; killmonster 'map_name$[1], instance_npcname("#ghmemorialmob05") + "::OnBossDead"; .@r = rand(4) * 2; setarray .@coord[0], 41,146, 58,44, 122,148, 131,64; monster 'map_name$[1],.@coord[.@r],.@coord[.@r+1], "1st Commander of Destruction",2473,1, instance_npcname("#ghmemorialmob05") + "::OnBossDead"; } end; OnBossDead: mapannounce 'map_name$[1], "A portal has opened to the east in the central hallway.", bc_map,0xFFFF00; enablenpc instance_npcname("#23 Control"); enablenpc instance_npcname("#23 Control2"); donpcevent instance_npcname("#ghmemorialmob06") + "::OnStart"; disablenpc instance_npcname("#ghmemorialmob05"); for ( .@i = 1; .@i <= 7; .@i++ ) donpcevent instance_npcname("#ogh_2-" + .@i) + "::OnStop"; end; }
  15. First killed SuperNovice by GM, then killed GM by SuperNovice. ID 8 is another character on Supernovice's account. Didn't change ur code. }else if(strcharinfo(3) == "pvp_n_1-5"){ // This is PVP MAP restriction if(getcharid(3)==killedrid) end; set PvPpoints, PvPpoints+.PvP_Point; query_sql( "SELECT * FROM pvp_ranking WHERE `Char_ID` = '"+getcharid(0)+"'", .@CharID, .@Name$, .@Kills, .@Deaths); set ToTalPvPoints , .@Kills + .PvP_Point; if(getcharid(0) == .@CharID){ query_sql("UPDATE `pvp_ranking` SET `Kills` = '"+ToTalPvPoints+"' WHERE `Char_ID` = '"+getcharid(0)+"'"); }else{ query_sql("INSERT INTO `pvp_ranking` (`Char_ID`,`PlayerName`,`Kills`,`Deaths`) VALUES ('"+getcharid(0)+"', '"+strcharinfo(0)+"', '"+.PvP_Point+"', '"+.@Deaths+"')"); } //This is the point system on the player, you can disable this anytime by adding comment " // " dispbottom "Вы убили "+rid2name(killedrid)+" и получили "+.PvP_Point+" очка."; attachrid(killedrid); set PvPpoints, PvPpoints-.PvP_Deductpoint; dispbottom "Вас убил "+rid2name(killerrid)+", Вы потеряли "+.PvP_Deductpoint+" очка."; ////////query for the deaths query_sql( "SELECT `char_id`, `account_id` FROM `char` WHERE `account_id` = '"+getcharid(3)+"' ", .@Cchar_id, .@Aid); query_sql( "SELECT * FROM pvp_ranking WHERE `Char_ID` = '"+.@Cchar_id+"'", .@CharID, .@Name$, .@Kills, .@Deaths); set ToTalDeathPvPoints , .@Deaths + .PvP_Deductpoint; if(.@CharID != .@Cchar_id){ query_sql("INSERT INTO `pvp_ranking` (`Char_ID`,`PlayerName`,`Kills`,`Deaths`) VALUES ('"+.@Cchar_id+"', '"+strcharinfo(0)+"', '0', '"+ToTalDeathPvPoints+"')"); }else{ query_sql("UPDATE pvp_ranking SET Deaths = '"+ToTalDeathPvPoints+"' WHERE `Char_ID` = '"+.@Cchar_id+"'"); } end; } } end; After few kills So after WOE
  16. No emperium breaker statistics on Woe SE. How can i Fix it? Also bug with nicknames. 2180 - another char on account of KeeperSura, but I killed KeeperSura, nickname is true.
  17. Need Expanded Super Novice. Or how can I block bodystyle for them? Solved. Edited atcommands.
  18. May-June version. Try to learn skill Mainframe Restructure (Skill ID# 2266, iRO Name: Remodel Mainframe)
  19. 2139,Flame_Thrower,Flame Thrower,4,20000,,2000,,60,,0,0x00000400,63,2,32,,99,0,1,{},{},{}
  20. Pre-Renewal mechanics. Shield Flame Thrower degrease Def whith Mado.
  21. Set flag 1 to item. I had the same problem with flag 9 (cannot be sold to npc)
×
×
  • Create New...