Jump to content

All Activity

This stream auto-updates

  1. Past hour
  2. Today
  3. I have a problem wherein my Mounted Rune Knights (including jRO alternate) sprites have incorrect weapon position. Besides manually correcting it via Act Editor, is there an easy way to fix this? I've tried searching around for 룬나이트쁘띠_여_1.act (body sprite) and 페코페코_룬나이트_여_1185.act (weapon sprite) on different official servers, some private servers included, but it seems that I can't find the proper file to correct their position.
  4. For scripts that keep repeating the same thing over and over but only have minor changes based on scenario, functions are the way to go. /* Function to check that the player has the requisite item, then accept multiple args to control the rest of the function. * @param {int} rental_item - The item id to check for. * @param {int} second_item - The item id to check for. * @param {int} give_item - The item id to give the player when the function is finished. * @syntax callfunc "F_Gather",40005,40008,40023; */ function script F_Gather { .@rental_item = getarg(0); .@second_item = getarg(1); .@give_item = getarg(2); clear; if(rentalcountitem(.@rental_item) < 1){ mes "You don't have a "+ getitemname(.@rental_item) +"."; // You don't have a Stone Knife. close; } if(countitem(.@second_item) == 1){ mes "Gathering in progress.", "Do not move or gathering", "progress will be cancelled."; soundeffect "gathering.wav",0; addtimer 2,strnpcinfo(0)+"::OnTest"; progressbar "0x00ff00",2; next; mes "Gathering Completed."; soundeffect "menu.wav",0; gathering_points += 1; dispbottom "Gained +1 Gathering Points"; getitem .@give_item,1; close3; } } - script Green Tree FAKE_NPC,{ soundeffect "menu.wav",0; mes "What do you want to do ?"; switch(select("- Gather Branch:- Gather Log:- Gather Tree Sap:- Cancel")){ case 1: switch(select("- Use Stone Knife:- Cancel")){ case 1: // Rental item needed, Second item needed, Item to give callfunc "F_Gather", 40005, 40008, 40023; case 2: break; } break; case 2: switch(select("- Use Makeshift Axe:- Cancel")){ case 1: callfunc "F_Gather",40029,40008,40027; case 2: break; } break; case 3: switch(select("- Use Stone Knife:- Cancel")){ case 1: callfunc "F_Gather",40005,40008,40190; case 2: break; } case 4: break; } OnTest: end; } // DUPLICATE //================================================================= new_1-3,92,63,6 duplicate(Green Tree) Green Tree#1000 11000 new_1-3,96,65,6 duplicate(Green Tree) Green Tree#1001 11000
  5. I've added custom job but there is this problem with the garment. As you can see, it is also displaying in front. Now I know that i need to edit some lub files and perhaps add the job id but i don't know where to start. Any help would be appreciated. *EDIT FIXED
  6. After some tests the answer is no. Its hardcoded to the client.
  7. This is nice to those who are on 2019+ client. Keep it up!
  8. as mention above, my current script have part which it's keeps repeating the same message, could someone make it more easy and simple template, which later i can use to edit to add more and much more easy to manage? like edit a configuration settings for rewards, require item for option 1, option 2 or anything came up on your idea.. thanks..
  9. I hackily solved this on the source side. A side effect of my solution is that it shows extra damage numbers (but the multihit total is still correct, and the extra damage numbers are visual only). My solution: In the "display damage" switch block in skill_attack: case CG_ARROWVULCAN: case AS_SONICBLOW: { dmg.dmotion = clif_skill_damage(dsrc, bl, tick, dmg.amotion, dmg.dmotion, damage, dmg.div_, skill_id, flag & SD_LEVEL ? -1 : skill_lv, dmg_type, dmg.crit); struct unit_data* ud = unit_bl2ud(dsrc); if (ud) { ud->dmg = dmg; ud->sb_animation = 0; ud->sb_target = bl->id; ud->sb_timer = add_timer(gettick()+20, skill_sonicblow_animation, dsrc->id, 0); } break; } ↑ This plays the default SB animation, sets up some data, then adds a new timer function. Here's the code for the timer_func it adds: TIMER_FUNC(skill_sonicblow_animation){ struct block_list *target, *src; struct unit_data *ud; struct status_change *sc = NULL; int flag = 0; src = map_id2bl(id); if(src == NULL) { return 0; } ud = unit_bl2ud(src); if(ud == NULL) { return 0; } target = map_id2bl(ud->sb_target); if (!target || ud->sb_animation >= ud->dmg.div_ || ud->sb_timer == INVALID_TIMER) { ud->sb_animation = 0; ud->sb_timer = INVALID_TIMER; return 0; } int div_ = ud->dmg.div_; if (div_ < 1) { div_ = 1; } t_tick canmove = tick_diff(ud->canmove_tick, tick); canmove /= (div_-ud->sb_animation); if (canmove > 175) { canmove = 175; } clif_damage(src, target, tick, 125, ud->dmg.dmotion/div_, ud->dmg.damage/div_, div_, DMG_NORMAL, ud->dmg.damage2/div_, ud->dmg.isspdamage); ud->sb_animation++; ud->sb_timer = add_timer(tick+canmove, skill_sonicblow_animation, id, data); return 1; } ↑ This just sets up some damage then calls clif_damage, and sets up another timer func to keep it going until sb_animation reaches skill's div count. To be clear this will work for any multiattack that you want to have spam auto attacks, not just SB. Sorry for the naming scheme. The extra damage numbers are customizable by changing what you pass to the clif_damage call. You can set it to all 1s, or all misses, or anything else. Unfortunately I never found a way to implement this without the extra numbers—I'm not sure how to force the client to arbitrarily play an auto attack animation with no corresponding damage numbers. If someone knows, I'd be interested. and in the unit_data struct: int sb_animation, sb_target, sb_timer; // hacky sb animation fix ↑ just some state data, ud seemed like the best place to put it so that it works on both mobs and players. This produces a sonic blow like in the attached file. also viewable here: https://mikomiko.org/files/Screencast_20240512_005716.webm It's not perfect but I'm happy enough with it for now. Screencast_20240512_005716.webm
  10. Hi, Does anyone know of a method to retrieve the id of a block_list in the client lua? In particular I want to know the ID of a map_session_data object when it attacks. Failing this, I'd even like to know how to obtain a player's job ID around the time they attack. The closest I've gotten is retrieving the jobID via ValidateShieldID from Neo-Mind's Custom Shield's patch, which lives in ShieldTable_F.lub. ValidateShieldID seems to get called whenever a player comes insight or swaps equipment. I suppose I'm generally a little mystified as to how some patches are able to hook into these types of events to begin with, and how they get arguments passed to them.
  11. As the title says, I can't use up my skill points in some jobs. For example, in the Assassin job, the only thing I changed is the job exp to 300/150 and exp to level up per level. But at default 99 level, it works totally fine. Attached is the script for reference. I hope you guys can help me out. job_exp.txt
  12. Yesterday
  13. Attention all RO fans! Our Chibi Image Collection has been updated with fresh new designs as of 2/20/19. Check it out and let us know which one is your favorite! Let's spread the cuteness all around the forum and show off our love for all things chibi in the world of Ragnarok Online. [url=https://nyamrecepti.kyiv.ua/]Сайт Ням-Ням[/url]
  14. This is the same one I'm using for clothes, but for hair when I change the color I get an error. I also corrected these pallets, the clothes are working ok, just the hair color.
  15. Looking For Renewal Developer who can update EP 17 18 19 Looking For Renewal Developer who can update latest instances Looking For Renewal Developer who can update 4th class expended skills
  16. You'll need to trigger the cutin display when interacting with the NPC. by using the onNPCTalk or onNPCTouch event handlers within the NPC script. These handlers will execute your custom script defined for the cutin. Here is the approach: // Define your cutin graphic script MyCutin { // Specify image filename, position (x,y), and size (width,height) image "..." x "..." y "..." w "..." h "..."; } // NPC Script script MyNPC { ... // Other NPC definitions // Trigger cutin display on NPC interaction onNPCTalk: MyCutin; // Call the cutin script ... // Continue NPC interaction logic } // In your main script showwindow { // Define window properties (size, position, background) button "..." { /* NPC interaction button */ }; }
  17. Hi i have a problem After update from https://github.com/rathena/rathena/commit/d445497870e7f93abab3800b18acc438f7a4af75 Error + mes_length clif.cpp(2641,53): warning C4267: '=': conversion from 'size_t' to 'int16', possible loss of data Thank you. void clif_scriptmenu( map_session_data& sd, uint32 npcid, const char* mes ){ struct block_list *bl = nullptr; if (!sd.state.using_fake_npc && (npcid == fake_nd->bl.id || ((bl = map_id2bl(npcid)) && (bl->m!=sd.bl.m || bl->x<sd.bl.x-AREA_SIZE-1 || bl->x>sd.bl.x+AREA_SIZE+1 || bl->y<sd.bl.y-AREA_SIZE-1 || bl->y>sd.bl.y+AREA_SIZE+1)))) clif_sendfakenpc( sd, npcid ); PACKET_ZC_MENU_LIST *packet = reinterpret_cast<PACKET_ZC_MENU_LIST*>(packet_buffer); size_t mes_length = strlen(mes); packet->packetType = HEADER_ZC_MENU_LIST; packet->npcId = npcid; packet->packetLength = sizeof(PACKET_ZC_MENU_LIST) + mes_length; memcpy(packet->menu, mes, mes_length); clif_send( packet, packet->packetLength, &sd.bl, SELF ); }
  18. I sent a compatible version for emulators without inarray, just wait for the rA mods to release it.
  19. that is hairstyle. you might need the palette. Maybe can you Kamishi palette : https://kamishi.ragnawork.com/product/700-palettes-human-pack.
  20. Hello does anyone have a working copy of this? It only works with Str + 1 but if you changed it like Str + 100. It only adds + 1 to str. Other bonuses like Max HP Rate doesn't work either. No error on console and compile.
  21. Last week
  22. Baixei este pacote, quando mudo a cor do cabelo recebo um erro CRASH. @hcolor 2 Olhei o tópico, várias pessoas tiveram esse mesmo erro, acredito que o grf não tenha as cores do cabelo. Alguém pode me ajudar? Adorei esse grf, esses cabelos são maravilhosos.
  23. yes, if you follow the instruction, need that correction file, it should be good until 3rd job class alternative.
  24. https://rathena.org/board/files/file/2447-corrected-classes-head-sprites/ I managed to fix it, thank you. Just install the fix as well. install the two pallets in data.ini
  25. I tried this one too, only the golden color appears. starting from number 5
  1. Load more activity
×
×
  • Create New...