Jump to content

jaBote

Community Contributors
  • Content Count

    2037
  • Joined

  • Last visited

  • Days Won

    43

Everything posted by jaBote

  1. Dammit! I had to make a mistake in some place Re-corrected version /sob: mapmobtest.txt Hope I'm not mistaken again or I'll cry TT_TT .
  2. My previous explanation didn't really explain why when you select 2nd slot it got third one, but I've just found the little mistake on Kenedos script and fixed it. A misspelt variable: he was using .@slotnum instead of .@slot_num (see my third codebox: it was there and I didn't even notice it!). Menu now makes the user select whether they want 2nd, 3rd or 4th slot of the armor. This way it's easier for them to understand what slot to compound. Note I've also reversed the order of the zeny cost of the enchantments and its chance, so prices and chances for 2nd slot are now those the enchanter asked for 3rd slot; same with 3rd now slot to 2nd old slot and 4th to now 1st. Here you go: Armor craftsman2.txt It may be enlightening for your scripting abilities to compare them side-by-side and check what modifications I made, they're very basic ones. Please, test this thoroughly in your home server before using elsewhere as I may be mistaken too. Also, tell me if it works too.
  3. This script is enormous and it kinda confused me first time I tried to review it, but after looking through it for quite a lot of time, it seems that Kenedos counted the slots backwards, don't know what made him decide this. This confirms what you stated in your first post. See these pieces of code: // Selecting Slots L_SelectSlot: set .@slot_num, 0; set .@slot_num, select("1st Slot:2nd Slot:3rd Slot"); if ((.@slot_num <= 0) || (.@slot_num > 3)) { mes "["+strnpcinfo(1)+"]"; mes "Sorry but you must select a valid slot number."; close; } set .@equip_cardid, getequipcardid(.@part,(4 - .@slot_num)); // 4 - number of slot selected mes "^0000FFSlot Number^000000 = "+( (.@slot_num == 1) ? "1st Slot" : (.@slotnum == 2 ? "2nd Slot" : "3rd Slot") ); WHAT? He first counts backwards then he changes to count forward? 1st slot is the last one for him. if (.@slot_num == 1) getitem2 .@itemid, 1, 1, .@refine, 0, .@cardid[0], .@cardid[1], .@cardid[2], .@rand_bonus; else if (.@slot_num == 2) getitem2 .@itemid, 1, 1, .@refine, 0, .@cardid[0], .@cardid[1], .@rand_bonus, .@cardid[3]; else if (.@slot_num == 3) getitem2 .@itemid, 1, 1, .@refine, 0, .@cardid[0], .@rand_bonus, .@cardid[2], .@cardid[3]; Note: .@rand_bonus is the bonus you previously selected. Hey, beware of the other enchantment method just after this one, fixing it is identical but you have to edit some more lines. And those comments are mine, don't try to find them I'll try to fix it if you want, but if you know a bit of scripting you have what you need in order to fix it yourself in these code boxes. This could be an interesting exercise for you if you want to learn/apply a bit of scripting knowledge. If not, I don't mind to fix this myself. Well, in fact this wouldn't be a fix but a partial amendment.
  4. jaBote

    Dynamic Shop HELP

    Opened the NPC just from map server and didn't get any errors on it. Could you please state what errors are there?
  5. Not at the moment. We only have official battlegrounds but this can change the moment someone decides to publish a free version of it.
  6. Sadly, we have neither the source, nor the documentation, of eAmod and thus we can't help you in this matter. Your best option is asking in eAmod forums to get support from this.
  7. Yeah, the rates were multiplied: if you were in a 10x server the extra exp would be as in a 100x server. This is why I always ask you to test in your side. I've already fixed this: you get your bonus exp with a 1% relative error at most now, given by not having more than two decimals provided by the server. More info: [*]This script will NOT work properly in Renewal. It works indeed, but extra exp will be calculated on the 100% exp given by the mob. [*]I'll re-release this when I fix the equiprobability issue. [*]What I've tested is only the extra experience given by a mob, not anything else. So testing on your home server is still a must do on your behalf. ___________________________________________________ I've finished my script again. As always this hasn't been tested but I've fully reviewed the code and don't find any flaws on it, so I highly reccomend to test it before using in production server. This time I won't provide the source in a code box since it destroys my indentation and that makes me angry, so here you go: Sadly, it has some mistakes, download next version in my next post please. mapmobtest.txt And please, share it back when you're done if you plan to add mobs and maps. This way I can release it. Thanks!
  8. At the moment, valid file extensions are the following: Allowed: aiff, bmp, css, diff, doc, gif, gz, hqx, htm,html, ico, jpeg, jpg, mov, mp3, mpg, patch, pdf, php, png, ppt, ps, psd,ram, rtf, swf, tar, tiff, txt, viv, wav, wmv, xml, zip Which cover most common file types that can be used on a computer, independently of its OS. I agree rar extension should be added to the list since it's quite popular, but you could have packed them all in a zip or a tar file, which are usually more preferred for file sharing than rar. Thanks for your upload!
  9. jaBote

    WoE Controller

    I've noticed you don't have latest version of Euphy's WoE Controller. I suggest you to get it if you can, since chances are that error is fixed. Rest of the post may be wrong since I have a different version than yours: The content in this Spoiler was useless for solving the issue. Again, I highly reccomend you get the last version of it since it'll be easier bot to get support and to solve issues. Edit: Prettified a bit since I solved the issue with 2 possibilities and only one of them was valid. Outside the spoiler is the valid one.
  10. Tried to quite you Capuche, but quitted because IP.Board doesn't want to quote you today. Sorry. Didn't think about that equiprobability issue (thanks!), but that part OK as it's now because you can give the maps a some preference among others. Equiprobability will be assured as long as the arrays are evenly filled, and when you have an amount of maps the change of probability from one array to another is almost negligible. The reason I use base_exp_rate and quest_exp_rate (and should have used job_exp_rate for job exp calculation, I forgot to do that, sorry) is simple: Whenever you get exp from an NPC via getexp it'll get multiplied by quest_exp_rate and the result of that operation will be the exp the client will get. Since this behavior isn't desirable in this case (we want to give the user the exp of the mob multiplied by a factor, without quest_exp_rate messing around there) that's why I divide by it. This way, at getexp, user would get: exp*quest_exp_rate*base_exp_rate/quest_exp_rate Which cancels quest_exp_rates and so it leaves the exp*base_exp_rate. What I don't know is if getmonsterinfo($@specialmob,3) returns an exp value already modified by the rates of server. In that case my exp calculation is wrong as it'd be multiplied twice by base_exp_rate. Right now it's seeming wrong for me, even though I considered it right, before posting the script. I'll just have to test this calculation whenever I have time (or would be very grateful if someone checks this for me).
  11. jaBote

    DISCOUNT SKILL

    Have you tried what Xgear replied on your topic? http://herc.ws/board/topic/671-r-discount-mapflag/ There's no way to prevent that by scripting means. This's got to be made in source.
  12. This needs more info because of some facts: You want the script to change rates depending only on online users? You also need to delay the check and change of the experience rates. You also make this check every login/logout, but you shouldn't broadcast it because there'd be so many announces. What fashion you want exp rates to change: Arithmetic (A + BX)? Geometric (A + X^? Is there a cap? You know idle and autotrade users will count towards this amount? There's no simple way to take them out of this count of online users, but it can still be made I've thought of other points but don't remember right now. Try to be more descriptive on those requests and anticipate any questions you could get .
  13. Well, nobody in rAthena ever said I'm still alive (to my knowledge), so I'm glad to know about you and rAthena project in general and it's comeback!
  14. I know there was some programs to make it easier, but I prefer to make and edit them by hand, running those text files in notepad. Just be cautious on which column you are editing and you'll be good to go with it.
  15. Yes, I like your idea, but remember it can't be done on OSs without a GUI. Map, login and char server are made in command-line interface because of that. Anyways, maybe we could make an executable for Windows and Linux OSs with GUI, that launch both servers. I'd +1 that idea, even if I won't make use of it.
  16. I don't know if this is exactly what you mean, but you have the following script commands for compounding whatever card you fancy in whatever equipment you want: getitem2 <item id>,<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>{,<account ID>};getitem2 "<item name>",<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>{,<account ID>}; its usage is pretty obvious, but in the documentation you have whatever you want to know about this, just check doc/script commands.txt Hope I helped. If that wasn't what you want, please explain yourself a bit further.
  17. I've edited the reply in which I show you the main NPC. Please tell me when you test it any bug you find, but there shouldn't be any (that one was provoked because I was in a hurry) or if it works OK.
  18. cellphone: should be "delitem .@armadura, 1;". Forgot that 1, sorry
  19. Sadly, I don't know that much source. That should have something to do with making a new status and while that status is active you should be able to cast it without any restrictions. Don't know about that, sorry.
  20. Try to comment same lines I've commented here, in skill.c: case RG_BACKSTAP: { uint8 dir = map_calc_dir(src, bl->x, bl->y), t_dir = unit_getdir(bl); if ((!check_distance_bl(src, bl, 0) && !map_check_dir(dir, t_dir)) || bl->type == BL_SKILL) { status_change_end(src, SC_HIDING, INVALID_TIMER); skill->attack(BF_WEAPON, src, src, bl, skill_id, skill_lv, tick, flag); // dir = dir < 4 ? dir+4 : dir-4; // change direction [Celest] // unit_setdir(bl,dir); } else if (sd) clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); } break; This won't make Back Stab spammable because you'd need to hide again for doing it again. Comment the status_change_end line if you want not to unhide and make it spammable while hidden (I wouldn't reccomend that).
  21. Here it is. I haven't tested it but it seems I haven't made any mistakes. Try it out by yourself before using it on an actual server and tell me any problem it has, in case it does. trinity_in,166,143,2 script Armor Craftsman 58,{ disable_items; mes "[Armor Craftsman]"; mes "I've been studying ways to improve armor to increase its real capacity."; next; mes "[Armor Craftsman]"; mes "Enchant is an amazing ability blowing a mysterious power hidden in a space of armor."; next; mes "[Armor Craftsman]"; mes "One minute, please, I will check your items."; next; if (!getequipisequiped(EQI_ARMOR)){ mes "[Armor Craftsman]"; mes "Hey, you don't have any equipped armor!"; mes "Come back when you've equipped the armor you want to be enchanted."; close; } set .@armadura, getequipid(EQI_ARMOR); set .@refine, getequiprefinerycnt(EQI_ARMOR); set .@carta, getequipcardid(EQI_ARMOR,0); set .@runa, getequipcardid(EQI_ARMOR,3); if (countitem(.@armadura) > 1){ mes "[Armor Craftsman]"; mes "Hey! you've more than armor of the kind you want to enchant!"; mes "Please, come back with only one of its kind so I don't mess enchanting the wrong one. He, he!"; close; } mes "[Armor Craftsman]"; mes "I will now check if you have some rune to enchant your armor."; mes " "; mes "One minute, please."; set .@menu$,""; set .@j,0; for (set .@i,0; .@i < getarraysize(.runas); set .@i,.@i+1) { if (countitem(.runas[.@i])) { set .@j,.@j+1; set .@menu$, .@menu$+getitemname(.runas[.@i])+":"; set .@runalista[.@j],.runas[.@i]; } sleep2 1; } next; mes "[Armor Craftsman]"; if (!.@j) { mes "You must bring me some rune power to do the spell."; close; } else { mes "What kind of enchantment you want to this armor?"; next; set .@runaesc,select(.@menu$+"Nothing."); if (.@runaesc > .@j) { mes "[Armor Craftsman]"; mes "Please come back when you have some interest in enchanting your armor."; close; } else { mes "[Armor Craftsman]"; if (.@runa) mes "(a) "+getequipname(EQI_ARMOR)+" already has a charming "+getitemname(.@runa)+", if you enchant this item with "+getitemname(.@runalista[.@runaesc])+" that consume and ancient enchantment will be missed."; else mes "This spell will cost A "+getitemname(.@runalista[.@runaesc])+"."; next; if(select("Hmm .. Let me think about it.: Go ahead.") == 1) { mes "[Armor Craftsman]"; mes "Well, I can not blame him. My cost is not of the lower, but I need to pay for my studies and efforts, right?"; mes "Have a nice day."; close; } else { mes "[Armor Craftsman]"; mes "So, an adventurer willing to increase its power, huh?"; mes "Well, let the enchantment"; pcblockmove getcharid(3),1; close2; delitem .@runalista[.@runaesc],1; unequip EQI_ARMOR; delitem .@armadura,1; specialeffect 873; specialeffect 865; sleep2 6000; specialeffect 44; sleep2 1000; getitem2 .@armadura,1,1,.@refine,0,.@carta,0,0,.@runalista[.@runaesc]; pcblockmove getcharid(3),0; end; } } } OnInit: setarray .runas[0],26000,26027,26037,26038,26039; end;} Enjoy it!
  22. Let's see if I understood this correctly: You want us to drop the .armaduras array so that any equipped armor can be enchanted, and the only armors you can enchant are the current ones you have equipped, right? In that case I think I can cut off some of the code for a matter of efficiency. For example if you check your equipped armor, there's no need of checking if it's broken. Just comment so that I make sure that's what you want and I'll start this.
  23. A mí me comentó Judas a través de IRC que fue justo en el cliente de 2012-04-10 cuando se empezó a utilizar System/ItemInfo.lub. De todas formas, por las dudas y dado que el inicio de este sistema es difuso, yo utilizaría aunque fuese el cliente inmediatamente anterior con la guía que está en la Wiki para añadir items custom, que para esos clientes sí parece estar correcta. ¡Un saludo!
×
×
  • Create New...

Important Information

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