Jump to content

Ninja

Members
  • Posts

    513
  • Joined

  • Last visited

  • Days Won

    5

Everything posted by Ninja

  1. Version 1.6

    392 downloads

    v1.5 by Me - Will be tagged as stable if noone complains about any bug - Fixed the "fatal error: player not attached problem" caused by @MyTeam - Participant will be taken as a casualty if he logs out when the session is on-going - Added mapflags and can be modified through .@mapflags - Tested and results were without errors, bugs, and exploits. v1.4 by Me - Will be tagged as stable if noone complains about any bug - Thoroughly fixed a lot of logical and semantic errors - Optimized a lot of codes - Fixed a lot of exploits and bugs - Made it functionally working - Demo video uploaded v1.3 by Me - Quick fix for event not being able to function correctly because of mishandled variables - Optimized OnEventStart algorithm - Optimized and Improved Logged in/Logged Off Checking [suggested by PandaLovesHamster] - Takes off logged off players from the roster instead of resetting the whole recruitment process [Response to the question of PandaLovesHamster] - Took off OnFailLack - Added OnPCLoginEvent and OnPCLogoutEvent - Added GM OnAtCommand Safe failcheck [suggested by Litro Endemic] v1.2 by Me - Renamed to "PvP Recruiter" - Changed @4v4 to @pvprecruitment <on|off> - Added flexibility on number of parcipants (set .NumPlayers) - Fixed and improved free slot checking algorithm - Fixed and improved registration checking and team transfer algorithm - Added Player Variable @MyTeam for easier checkings: [0] Team number ( 0 for No Team Yet | 1 for Odin | 2 for Freya) [1] Slot number of his team - Fixed OnClear event - Fixed Menu not closing on registration - Added a variable to indicate if the session is on-going (set .started) - Check if the event is already running at the beginning v1.1 by PandaLovesHamster http://pastebin.com/Nya7kzsQ - Player Logoff Detection - Team change on recruitment stage v1.0 by Me - Rewrote the whole script - Multiple registration detection - Free slot detection - Warp in and warp out function - Rewards per kill - Rewards for round win - Search for "getitem" to change rewards and their quantity - GM Commands: @4v4 on ~ to start | @4v4 off ~ to interrupt at anytime - Broadcast message on registering when noone else has or during GM atcommand trigger Credits: jTynne for the original script that this was based on and to PandaLovesHamster for saving my file XD PandaLovesHamster for suggestions making addons Litro Endemic for suggestions
    Free
  2. Version 1.2

    910 downloads

    Features 1. 5-minute wait time 2. 5 rounds of 30 seconds each 3. Mechanics: Win conditions: only 1 player left or all rounds finished # of bombrings spawned: if players <= 20: 3 * #of players if players > 20: 60 Frequency of bombring spawn: Round 1: every 4 seconds Round 2: every 3 seconds Round 3: every 2 seconds Round 4: every 1.5 seconds Round 5: every 1 second 4. rewards: (configurable, just search for "CASHPOINTS") winner(s): 250 CASHPOINTS + configurable item non-winners: 100 CASHPOINTS 5. GM commands: @enablebombring to start @disablebombring to interrupt
    Free
  3. Version 1.1

    513 downloads

    Features - A reused script with some modifications and addons - Mechanics: 30-minute run, kill all the way, reward the top 3 contenders - No need to register to the PVP Ladder to be able to record PVP stats and see PVP Broadcasts - No need to logout everytime the PVP Ladder is reset - Reward system: - Top 3 contenders will be rewarded, just find "announce", "OnGMStop" and "$pvpeventreward" to change stuff as needed - Event runs for 30 minutes - Just find "OnTimer" and change the numbers appended to it as needed
    Free
  4. Version 1.3

    734 downloads

    A Rework of Euphy's Devil Square Event Changelog v1.3 - Fixed Map-server Error about waitingroom v1.2 - No. of monsters fixed to 3 * No of players inside Devil Square- Changed Monster level range per round to compensate for renewal monsters - Round 1: Monster Lv60 ~ 70 - Round 2: Monster Lv70 ~ 75 - Round 3: Monster Lv75 ~ 80 - MVP Round: if players <= 5: MVP levels from 1 ~ 120, else: 100 ~ 120 - These levels can be changed by searching for "query_sql" and changing the numbers in the lines- Added a ([ (1 / (2 + (n*5))) *100]% chance to spawn another MVP after killing it, where n is the number of MVP rounds so far - example: after killing the 1st MVP there is a [(1 / (2 + (0*5))) *100] = 50 % chance to spawn another MVP after killing the 2nd MVP there is a [(1 / (2 + (1*5))) *100] = 14.29 % chance to spawn another MVPA short summary for 10 rounds:http://imgur.com/uChQv0r- This chance can be changed by searching for "set $MVPDefeat" and changing the number in the line - Spawned Treasure Chests now considers all kinds of spawnable Treasure Chests from mob_db_re v1.1 - changed Round 3 Player-to-Monster-Ratio to 1:3x3 (3 sets of 3 instead of 3 sets of 5)- fixed problem about not being able to enter Devil Square during Auto Event Trigger v1.0 Initial Features: - Random selection of mobs through SQL query - Round 1: Monster Lv40 ~ 50 - Round 2: Monster Lv51 ~ 55 - Round 3: Monster Lv55 ~ 60 - MVP Round: MVP LV60 ~ 70- Takes into consideration on how many players are inside the Devil Square - Round 1: 3 x No. of players - Round 2: 3 x No. of players - Round 3: 3 x No. of players //change - MVP Round: 1 MVP- 1 minute wait time after each wave- 3 rounds of normal monsters- 1 MVP round after the 3 rounds of normal monsters- 1% chance of summoning another MVP thereafter- separated script for NPCs and event
    Free
  5. try to add breaks after each case block case 1: break; case 2: break;
  6. I noticed that you're using two types of variables for "j." One is a permanent npc variable ".j" and a temporary one, ".@j" Plus you did not set the initial value of your variable for which I added an "OnInit" block. Try this.Not tested. prontera,150,150,0 script display_test 112,{ switch(select("~ Change Display:~ Change to Original")) { case 1: .j++; //setnpcdisplay("<npc name>", "<display name>", <class id>) if ((.j % 2) == 0) setnpcdisplay(strnpcinfo(0), "Display "+.j, 113); else setnpcdisplay(strnpcinfo(0), "Display "+.j, 114); npctalk "Display sprite and name changed strnpcinfo(0): "+strnpcinfo(0); end; case 2: .j = 0; npctalk "Display reverted to origin"; setnpcdisplay(strnpcinfo(0), "display_test", 112); end; } OnInit: set .j, 0; end; }
  7. Did you do what I said from the previous post? // edit v1.5 Released - Will be tagged as stable if noone complains about any bug - Fixed the "fatal error: player not attached problem" caused by @MyTeam - Participant will be taken as a casualty if he logs out when the session is on-going - Added mapflags and can be modified through .@mapflags - Tested and results were without errors, bugs, and exploits.
  8. Sorry but I disagree let me try out something and I'll show it to you when i get done. It definitely needs some 3rd party stuff tho
  9. I can help you out on the testing part. I'm actually a software tester in my work
  10. I think it is possible both with or without a 3rd party app.
  11. I think that is because.of the algorithm used for checking online/offline participants which is through attachrid/detachrid. I'll try to fix it when I get home later. You can comment out that portion of the code and still make it work but the cons is that it will start with ot without checking if both sides have all their players online//edit Take off all the 'detachrid' in the code. That should fix it.
  12. Compiled with no errors but not tested. use @gotm in-game non-gm chars: direct warp gm chars:brings up gm menu credits: Emistry for map validation - script GOTM -1,{ OnInit: bindatcmd "@gotm", strnpcinfo(0)+"::OnAtCommand"; set .gmlvl, 99; //gm level access end; OnAtCommand: if(getgroupid() < .gmlvl) { if ($gotm$ == "" || getmapusers($gotm$) < 0 ){ dispbottom "No Guild of the Month Map has been set yet."; end; } else { warpchar $gotm$,$gotmxy[0],$gotmxy[1],getcharid(0); } } else if (getgroupid() >= .gmlvl) { set .end, 0; while (!.end){ mes "[Guild of the Month]"; mes "Hi, What can I do for you today?"; Switch(Select("Warp to GOTM:Set GOTM Coordinates:Cancel")){ Case 1: if ($gotm$ == "" || getmapusers($gotm$) < 0){ mes "No Guild of the Month Map has been set yet."; } else { warpchar $gotm$,$gotmxy[0],$gotmxy[1],getcharid(0); set .end, 1; } break; Case 2: mes "[Guild of the Month]"; mes "Please enter the map's name"; input $gotm$; if (getmapusers($gotm$) < 0){ mes "Sorry, the map you entered is invalid."; } else { mes "Enter the X Coordinate"; input $gotmxy[0]; mes "Enter the Y Coordinate"; input $gotmxy[1]; next; mes "[Guild of the Month]"; mes "Guild of the Month Map successfully set."; mes $gotm$+": "+$gotmxy[0]+","+$gotmxy[1]; } break; Default: set .end,1; break; } next; } } end; } //edit changed something. please retry. added screenshots //edit Didn't work for him, he's using 3ceam.
  13. how do you know what is the guild of the month castle? do you have a script that sets this? I need to know how it is set so I can help you.
  14. Added to Currently Working At list, Thanks 4. Player will not be able to kill a player on the same team [Suggested by Litro Endemic] 5. Safe failcheck OnAtCommand [Suggested by Litro Endemic] v1.3 Released Changelog: v1.4 by Me - Will be tagged as stable if noone complains about any bug - Thoroughly fixed a lot of logical and semantic errors - Optimized a lot of codes - Fixed a lot of exploits and bugs - Made it functionally working - Demo video uploaded
  15. crappy internet :|

  16. Thanks for that, I was actually fixing it up before I read yours and adapted your idea #1. and by the way, I used cleararray instead of deletearray. updated to v1.2 please see the first post
  17. V1.2 - {added map flags} to fix an exploit where people can get the rewards by getting in the room then logs out and waits for the event to finish then logs in to claim event prize [10/01/2015] Integrated into Stolao's auto event npc
  18. Will look at this when I get inside the office. Awesome addons And oh, please post your txt file
  19. That's weird? anyway, I'll reupload it once I get home. Sorry for that.
  20. 1. open mmo.h and set #PACKETVER 20120410 then recompile your server 2. it is not recommended to disable Packet obfuscation, it serves as a protection from hackers and botters 3. You sound like you're shouting.
  21. make sure that you have set your #PACKETVER correctly before compiling the server.
  22. Tested and working. Made the NPC walk towards the coordinates every 6 seconds. Just change the OnTimerXXXXXX to suit your needs. izlude,128,106,4 script GM Online Lists 811,{ mes "Staffs Online Lists : ^FF0000"+getarraysize( .GM_Name$ )+"^000000 Staffs"; mes "^0000FF_____________________________^000000"; for( set .@i,0; .@i < getarraysize( .GM_Name$ ) ; set .@i,.@i + 1 ){ getmapxy( .Map$,.x,.y,0,.GM_Name$[.@i] ); mes "[ Lv ^63D1F4"+.GM_Level[.@i]+"^000000 ] ^FF0000@ ^0000FF"+.GM_Name$[.@i]+"^000000"; mes "Location : ^0000FF"+.Map$+"^000000"; mes "^0000FF_____________________________^000000"; } close; OnPCLoginEvent: if( getgmlevel() < .MinGMLevel ) end; set .GM_Name$[ getarraysize( .GM_Name$ ) ],strcharinfo(0); set .GM_Level[ getarraysize( .GM_Level ) ],getgmlevel(); end; OnPCLogoutEvent: if( getgmlevel() < .MinGMLevel ) end; for( set .@i,0; .@i < getarraysize( .GM_Name$ ) ; set .@i,.@i + 1 ){ if( strcharinfo(0) != .GM_Name$[.@i] ) continue; deletearray .GM_Name$[.@i],1; deletearray .GM_Level[.@i],1; end; } end; OnInit: set .MinGMLevel,40; // Min. GM Level to Show in Online Lists set .pos, 1; // starting at position 1 initnpctimer; end; OnTimer6000: //number of milliseconds that this NPC will stay at certain coordinate Switch(.pos){ case 1: npcwalkto 128,106; set .pos, 2; break; case 2: npcwalkto 115,114; set .pos, 3; break; case 3: npcwalkto 128,117; set .pos, 4; break; case 4: npcwalkto 139,114; set .pos, 5; break; case 5: npcwalkto 128,106; set .pos, 1; break; } initnpctimer; end; } yeah thought of that but used npcwalkto instead. thakns for the suggestion
  23. Please give this a try. Compiled but not tested. izlude,128,106,4 script GM Online Lists 811,{ mes "Staffs Online Lists : ^FF0000"+getarraysize( .GM_Name$ )+"^000000 Staffs"; mes "^0000FF_____________________________^000000"; for( set .@i,0; .@i < getarraysize( .GM_Name$ ) ; set .@i,.@i + 1 ){ getmapxy( .Map$,.x,.y,0,.GM_Name$[.@i] ); mes "[ Lv ^63D1F4"+.GM_Level[.@i]+"^000000 ] ^FF0000@ ^0000FF"+.GM_Name$[.@i]+"^000000"; mes "Location : ^0000FF"+.Map$+"^000000"; mes "^0000FF_____________________________^000000"; } close; OnPCLoginEvent: if( getgmlevel() < .MinGMLevel ) end; set .GM_Name$[ getarraysize( .GM_Name$ ) ],strcharinfo(0); set .GM_Level[ getarraysize( .GM_Level ) ],getgmlevel(); end; OnPCLogoutEvent: if( getgmlevel() < .MinGMLevel ) end; for( set .@i,0; .@i < getarraysize( .GM_Name$ ) ; set .@i,.@i + 1 ){ if( strcharinfo(0) != .GM_Name$[.@i] ) continue; deletearray .GM_Name$[.@i],1; deletearray .GM_Level[.@i],1; end; } end; OnInit: set .MinGMLevel,40; // Min. GM Level to Show in Online Lists set .pos, 1; // starting at position 1 initnpctimer; end; OnTimer600000: //number of milliseconds that this NPC will stay at certain coordinate Switch(.pos){ case 1: movenpc "GM Online Lists",128,106; set .pos, 2; break; case 2: movenpc "GM Online Lists",115,114; set .pos, 3; break; case 3: movenpc "GM Online Lists",128,117; set .pos, 4; break; case 4: movenpc "GM Online Lists",139,114; set .pos, 5; break; case 5: movenpc "GM Online Lists",128,106; set .pos, 1; break; } initnpctimer; end; }
×
×
  • Create New...