Nihad
Members-
Content Count
58 -
Joined
-
Last visited
-
Days Won
9
Content Type
Profiles
Forums
Downloads
Staff Applications
Calendar
Everything posted by Nihad
-
Edited discord info to be more visible.
-
Thanks Rid, much appreciated.
-
Hello everyone, Nihad here. About me: I have been playing RO and involved in making servers since private servers were a thing. This is going back to the Vidar v.s. eAthena days. I have been present here on the herc and rAthena forums since they became 2 different teams. I mostly keep to myself and my servers and sometimes help out people that ask for help. Recently I have been getting a bit more involved with other people. My services: Proxy connections: I have several dedicated servers that I use and not even 1% of the bandwidth is being used. I have also received a number of requests to set up proxy connections and seen people asking around about how to set them up. So I figured I might as well offer my help and at cover some of my costs and maybe purchase more servers. Locations: Canada East Coast USA West Coast – optimized for Asian connections Singapore Europe location might be added in the near future Depending on where your server is hosted, one or more of these proxies might greatly reduce the ping for some of your players. Prices: - no setup fees since everything is hosted on my servers- ($25 USD) 1 proxy location limited to 50 connections at a time ($45 USD ) 2 proxy location limited to 50 connections at a time ($60 USD ) 3 proxy location limited to 50 connections at a time You can increase the max connections by 50 for individual locations for an additional $5 USD Max connections per server allowed on a single proxy is 500 How to order and what you will need: For fastest reply, message me on discord. User: Nihad#0973 Your game client must be diffed to allow proxy connections: "Enable Proxy Support" You must not diff your game client with: "Skip Service Select" I will need your login,char and map servers IPs and ports. I can either edit your sclientinfo/clientinfo or you can do it yourself with the extra proxy connections. Then patch it to your players. If you are using gepard, you must contact functor and ask him to allow the extra IP/ports I give you to connect to your server. You will have 3 days to try out all the proxy connections provided by me. If your players are not happy with the results then we simply remove the connections and you patch over your sclientinfo/clientinfo and that’s all there is to it. If you like some or all, then you just pay and the connections remain open. Basically you only pay if you are satisfied with the results, so you have nothing to lose by trying it out. I really have no special plans for this. I will add clients until I am at about 50% bandwidth usage and then I’ll decide whether to purchase more servers or just keep the clients I have at that point. I will not go above 50% so that there is plenty room for growth for all of the servers. If you would be interested in a location I have not listed, let me know. If I get enough people interested I might purchase that specific location. WoonRO Full Server Package: WoonRO is something that I have been working on for years. I switched from eAthena to Herc when eathena died. I converted a lot of the features directly from eathena and made them compatible on herc. Due to the many modifications that have been made to the src, and WoonRO being a pre-re server, at a certain point it made updating my herc more effort than it was worth. The herc I use has been updated to roughly June 2017, since then I have cherry picked a few updates here and there. From there I hav been working on making a lot of custom edits and modifications and even converting a handful of them into plugins. So what does the WoonRO full server package include? Server files 100% as they are used on WoonRO Database structure Website code and design - sale of this was approved by Daifu Website database structure What are you not including? I have no interest in offering support for anything. It is an as is offer. If I had a ton of time to work on support I would just put in a bunch more effort into running the server. Client side files cannot be offered as I do not own the rights to any of these, if you are interested in buying specific sprites, I can give you the contact info of the developers I used. Same applies for any custom maps. Not including the player database for obvious reasons. You are not purchasing a "version" of herc. You are purchasing WoonRO server files. What kind of features does WoonRO have? Working BG with the following modes fully completed, CTF, conquest, rush, TDM Includes custom class balance Anti dual clienting BG Case system with many options to modify rewards and bonuses Custom restock Click and save type of restock systems that's intuitive to use Custom hard delays that can be set inside the skill database WoE System Rental In game schedule setting Bunch of custom commands Custom quests and events Includes our own version of devil square and king of emperium Seasonal events The entire event system structure Renewal instances nerfed to fit pre-renewal If you have ever played on WoonRO you would know there's tons of things. WoonRO is still online using this exact same source and setup, so feel free to check the server out before deciding. What's the price? 500 USD Isn't that crazy cheap? I have spent many times that on development excluding my own development time. So yes it is. But I feel that many people can benefit from some of the unique setups from WoonRO and the extra funds would allow me to keep working on WoonRO for a much longer time without the need to focus on donations. Discord: Nihad#0973
-
I have several scripts like this that run on timers. For example claw machines and other events. If you use disablenpc you cannot interact with the NPC at all, if you don't absolutely need to disable the NPC, you can just use a variable instead of disablenpc. Set variabe to 0 when timer runs out and set it to 1 when the event gets activated, and then if variable = 0, when players click on it, it says that the event is disabled. You can then place if statents in key portions of the script using this variable to prevent people from using the npc while the event is off. With this setup, you can use the hideonnpc script command to even hide the npc sprite. Hope this helps, if you need more direct help send me a pm
-
Would love to see some sort of server side delay protection especially in plugin format
-
You are using the wrong timer command. *addtimer(<ticks>, "NPC::OnLabel") *deltimer("NPC::OnLabel") *addtimercount("NPC::OnLabel", <ticks>) These commands will create, destroy, and delay a countdown timer - addtimer() to create, deltimer() to destroy and addtimercount() to delay it by the specified number of ticks. For all three cases, the event label given is the identifier of that timer. The timer runs on the character object that is attached to the script, and can have multiple instances. When the label is run, it is run as if the player that the timer runs on has clicked the NPC.
-
I've used plenty of proxy servers, so this is just a heads up from my experience. VPS are a waste of time as far as proxy servers are concerned. I had some really expensive vps in some of the Asian and S.A. countries and they helped very little or slowed down most people. This is because most vps use a crap port speed which doesn't help anyone. But I even upgraded the port speed to 1 Gbps on some and still didn't help. Shared connection is a bish. I had the same experience with cloud servers. These all claimed 1 gbps port speeds and great connection, but same result. My positive results have been and continue to be dedicated servers as proxies. Sure it's significantly more expensive, but players that use dedicated proxies confirm that the delay and ping are noticeably better. You can slightly reduce the cost if you do not get the proxy ddos protected and just set up the ip to get nullrouted if it gets spammed. That way people can just go on your main ip in case of an attack. Location of proxies is extremely important. I'll use Brazil as an example since this is here we found this to be very important. We first got a proxy somewhere towards the middle of Brazil, since we could target the most people. Even though people there have crap connections, the ones that were further up north than the proxy ended up getting more delay by using the proxy. That's because our main server was in Canada. The people that were coming from southern Brazil had a better connection using the proxy than going directly to the main. Lastly to the people that say proxies don't help, you are right for the most part. You have to set it up properly and get proper equipment for it to make any noticeable difference. But doing it right does help quite a lot of people. We are currently running a West Coast proxy optimized for Asian connections and about 20-30% of our total players use it over the main connection. Just my own experience in the matter.
-
I keep similar commands in a single plugin, so here is mine with all the extra stuff removed. Pretty sure it should work. https://pastebin.com/0FxmwkC5
-
Should work: https://pastebin.com/2ufQmKMP
-
Way to go dastgir, as always you rock. Tested and works fine. Made the limit 1500 just to test, once I had above 1200 items in storage it started to lag my client when opening storage. But yeah works like a charm, up to 1000 no issues or delays.
-
Doesn't have to be anything complicated. You could use the birthday field is you aren't already using it and just instead of giving players the option to put in their own birthrate, just auto write in today's date. Here is a little guide from rathena. https://rathena.org/board/topic/58932-flux-cp-birthdate-field-in-register-page/ If you are already using it, then you can simply add another row, or create a new table entirely just for storing registration dates.
-
I recently did an event regarding account creation dates. There is nothing solid as of right now but all is not lost. You have the login log, and unless you cleared it, you can do a sql command to figure out when they first time someone loged in is, which is basically their creation date. .@youractid = getcharid(3); query_sql("SELECT `userid` FROM `login` WHERE `account_id` = "+.@youractid, .@userid$); query_sql("SELECT * FROM `loginlog` WHERE `user` LIKE '"+.@userid$+"' AND `time` < '2017-12-28 00:00:00' ORDER BY `loginlog`.`TIME` ASC LIMIT 1", .@time, .@ip, .@user$, .@rcode, .@unid, .@log$); The first query finds the username since loginlogs are stored by username and not by account id. The second query finds their login dates earlier than the specified date since I needed this for my event. It sorts it by ascending, so first log is their oldest log. And then stored the log info in the specified variables. I did not need the exact date so this worked for me, but .@time will only return the year, since date format uses - and : as a result that may not work for you. I have not tested this but you should be able to use .@time$ and it will return the full date, again not sure since I did not need the full date. If you do not need this to be automated, you can just run the sql queries your self or do a search in the phpmyadmin and sort after. Also you may not use unique ids so you may need to remove .@unid from the above list. Hope this helps.
-
Looking good so far my man.
-
Thanks meko, that answers my question. I wanted to know if you can build checks like that into macros. Just tested this and confirmed it works.
-
See I thought of that too. But as you can see in my quote above that I found while doing some research, macros are determined prior to compiling. So technically only one of those macros will count, it should not change the value once the server is live. Or have macros changed over time and are now flexible? Thanks meko, can you clarify if macros can change once the server is compiled. Here is a link explaining a bit of what I'm talking about. https://stackoverflow.com/questions/9274500/redefining-or-changing-macro-value If my understanding is correct, even what meko posted should technically not work. Once the server gets compiled normalize damage would be set in stone and would not change based on anything the server does.
-
So I have been playing around with this a bit today and I'm trying to figure out the best way to do this. I need to convert the macro NORMALIZE_RDAMAGE to a function because I need it to offer 2 different options. For example to have capped max reflect damage on MvPs but not on normal monsters and players. Right now herc has #ifdef RENEWAL #define NORMALIZE_RDAMAGE(d) ( trdamage += rdamage = max(1, min(max_reflect_damage, (d))) ) #else #define NORMALIZE_RDAMAGE(d) ( trdamage += rdamage = max(1, (d)) ) #endif I want to change this to be if the target is an MvP or not. Doing if ( is_boss(src) ) { #define NORMALIZE_RDAMAGE(d) ( trdamage += rdamage = max(1, min(max_reflect_damage, (d))) ) } else { #define NORMALIZE_RDAMAGE(d) ( trdamage += rdamage = max(1, (d)) ) } This seems to work but it's wrong. "Preprocessor directives are interpreted before the results of the preprocessing step are compiled." I don't understand enough about source to explain why this edit works, but I know that it's not the right way to go about making this edit. VS and GCC throw out warnings about macro redefinition. Any help would be much appreciated.
-
How avoid exploit card on dracula? (mimic, myst case card and etc)
Nihad replied to jholphoda's question in Source Support
Or you can simply edit the Dracula mobskill and have him not summon so many familiars so it's not worth it. One of the problems with dracula is that he summons so many and so fast, you get a crazy amount of items. You could also remove his familiars entirely and avoid the issue, it's not like they contribute anything to his fighting power or to the strategy of fighting him. -
Not sure if you knew but github has this nifty feature called "History". When you click on a file, you can select several options at the top right of the file. For example morocc: https://github.com/HerculesWS/Hercules/commits/master/npc/cities/morocc.txt This displays all the commits made to that file, and you can click on a specific date and view the changes made then and the file as it was at that point by clicking "view". You can browse the entire herc repo as it was at that point by clicking "browse files". You will also need to find an older grf and extract the old city map and replace the new one and update your mapcache. Hop that helps a tiny bit.
-
I agree with what was said above but to an extent. Would be neat if we could have some sort of reward system for people that contribute. There are a number of people here like Dastgir that have given so much back to the community. Not entirely sure what kind of reward system can be put in place though. But it might be worth it to consider encouraging contribution.
-
Very nice, haven't updated my herc files in a while, glad to see some awesome changes. Thanks for the summary.
-
[ Error ] : timer_add_interval: invalid interval
Nihad replied to dungpt8782's question in General Server Support
Try using a clean player.conf from herc git. And see if you still get the issue. Also check console see what errors it's giving you, it will make figuring the bug out much easier. -
Ah didn't realize this was a custom shield, my bad. http://herc.ws/board/topic/1974-release-custom-job-custom-shield-patches/ Second half of this post.
-
*rentitem(<item id>, <time>) *rentitem("<item name>", <time>) Creates a rental item in the attached character's inventory. The item will expire in <time> seconds and be automatically deleted. When receiving a rental item, the character will receive a message in their chat window. The character will also receive warning messages in their chat window before the item disappears. This command can not be used to rent stackable items. Rental items cannot be dropped, traded, sold to NPCs, or placed in guild storage (i.e. trade mask 75). Note: delitem() in an NPC script can still remove rental items. I believe the rent command already accomplishes what you are trying to.
-
Check your iteminfo, and see what the classnum says It should be ClassNum = 6