Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by bWolfie

  1. Thanks for the responses. I don't know why I use memcpy, not so advanced on coding. I just copied an existing structure I found in source code. I used safestrncpy in new version and no leaks. char item_name[ITEM_NAME_LENGTH], output[100]; safestrncpy(item_name, i_data->jname, ITEM_NAME_LENGTH); sprintf(output, "Retrieved %d '%s' from storage.", i, item_name);
  2. I made this command to retrieve all of an item from storage. This line char *item_name =(char *)aMalloc(ITEM_NAME_LENGTH*sizeof(char)); causes memory leak. How to fix it? struct item_data *i_data = itemdb->exists(nameid); if (i_data == NULL) { clif->message(fd, "Invalid Item ID."); return false; } char *item_name =(char *)aMalloc(ITEM_NAME_LENGTH*sizeof(char)); memcpy(item_name, i_data->jname, ITEM_NAME_LENGTH); char output[100]; sprintf(output, "Retrieved %d '%s' from storage.", i, item_name);
  3. Thanks helped solve my problem. Use skill id 900-1000 for custom skills.
  4. See /doc/sample/npc_trader_sample.txt and NPC related script commands: https://github.com/HerculesWS/Hercules/blob/stable/doc/script_commands.txt#L10462
  5. How do you define CUSTOM_SKILL_RANGES? Can't work it out. No documentation available still. Whenever I make changes to skill_idx_ranges[] it causes everything from { GD_APPROVAL, GD_DEVELOPMENT }, to break. Edit: It seems that the skill id must be listed in order. I was using skill id below 10000, but listed after. This means all custom skill must be of more than GD_DEVELOPMENT, otherwise CUSTOM_SKILL_RANGES will cause issues.
  6. maybe some graphics editing and client hex.
  7. @meko Do you know how to create a function similar to sort/rsort, but it won't move a certain nth array? E.g. #1, I have this array setarray([email protected], 4000, 3, 4001, 7, 4002, 1, 4003, 10, 4004, 0, 4005, 2); Then I want to sort it so the left numbers (4000-4005) change position with the right no. E.g. #2, now going to sort in ascending order. 4004, 0, 4002, 1, 4005, 2, 4000, 3, 4001, 7, 4003, 10, As you can see, it only sorted every 2nd array, but it moved the preceding array with it. Idk how to explain this. I think "anchor" would be the correct term. Value n determines how many values are anchored to the first array index before we sort by a new anchor. Hope it makes sense and hoping you can help me out. Thanks.
  8. sorry i dont have time to update this
  9. So I have a NPC script which uses disablenpc() on a timer. Players are able to interact with the NPC while it is active. The NPC uses mes(). If a player is talking to the NPC while the disablenpc() is triggered, the will become stuck on the mes() screen, and will need to logout or warp away using @load or something similar to get out of it. My query: When disablenpc() is triggered, how can I send close() to everyone currently talking to that NPC? (sorry haven't updated my source for a bit, this may already exist in new versions)
  10. happy hour is when badge amount reward increases when won within that hour.
  11. Yes it's possible but takes some work to configure. I have them configured with Kubix's BG release from 2016. I'm not familiar with eBG so I can't help you. That's quite hard cause firstly you need a mapper who has played the mode before and secondly a scripter who knows the ins and outs of it too.
  12. Been around for some years now. I first saw it on one of those Russian servers. Never seen any piece of code or the like regarding it, so personally have no idea how it works. From my experience, they were all terrible. Logging in regularly and not using one of "proxy server"s as they are known always proved best for me. But it may have also had something to do with the fact I live in New Zealand and the destination server was in Russia. This was also 4-5 years ago, so technology probably improved in that time. IMO, until proven otherwise, they are vanity features and are only good as marketing tools. They may help a niche group though.
  13. FluxCP needs a page in both modules\page\index.php and themes\<theme name>\page\index.php You need to do it for every theme that can be used. You can also put it in the add-ons folder which bypasses this I believe.
  14. What's ROM? Best way to do this is very long and not simple. Change all MvP spawns into individual scripts. Then you can use getnpctimer() to get the time left. Example: moc_pryd04,0,0,0 script Osiris_Spawn FAKE_NPC,{ OnMyMobDead: .GID = 0; initnpctimer(); end; OnTimer3600000: // wait 60 mins sleep(rand(600000)); // add 0~10 mins OnInit: .GID = monster("moc_pryd04", 0, 0, "--en--", OSIRIS, 1, sprintf("%s::OnMyMobDead", strnpcinfo(NPC_NAME))); stopnpctimer(); end; } Then make another script with the atcommand to check getnpctimer(0, "Osiris_Spawn")
  15. Requires source edit. Go to src/map/skill.c, find static int can_copy(). Anywhere after nullpo_ret(sd); you can put your conditions. if (skill_id == WZ_WATERBALL) return 0; If you want to carryover skill_lv, you need to edit 2 lines. Change 1, find line: can_copy(tsd,copy_skill,bl)) // Split all the check into their own function [Aru] Change to: can_copy(tsd, copy_skill, skill_lv, bl)) // Split all the check into their own function [Aru] Change 2, find line: static int can_copy(struct map_session_data *sd, uint16 skill_id, struct block_list *bl) Change to: static int can_copy(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv, struct block_list *bl)
  16. I don't know about server database editor. I prefer to edit file directly.
  17. In my opinion, best thing to do is to save all data as char_reg variables, e.g. WoE_Kill += 1; And then once WoE is finished, run a SQL query to copy data from char_reg_num_db and char_reg_str_db to your custom table. E.g. OnAgitEnd: query_sql("TRUNCATE TABLE `woe_rank`;"); // clear old data. this table is only used to hold temporary values for displaying elsewhere [email protected] = query_sql("SELECT `char_id`, `value` FROM `char_reg_num_db` WHERE `key` = 'WoE_Kill';", [email protected], [email protected]_Kill); for ([email protected] = 0; [email protected] < [email protected]; [email protected]++) { query_sql(sprintf("INSERT INTO `woe_rank`(`char_id`, `kills`) VALUES(%d, %d);", [email protected], [email protected]_Kill)); sleep(50); // don't perform too many queries at once (20 per second) } end; So then the query_sql() command is only being run under controlled circumstances, and only used once.
  18. We don't have RC_Human. Check https://github.com/HerculesWS/Hercules/blob/master/doc/item_bonus.md
  19. like Xross said, likely using older SQL database which is incompatible with the current Hercules revision. When you start the login server, it should say which files you need to add. In any case, you can usually fix this by doing the following. Backup current database using mysqldump (unsure how to dump other ways) mysqldump database > ~/database-backup.sql Drop database, then recreate. DROP DATABASE database; CREATE DATABASE database; Create new table structures using Hercules SQL. mysql .... < sql-files/main.sql Then add your backed up database on top of that... mysql .... < ~/database-backup.sql
  20. thanks Dastgir. I couldn't get item combo to work but scconfig did.
  21. can anyone help me on how to run python script? When I run ./scconfigconverter.py on my linux system nothing happens. Same for the item combo one. didn't have issue when converting mob_skill_db.txt back a while. [[email protected] tools]$ ./scconfigconverter.py : No such file or directory
  22. Question is hard to understand. I am unfamiliar with what you mean "cash points" in releation to flux-cp. edit: someone post just before i did
  23. There is a guide on the github wiki. It should be good enough to get a custom item in.
  • Create New...

Important Information

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