Jump to content

Jhedzkie

Members
  • Posts

    298
  • Joined

  • Last visited

Everything posted by Jhedzkie

  1. I believe that would affect everything that has something to do with the character name. I only want to reduce it to 11 chars on character creation time. This is to allow titles to be given to players from the achievement system that I am currently using.
  2. so, i saw this in char.c char name[NAME_LENGTH]; char esc_name[NAME_LENGTH * 2 + 1]; int char_id, flag, k; safestrncpy(name, name_, NAME_LENGTH); normalize_name(name,TRIM_CHARS); Sql_EscapeStringLen(sql_handle, esc_name, name, strnlen(name, NAME_LENGTH)); and changed it into char name[12]; char esc_name[12* 2 + 1]; int char_id, flag, k; safestrncpy(name, name_, 12); normalize_name(name,TRIM_CHARS); Sql_EscapeStringLen(sql_handle, esc_name, name, strnlen(name, 12)); It works, right. however, it doesn't trigger the error message on character create screen that it exceeded the character name length. it would create the character but truncate the exceeding characters. what i hope to achieve is it would trigger the error that the entered name was more than 11 letters. thanks in advanced.
  3. exactly the point. the thing is, as haruken stated, when you invite a player whose name is faked, (right click, invite to party), the invite party src will try to find the player using the faked name. of course the player [MVP] myName does not exist but player myName does. how exactly to do this?
  4. if (!battle_check_undead(tstatus->race,tstatus->def_ele) && (tstatus->race!=RC_DEMON || tstatus->race != RC_DEMIHUMAN)) try.
  5. hi. im just wondering if anyone of you guys happen to know the user Heler. If you do, can you please message me with any of his contact information? he seems to be currently inactive and i just need to ask him about a few things. thanks in advanced.
  6. http://rathena.org/wiki/Compiling basa basa din pag may time.
  7. if you do have the actual weapon sprites for Creators' bag-mace sprites (Red Square Bag / Red Ether Bag), can you share it? pretty please. thanks in advanced.
  8. Try to max all your 1st job skill after using reset npc(I tried it in my test server just now and it works fine). Do you have your own custom skill to test it with? Create an archer. But don't go gaining job levels just yet. Go to the Platinum Skill NPC and learn the Platinum Skills. Take a good hard look at the 'Making Arrow' skill or 'Charge Arrow' skill of the Archer class. Gain some job levels and put levels on some skills, then go to your Reset Girl and reset your skills. Now take a good hard look again at the Making Arrow and Charge Arrow skills. Notice that all other skills have been unlearned except for those two platinum skills. And incidentally, that is exactly how I want my custom skill to act. Just like any other platinum skills. And that is what I've only been asking all these time.
  9. The problem is, that my custom skill, is supposed to act like all other quest skills. that once learned, should not be reset even when the skill reset is used. HOWEVER, in my current setup, after doing basic stuff, I am not able to make my custom skill INTO a QUEST SKILL. that is why i am asking how to properly add my custom skill as a quest skill.
  10. i think you're getting off topic. i pretty much know about that, but i made it into a skill. skill's working well. period. the problem is in setting the skill i made act as a quest skill so that my players could avail it by doing series of quests.
  11. skill_db.txt 1501,0,6,4,0,0x1,0,10,1,no,0,0x1,0,weapon,0, ALL_INFINITEAMMO,Infinite Ammo notice that i already set the inf2 value into 0x1 (0x0001- quest skill) but still, i wasnt able to make it work properly. skill_tree.txt 3,1501,1,0,0,0,0,0,0,0,0,0,0 //ALL_INFINITEAMMO#Infinite Ammo# and yes, I already did set it too in the skill_tree.txt as well as the necessary lua modifications.
  12. What file does this entry should be placed? on an npc script, obviously? ex. Platinum Skill Npc.
  13. custom skill gets reset(unlearned) when Reset Girl is used while other quest skills remain learned in the skill tree.
  14. i am doing a bit of a snippet that creates an npc (src based, not npc.) with a chatroom/waitingroom that displays the remaining time. i'm done with the basic mechanics that i wish to have, leaving me the dynamism to fix. the npc is being able to display the chatroom but does not automatically update the value being displayed. what should i add to these lines to make it update every second? as usual, since nobody always want to help me, i am somehow able to pull it off myself. *done.
  15. i saw several topics asking the same question but no clear solution has been posted. well anyway, here's the case. since renewal, the matk formula has surely been changed. and it probably affects the HR servers since the resulting damage of magic attacks, specially for HW's is only reaching like 8k @ 255 int, leaving wizards and other magic users pretty useless.. i can remember a few months earlier, i only needed to disable #RENEWAL in config.h and the matk is cool. hitting around 20~40k+ damage on for example, storm gust. how i can change the current matk formula to the one like, eAthena's using? i can say that this speak also to other HR server owners that would like to use renewal mechanics together with the old matk formula. thanks in advanced.
  16. obviously sa map ang problema mo. ndi mo na load ng tama sa map_cache.dat ung mga custom maps mo.
  17. you can try using my mod from way back. instead of @joinguild, it is called @guildinvite http://rathena.org/board/topic/65688-leaveguild-breakguild-guildinvite/
  18. for the benefit of all our comrades that would like to have an unbinding script to go together with this wonderful mod, i would like to share to you my script for unbinding bound items. function script unbind { set .id, 22007; // or any item id that would correspond to your item/scroll that you wish to use. setarray .itemid[0],0; setarray .name$[0],""; setarray .identify[0],0; setarray .attrib[0],0; setarray .refine[0],0; setarray .card1[0],0; setarray .card2[0],0; setarray .card3[0],0; setarray .card4[0],0; getinventorylist; set @count,0; for(set @i, 0; @i <@inventorylist_count; set @i, @i + 1) { if(@inventorylist_bound[@i] && @inventorylist_equip[@i]==0) { set .itemid[@count], @inventorylist_id[@i]; set .name$[@count], getitemname(@inventorylist_id[@i]); set .identify[@count], @inventorylist_identify[@i]; set .attrib[@count], @inventorylist_attribute[@i]; set .refine[@count], @inventorylist_refine[@i]; set .card1[@count], @inventorylist_card1[@i]; set .card2[@count], @inventorylist_card2[@i]; set .card3[@count], @inventorylist_card3[@i]; set .card4[@count], @inventorylist_card4[@i]; set @count,@count+1; } } if(getarraysize(.itemid)==0) { message strcharinfo(0), "No unbindable item found in the inventory."; end; } else { set @id, select(implode(.name$,":")); delitem2 .itemid[@id-1],1,.identify[@id-1],.refine[@id-1],.attrib[@id-1],.card1[@id-1],.card2[@id-1],.card3[@id-1],.card4[@id-1]; getitem2 .itemid[@id-1],1,.identify[@id-1],.refine[@id-1],.attrib[@id-1],.card1[@id-1],.card2[@id-1],.card3[@id-1],.card4[@id-1]; delitem .id,1; message strcharinfo(0), "Item has been unbinded."; close; } } and for the item, 25001,Scroll_of_Unbinding,Scroll of Unbinding,11,2,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc("unbind"); },{},{} Notice that the item type should be 11, and not 2 because the script is the one that handles the actual consumption of the item. known issues: - if multiple account-bind items are identical, like, multiple pcs of +10 Knife[3] (one or more binded and one not binded), the script will fail because it would be confused which item would be deleted because it has the same typical parameters. other than this issue, everything works fine.. we may be needing a 'getitemuniqueid' script command to fix this issue. If you find some parts of the script wrong, please let me know, and please do share your thoughts about it. am not really a pro scripter so pardon me if I have some bugs on it. Thanks.
  19. i think you can put it after every attack. battle.c struct Damage battle_calc_attack(int attack_type,struct block_list *bl,struct block_list *target,uint16 skill_id,uint16 skill_lv,int count) { struct Damage d; switch(attack_type) { case BF_WEAPON: d = battle_calc_weapon_attack(bl,target,skill_id,skill_lv,count); break; case BF_MAGIC: d = battle_calc_magic_attack(bl,target,skill_id,skill_lv,count); break; case BF_MISC: d = battle_calc_misc_attack(bl,target,skill_id,skill_lv,count); break; default: ShowError("battle_calc_attack: unknown attack type! %d\n",attack_type); memset(&d,0,sizeof(d)); break; } if( d.damage + d.damage2 < 1 ) { //Miss/Absorbed //Weapon attacks should go through to cause additional effects. if (d.dmg_lv == ATK_DEF /*&& attack_type&(BF_MAGIC|BF_MISC)*/) // Isn't it that additional effects don't apply if miss? d.dmg_lv = ATK_MISS; d.dmotion = 0; } else // Some skills like Weaponry Research will cause damage even if attack is dodged d.dmg_lv = ATK_DEF; // ->>> maybe put it here? return d; } just a thought tho. not so sure about it.
×
×
  • Create New...