[FUN/MECH] Rifts (Beta 1.09) - A fully featured MMO plugin (single or multi world support) [766]

Discussion in 'Inactive/Unsupported Plugins' started by lonelydime, May 2, 2011.

  1. Offline

    lonelydime

    [​IMG]

    Rifts - An all in one MMO plugin
    Version: v1.09 Beta

    Upgrade note 1.05: You will need to delete your plugins/Rifts/database.db file to get the pvp world to work. To avoid this, open your database.db file in SQLite Database Browser and in the execute sql tab, enter DROP TABLE CAGES; and restart your server. This should recreate the table and generate new cages (the dark world one never generated, the lightworld one will be in the same place. No need to regenerate the map). I apologize for having to do this, but going forward the need to mess with the database should be minimal.

    Please note this plugin is very BETA. It needs testing and will have bugs. Report the bugs here and I'll work to fix them. It also needs class balancing so if you notice some balancing needed just let me know and I'll do what I can to work with you. Also, this is a beefy plugin. If you cannot run at least 2 worlds at once on your server, it won't work real well for you. Sorry, but I don't have any plans on making this work on a one world server (3 if you want the pvp world).

    Description
    A PvP based RPG plugin that contains everything you need all in one plugin!

    Rifts contains 2 factions, the light and the dark. Each faction has their own world isolated from each other. Each faction has 5 classes:

    Fighter – Front line soldier, utilizes strength to cut down their opponents.
    • Gains 1 str point per level
    • Can use diamond swords
    • Can wear iron armor
    • Cannot use bows
    Defender – A soldier more reliant on defense than offense, great for sieges.
    • Gains 1 def point per level
    • Can use iron swords
    • Can wear diamond armor
    • Cannot use bows
    Mage – A high powered character with little defensive abilities.
    • Gains 1 int point per level, to use magic must be holding a book
    • Can use stone swords
    • Can wear cloth armor
    • Cannot use bows
    Priest – A support unit able to heal themselves as well as their party members.
    • Gains 1 spr point per level, to use magic must be holding a stick
    • Can use stone swords
    • Can wear iron armor
    • Cannot use bows
    Archer – Able to attack from greater distances, uses mana to enhance their arrows.
    • Gains 1 agl point per level
    • Can use stone swords
    • Can wear cloth armor
    • Can use bows
    For every level a character gains, they get 7 stats points, 2 skill points as well as unlocking new skills to buy.

    Each player has 6 attributes they can add their stats to:

    Str (Strength) – How much damage you do with a physical attack (sword, axe, bow).
    Def (Defense) – How much damage is negated due to any type of damage (entity, falling, fire, etc).
    Int (Intelligence) – How strong magic spells are (fireball, heal, etc).
    Spr (Spirit) – How quickly your mana regenerates, your total mana and how often you land attacks (magical only).
    Agl (Agility) – How often you are able to dodge attacks.
    Dex (Dexterity) – How often you land attacks (physical only).

    Rifts
    As time goes on in the game, Rifts appear at a random time (0-5 in game days) for a duration of half an in-game day. They always appear above ground, but can be anywhere on any loaded chunk (including in the middle of an ocean). They will also only appear if both faction worlds have at least 1 chunk loaded (does not require players to be in the world). Rifts allow a faction to teleport to the opposing faction’s world and do whatever they want there. However, when someone dies in the opposing faction’s world, they will be teleported back to their own on respawn.

    PvP
    The third world (pvpworld) has the nether environment. Both factions can access this world by creating a portal. To create a portal, make a standard obsidian portal rectangle and place a sign on any part of the active portal, if the portal is not 'lit' then it won't take. The first line of the sign should say @pvp (if you are in the pvpworld, a portal can be made back to your home world by typing @home as the first line). Once the portal is created, it will link to that faction’s “cage” inside of pvp. The cage is a room made completely of glass and is indestructible. If the opposing faction comes within 30 blocks of the cage, they will receive a warning. If they continue getting close they will instantly die. This is to prevent spawn camping. Experience is greater in pvp than in the normal worlds. Once altars are implemented they will also add incentive to go into pvp.

    Altars
    Altars still need to be added into pvpworld and are still in design phases. What they will be is areas that can be taken over by a faction. The owning faction will gain a benefit by owning the altar. They will also be in charge of defending their alters from attack by the opposing factions. I may add in mobs that only target the opposing faction to help defend, but again, it’s in the design phase.

    SpawnBlocks
    A spawnblock is a temporary spawn location created by the player. Spawnblocks can be created by any user that has enough money to do so by placing a sign on an obsidian block with the first line reading @setspawn. The amount it costs to create one is configurable in the config.yml file. Spawnblocks can hold up to 4 player’s spawn locations, all a user has to do is right click the block to add themselves to it. By default they have a life span of 20 spawns before they are destroyed. Anyone can destroy a spawnblock by breaking the obsidian block that holds the sign. Only the creator of the block can destroy the sign, destroying the spawn block. There is a glowstone on top of the spawnblock that allows for easier detection by those who would want to destroy it. Players spawn on top of the glowstone so hiding it with blocks would create an unsafe spawn for those bound to it. The glowstone is also unbreakable as long as the spawn block is active.

    Commands
    Show Spoiler

    /joinrifts {light/dark} {class name} – allows a player to join a faction as a class
    /level - shows a character his/her current level
    /class – shows a character his/her class. Can be used like /class {user} to find a user’s class.
    /party {player name} – creates a party or adds people to an existing party. Parties have a max size of 4.
    /party leader {player name} – when typed by the current party leader, switches the leader.
    /party invites {public/leader} – changes the invite type from private (leader only invites) to public (any party member can invite).
    /party loot {leader/random} – currently does not do anything.
    /leaveparty – lets a user leave a party they’re in.
    /disbandparty – allows the party leader to disband the party.
    /spawnblock: {uses, bound, leave} – lets a user see uses left on the spawnblock, if they are bound to one or not and finally, allows them to leave the block they are bound to.
    /exp – shows a player their current exp bar.
    /stats – shows a player their current stat levels as well as free stats.
    /stats add # {str/def/spr/int/agl/dex} – allows users to add to their stats using their free stats.
    /skill {add} {skillname} – used like /skill, it will show a user their available skills and mp costs. Used like /skill {skillname} will activate the skill for use (Can also be done by "skill scrolling"). Used like /skill add {skillname} it will add the skill to the user's list of available skills. /skill off turns the active skill off.
    /skills - shows the user the list of skills they can currently "buy" with skill points earned through leveling.
    /status – shows a player their class, level and current mana bar.
    /hide {exp/miss} – will hide the exp or miss notifications.
    /show {exp/miss} – will show the exp or miss notifications.
    /resetcharacter - will delete your character and allow you to rejoin the game as a different faction and class. It will delete all of your stats/levels/exp/etc.

    GM Commands
    /savechars – saves the current online player’s stats and information into the database.
    /setclass {player name} {class name} – allows GMs to switch a player’s class
    /fullheal – fully heals the GMs health and mana bar
    /setlevel: {player name} {level} – allows GMs to change a player’s level.
    /setstats {player name} {stats number} – allows GMs to change the free stats a player has.
    /setskills {player name} {skills number} - allows GMs to change the free skill points a player has.
    /toworld {world name} – teleports a GM between worlds using the world’s name.
    /createrift: - Allows a GM to manually create rifts, however they cannot choose where the rifts are created.

    How to install:
    • Download Rifts.jar
    • Download sqlitejdbc-v056.jar if you do not already have it.
    • Put Rifts.jar in your plugins/ directory.
    • Put sqlitejdbc-v056.jar into your craftbukkit directory.
    • [Optional] Edit plugins/Rifts/config.yml and change them how you'd like (an example can be found in this post if it's your first install, just make the file plugins/Rifts/config.yml).
    • [Optional] If you're using Permissions or GroupManager, use rifts.gm for GMs and spawnblock.create for those that can create spawnblocks.
    • Restart your server.
    • On your first install, it may take some time to generate the pvp cages. Please let it finish or you will need to start over from scratch.
    • If you are upgrading, please read the upgrade notes at the top of the post if there are any!
    Installation Notes:
    • This plugin conflicts heavily with mcmmo, it is not recommended you use both.
    Config Walkthrough:
    Show Spoiler

    spawnblock-iconomy-cost: 0 // How much it costs to create a spawn-block
    spawnblock-uses: 20 // How many times a spawn block can be 'used' before it expires. 1 use per respawn.
    force-autojoin: false // setting this to true will force users to join when they connect to your server. They will be assigned to the faction that has a lower number of members.
    use-pvpmap: true // setting this to false will disable the pvp world. Portals will not connect to it, but rifts will still form. If you're having trouble running all 3 maps, turning this off may help
    use-factions: true // setting this to false will disable lightworld and darkworld. You will only be using the class/standard RPG functions of this plugin. No rifts.
    //These are the seeds your worlds will be created from if you have a seed in mind. Please keep in mind that lightworld and darkworld are created as NORMAL worlds, pvpworld is NETHER.
    lightworld-seed:
    darkworld-seed:
    pvpworld-seed:
    //Changes the name of the world names. It will create a new map with that folder.
    lightworld-name:
    darkworld-name:
    pvpworld-name:
    must-rift-to-play: false

    #Experience - These are a multipliers: 5 is normal, 10 is double exp, etc.
    #Players is for pvp kills, Mobs is for monsters and Blocks is for breaking blocks.
    players: 5
    mobs: 5
    blocks: 5

    #Gold received - This are a multipliers: 5 is normal, 10 is double exp, etc.
    #Gold is only given when mobs or players are killed.gold-received: 5

    Current TODO list - Please read before posting addition suggestions:
    Show Spoiler

    In Progress
    • Examine (not implement) dual class idea - level 60 allows you to continue as another class
    • Balance damage (main focus)
    • Start guild support
    Future Release
    • Create guild support/cities
    • Add unique weapons as rare mob drops to gain better stats/skills in those
    • Add crafting skills that are levelable
    • Add in GM/Guild leader quest signs.
    • Add the class summoner and rogue/assassin.
    • Add altars to pvp.
    • Possible addition of chainmail armor for archer’s use.
    • Implement a PvP ranking system.

    FAQ - Please read this before requesting a change (not a bug):
    Show Spoiler

    Q: Can this be made to only run on one world instead of two/three?
    A: Yes!

    Q: I miss mobs a lot/do no damage. Why?
    A: As you level, mobs also level. If you're not keeping up with your dexterity and strength stats, you'll quickly notice that you won't be doing much to kill them. Always maintain your dexterity and strength (spirit if you're a priest or mage). If you've used the /changelevel gm command, this will also cause this unless you also balance your stats.

    Q: I feel my stats are fine, but I'm still missing too much or not doing enough damage. Can't anything be done?
    A: Post your level and stats. That way I can better balance the game. I know balancing needs to be done, but I can't do that unless I know how you're using stats and what needs to be adjusted.

    Changelog:

    Version Beta 1.09
    • Added option to disallow unregistered users from building/destroying.
    • Added check for blockbreak, if it's cancelled via another plugin don't add exp.
    • Fixed glowing redstone gives no exp
    • Fixed Portals not loading on server restart
    • Fixed obsidian experience
    • Fixed joinrifts message showing factions when usefactions = false
    • Self skill now heals 1 if spr is too low and reduces mana
    • Readded skill list when /skill is typed with no parameters
    • Added riftportal.create (permissions/groupmanager) for portal creation
    • increase TNT Arrow damage
    • Lowered priest healing skills by 5 mana.
    • Changed healing spells to use Spirit instead of Int
    Show Spoiler

    Version Beta 1.08
    • Minimized the config file by using multipliers instead of individual instance experience values
    • Fixed aggressive mobs not dying in the sunlight.
    • Better balanced mob damage.
    • Fixed impale for archers.
    • Removed weapon/armor restrictions on non-rift worlds.
    • Removed the warning when a player is near.
    • Started guild code, more to come.
    Version Beta 1.07
    • Fixed meteor to not be resource heavy. Moves faster, does more damage.
    • Added warnings if the opposing faction is nearby (unless they're in sneak mode)
    • Fixed Fall (all natural) damage using defense to lessen the damage.
    • Made self and taunt a repeatable spell that can be accessed through cycle
    • Added damage to entity hit with blast
    • Made armor more effective in decreasing damage based on level
    • Made weapons more effective in increasing damage based on level
    • Changed Mages to use books to prevent griefers, Priests still use sticks.
    • Fixed cycling through mutliple skills to the highest level skill only.
    • Turned off friendly fire for single server Rifts
    • Allowed GMs to use /toworld without being killed for spawn camping.
    • Fixed rift creation algorithm
    Version Beta 1.06
    • Added support for single world servers
    Version Beta 1.05
    • Fixed armor type restrictions
    • Fixed mana going negative
    • Fixed database locking issue again, now works as one connection
    • Fixed cage generation for pvp maps (the player_move error)
    • Increases exp reqs - 34 million for level 60. Wowzers!
    Version Beta 1.04
    • Seperate skill level from the name
    • Find/fix database lock issue.
    • Fixed left clicking with nothing in your hand throwing a null pointer error.
    • Fixed a display problem with /savechars
    • Fixed level 2&3 skills showing in /skills if you already have it.
    • Fixed being able to add level 3 skills multiple times
    • Fixed skill names having to be case sensitive.
    • Made rifts spawn at least 60 blocks away from the world's spawn to stop spawn camping kills
    • Fixed entangle to destroy webs after 10 seconds, made them unbreakable
    Version Beta 1.03
    • Renamed cloth armor to leather armor.
    • Made eating food heal your mana.
    • Add mana per level
    • Converted all character integers to more appropriate data types.
    • Added /statshelp as part of the tutorial.
    • Added a basic tutorial once you join rifts.
    • Created the level cap 60
    • Fixed damages from mobs, added more damage to mobs.
    Version Beta 1.02
    • Made world names customizable (change folder names).
    • Added some tutorial lines for commands when the commands become relavent.
    • Cleaned up /status, /skills, /skilllist, skill cycle displays. Add more info to /status.
    • Fixed pvpworld insta-kill on enter
    • Re-add drops to mobs killed by setHealth()
    • Fixed heal overhealing
    • Fixed Whirl not being able to be used because it reports mana is too low.
    • Updated iConomy support to iConomy 5
    • Fixed /resetcharacter printing out the command when entered.
    • Turned friendly fire back off
    • Fixed joining rifts if auto-join is true.
    • Changed changelevel/changeclass to setlevel/setclass
    • Fixed /joinrifts teleport teleporting you into blocks and respawn into blocks and /toworld into blocks.
    • Fixed miss and experience notifications being off by default.
    • Lowered the chances of attacks missing/being dodged
    • Remove rifts on disable.
    Version Beta 1.01
    • Fixed rift/portal teleporting to get around minecraft's fly/kick feature.
    • Fixed PvP cage glowstone being able to be destroyed.
    • Added "scrolling" through skills by left/right clicking with your weapon in hand. (If you are a fighter, right click air with a sword, defender use an axe. Mage LEFT click air with a stick, priest do the same, archer use a bow).
    Version Beta 1.0
    • Public beta release.
     
    Fallen_Advent, Jabbic, Juze and 5 others like this.
  2. Offline

    Jany95

    nice bugfixes will give it a last chance
     
  3. Offline

    saumonzx

    Asking again : How do you heal yourself ? And is there a way to recover mana faster, it is too slow :/
    I'm a priest with 50 spr and 25 int, and my friend is mage, and we find it too slow. Maybe put a way to recover mana ? Like a mana regen pool , by standing in water for more then 5 sec without attacking ?
    really need to know this for my new pvp event tommorow :/ And my goal is not to spam :s
     
  4. Offline

    larsy1995

    Three suggestions. Could you like add a Gold, silver, copper currency system? That would be awesome. oh, and maybe a compatibiliy patch with Graveyard? When i use both rift and graveyards I get a internal server error when I try to respawn(may not be this plugin, but it worked before i added it). And my faction home (/f home) in Factions does not work either with rift.
     
  5. Offline

    Saul R.W

    The re-set mining exploit is bad because players keep doing it.
    A player playing as priest was able to wear Diamond armor.
    Another player got double messages about exp after killing pig and got both exp counts. So instead of 30 he got 60.
     
  6. Offline

    lonelydime

    I've been getting busier and busier with my life as of late and no longer have the free time I need to develop or maintain this plugin. Anyone that wants to take it over is more than welcome to, the latest source can be found here. It's been fun!
     
  7. Offline

    Saul R.W

    sad to here that. I really wish I was a good java coder, sadly I am just learning.

    I will look at code to learn from it and see what stuff I could change or edit.

    Thanks for the work.
     
  8. Offline

    GehennaGirl

    Whoa. I devoted my entire server to your plugin, up-heaving their way of life on mcMMO and everything else so that I could implement in it's entirety your great piece of work. I am so disappointed to see you leave.

    My server gets 35-45 people at peak daily and averages probably around 20-24, so it has really been a nice test bed for your plugin. Many many many people who have dedicated their virtual living in Minecraft and working under the MMO you created servers all over will be very sad.

    I do hope someone picks it up, and I appreciate you for what you took the time to do thus far.

    Good luck.

    minecraft.sweetcraft.me
     
  9. Offline

    transient

    Sorry to see you go as I was really looking forward to sticking this on my server. But life comes first!
     
  10. Offline

    OBudista

    I will later check the code (probably tomorrow) and check if it is worth to invest my time giving continuity to this plugin. Unless someone else wants to take a step forward.

    I would probably split the plugin in several Jars, a core one and other addons like skill/leveling, chat, rift teleport, etc, and make it "plug and play": you add the Jar, and the functionality enables. A single one including everything is a bit restrictive to most servers.

    Also, lots of configurations (including spells/skills).
     
  11. Offline

    GehennaGirl

    My resident base is damn dedicated to the server it's really a major tear jerker.

    Thanks a lot Obu, you are great for even considering the task, whether or not you choose to undertake it, I appreciate you looking.
    -sweet
     
  12. Offline

    transient

    Aye, if you can take it on, it'd be much appreciated by many people here!
     
  13. Offline

    SolarLunar

    i have a suggestion D; since i now cant use other party plugins can you make a party chat? ._.
     
  14. Offline

    GehennaGirl

    Wow, i really don't know what to say... but code like this in the jar...you be the judge:

    Code:
    boolean isGM = false;
     if (player.getName().matches("lonelydime")) {
    isGM = true;
    }
    
    Where i come from, we call that a "back door", as it is not even in any config file to remove, so the coder basically joins a server and can disrupt game mechanics immediately by changing levels of players, worlds, giving information, and more. And that is beyond a gross assumption and abuse of power. Why put in the code to have more than what would be given to you on a server that you are not a member simply because you joined it and the admin has no idea of this. Oh well.

    Son, i am disappoint. :confused:
     
  15. Offline

    OBudista

    So.

    As a test I compiled the code and made it so that it's now possible to change world types: NORMAL, NETHER.

    http://dl.dropbox.com/u/2503017/obu/Rifts/Rifts.jar

    Next steps would be to create a config file for skills/spells, improve code in some places and add a separate jar for rifts chat where you have:
    /channel [global/world/local]
    /global <msg> (/g)
    /world <msg> (/wo)
    /local <msg> (/l)
    /gme <action>
    /wnot me <action>
    /lme <action>
    /w <player> <msg> (/w <player> <msg>)
    /wpset <player> (sets the player to /wp)
    /wp <msg> (sends a whisper to a player)

    edit: I've removed the if (player.name == whoever) gm = true code. :p
     
    Saul R.W, Sage9234 and GehennaGirl like this.
  16. Offline

    larsy1995

    I hope you will continue on this and update it for the upcoming 1.6. My server heavily relies on this plugin as i removed my old server configuration and setup for this. Keep up the work with this.
    If it wanst for the fact that i am still learning java, i would have continued on it myself.
     
  17. Offline

    Saul R.W

    larsy1995 it would help a lot if you added your server ip so the new developer could enter and test out balance and stuff. Just saying you have one and not posting it doesn't help much.

    And yeah I saw the make me GM if I join part of code. Im reading up on the code to learn about it and about coding in particular.

    Want to make mages use gold armor.
     
    Sage9234 likes this.
  18. Offline

    GehennaGirl

    Obudista has my live server which he is a member of, and my test server to use at will.
     
  19. Offline

    larsy1995

    Right now the server may not be up for a week or two becuase the friend i am borrowing the pc from wants it back because he didnt like the fact that I have the Rifts plugin installed. I am getting new hardware soon so. Most of my members have left for now, so it is pretty much empty. I am having a grand reopening in July.
    IP: mcrenegades.net
     
  20. Offline

    OBudista

    Made a side plugin named RiftsChat. It is optional and allows for world, local chat and whisper.

    http://dl.dropbox.com/u/2503017/obu/Rifts/RiftsChat.jar

    Command List:
    /wo <msg> - Sends a message to the world
    /wme <action> - Sends an action to the world
    /l <msg> - Sends a message to local (100 radius)
    /lme <action> - Sends an action to the local (100 radius)
    /wwho - Lists people who are listening to the world chat.
    /w <player> <msg> - Sends a whisper to a player.
    /wpset <player> - Locks a player for repeated whispers (using /wp)
    /wp <msg> - Sends a whisper to the locked player.

    After checking both the code and the way the portals are working right now, I'm going to make the following changes:
    1. Remove cages. (keep spawn protection)
    2. Ensure portals appear in the open and not inside some mountain or hill like they do right now.
    3. A @Home portal will be automatically created on the other side allowing your players to come and go.
    4. The area surrounding the @Home portal will be a build free zone (except for the portal itself that must be first removed from the home world and thus making the pvp counterpart disappear).
    5. Ensure portals teleport you to the correct world.
    All portal functionality will be remade into a RiftsPortals.jar file which is going to be optional, as server admins might want to use other plugins for traveling between worlds.

    After this I'll probably check on the rifts functionality, party functionality, and then remove grinding from the combat. Meaning that you WILL be able to hit mobs and other players using your fists and weapons, you simply don't get any further bonuses. This will avoid forcing users from having to work hard to do something they can do in any other server.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 14, 2016
    Saul R.W likes this.
  21. Offline

    DarKMaKa

    Your doing great!
    Keep going!
     
  22. Offline

    Birdman33573

    Why dont you make your own thread so we dont have to go on a scavenging hunt to find new updates =p
     
  23. Offline

    OBudista

    I'll probably do that as soon as I finish this portal fix/version and make it 1.6 compatible.
     
  24. Offline

    Saul R.W

    [FUN/MECH] Rifts of OBudista
    Almost Fully Modular MMO plugin
    Single/Multi World Support
    New Bukkit Version

    Then we go blah blah this is awesome!
    This is awesome by the way. no lies. BUt you can take out the fully featured mmo part since the plugin was barely full.
     
  25. Offline

    Pencil

    You sir, are awesome!

    Here you go, take that diamond :) *diamond*
     
  26. Offline

    transient

    Thank you so much for taking this on!!

    At this point (I know you're still getting acquainted with the code), do you think you'll be implementing the guild/city protection system? I'm mostly curious to see if I can implement the plugin and continue to use towny without guilds if they won't have block protection.

    Thanks again!
     
  27. Offline

    Saul R.W

    Don't start telling him what to do, that happened with the other dev and he ran away. I also made the mistake of telling him what to do and not enough of thanks for this.

    For now a big thank you for continuing the development of this plugin is enough.
     
  28. Offline

    transient

    Sorry, it may have come off as a demand but my intent was not to ask for it to be done, but to ask if it was still within the scope/vision of the plugin.
     
  29. Offline

    OBudista

    not sure about guilds, but towns sure, it's kinda essential for protection/organization.

    I'm continuing to work on the portal module. You can already create/destroy and use the portals. All I need now is to add the spawn protection, protect the pvpworld side of the portal and add permissions.

    I expect to have the new portal module ready tomorrow or so.

    PS: No need to thank me 9999 times or be afraid from asking me stuff. Chances are that I'll just disregard them if I don't agree with them anyway. And if I do agree, they are more than welcome.
     
  30. Offline

    larsy1995

    You could check out some of this guys code for some inspiration if you want to add guilds later: here.
    And there is that bug that when you use the graveyard plugin which i think is a essential for MMO RP(since you dont spawn at spawn but the closest graveyard) The bug is that sometimes when you die the rifts plugin tries to send you to spawn and the graveyard plugin tries toi send you to the closest graveyard, which ends in a internal server error.
     
  31. Offline

    Pencil

    From me looking at the code a while back, didn't he already start to implement guilds/factions? :p
     

Share This Page