Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 06/24/17 in Posts

  1. 1 point
    Temtaime

    New life for RO

    A client now has a name - Æsir ! You can support development on the patreon. More support, less freelance i do https://www.patreon.com/temtaime First public build will be available soon.
  2. 1 point
    meko

    Script doesn't work parse ln

    Hercules should automatically generate constants based on the AegisName of items in your database. If Apple evaluates to 0 it means you are either using a very old version of Hercules, or you don't have an item named Apple in your item db Simply add a mes("your message here") before the close; that is above the OnInit
  3. 1 point
    Legend

    Script doesn't work parse ln

    @Disgaea Replace .request_item = Apple; .to .request_item = 512;
  4. 1 point
    Mystery

    May Digest 2017

    May Digest 2017 The following digest covers the month of May 1st - May 31st 2017 Team Changes hemagx has been moved from Core Developer to Community Contributors malufett has been moved from Core Developer to Community Contributors Pan has been moved from Core Developer to Community Contributors GreenBox has been moved from Core Developer to Community Contributors Susu has been moved from Core Developer to Community Contributors Kenpachi has been moved from Script Developers to Community Contributors Joseph has been moved from Script Developers to Community Contributors AnnieRuRu has been moved from Scripting Moderators to Community Contributors JayPee has been moved from Int'l Moderators to Community Contributors Mhalicot has been moved from Int'l Moderators to Community Contributors Mumbles has been moved from Global Moderators to Community Contributors Olrox has been moved from Graphics Moderators to Community Contributors These members had the 'Former' tag set on their group, however, due to the move towards IPB4, we scraped that Former Tag and figured it was best to just move them to CC. Development Highlights Fix a race condition when saving the storage on logout Fix saving of storage for non-stackable items Fix storage saving checks and amount update Normal Stat food can't override the effect of Cash Stat food add channel handler events Add storage_data reception, parsing and sending to/from the map-server allow to pass actual params to getparam add exponentiation operator update documentation for the exponentiation operator remove the pow buildin from existing scripts remove the pow buildin from item databases flag the pow() buildin as deprecated allow custom atcommands to have different permissions for each group add buildin add_group_command() add support for custom atcommands in can_use_command Scripting Highlights Optimize Uwe Kleine NPC, fix typos and an unintended fall through Updated npc/re/merchants/shadow_refiner.txt to version 2.0 Update npc/<re/>merchants/advanced_refiner.txt Documentation Updated *showscript documentation description Documentation update for getequippercentrefinery() and refine_db.confs document previously undocumented parameter of getparam Database Highlights Refine rate correction from kRO Update Exp Table May Statistics During the period there were 59 Commits. 10 Commits from Pull Requests with 2 Bugs* fixed from merged issues. *Please note: Bug fixes are counted as references to issues; it does not include bugs that have been fixed without issue reference. The number of commits includes those that were merged.
  5. 1 point
    Day 4 2/2: SQL security work takes form I moved forward with the SQL security work So basically here is the main idea of how It works and here are some pieces of my SQL code DECLARE _ragDBWebUserViewer VARCHAR(32); DECLARE _ragDBWebUserViewerPass VARCHAR(32); SET _ragDBWebUserViewer = 'ragdbwebviewer'; SET _ragDBWebUserViewerPass = 'huji' ALTER TABLE login ADD COLUMN emailverrif VARCHAR(32) NOT NULL DEFAULT '' AFTER pincode_change; DELIMITER // CREATE PROCEDURE WebRegisterNewRagPlayerOne ( IN login VARCHAR(23) , IN email VARCHAR(39) , IN password VARCHAR(32) , IN sex ENUM('M','F') , IN emailverrifhash VARCHAR(32) , OUT returnparam INT(1) ) proc_webreg:BEGIN -- -1 Unhandled error DECLARE EXIT HANDLER FOR SQLEXCEPTION SET returnparam = -1; SELECT userid INTO @loginalreadyexists FROM login WHERE userid = login; SELECT email INTO @emailalreadyexists FROM login WHERE email = email; IF @loginalreadyexists NOT NULL THEN -- -2 Login already exists SET returnparam = -2; LEAVE proc_webreg; END IF; IF @emailalreadyexists NOT NULL THEN -- -3 Email already exists SET returnparam = -3; LEAVE proc_webreg; END IF; -- 4085943947 (2099-06-24) INSERT INTO login (userid, email, user_pass, sex, emailverrif, unban_time) VALUES (login, email, password, sex, emailverrif, 4085943947); END // DELIMITER ; GRANT EXECUTE ON PROCEDURE ragdb.WebRegisterNewRagPlayerOne TO _ragDBWebUserViewer@'localhost'; DELIMITER // CREATE PROCEDURE WebRegisterNewRagPlayerTwo ( IN emailverrifhash VARCHAR(32) , OUT returnparam INT(1) ) BEGIN -- Hey it's not a tutorial ;) END // DELIMITER ; GRANT EXECUTE ON PROCEDURE ragdb.WebRegisterNewRagPlayerTwo TO _ragDBWebUserViewer@'localhost'; DELIMITER // CREATE PROCEDURE RsetPasswordRagPlayerOne ( IN login VARCHAR(23) , IN emailverrifhash VARCHAR(32) , OUT email VARCHAR(39) ) BEGIN -- Hey it's not a tutorial ;) END // DELIMITER ; GRANT EXECUTE ON PROCEDURE ragdb.RsetPasswordRagPlayerOne TO _ragDBWebUserViewer@'localhost'; DELIMITER // CREATE PROCEDURE RsetPasswordRagPlayerTwo ( IN password VARCHAR(32) , IN emailverrifhash VARCHAR(32) , OUT returnparam INT(1) ) BEGIN -- Hey it's not a tutorial ;) END // DELIMITER ; GRANT EXECUTE ON PROCEDURE ragdb.RsetPasswordRagPlayerTwo TO _ragDBWebUserViewer@'localhost'; So basically as you can see there is ragdbwebviewer that has access only to the stored procedures and I will add some views it will have access to like Create View AS SELECT nicnake, level, left join job.... whatever (note I'm not doing select * nor selecting login, email, passwords) The password reset part is a security weakness, but if my website is hacked and ragdbwebviewer credentials obtained, hacker will have to know account login to reset the password... in theory in real life there will be some more layers of security...
  6. 1 point
    meko

    Script doesn't work parse ln

    That's just two missing next() statements... Here you go: einbroch,55,200,4 script Herald 123,{ if (#onetimeitem) { mes("I hope you like your reward."); close; } mes("Hello youngster."); mex("Want to know a secret?"); next(); if (select("Yes", "No") == 1) { mes("[Herald]"); mes("You made the right choice."); mes("Do you know that the toughest material in Rune Midgard is called Mithril?"); mes("The best part is, I know how to get it."); next(); mes("If you're willing to prove me you can handle a tough excursion, I'll direct you to my friend, and from that moment on, you're his problem."); mes("Will you do it?"); next(); do { if (select("Yes I will do it!", "Wait, what's the material for?") == 1) { mes("[Herald]"); mes("Outstanding!"); mesf("I will need you to collect %i pieces of %s, an excellent mineral from Bradium Golems in Manuk Fields.", .request_amount, getitemname(.request_item)); mes("Bring me these, and I will give you something so that my friend grants you passage to the mines."); next(); mes("So, do you have the items?"); next(); switch(select("Yes, Here They are", "No")) { case 1: if (countitem(.request_item) < .request_amount) { mes("[Herald]"); mes("Don't make me regret this."); mesf("Bring me the damn %s!", getitemname(.request_item)); close; } mes("[Herald]"); mes("Well done, I wasn't thinking you could do it."); mes("But be careful, the place where you'll be headed is very tough."); delitem(.request_item, .request_amount); getitembound(.reward_item, .reward_amount, 1); #onetimeitem = 1; break; case 2: mes("[Herald]"); mes("Let me know when you're done. I will reward you for your efforts."); break; } close; } else { mes("[Herald]"); mes("I can't properly answer that."); mes("You will have to find someone willing to use it on anything."); mes("But hey, it's the toughest material in Rune-Midgard, it's gotta be useful, right?"); next(); } } while (true); } close; OnInit: // << YOUR CONFIGURATION GOES HERE >> .request_item = Apple; .request_amount = 20; .reward_item = Holy_Dagger; .reward_amount = 1; // << END OF CONFIGURATION >> } Make sure to change the items and amounts in OnInit to the items you want
  7. 1 point
    meko

    Script doesn't work parse ln

    I tried to re-construct your script as best as I could, but it's one of the messiest I have ever seen. Here goes: einbroch,55,200,4 script Herald 123,{ if (#onetimeitem) { mes("I hope you like your reward."); close; } mes("Hello youngster. Want to know a secret?"); next(); if (select("Yes:No") == 1) { mes("[Herald]"); mes("You made the right choice. Do you know that the toughest material in Rune Midgard is called Mithril? The best part is, I know how to get it."); next(); mes("If you're willing to prove me you can handle a tough excursion, I'll direct you to my friend, and from that moment on, you're his problem. Will you do it?"); next(); do { if (select("Yes I will do it!:Wait, what's the material for?") == 1) { mes("[Herald]"); mes("Outstanding! I will need you to collect two pieces of Pure Bradium, an excellent mineral from Bradium Golems in Manuk Fields. Bring me these two, and I will give you something so that my friend grants you passage to the mines."); next(); mes("So ,do you have the items?"); next(); switch(select("Yes, Here They are:No")) { case 1: mes("[Herald]"); mes("Well done, I wasn't thinking you could do it. But be careful, the place where you'll be headed is very tough."); if (countitem(512) < 20) { mes("[Herald]"); mes("Don't make me regret this. Bring me the damn Bradium!"); close; } delitem(512, 20); getitembound(1244, 1, 1); #onetimeitem = 1; break; case 2: mes("[Herald]"); mes("Let me know when you're done. I will reward you for your efforts."); break; } close; } else { mes("[Herald]"); mes("I can't properly answer that. You will have to find someone willing to use it on anything. But hey, it's the toughest material in Rune-Midgard, it's gotta be useful, right?"); } } while (true); } }
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.