Thread: Interface Editor (Open-source)

Page 3 of 7 FirstFirst 12345 ... LastLast
Results 21 to 30 of 65
  1. #21  
    Renown Programmer
    Greg's Avatar
    Join Date
    Jun 2010
    Posts
    1,179
    Thanks given
    260
    Thanks received
    1,012
    Rep Power
    2003
    Quote Originally Posted by Snow Cat123 View Post
    Yeah but I was hoping I could move them about and have different gaps because I wanted to move the equipment slots around but I can't seem to do it
    Hmm yeah true, the cape, arrow and aura slots have a different offset to the rest of the group so it's possible
    Attached imageAttached image
    Reply With Quote  
     

  2. #22  
    Community Veteran

    mige5's Avatar
    Join Date
    Aug 2008
    Posts
    5,528
    Thanks given
    573
    Thanks received
    1,410
    Rep Power
    2114
    Plans on adding some sort of easy way to add spells/prayers/quests?

    One of the reasons I didnt bother making UI for my editor, was that I was pretty sure it would just be slower to achieve the same result..
    Code:
    Editor.addNewQuest("Way of the Necromancer", false);
    Code:
    RSInterface i = Editor.addNewMainInterface();
    		Editor.createSpellBook(new SpellBook(5, 7, new Spell[]{
    				Spell.InventoryItemSpell(i.id, "Reanimate Goblin", "Reanimates an ensouled corpse.", 3, new SpellReq[]{new SpellReq(Runes.NATURE, 1), new SpellReq(Runes.BODY, 2)}, "magicoff,50", "magicon,50"),
    				Spell.TeleportSpell(i.id, "Lumbridge Teleport", "Teleports you to Lumbridge.", 6, new SpellReq[]{new SpellReq(Runes.LAW, 1), new SpellReq(Runes.EARTH, 2)}, "magicoff,72", "magicon,72"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Monkey", "Reanimates an ensouled corpse.", 7, new SpellReq[]{new SpellReq(Runes.NATURE, 1), new SpellReq(Runes.BODY, 3)}, "magicoff,51", "magicon,51"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Imp", "Reanimates an ensouled corpse.", 12, new SpellReq[]{new SpellReq(Runes.NATURE, 2), new SpellReq(Runes.BODY, 3)}, "magicoff,52", "magicon,52"),
    				Spell.TeleportSpell(i.id, "Draynor Teleport", "Teleports you to Draynor.", 17, new SpellReq[]{new SpellReq(Runes.LAW, 1), new SpellReq(Runes.EARTH, 1), new SpellReq(Runes.WATER, 1)}, "magicoff,73", "magicon,73"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Scorpion", "Reanimates an ensouled corpse.", 19, new SpellReq[]{new SpellReq(Runes.SOUL, 1), new SpellReq(Runes.NATURE, 1)}, "magicoff,54", "magicon,54"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Bear", "Reanimates an ensouled corpse.", 21, new SpellReq[]{new SpellReq(Runes.SOUL, 1), new SpellReq(Runes.NATURE, 1), new SpellReq(Runes.BODY, 1)}, "magicoff,55", "magicon,55"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Unicorn", "Reanimates an ensouled corpse.", 22, new SpellReq[]{new SpellReq(Runes.SOUL, 1), new SpellReq(Runes.NATURE, 1), new SpellReq(Runes.BODY, 2)}, "magicoff,56", "magicon,56"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Dog", "Reanimates an ensouled corpse.", 26, new SpellReq[]{new SpellReq(Runes.SOUL, 1), new SpellReq(Runes.NATURE, 2), new SpellReq(Runes.BODY, 2)}, "magicoff,57", "magicon,57"),
    				Spell.TeleportSpell(i.id, "Mind Altar Teleport", "Teleports you to the Mind altar.", 28, new SpellReq[]{new SpellReq(Runes.LAW, 1), new SpellReq(Runes.MIND, 2)}, "magicoff,74", "magicon,74"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Ch. Druid", "Reanimates an ensouled corpse.", 30, new SpellReq[]{new SpellReq(Runes.SOUL, 1), new SpellReq(Runes.NATURE, 2), new SpellReq(Runes.BODY, 3)}, "magicoff,58", "magicon,58"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Giant", "Reanimates an ensouled corpse.", 37, new SpellReq[]{new SpellReq(Runes.SOUL, 1), new SpellReq(Runes.NATURE, 2), new SpellReq(Runes.BODY, 4)}, "magicoff,59", "magicon,59"),
    				Spell.TeleportSpell(i.id, "Salve Grvyrd Teleport", "Teleports you to Salve grv. yard.", 40, new SpellReq[]{new SpellReq(Runes.LAW, 1), new SpellReq(Runes.SOUL, 2)}, "magicoff,75", "magicon,75"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Ogre", "Reanimates an ensouled corpse.", 40, new SpellReq[]{new SpellReq(Runes.SOUL, 1), new SpellReq(Runes.NATURE, 3), new SpellReq(Runes.BODY, 4)}, "magicoff,60", "magicon,60"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Elf", "Reanimates an ensouled corpse.", 43, new SpellReq[]{new SpellReq(Runes.SOUL, 2), new SpellReq(Runes.NATURE, 2), new SpellReq(Runes.BODY, 2)}, "magicoff,61", "magicon,61"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Troll", "Reanimates an ensouled corpse.", 46, new SpellReq[]{new SpellReq(Runes.SOUL, 2), new SpellReq(Runes.NATURE, 2), new SpellReq(Runes.BODY, 3)}, "magicoff,62", "magicon,62"),
    				Spell.TeleportSpell(i.id, "Fnk. Castle Teleport", "Teleports you to Fenkens. castle.", 48, new SpellReq[]{new SpellReq(Runes.LAW, 1), new SpellReq(Runes.SOUL, 1), new SpellReq(Runes.EARTH, 1)}, "magicoff,76", "magicon,76"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Kalphite", "Reanimates an ensouled corpse.", 57, new SpellReq[]{new SpellReq(Runes.SOUL, 2), new SpellReq(Runes.NATURE, 3), new SpellReq(Runes.BODY, 4)}, "magicoff,64", "magicon,64"),
    				Spell.TeleportSpell(i.id, "West Ardgn. Teleport", "Teleports you to West Ardougne.", 61, new SpellReq[]{new SpellReq(Runes.LAW, 2), new SpellReq(Runes.SOUL, 2)}, "magicoff,77", "magicon,77"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Dagannoth", "Reanimates an ensouled corpse.", 62, new SpellReq[]{new SpellReq(Runes.SOUL, 3), new SpellReq(Runes.NATURE, 3), new SpellReq(Runes.BODY, 4)}, "magicoff,65", "magicon,65"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Bloodveld", "Reanimates an ensouled corpse.", 65, new SpellReq[]{new SpellReq(Runes.SOUL, 2), new SpellReq(Runes.BLOOD, 1), new SpellReq(Runes.NATURE, 2)}, "magicoff,66", "magicon,66"),
    				Spell.InventoryItemSpell(i.id, "Reanimate TzHaar", "Reanimates an ensouled corpse.", 69, new SpellReq[]{new SpellReq(Runes.SOUL, 2), new SpellReq(Runes.BLOOD, 1), new SpellReq(Runes.NATURE, 3)}, "magicoff,67", "magicon,67"),
    				Spell.TeleportSpell(i.id, "Cemetery Teleport", "Teleports you to frgtn. cemetery.", 71, new SpellReq[]{new SpellReq(Runes.LAW, 1), new SpellReq(Runes.SOUL, 1), new SpellReq(Runes.BLOOD, 1)}, "magicoff,78", "magicon,78"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Demon", "Reanimates an ensouled corpse.", 72, new SpellReq[]{new SpellReq(Runes.SOUL, 2), new SpellReq(Runes.BLOOD, 1), new SpellReq(Runes.NATURE, 4)}, "magicoff,68", "magicon,68"),
    				Spell.ObjectSpell(i.id, "Resurrect Crops", "Chance to resurrect dead crops.", 78, new SpellReq[]{new SpellReq(Runes.SOUL, 8), new SpellReq(Runes.NATURE, 12), new SpellReq(Runes.BLOOD, 8), new SpellReq(Runes.EARTH, 25)}, "magicoff,79", "magicon,79"),
    				Spell.TeleportSpell(i.id, "Barrows Teleport", "Teleports you to Barrows.", 83, new SpellReq[]{new SpellReq(Runes.LAW, 2), new SpellReq(Runes.SOUL, 2), new SpellReq(Runes.BLOOD, 1)}, "magicoff,80", "magicon,80"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Aby. Dem.", "Reanimates an ensouled corpse.", 85, new SpellReq[]{new SpellReq(Runes.SOUL, 4), new SpellReq(Runes.BLOOD, 1), new SpellReq(Runes.NATURE, 4)}, "magicoff,70", "magicon,70"),
    				Spell.TeleportSpell(i.id, "Ape Atoll Teleport", "Teleports you to Ape Atoll.", 90, new SpellReq[]{new SpellReq(Runes.LAW, 2), new SpellReq(Runes.SOUL, 2), new SpellReq(Runes.BLOOD, 2)}, "magicoff,81", "magicon,81"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Dragon", "Reanimates an ensouled corpse.", 93, new SpellReq[]{new SpellReq(Runes.SOUL, 4), new SpellReq(Runes.BLOOD, 2), new SpellReq(Runes.NATURE, 4)}, "magicoff,71", "magicon,71"),
    				}));
    Number of page #1 releases with most views & posts: (Updated: 2023)
    RS2 server section: 1
    RS2 client section: 2
    Reply With Quote  
     

  3. #23  
    Renown Programmer
    Greg's Avatar
    Join Date
    Jun 2010
    Posts
    1,179
    Thanks given
    260
    Thanks received
    1,012
    Rep Power
    2003
    Quote Originally Posted by mige5 View Post
    Plans on adding some sort of easy way to add spells/prayers/quests?

    One of the reasons I didnt bother making UI for my editor, was that I was pretty sure it would just be slower to achieve the same result..
    Code:
    Editor.addNewQuest("Way of the Necromancer", false);
    Code:
    RSInterface i = Editor.addNewMainInterface();
    		Editor.createSpellBook(new SpellBook(5, 7, new Spell[]{
    				Spell.InventoryItemSpell(i.id, "Reanimate Goblin", "Reanimates an ensouled corpse.", 3, new SpellReq[]{new SpellReq(Runes.NATURE, 1), new SpellReq(Runes.BODY, 2)}, "magicoff,50", "magicon,50"),
    				Spell.TeleportSpell(i.id, "Lumbridge Teleport", "Teleports you to Lumbridge.", 6, new SpellReq[]{new SpellReq(Runes.LAW, 1), new SpellReq(Runes.EARTH, 2)}, "magicoff,72", "magicon,72"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Monkey", "Reanimates an ensouled corpse.", 7, new SpellReq[]{new SpellReq(Runes.NATURE, 1), new SpellReq(Runes.BODY, 3)}, "magicoff,51", "magicon,51"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Imp", "Reanimates an ensouled corpse.", 12, new SpellReq[]{new SpellReq(Runes.NATURE, 2), new SpellReq(Runes.BODY, 3)}, "magicoff,52", "magicon,52"),
    				Spell.TeleportSpell(i.id, "Draynor Teleport", "Teleports you to Draynor.", 17, new SpellReq[]{new SpellReq(Runes.LAW, 1), new SpellReq(Runes.EARTH, 1), new SpellReq(Runes.WATER, 1)}, "magicoff,73", "magicon,73"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Scorpion", "Reanimates an ensouled corpse.", 19, new SpellReq[]{new SpellReq(Runes.SOUL, 1), new SpellReq(Runes.NATURE, 1)}, "magicoff,54", "magicon,54"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Bear", "Reanimates an ensouled corpse.", 21, new SpellReq[]{new SpellReq(Runes.SOUL, 1), new SpellReq(Runes.NATURE, 1), new SpellReq(Runes.BODY, 1)}, "magicoff,55", "magicon,55"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Unicorn", "Reanimates an ensouled corpse.", 22, new SpellReq[]{new SpellReq(Runes.SOUL, 1), new SpellReq(Runes.NATURE, 1), new SpellReq(Runes.BODY, 2)}, "magicoff,56", "magicon,56"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Dog", "Reanimates an ensouled corpse.", 26, new SpellReq[]{new SpellReq(Runes.SOUL, 1), new SpellReq(Runes.NATURE, 2), new SpellReq(Runes.BODY, 2)}, "magicoff,57", "magicon,57"),
    				Spell.TeleportSpell(i.id, "Mind Altar Teleport", "Teleports you to the Mind altar.", 28, new SpellReq[]{new SpellReq(Runes.LAW, 1), new SpellReq(Runes.MIND, 2)}, "magicoff,74", "magicon,74"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Ch. Druid", "Reanimates an ensouled corpse.", 30, new SpellReq[]{new SpellReq(Runes.SOUL, 1), new SpellReq(Runes.NATURE, 2), new SpellReq(Runes.BODY, 3)}, "magicoff,58", "magicon,58"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Giant", "Reanimates an ensouled corpse.", 37, new SpellReq[]{new SpellReq(Runes.SOUL, 1), new SpellReq(Runes.NATURE, 2), new SpellReq(Runes.BODY, 4)}, "magicoff,59", "magicon,59"),
    				Spell.TeleportSpell(i.id, "Salve Grvyrd Teleport", "Teleports you to Salve grv. yard.", 40, new SpellReq[]{new SpellReq(Runes.LAW, 1), new SpellReq(Runes.SOUL, 2)}, "magicoff,75", "magicon,75"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Ogre", "Reanimates an ensouled corpse.", 40, new SpellReq[]{new SpellReq(Runes.SOUL, 1), new SpellReq(Runes.NATURE, 3), new SpellReq(Runes.BODY, 4)}, "magicoff,60", "magicon,60"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Elf", "Reanimates an ensouled corpse.", 43, new SpellReq[]{new SpellReq(Runes.SOUL, 2), new SpellReq(Runes.NATURE, 2), new SpellReq(Runes.BODY, 2)}, "magicoff,61", "magicon,61"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Troll", "Reanimates an ensouled corpse.", 46, new SpellReq[]{new SpellReq(Runes.SOUL, 2), new SpellReq(Runes.NATURE, 2), new SpellReq(Runes.BODY, 3)}, "magicoff,62", "magicon,62"),
    				Spell.TeleportSpell(i.id, "Fnk. Castle Teleport", "Teleports you to Fenkens. castle.", 48, new SpellReq[]{new SpellReq(Runes.LAW, 1), new SpellReq(Runes.SOUL, 1), new SpellReq(Runes.EARTH, 1)}, "magicoff,76", "magicon,76"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Kalphite", "Reanimates an ensouled corpse.", 57, new SpellReq[]{new SpellReq(Runes.SOUL, 2), new SpellReq(Runes.NATURE, 3), new SpellReq(Runes.BODY, 4)}, "magicoff,64", "magicon,64"),
    				Spell.TeleportSpell(i.id, "West Ardgn. Teleport", "Teleports you to West Ardougne.", 61, new SpellReq[]{new SpellReq(Runes.LAW, 2), new SpellReq(Runes.SOUL, 2)}, "magicoff,77", "magicon,77"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Dagannoth", "Reanimates an ensouled corpse.", 62, new SpellReq[]{new SpellReq(Runes.SOUL, 3), new SpellReq(Runes.NATURE, 3), new SpellReq(Runes.BODY, 4)}, "magicoff,65", "magicon,65"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Bloodveld", "Reanimates an ensouled corpse.", 65, new SpellReq[]{new SpellReq(Runes.SOUL, 2), new SpellReq(Runes.BLOOD, 1), new SpellReq(Runes.NATURE, 2)}, "magicoff,66", "magicon,66"),
    				Spell.InventoryItemSpell(i.id, "Reanimate TzHaar", "Reanimates an ensouled corpse.", 69, new SpellReq[]{new SpellReq(Runes.SOUL, 2), new SpellReq(Runes.BLOOD, 1), new SpellReq(Runes.NATURE, 3)}, "magicoff,67", "magicon,67"),
    				Spell.TeleportSpell(i.id, "Cemetery Teleport", "Teleports you to frgtn. cemetery.", 71, new SpellReq[]{new SpellReq(Runes.LAW, 1), new SpellReq(Runes.SOUL, 1), new SpellReq(Runes.BLOOD, 1)}, "magicoff,78", "magicon,78"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Demon", "Reanimates an ensouled corpse.", 72, new SpellReq[]{new SpellReq(Runes.SOUL, 2), new SpellReq(Runes.BLOOD, 1), new SpellReq(Runes.NATURE, 4)}, "magicoff,68", "magicon,68"),
    				Spell.ObjectSpell(i.id, "Resurrect Crops", "Chance to resurrect dead crops.", 78, new SpellReq[]{new SpellReq(Runes.SOUL, 8), new SpellReq(Runes.NATURE, 12), new SpellReq(Runes.BLOOD, 8), new SpellReq(Runes.EARTH, 25)}, "magicoff,79", "magicon,79"),
    				Spell.TeleportSpell(i.id, "Barrows Teleport", "Teleports you to Barrows.", 83, new SpellReq[]{new SpellReq(Runes.LAW, 2), new SpellReq(Runes.SOUL, 2), new SpellReq(Runes.BLOOD, 1)}, "magicoff,80", "magicon,80"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Aby. Dem.", "Reanimates an ensouled corpse.", 85, new SpellReq[]{new SpellReq(Runes.SOUL, 4), new SpellReq(Runes.BLOOD, 1), new SpellReq(Runes.NATURE, 4)}, "magicoff,70", "magicon,70"),
    				Spell.TeleportSpell(i.id, "Ape Atoll Teleport", "Teleports you to Ape Atoll.", 90, new SpellReq[]{new SpellReq(Runes.LAW, 2), new SpellReq(Runes.SOUL, 2), new SpellReq(Runes.BLOOD, 2)}, "magicoff,81", "magicon,81"),
    				Spell.InventoryItemSpell(i.id, "Reanimate Dragon", "Reanimates an ensouled corpse.", 93, new SpellReq[]{new SpellReq(Runes.SOUL, 4), new SpellReq(Runes.BLOOD, 2), new SpellReq(Runes.NATURE, 4)}, "magicoff,71", "magicon,71"),
    				}));
    Right yea so ideally you should be able to load your cache in, create a new interface with an id, drag a sprite/button group on, set the sprite id as an increment starting from X number and that's the spell/prayer book interface done. Extending them should only be a matter of +1 the amount as well. All the id's and indexes should be handled automatically.

    Trouble is the current 317 system is limited, so things like spell book reordering I doubt can be done using a vanilla 317, I've started a custom interface system but unsure whether people would actually use it or not
    Attached imageAttached image
    Reply With Quote  
     

  4. #24  
    2021
    SoulSplit's Avatar
    Join Date
    Nov 2011
    Posts
    830
    Thanks given
    620
    Thanks received
    654
    Rep Power
    528
    Are you planning on hosting this open source? Also, I recommend implementing a cs2 decoder/editor Never actually seen an interface editor with one built in and cs2 is a crucial part of a large portion of interfaces above 464. Looks really good so far
    Reply With Quote  
     

  5. #25  
    Rune-Server Affiliate

    Join Date
    Aug 2015
    Posts
    431
    Thanks given
    55
    Thanks received
    114
    Rep Power
    126
    I was just thinking about a project like this the other day since I saw the official 2007 one, good luck with this! I will definitely be following you on this one.
    Reply With Quote  
     

  6. #26  
    Renown Programmer
    Greg's Avatar
    Join Date
    Jun 2010
    Posts
    1,179
    Thanks given
    260
    Thanks received
    1,012
    Rep Power
    2003
    Quote Originally Posted by Technotik View Post
    Are you planning on hosting this open source? Also, I recommend implementing a cs2 decoder/editor Never actually seen an interface editor with one built in and cs2 is a crucial part of a large portion of interfaces above 464. Looks really good so far
    Undecided at the moment, as much as I'd love to have it open source it does take time to develop and I'm not rolling in $ just yet. And yes cs2 will defiantly be something I'll be looking into implementing when adding 400+ support

    Quote Originally Posted by Famous Dexter View Post
    I was just thinking about a project like this the other day since I saw the official 2007 one, good luck with this! I will definitely be following you on this one.
    Thanks
    Attached imageAttached image
    Reply With Quote  
     

  7. #27  
    Renown Programmer
    Greg's Avatar
    Join Date
    Jun 2010
    Posts
    1,179
    Thanks given
    260
    Thanks received
    1,012
    Rep Power
    2003
    Attached image
    Improved the action system a bit, added undoing/redoing widget depth/reordering, made it so pressing the escape button in edit mode doesn't keep changes. Started work on basic widget locking so you can easily toggle a widget which you might not want to move by mistake like a background.
    Attached imageAttached image
    Reply With Quote  
     

  8. #28  
    Super Donator

    Chivvon's Avatar
    Join Date
    May 2016
    Posts
    487
    Thanks given
    69
    Thanks received
    142
    Rep Power
    285
    Quote Originally Posted by Greg View Post
    Attached image
    Improved the action system a bit, added undoing/redoing widget depth/reordering, made it so pressing the escape button in edit mode doesn't keep changes. Started work on basic widget locking so you can easily toggle a widget which you might not want to move by mistake like a background.
    Nice updates, keep it up!
    Reply With Quote  
     

  9. #29  
    Extreme Donator


    Join Date
    Aug 2016
    Posts
    597
    Thanks given
    109
    Thanks received
    96
    Rep Power
    254
    Looks great Greg
    Reply With Quote  
     

  10. #30  
    Banned

    Join Date
    Oct 2013
    Posts
    570
    Thanks given
    3
    Thanks received
    60
    Rep Power
    0
    dam nice work man keep up the good effort this will be a cool thing to see when fnished
    Reply With Quote  
     

Page 3 of 7 FirstFirst 12345 ... LastLast

Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Similar Threads

  1. Open Source Interface Editor
    By peterbjornx in forum Projects
    Replies: 10
    Last Post: 12-22-2008, 11:02 AM
  2. Interface Editor
    By Meanz in forum Projects
    Replies: 23
    Last Post: 11-27-2008, 12:44 AM
  3. my current project(interface editor)
    By .fabian in forum RS2 Client
    Replies: 12
    Last Post: 08-10-2008, 02:16 PM
  4. Replies: 12
    Last Post: 05-09-2008, 11:24 PM
  5. Custom Interface's and Interface Editor
    By Meanz in forum RS2 Client
    Replies: 77
    Last Post: 04-28-2008, 12:15 PM
Tags for this Thread

View Tag Cloud

Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •