Jump to content

Neffletics

Members
  • Content Count

    65
  • Joined

  • Last visited

  • Days Won

    5

Everything posted by Neffletics

  1. I believe you'll have to edit that from the client. Check the LUA files in your data folder.
  2. For a server with 100 players where most players are vending or sitting in town, you'd be spending approximately $20-40 per month. Most of these budget hosting have low port speed which makes it vulnerable to network stress. Later on, if your server grows. You'd need at least 500 mbps port speed (ideal is 1 gbps dedicated port speed). As for your other question, Gepard is the only option. But, most cheat tools are now going through the memory. So, even if you have Gepard Shield in your server, it won't guarantee effectiveness.
  3. I changed the time slots to be in 30-minute intervals rather than hourly increments. Here's the code. I haven't tested it. Please let us know if it works. ~ case 1: mes "[New Session]"; if (.Size > 127) { mes "You have already reached the maximum of 32 sessions."; next; break; } mes "Select a day."; next; set .@day, select(" ~ "+implode(.Days$,": ~ "))-1; mes "[New Session]"; mes "Select a start time for ^0055FF"+.Days$[.@day]+"^000000."; next; set .@menu$,""; for(set .@i,0; .@i<47; set .@i,.@i+2) set .@menu$, .@menu$+" ~ "+Add_Zero(floor(.@i/2),1)+":"+Add_Zero((.@i%2)*30,2)+":"; set .@start, select(.@menu$)-1; mes "[New Session]"; mes "Select an end time for ^0055FF"+.Days$[.@day]+"^000000."; next; set .@menu$,""; for(set .@i,.@start+1; .@i<48; set.@i,.@i+2) set .@menu$, .@menu$+" ~ "+Add_Zero(floor(.@i/2),1)+":"+Add_Zero((.@i%2)*30,2)+":"; set .@end, select(.@menu$)+.@start; for(set .@i,0; .@i<.Size; set .@i,.@i+4) if (.@day == $WOE_CONTROL[.@i] && ((.@start >= $WOE_CONTROL[.@i+1] && .@start < $WOE_CONTROL[.@i+2]) || (.@end > $WOE_CONTROL[.@i+1] && .@end <= $WOE_CONTROL[.@i+2]) || (.@start <= $WOE_CONTROL[.@i+1] && .@end >= $WOE_CONTROL[.@i+2]))) { mes "[New Session]"; mes "The chosen times overlap with an existing session."; next; set .@d,1; break; } if (.@d) { set .@d,0; break; }
  4. 1. Gamit kayo ng version control platforms like Github, Gitlab, Bitbucket, etc. 2. Bumili kayo ng cheap na VPS, tipong worth USD 1-5 lang per month tapos doon ninyo i-host test environment ninyo. May mga plugins sa VSCode na mag-automatic sync ng changes from editor to your VPS para dire-diretso kayo ng gawa.
  5. This is the first time I've seen this post. As a way of saying thank you to Herc, I'll be donating on a regular basis. This is the emulator that we've been using for SolaceRO. Thanks for your dedication! Update: I just realized, my payment was declined. Not sure if this is connected with the situation in Eastern Europe. Sucks, I don't have crypto.
  6. Use eAthena: https://github.com/eathena/eathena
  7. Compile your server as pre-renewal. You're using the renewal Izlude.
  8. You might have forgotten to tick translate client when you diffed it.
  9. It's best if you do it on the web. It's extremely risky to do these from an NPC script. You can find many freelance web developers who can help you with this.
  10. None. Don't bother, there's no workaround to it.
  11. Too lazy to understand the whole script, but please try adding this below the line with getitem. if (.@rand <= 3) { announce(strcharinfo(PC_NAME)+" got "+ getd( ".p"+ .@s +"["+( 1+3*.@r -1 )+"]" ) +" "+ getitemname( getd( ".p"+ .@s +"["+ (1+ 3*.@r -2) +"]" ) ) +"!", bc_blue|bc_all); }
  12. Yes, it lags the server when multiple mushrooms are stacked on the same cell. In my server, I made an instance where players can plant mushrooms with a limited number of spawns.
  13. It's a memory issue. Try changing the device on your setup.exe.
  14. Just pull from the repo and fix the conflicts (if there's any).
  15. You have to write it yourself. I manually applied hard delays in my server; it counts the animation speed as well.
  16. Update: setarray .@rewardablejobs[0] and change the jobs there to Job_Whitesmith, Job_Creator, Job_Sniper, etc. (reference: doc/const.txt) Then change the coordinate of the training grounds NPC. P.S. Untested, I just wrote it from my phone. I wrote it in a simple manner, please learn from the changes I made. /////////////////////////////////////////////////////// // ___________ _____.__ // \__ ___/__.__.________/ ____\__| ____ ____ // | | < | |\_ __ \ __\| |/ \ / ___\ // | | \___ | | | \/| | | | | \/ /_/ > // |____| / ____| |__| |__| |__|___| /\___ / // \/ Scripts \//_____/ // //===================================================== // Name: Race to Max Level // // Description: // This NPC allows for Game Masters to set a reward to // be given to the first player of each 2nd class that // reaches maximum level (base and class). //===================================================== /////////////////////////////////////////////////////// new_1-1,111,111,4 script Race to 99#reg 58,{ mes "[Race to 99]"; mes "Would you like to join the race to 99 event?"; switch(select("Yes.","Leave him alone.")) { case 1: mes "[Race to 99]"; mes "Okay, you're in!"; set RaceParticipate,1; close; case 2: mes "[Race to 99]"; mes "Okay, that sucks."; close; } } prontera,147,180,5 script Race to Max Level 58,{ set .@gm_level, 99; // GM level required to set the reward set .@maxbase, 99; set .@maxjob, 50; set .@defaultreward, 510; setarray .@rewardablejobs[0], Job_Knight, Job_Alchemist, Job_Assassin, Job_Bard, Job_Blacksmith, Job_Crusader, Job_Dancer, Job_Hunter, Job_Monk, Job_Priest, Job_Rogue, Job_Sage, Job_Wizard; Begin: clear; if (RaceReward == 1) { mes "[ ^0099ccRace to Max Level^000000 ]"; mes "You have already received your reward."; close; } if (RaceParticipate != 1) { mes "[ ^0099ccRace to Max Level^000000 ]"; mes "You're not a participant of this event."; close; } mes "[ ^0099ccRace to Max Level^000000 ]"; mes "Hello, " + ((getgmlevel() >= .@gm_level) ? "master! What do you want to do today?" : "are you here for your reward?"); switch(select(((getgmlevel() >= .@gm_level) ? "Set Reward:Restart Race" : ":") + ":YES!:...Reward?:Who was rewarded?:Cancel")) { case 1: goto SetReward; case 2: goto RestartRace; case 3: goto GetReward; case 4: goto ExplainRace; case 5: goto ShowRewarded; default: end; } SetReward: clear; mes "[ ^0099ccRace to Max Level^000000 ]"; if ($reward == 0) set $reward, .@defaultreward; mes "The reward is " + getitemname($reward) + " (ID: " + $reward + ")."; mes "Do you want to change it?"; if (select("Yes:No") == 1) { clear; mes "[ ^0099ccRace to Max Level^000000 ]"; mes "Please enter the new reward item ID."; input .@rewardid; clear; mes "[ ^0099ccRace to Max Level^000000 ]"; mes "Set " + getitemname(.@rewardid) + " as the reward?"; if(select("Yes:No") == 1) { set $reward, .@rewardid; } } goto Begin; RestartRace: clear; mes "[ ^0099ccRace to Max Level^000000 ]"; mes "Are you sure you want to restart the race?"; if (select("Yes:No") == 1) { for (.@i = 0; .@i < getarraysize(.@rewardablejobs); .@i++) { set $rewarded$[.@rewardablejobs[.@i]], ""; } announce "The Race to Max Level has begun! Claim a reward once you reach " + .@maxbase + " base and " + .@maxjob + " class!", bc_all; } goto Begin; GetReward: mes "Let's see... " + strcharinfo(0) + ", huh?"; if (Upper != 1) { mes "You're not a rebirth class. You're not qualified"; close; } set .@competitioner, 0; for (.@i = 0; .@i < getarraysize(.@rewardablejobs); .@i++) { if (Class == .@rewardablejobs[.@i]) { set .@competitioner, 1; if (BaseLevel < .@maxbase || JobLevel < .@maxjob) { mes "I'm sorry, but you still need to level a bit more."; } else if ($rewarded$[Class] == strcharinfo(0)) { mes "You have already claimed your reward."; } else if ($rewarded$[Class] != "") { mes "Too late!"; mes "The reward for " + jobname(Class) + " was already claimed by " + $rewarded$[Class] + "."; } else goto GiveReward; } } if (.@competitioner == 0) mes "You need to change your job."; close; GiveReward: set $rewarded$[Class], strcharinfo(0); set RaceReward, 1; clear; mes "[ ^0099ccRace to Max Level^000000 ]"; mes "Congratulations! You were the first " + jobname(Class) + " to reach " + .@maxbase + " base and " + .@maxjob + " class!"; getitem $reward, 1; announce strcharinfo(0) + " (" + jobname(Class) + ") reached Max. Level and received " + getitemname($reward) + "!", bc_all; close; ExplainRace: clear; mes "[ ^0099ccRace to Max Level^000000 ]"; mes "Yes! When you reach the maximum level for your class, talk to me and you'll be rewarded with a special item."; next; goto Begin; ShowRewarded: clear; mes "[ ^0099ccRace to Max Level^000000 ]"; for (.@i = 0; .@i < getarraysize(.@rewardablejobs); .@i++) { mes jobname(.@rewardablejobs[.@i]) + ": " + (($rewarded$[.@rewardablejobs[.@i]] != "") ? $rewarded$[.@rewardablejobs[.@i]] : "^ff0000Nobody^000000"); } next; goto Begin; }
  17. Just edit the exp table and lessen the burden on your server of running a script every time they kill a monster. But yeah, you can do it using a script, too. Don't bother looking for an src modification if you have no idea how to do it.
  18. On your client, check if you diffed it to show the 1st login background or the 2nd or both.
  19. Sometimes Skype's using this port. Try to close all of your apps before you run your database.
  20. Oops. Sorry, I overlooked the OnInit part. Yeah, please remove it. OnInit - Gets triggered as soon as you start the server or whenever you reload scripts. Alternatively, you can follow @Daraen's recommendation to simplify or shorten your script once you get more knowledge about scripting. But for the time being, you can follow my script and remove the OnInit before OnHour.
  21. Yeah, you need to add the BG maps to mapflags/nopvp.txt.
×
×
  • Create New...

Important Information

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