Jump to content

North

Premium
  • Posts

    465
  • Joined

  • Last visited

  • Days Won

    10
  • Feedback

    0%

Everything posted by North

  1. char.cpp add case APPLY_ATTBONUS_METIN: case APPLY_ATTBONUS_BOSS: constants.cpp { POINT_ATTBONUS_METIN, }, { POINT_ATTBONUS_BOSS, }, Binary PythonItemModule PyModule_AddIntConstant(poModule, "APPLY_ATTBONUS_METIN", CItemData::APPLY_ATTBONUS_METIN); PyModule_AddIntConstant(poModule, "APPLY_ATTBONUS_BOSS", CItemData::APPLY_ATTBONUS_BOSS); follow the index and add it in item attr and setraceflag in mob proto Look my guide on how to link your bonus in constants.cpp and item_attr This may not be complete, i just checked this really fast to give you the idea on what you will need to do. Learn a bit of your source and look for the code that is already written, if you got any other question feel free to ask
  2. I think the best solution is to modify the DoRefine linked to that because musin uses DoRefineWithScrolls else { // 실패! 모든 아이템이 사라짐. DBManager::instance().SendMoneyLog(MONEY_LOG_REFINE, item->GetVnum(), -cost); NotifyRefineFail(this, item, IsRefineThroughGuild() ? "GUILD" : "POWER"); item->AttrLog(); ITEM_MANAGER::instance().RemoveItem(item, "REMOVE (REFINE FAIL)"); //PointChange(POINT_GOLD, -cost); PayRefineFee(cost); } return true; } Here is the part you will need to add a check, like if mapindex = deviltower then { DBManager::instance().SendMoneyLog(MONEY_LOG_REFINE, item->GetVnum(), -cost); NotifyRefineFail(this, item, IsRefineThroughGuild() ? "GUILD" : "POWER"); item->AttrLog(); PayRefineFee(cost); } else { // 실패! 모든 아이템이 사라짐. DBManager::instance().SendMoneyLog(MONEY_LOG_REFINE, item->GetVnum(), -cost); NotifyRefineFail(this, item, IsRefineThroughGuild() ? "GUILD" : "POWER"); item->AttrLog(); ITEM_MANAGER::instance().RemoveItem(item, "REMOVE (REFINE FAIL)"); //PointChange(POINT_GOLD, -cost); PayRefineFee(cost); } This is not tested, try on your own If im wrong let me understand it
  3. Cool! How do you manage the quest? With some kind of flags?
  4. Then can you tell everyone how? Thanks. // edit after over 20 hours And thats why no one should ever help you, you dont share but you want people to share. Kid logic
  5. Hello metin2dev, does anyone knows in wich pack folder are located the beta maps ? 0104 18:56:17187 :: CMapBase::LoadProperty(FileName=Metin2_map_CapeDragonHead\MapProperty.txt) - LoadMultipleTextData ERROR File not found. 0104 18:56:17187 :: CMapManager::LoadMap() Invalid Map Type 0104 18:56:17188 :: CPythonBackground::SelectViewDistanceNum(int eNum=0) mc_pcurEnvironmentData is NULL I got that in my syserr with the client crashing i think something in my pack corrupt when i repacked it. Does anyone know in wich pack they are located? Thanks! Since i think they are corrupted, can anyone give me the correct eix / epk pack? Thanks guys
  6. use setraceflag in mob_proto with some unused bonus or just add them in the source
  7. I dont think removing that check is a optimal way to solve the problem, insteal just go and modify this for your use GOLD_MAX_EXCHANGE P.s. I dont understand why you should have that stupid amount of gold, the more you got, the less it will be worth. Just implement won or that kind of stuff instead of having 8238948423954238925482549824598459485945895345409540294039 yang in your inventory, its common sense guys Btw if you using an unsigned long long int the param that gets that quantity has to be the same or more capable, you cant leave it as normal int
  8. I tried it and i found it a big buggy in my sources and the horse wont even show ingame, its just me ?
  9. what You have to open it with a model viewer. gr2 is a 3d model if you want to open it this is not how to do it xd You will also have the msa files, look into them the directory of the textures (the msa can be opened via txt)
  10. You have to look into all the files of your source. constants.cpp and so on Only char.cpp is not enough
  11. Use a variable and exchange shinsoo jinno n stuff with the nickname We are not gonna do the work for you so you better start learning and stop being that rude if people wants to help you, say a thanks at least. You so will have "|cFFff0000|H|h" getnickname "|cFFff0000|H|h" (for red) This is an idea, i didnt test it but thats a simple way i think to do that
  12. o all right sorry then, but about those warning errors, you have the latest gdb installed?
  13. ch->GetMapIndex(), strlen(ch->GetName()))); 8-))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
  14. Im guessing your cube list is too long thats why you dont have any result, you can search for this fix in the forum
  15. Dude change your nickname, its pretty unsafe to use your email where everyone can see it
  16. Oh i typed this is no bonus adding process, this is to link your existent bonus index to your item_attr since a lot of people cant do this properly. Thanks tho i can do another tut including all the stuff I mentioned the locale_game in the end This is just and understand on what you got implemented and how you can use that since a lot of sub-type resistances are used only on alchemy or 6-7 bonus
  17. ride.Ride(item.vnum, remain_time) On both of them, why you are giving him 0 on the time parameter?
  18. Hello guys, today im gonna show you a simple trick that lets you use what you have in your Srcs/server/constants.cpp What are those constants? They simply are the defined skills with they're index number. You ever asked yourself how to implement on items some bonuses like RESIST CLAW or RESIST ICE or DEFENCE POINTS and stuff like that? Well in constants.cpp you will face what are the bonus you got in your source (this is not how to implement new bonus, you will use the existent one) The part we are interested in is: const TApplyInfo aApplyInfo[MAX_APPLY_NUM] = And below you got all the things you need like // Point Type { POINT_NONE, }, // APPLY_NONE, INDEX=0 { POINT_MAX_HP, }, // APPLY_MAX_HP, INDEX=1 { POINT_MAX_SP, }, // APPLY_MAX_SP, INDEX=2 { POINT_HT, }, // APPLY_CON, INDEX=3 { POINT_IQ, }, // APPLY_INT, INDEX=4 So what does this mean? You just have to see this strings like this { POINT_MAX_HP, }, // APPLY_MAX_HP, 1 ITS EQUAL TO MAX_HP BONUS INDEX 1 What is this "INDEX" ? Well index is just a counter for your list of bonus, so you will start from 0 and get to xx Why dont i have the INDEX in my source? Well i just added them to make you understand what is in a simple way. So to be short you got your bonus identified with POINT_* Of course if it says MAX_HP that should be it right? Right! Now, lets say we have the CLAW RESISTANCE implemented in our source but when we change bonus on armors it doesnt appears even if we have insert it in the item_attr This is because you have to follow the INDEX ! So lets get back to business, implementing the resist claw on armors n stuff in the source, you will have something like this: { POINT_RESIST_CLAW, }, // APPLY_RESIST_CLAW, INDEX=96 or { POINT_RESIST_CLAW, }, // APPLY_RESIST_CLAW, 96 CLAW¿¡°Ô ÀúÇ× Wich are equal, or you can just count from the MAX_HP wich is 1 to RESIST_CLAW line wich will be X so if we have { POINT_RESIST_SHIT, }, // This will be index 0 { POINT_MAX_HP, }, // This will be index 1 { POINT_RESIST_WTF, }, // This will be index 2 { POINT_RESIST_ZOZO, }, // This will be index 3 { POINT_RESIST_XXX, }, // This will be index 4 { POINT_RESIST_CLAW, }, // This will be index 5 In default i think its 96 the resist_claw but you should check your source. ------------------------------------------------------------------------------------------------------------------------------------------------------------- Now we got our bonus index, how do we set that on item_attr? Simply, we go to navicat (or whatever) Right Click on "item_attr" Select "Design Table" You will have something like this Now go on the ... button near "Values:" You will have this: What do i do now? Its simple but you have to read carefully what im typing. This list respects a rule, this rule is the INDEX. As you can see it starts from MAX_HP that have an index equal to 1. If you want to add the bonus resist claw that in our case is 96 you have to reach this INDEX. How do i do that? Simple, you will have a " + " to add VALUES. Count how many values you have there, if you have 80 values then your index is until 80, you have to add other 16 values there to reach the "96". So to make it short again, count how many values you have and add how many you need to reach your desired index bonus. Like this: I called them with numbers because i prefer them like that but you can name them as you want, if you want to rename 96 with "RESIST_CLAW" is the same. Now you have to add this bonus in your item_attr. Like this: Where prob = probability to get this bonus on your item lv1 to lv5 are the variables for this bonus, with weapon,body,wrist,foots,neck,head,shield,ear you select the % of successfully obtain that bonus on the select part of equipment. I think thats all, changing your bonus ingame will show you the results. And if you have any translation problem n stuff, you have to edit your locale_game.txt in your locale folder. Thanks, if you want to share please keep credits. Sorry if this kind of guide does exists, i dont want to make something that has been already made with proper instructions, if so delete this. If you have any questions feel free to ask
  19. Well those are not bugs. When you hit with your sword you have 200 wich is the normal attack, 400 crit attack, 900 penetrating attack (since they have +def from body force) And those values have a min - max value so you cant expect to be always 200 so 400 when critting and 900 when penetrating When you skill you have min and max values on sword and skill so if you want a standard dmg you have to make the min value the same as the max value for the skill and for the sword values. I dont think i quite understood wich kind of bugs you are referring too bug watching the video i see everything normal for a body force warrior. Try using the sword with no defence buff you will see that dmg values are more near to each other Then 3m distance is based on the skill, if you want you can remove that, but its normal to get ppl off when skilling them or you will have them always near you hitting with they're sword, like stomp it force ppl falling (like new maps mobs) but body force have a buff wich prevents you from falling down and you just move 3m, and its not just visual, you really just move client and server side even tho thats not perfectly synced
  20. So this basically just hide xteas and magic ? So the scriptkiddie cant easily get them to decrypt right? Thanks tho for the relase man, really appreciated.
  21. Update You have to modify even the client part (sorry i forgot to mention this) On dragon_soul_refine_settings.py import item default_grade_need_count = [15, 10, 5, 3] default_grade_fee = [30000, 50000, 70000, 100000] default_step_need_count = [4, 3, 2, 1] default_step_fee = [20000, 30000, 40000, 50000] default_grade_need_count is for the N of stones needed (rough, cut etc) default_step_need_count is for the N of stones needed on the clarity refine fee are the costs for both of them.
  22. Paste the code in the source that affects the position of the item when you swap, seems like it has a +1 position when he swaps you just have to delete that
  23. You have to put the quest here if you want some help, if you show us the error but u dont give the quest how are we suppose to help you?
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.