Script Developers
  • Content count

  • Joined

  • Last visited

  • Days Won


Ridley last won the day on March 28

Ridley had the most liked content!

About Ridley

  • Rank
    Advanced Member
  • Birthday 05/04/88

Contact Methods

  • Skype
  • IRC Nickname

Profile Information

  • Gender
  • Location:
  • Emulator:
  • Github

Recent Profile Visitors

3420 profile views
  1. Because it is a paid one by Olrox
  2. My upload rate is now 40k (it was 1,2k before) so I will upload more mirrors during the next days. And no, a patcher wouldn't work this way.
  3. why abandoned? It could need an update tho, I agree here i once started to archieve everything in different repos but this wasn't very useful at all. Also during the past 3 months I didn't had that much time for RO :|
  4. nice one, but i found 2 minor issues, i hope you don't mind me pointing them out. in bindadcmt you check for gm_level instead of .gm_level #bot_chk_delay is a perm account variable, but a temp char is way enough here. Personally for cooldown checks i use a function. //== Function F_CoolDown ==================================== // Cooldown check //callfunc("F_CoolDown", 5); = 5 seconds cooldown function script F_CoolDown { if (@cd + getarg(0) > gettimetick(2)) end; @cd = gettimetick(2); return; } you could replace the `end` with whatever you need
  5. It is not the hardwares issue, those old clients simply didn't support that hardware
  6. in my grf the new one is added, but on herc we still use the old one :/
  7. *getinventorylist() This command sets a bunch of arrays with a complete list of whatever the invoking character has in its inventory, including all the data needed to recreate these items perfectly if they are destroyed. Here's what you get: @inventorylist_expire[] - expire time (Unix time stamp). 0 means never getinventorylist(); for([email protected] = 0; [email protected] < @inventorylist_count; [email protected]++) if (@inventorylist_expire[[email protected]] != 0) { mes("Sorry, I don't accept rental items!"); emotion(e_hmm); close(); }
  8. Select Code //Charity NPC// //Ryonin// izlude,124,139,6 script Lucy 101,{ // Variables [email protected]$ = "[Lucy]"; // $donate5m = 5000000; // you used global account variables, but you need global variable here ($) // $donate10m = 10000000; // if you do it like this, those variables will be set each time someone talks to the npc. // $donate15m = 15000000; // $donate25m = 25000000; // i kept em but they're totally not needed /*// Zeny Detector // this would prevent anyone to do anything if (Zeny < $donate5m) { mes [email protected]$; mes "Sorry, you dont have enough money to talk to me."; mes "You need to have atleast ^FF00005,000,000z^000000."; mes "The total amount I collected is : ^0000CD["+$totaldonate+"]^000000 zeny."; close; end; } */ // Start mes [email protected]$; mes "Hello, Citizen of Ragnarok Offline."; mes "Can I help you with something?"; next; if (select("Yes, I would like to donate", "No, Thank you") ==2) { // removed the switch here, instead, if you select the 2nd answer the npc will directly end. mes [email protected]$; // Also you had close; end; in your script, which is not needed. mes "Okay then. See you later."; close; } mes [email protected]$; mes "I was assigned by the ^DAA520 GM Team^000000 to collect the donation money."; mes "The total amount I collected is : ^0000CD["+$totaldonate+"]^000000 zeny."; next; mes [email protected]$; mes "You can only donate 1,000,000z or 5,000,000z."; next; mes [email protected]$; mes "If I collected a total amount of ^FF000075,000,000^000000z."; mes "I can activate this event:"; mes "Event: ^8B008BComodo Hat Festival Quest^000000."; mes "Event Duration: ^006400[2 DAYS]^000000."; next; mes [email protected]$; mes "How much money you want to donate?"; mes "Once you donate, I can't your money back."; next; [email protected] = select("5,000,000z", "10,000,000z", "15,000,000z", "25,000,000z"); // removing the switch, instead we store selection in a variable (1-4 depending on selection) setarray([email protected][0] = 5000000, 10000000, 15000000, 25000000); // setting a temporary array with the costs) switch ([email protected]) { //switching the variable we set before case 1: case 2: case 3: case 4: mes [email protected]$; // same message, regardless how much you donated if (Zeny < [email protected][[email protected]]) { // you forgot a Zeny check so I added one mes [email protected]$; mes "You don't have enough Zeny?"; close; } Zeny -= [email protected][[email protected]]; // zeny -= the costs you selected (arrays start at 0, so its your selection -1) close; $totaldonate += [email protected][[email protected]]; // variable += the donated amount mes "Thank you for donating "[email protected][[email protected]]+"!"; // mes "We appreciate your generosity."; announce "[Charity Lucy: "+strcharinfo(0)+"] has donated ["[email protected][[email protected]]+"] to Charity! We appreciate your generosity.", 0; next; mes [email protected]$; mes "The total amount I collected is : ^0000CD["+$totaldonate+"]^000000 zeny."; close; } // closing the switch end; } // closing npc i did some comments inside - everything is untested to enable npcs depending on donated amount you can either use a fake_npc and check for $totaldonate > 25m or whatever, or you do like in rachel quest //== Donation Lottery Quest/High Priest Quest :: rachel_oz & rachel_ma1 = ra_temple,119,180,0 script Temple Entrance#ra_tem WARPNPC,1,1,{ OnTouch: if ($rachel_donate >= 10000) { if (MISC_QUEST & 8192) { warp "ra_temin",169,23; end; } if (ra_tem_q < 10) { mes "^3355FFThe temple's"; mes "entrance is locked.^000000"; next; select("Kick Door.", "Smash Door with Weapon."); emotion e_omg,0,"Nemma#ra_temple"; mes "[Priestess Nemma]"; mes "Please don't do that!"; close; } } warp "ra_temin",169,23; end; }
  9. thank you for the reminder, the issue was adressed before in https://github.com/HerculesWS/Hercules/issues/1440
  10. Thats why I said to try to disable lightmaps. But anyways, why do you expect 5 year old (or older) clients to work with modern hardware?
  11. try to disable lightmaps (either /lightmaps ingame or via setup.exe)
  12. *getcharip({"<character name>"|<account id>|<char id>}) This function will return the IP address of the invoking character, or, if a player is specified, of that character. A blank string is returned if no player is attached. Examples: // Outputs IP address of attached player. mes("Your IP: " + getcharip()); // Outputs IP address of character "Silver". mes("Silver's IP: " + getcharip("Silver"));
  13. WIP

    nice to see some progress on the clientside features! Great Job!