Jump to content

Louis T Steinhil

Members
  • Posts

    183
  • Joined

  • Last visited

  • Days Won

    13

Everything posted by Louis T Steinhil

  1. this is the default 175, 125. I'll upload later if I get to see a difference Desktop 2024.06.01 - 07.52.59.01.mp4
  2. Hello this is my script. I know something is missing but it has no errors. (latest rAthena trunk) Thanks in advance! Here's the code: firstcity,229,87,4 script Salvage NPC 856,{ mes "[Salvage NPC]"; mes "Hello! I can salvage your old weapons and armor."; mes "In return, I'll give you a special item based on the weapon's level."; next; mes "[Salvage NPC]"; mes "Would you like to proceed?"; switch(select("Yes:No")) { case 1: callfunc("salvage_item"); break; case 2: mes "[Salvage NPC]"; mes "Alright, come back if you change your mind."; close; } close; // Handle item sale OnSellItem: // Rewards based on weapon level setarray .@reward_common, 501, 502; // Example common loot item IDs setarray .@reward_rare, 503, 504; // Example rare loot item IDs setarray .@reward_unique, 505, 506; // Example unique loot item IDs setarray .@reward_legendary, 507, 508; // Example legendary loot item IDs setarray .@reward_ancient, 509, 510; // Example ancient loot item IDs set .@item_id, @sold_nameid; set .@weapon_level, getiteminfo(.@item_id, ITEMINFO_WEAPONLEVEL); switch (.@weapon_level) { case 1: // Reward common item/points getitem .@reward_common[rand(getarraysize(.@reward_common))], 1; break; case 2: // Reward rare item/points getitem .@reward_rare[rand(getarraysize(.@reward_rare))], 1; break; case 3: // Reward unique item/points getitem .@reward_unique[rand(getarraysize(.@reward_unique))], 1; break; case 4: // Reward legendary item/points getitem .@reward_legendary[rand(getarraysize(.@reward_legendary))], 1; break; case 5: // Reward ancient item/points getitem .@reward_ancient[rand(getarraysize(.@reward_ancient))], 1; break; default: dispbottom "This item cannot be salvaged."; } dispbottom "Thank you! Here is your reward."; end; } function script salvage_item { mes "[Salvage NPC]"; mes "Please show me the items you want to salvage."; next; // Fetch player's inventory getinventorylist; // Collect all weapons and armor in the player's inventory set .@item_count, 0; for (.@i = 0; .@i < @inventorylist_count; .@i++) { set .@type, getiteminfo(@inventorylist_id[.@i], 2); if ((.@type == 4 || .@type == 5) && @inventorylist_equip[.@i] == 0) { // Type 4 = Weapon, Type 5 = Armor, and not equipped set .@salvageable_items[.@item_count], @inventorylist_id[.@i]; set .@salvageable_items_qty[.@item_count], @inventorylist_amount[.@i]; set .@item_count, .@item_count + 1; } } if (.@item_count == 0) { mes "[Salvage NPC]"; mes "You don't have any salvageable items."; close; } mes "[Salvage NPC]"; mes "Here is a summary of the items you can salvage:"; for (.@i = 0; .@i < .@item_count; .@i++) { mes "^0000FF" + getitemname(.@salvageable_items[.@i]) + "^000000 x" + .@salvageable_items_qty[.@i]; } next; if (select("Proceed with Salvage:Cancel") == 2) { mes "[Salvage NPC]"; mes "Alright, come back if you change your mind."; close; } // Call the shop callshop "salvage_shop", 2; npcshopattach "salvage_shop"; close; } // Shop definition - shop salvage_shop -1,501:-1 here's the debug: [Debug]: npc_scriptcont: Salvage NPC (sd->npc_id=111487803) is not 'Unknown NPC' (id=0).
  3. There is a change, it move quite a bit but not the same as you have that waves her hands around. Mine is just like split second movement then rapid duplicated numbers
  4. How to make this Item Icon on NPC Dialog and what client is it compatible? Thanks in advace!
  5. Doesn't work on my 2022 client. rAthena trunk (latest)
  6. yep i did the same thing and just getting that error status change start
  7. Hello I was trying to implement this script from Character chooses their own Rates. I edited it a bit to my liking - script RateSelect -1,{ OnSetRate: OnPCLoginEvent: switch(individual_rate) { case 1: .@exp_rate_bonus = .low_rate_exp_bonus; .@jexp_rate_bonus = .low_rate_jexp_bonus; .@drop_rate_bonus = .low_rate_drop_bonus; set .@rate_description$, "x1 (Low Rate)"; break; case 2: .@exp_rate_bonus = .mid_rate_exp_bonus; .@jexp_rate_bonus = .mid_rate_jexp_bonus; .@drop_rate_bonus = .mid_rate_drop_bonus; set .@rate_description$, "x25 (Mid Rate)"; break; case 3: .@exp_rate_bonus = .high_rate_exp_bonus; .@jexp_rate_bonus = .high_rate_jexp_bonus; .@drop_rate_bonus = .high_rate_drop_bonus; set .@rate_description$, "x50 (High Rate)"; break; case 4: .@exp_rate_bonus = .extreme_rate_exp_bonus; .@jexp_rate_bonus = .extreme_rate_exp_bonus; .@drop_rate_bonus = .extreme_rate_jexp_bonus; set .@rate_description$, "x100 (Extreme Rate)"; break; default: mes "[Rate Selector]"; mes "Select your preferred server rate for this character."; mes "BE CAREFUL: YOU CAN'T CHANGE IT AFTERWARD!"; individual_rate = select("x1:x25:x50:x100"); close2; goto OnSetRate; } sc_start SC_EXPBOOST, INFINITE_TICK, .@exp_rate_bonus, 10000, SCSTART_NOICON; sc_start SC_JEXPBOOST, INFINITE_TICK, .@jexp_rate_bonus, 10000, SCSTART_NOICON; sc_start SC_ITEMBOOST, INFINITE_TICK, .@drop_rate_bonus, 10000, SCSTART_NOICON; dispbottom "You have chosen the " + .@rate_description$ + " for your character."; end; OnInit: .low_rate_exp_bonus = 100; // x1 rate .mid_rate_exp_bonus = 2500; // x25 rate .high_rate_exp_bonus = 5000; // x50 rate .extreme_rate_exp_bonus = 10000; // x100 rate .low_rate_jexp_bonus = 100; // x1 rate .mid_rate_jexp_bonus = 2500; // x25 rate .high_rate_jexp_bonus = 5000; // x50 rate .extreme_rate_jexp_bonus = 10000; // x100 rate .low_rate_drop_bonus = 100; // x1 rate .mid_rate_drop_bonus = 2500; // x25 rate .high_rate_drop_bonus = 5000; // x50 rate .extreme_rate_drop_bonus = 10000; // x100 rate } prontera,150,150,5 script Rate Chooser 123,{ callsub OnSetRate; end; } It's working but that noicon part is not working when you logout and login again. You'll see the icons on the right but with no description. sc_start SC_EXPBOOST, INFINITE_TICK, .@exp_rate_bonus, 10000, SCSTART_NOICON; sc_start SC_JEXPBOOST, INFINITE_TICK, .@jexp_rate_bonus, 10000, SCSTART_NOICON; sc_start SC_ITEMBOOST, INFINITE_TICK, .@drop_rate_bonus, 10000, SCSTART_NOICON; I just would like want to duplicate SC_ITEMBOOST, SC_EXPBOOST & SC_JEXPBOOST and make their own icon so I won't have to mess up with Field Manual Icons and Bubble Gum. Thanks in advace!
  8. I used summon script commands then made a dedicated mob that buffs. so basically not much coding for unitwalk and unitwarp since i turned on the slave warp to master on battle/monster.conf // Should slaves teleport back to their master if they get too far during chase? (Note 1) // Default (Official): no slave_stick_with_master: yes
  9. Found a different way. SOLVED
  10. Thanks it worked!
  11. Does anyone know how to make the summon teleport or warp as well when you use tele / warp BUILDIN_FUNC(summon) { int _class, timeout=0; const char *str,*event=""; TBL_PC *sd; struct mob_data *md; t_tick tick = gettick(); if (!script_rid2sd(sd)) return SCRIPT_CMD_SUCCESS; str =script_getstr(st,2); _class=script_getnum(st,3); if( script_hasdata(st,4) ) timeout=script_getnum(st,4); if( script_hasdata(st,5) ){ event=script_getstr(st,5); check_event(st, event); } clif_skill_poseffect(&sd->bl,AM_CALLHOMUN,1,sd->bl.x,sd->bl.y,tick); md = mob_once_spawn_sub(&sd->bl, sd->bl.m, sd->bl.x, sd->bl.y, str, _class, event, SZ_SMALL, AI_NONE); if (md) { md->master_id=sd->bl.id; md->special_state.ai = AI_ATTACK; if( md->deletetimer != INVALID_TIMER ) delete_timer(md->deletetimer, mob_timer_delete); md->deletetimer = add_timer(tick+(timeout>0?timeout:60000),mob_timer_delete,md->bl.id,0); mob_spawn (md); //Now it is ready for spawning. clif_specialeffect(&md->bl,EF_ENTRY2,AREA); // sc_start4(NULL,&md->bl, SC_MODECHANGE, 100, 1, 0, MD_AGGRESSIVE, 0, 60000); } script_pushint(st, md->bl.id); return SCRIPT_CMD_SUCCESS; }
  12. I would like to get help: Good day this is about the code for npc that gives you monster to support you like a Priest. This is the code: prontera,119,162,3 script Hired Help 56,{ //Dialogue if(@hired){ mes .npcn$; mes "It Looks like you two are having fun. Well don't let me stop you- carry on!"; close; } mes .npcn$; mes "Hello, would you be interested in purchasing some of my lovely ladies?"; mes "They buff you, heal you, and even revive you!!"; mes "So what do you say, huh?"; next; if(select("Yes:No")&2) { mes .npcn$; mes "You're missing out!"; close; } mes .npcn$; mes "It's 1z per-second with these beautiful gals."; input(.@time); if(.@time>Zeny||.@time<=0) { mes .npcn$; mes "You don't have enough. That's just too bad. Oh well better luck next time."; close; } close2; //End //Working parts set .@gid,bg_monster(.@bgid,.npcm$,.npcx,.npcy,"[Hired Help] "+.hhnm$[rand(1,getarraysize(.hhnm$))],.mobid,"Hired Help::OnBroken"); set @hired,1; set Zeny,Zeny-.@time; set .@usrid, getcharid(3); set .@map$,strcharinfo(3); while( set(.@i,.@i+1)&&playerattached()&&.@i<=.@time*20 ) { sleep2 1; if(!playerattached()) break; if((.@i%(.btym*20))==1) { while(.buffs[((set(.@i,.@i+2)-2)%(.btym*20))]) { unitskilluseid .@gid,.buffs[((.@i%(.btym*20))-2)],.buffs[(((.@i%(.btym*20))+1)-2)],.@usrid; sleep2 1000; } sc_start 32,240000,10,.@gid; } getmapxy(.@map1$,.@x1,.@y1,BL_PC); set .@dis, sqrt(pow(.@x1-.@tmpx,2 )+pow(.@y1-.@tmpy,2 ) ); if(.@dis&&.@dis<.wlkd){ unitwalk .@gid,.@tmpx,.@tmpy; .@lstx=.@tmpx; .@lsty=.@tmpy;} else if(.@dis>=.wlkd) unitwarp .@gid,.@map1$,.@x1,.@y1; else unitwalk .@gid,.@lstx,.@lsty; if(!(.@i%5)){ .@tmpm$=.@map1$;.@tmpx=.@x1;.@tmpy=.@y1; } if(.@map1$!=.@map$) { set .@map$, strcharinfo(3); unitwarp .@gid,.@map1$,.@x1,.@y1; } if(!Hp) unitskilluseid .@gid,54,4,.@usrid; if(Hp*100<MaxHp*.hpat) unitskilluseid .@gid,28,99,.@usrid; } killmonster .@map1$,"Hired Help::OnBroken"; if(playerattached()) set @hired,0; end; //End OnBroken: end; //NPC Variables OnInit: set .hpat, 70; //Heals the player when HP drops below this percent. You want this below 100 at all times. set .mobid,1626; //ID of your custom mob. set .btym, 240; //Rebuff in seconds. set .wlkd, 6; //Character speed before mobs warps to him. set .npcn$,"[^0000FFGreg^000000]"; getmapxy( .npcm$,.npcx,.npcy,BL_NPC ); setarray .buffs[1], 29, 10, 34, 10; // Skill_id, Skill_lv, Etc. setarray .hhnm$[1], "Ellsie", "Jenny", "Ashley", "Meghan", "Wenndy", "Anna"; //Hired npc will be randomly named from these values. } This code is not mine and it's from this link: https://rathena.org/board/topic/84503-hire-npc/ It works the first half that it summons the monster but console is prompting that the monster can't unitwalk and makes the monster just stuck with the NPC. I would like to change the bg_monster part and just make it summon so players won't attack it and fixed the unitwalk.
  13. 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.
  14. does this still work on latest?
  15. Try to search that RixSquirrel. I think that's just font of RO. The quierytransparentiteminfo try that ignore error patch from warp? maybe that'll work
  16. Good day! I tried editing this act & spr in act editor because it doesn't have "actions". So I went copying some actions from other headgear. ¿©_cons_of_poison.act ¿©_cons_of_poison.spr This is the original act & spr and this is the edited act & spr. For some reason it always crash my client. Anyone else know why? Thanks in advance! ³²_elempoison.act ³²_elempoison.spr This is the error code: eax: 0x00000000 ebx: 0x36d1a000 ecx: 0x01133c50 edx: 0x00000000 esi: 0x00000004 edi: 0x0019f4a8 ebp: 0x00000000 esp: 0x0019fff8 stack 0019fff8 - 001a03f8 0019FFF8 : 00 00 39 00 00 00 00 00 41 63 74 78 20 00 00 00 001A0008 : 01 00 00 00 1C 33 00 00 DC 00 00 00 00 00 00 00 001A0018 : 20 00 00 00 00 00 00 00 14 00 00 00 01 00 00 00 001A0028 : 07 00 00 00 34 00 00 00 7C 01 00 00 01 00 00 00 001A0038 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 001A0048 : 00 00 00 00 02 00 00 00 4E EF 26 1A 98 02 00 00 001A0058 : 44 00 00 00 E0 02 00 00 54 02 00 00 00 00 00 00 001A0068 : BA 71 32 F3 34 05 00 00 4A 00 00 00 80 05 00 00 001A0078 : 48 03 00 00 00 00 00 00 5B 49 59 2D C8 08 00 00 001A0088 : 32 00 00 00 FC 08 00 00 00 03 00 00 00 00 00 00 001A0098 : CD EA CE 32 FC 0B 00 00 42 00 00 00 40 0C 00 00 001A00A8 : 36 03 00 00 00 00 00 00 C8 5F 50 38 78 0F 00 00 001A00B8 : 5E 00 00 00 D8 0F 00 00 68 03 00 00 00 00 00 00 001A00C8 : 44 05 28 B1 40 13 00 00 56 00 00 00 98 13 00 00 001A00D8 : 86 03 00 00 10 00 00 00 09 00 00 00 EC 00 00 00 001A00E8 : 02 00 00 00 01 00 00 00 7C 01 00 00 DC 15 00 00 Launch Info 00F8 00A4 00A4 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 Job : Paladin prontera.rsw 158 81 renderer.cpp 838
  17. I have tried adding new race (RC_Orc) on this but Orc lady card doesn't work on it. I added it on map.hpp and script_constants.hpp please help thanks! * Race (r) RC_Angel, RC_Brute, RC_DemiHuman, RC_Demon, RC_Dragon, RC_Fish, RC_Formless, RC_Insect, RC_Plant, RC_Player_Human (RC_Player deprecated), RC_Player_Doram, RC_Undead, RC_All
  18. Hello does anyone has a full working sprite of this? Thanks! Cons of Poison Cons of Water
  19. You should post the error
×
×
  • Create New...