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

3121 profile views
  1. 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
  2. It is not the hardwares issue, those old clients simply didn't support that hardware
  3. in my grf the new one is added, but on herc we still use the old one :/
  4. *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(.@i = 0; .@i < @inventorylist_count; .@i++) if (@inventorylist_expire[.@i] != 0) { mes("Sorry, I don't accept rental items!"); emotion(e_hmm); close(); }
  5. Select Code //Charity NPC// //Ryonin// izlude,124,139,6 script Lucy 101,{ // Variables .@n$ = "[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 .@n$; 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 .@n$; 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 .@n$; // Also you had close; end; in your script, which is not needed. mes "Okay then. See you later."; close; } mes .@n$; 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 .@n$; mes "You can only donate 1,000,000z or 5,000,000z."; next; mes .@n$; 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 .@n$; mes "How much money you want to donate?"; mes "Once you donate, I can't your money back."; next; .@menu = 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(.@costs[0] = 5000000, 10000000, 15000000, 25000000); // setting a temporary array with the costs) switch (.@menu) { //switching the variable we set before case 1: case 2: case 3: case 4: mes .@n$; // same message, regardless how much you donated if (Zeny < .@costs[.@menu-1]) { // you forgot a Zeny check so I added one mes .@n$; mes "You don't have enough Zeny?"; close; } Zeny -= .@costs[.@menu-1]; // zeny -= the costs you selected (arrays start at 0, so its your selection -1) close; $totaldonate += .@costs[.@menu-1]; // variable += the donated amount mes "Thank you for donating "+.@costs[.@menu-1]+"!"; // mes "We appreciate your generosity."; announce "[Charity Lucy: "+strcharinfo(0)+"] has donated ["+.@costs[.@menu-1]+"] to Charity! We appreciate your generosity.", 0; next; mes .@n$; 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; }
  6. thank you for the reminder, the issue was adressed before in https://github.com/HerculesWS/Hercules/issues/1440
  7. 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?
  8. try to disable lightmaps (either /lightmaps ingame or via setup.exe)
  9. *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"));
  10. WIP

    nice to see some progress on the clientside features! Great Job!
  11. in case you use my grf, i reduzed there size
  12. and again on hold due to the mmo_charstatus xD
  13. Just read your Raspberry Pi Guide - Nicely done!