Jump to content

VegaS™

Forum Moderator
  • Posts

    656
  • Joined

  • Last visited

  • Days Won

    187
  • Feedback

    100%

Everything posted by VegaS™

  1. Thanks for my release from 2016, soon 5 years since it has been done. Shame on you... making copy-paste and uploading the code on GitHub, won't make you a "programmer".
  2. Also instead of that, you can simplify it: #ifdef ENABLE_GHOST_MODE STATEMANAGER.SaveRenderState(D3DRS_ALPHABLENDENABLE, IsGhostWeapon()); #else STATEMANAGER.SaveRenderState(D3DRS_ALPHABLENDENABLE, FALSE); #endif
  3. Thanks for release. case 19: return TRUE; break; Just to know, that this it's called "dead code". The break is not called anymore since you made a return... also some compilers will show "Unreachable code" warnings.
  4. Here're the references to understand how it's working step-by-step: char.cpp [Hidden Content] constants.cpp #define MAX_EXP_DELTA_OF_LEV 31 #define PERCENT_LVDELTA(me, victim) aiPercentByDeltaLev[MINMAX(0, (victim + 15) - me, MAX_EXP_DELTA_OF_LEV - 1)] #define PERCENT_LVDELTA_BOSS(me, victim) aiPercentByDeltaLevForBoss[MINMAX(0, (victim + 15) - me, MAX_EXP_DELTA_OF_LEV - 1)] constants.cpp const int aiPercentByDeltaLevForBoss_euckr[MAX_EXP_DELTA_OF_LEV] = { 1, // -15 0 [...] 180 // 15 30 }; const int aiPercentByDeltaLev_euckr[MAX_EXP_DELTA_OF_LEV] = { 1, // -15 0 [...] 180 // 15 30 }; locale_service.cpp if (!aiPercentByDeltaLevForBoss) aiPercentByDeltaLevForBoss = aiPercentByDeltaLevForBoss_euckr; if (!aiPercentByDeltaLev) aiPercentByDeltaLev = aiPercentByDeltaLev_euckr;
  5. Then you'll need a small formula like this, for keeping the same values of enum: [Hidden Content] So, in that way, you'll get the effect value multiplied by 4 depending on effectID. Output: dwEff = 1 m_swordRefineEffectRight = EFFECT_REFINED + 114 dwEff = 5 m_swordRefineEffectRight = EFFECT_REFINED + 130 dwEff = 12 m_swordRefineEffectRight = EFFECT_REFINED + 158
  6. Then you could do it as I said, it's the best method instead of using an array or something. Can you show me the EFFECT_SWORD_EFF1....EFFECT_SWORD_EFF40 values from enum?
  7. It's impossible what you're trying to do, this could be done in python very easily, like: m_swordRefineEffectRight = eval("EFFECT_REFINED + EFFECT_SWORD_EFF_%d" % i); But in C++ there's no built-in method, just a work-around, and shitty ways. I don't know how it's working your system but in your case, you need something very simple, not to evaluate an expression when you can use effectSwordStartID + effectID: m_swordRefineEffectRight = EFFECT_REFINED + EFFECT_SWORD_EFF_START + dwEff; You just need to have the values ordered ascendingly.
  8. Just if you use SQLMsg* pkMsg then it's called a raw pointer and you've to delete it manually, but for std::unique_ptr<SQLMsg>, you don't have to do it, has no effects the reset method in this case. [Hidden Content] [Hidden Content] [Hidden Content] The benefit of using smart pointers like unique_prt || shared_ptr is that they automatically delete the pointed object when no longer needed (i.e. out of scope). [Hidden Content]
  9. Search for: case CHAT_TYPE_GUILD: { if (!ch->GetGuild()) ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("길드에 가입하지 않았습니다.")); else ch->GetGuild()->Chat(chatbuf); } break; Replace with: [Hidden Content]
  10. That's right, I want to see your reaction when your players of a private server, saying the same thing about your staff when the server it's down because of your provider and they've no idea what's behind of it. And guess what? You'll get insults also, because they pay you with tens of thousands of euros. So, do you think your reply it's right in this case with metin2dev? When you just open the forum and download resources? I don't think so. This staff bought the forum when it was dead and paying a lot for it from their pocket and they will not get that amount of money even in years (they also have jobs and other things), so you're attitude it's very bad. That's a reply from a human being, not from staff.
  11. I didn't took it personal, I explained everything nicely. The thing with "typical metin2 developers", was general, not for you and it's because in the last period I saw a bunch of people who said they rewrote things and in reality they just added "auto" on everything and that's all, 2020 style.. but c++11 it's available since 9 years. But seems you got it wrong.
  12. I would understand if you really posted a "2020 style" after 3 years (released in 2017) ... but you did it worst than actually is, if you think a std::array and std::find it's better than a switch for 6 values which are static, that's really wrong. Also you're redeclaring the std::aray variable each time when the function it's called, that's not 2020 anymore. Basically if you really want something called "2020", this is: static const std::set<std::uint8_t> ignoreSkillSet = {SKILL_HOSIN, SKILL_REFLECT, SKILL_GICHEON, SKILL_JEONGEOP, SKILL_KWAESOK, SKILL_JEUNGRYEOK}; if (ignoreSkillSet.contains(dwType)) { const auto& affect = FindAffect(dwType); if (affect && affect->lApplyValue > lApplyValue) return false; } But still, switch is better than everything what you could do with your "2020 style", in this case. switch (dwType) { case SKILL_HOSIN: case SKILL_REFLECT: case SKILL_GICHEON: case SKILL_JEONGEOP: case SKILL_KWAESOK: case SKILL_JEUNGRYEOK: { [...] } break; } But it's fine, seems you're that type of guy who's using "auto" on everything and think that's cool and 2020 style, typical for metin2 "developers".
  13. M2 Download Center Download Here ( Internal ) As the title says, here's how you can synchronize your skill_table from client with skill_proto from server. [1]. First of all we've to rewrite the enum part of tokens (which is used in CPythonSkill::RegisterSkillTable), that means we change the order of index-tab-line with a new order, because ymir didn't used all columns. In that way we keep the file much cleaner and just with necessary columns (9 columns instead of 27). Srcs/Client/UserInterface/PythonSkill.h Search for the next enum: Replace it with: Srcs/Client/UserInterface/Locale_Inc.h [2]. Compile the source client again. [3]. Open Navicat (preferably the latest versions) and do the following things: Open player table Export Wizard -> Mark skill_proto -> Export to ../location/skilltable.txt Export format -> *.txt Unmark All fields then Unselect All Select available fields: -> {'dwVnum', 'bMaxLevel', 'bLevelLimit', 'szPointPoly', 'szSPCostPoly', 'szDurationPoly', 'szDurationSPCostPoly', 'szCooldownPoly', 'dwTargetRange'} Unmark: Include column titles Text Qualifier: None Copy the skilltable.txt from Desktop to ../locale/en/ HOW-TO - VIDEO (The video is just an example, please follow the tutorial from step [3]) [Hidden Content] Thanks to @Syreldar for the idea.
  14. I mean.. it was good when @Shogunwas an admin... But let's move on, we can't travel back in time. ? Sure, the rest were not important for other members. But as I said, let's don't look in the past.
  15. @arves100The hashtag is wrong... The question is: When metin2dev was great? ?
  16. That's right, they didn't wrote the real term of "ad-free", just lies. If you choose me right now then I'll hide all ads for VIP members.
  17. As you guys know, in this period there's a campain in all countries, If you choose me as an administrator, I'll do the following things: permanently ban @DevChuckNorris @pollux remove service section add a new category of nsfw add possibility to have 5 banners in header in the same time remove like/reactions on posts hide the whole content of forum for guests remove grades like developer/3D artist/... no signature account name should be just as numbers, no characters at all, ex: 827192030, 10000391 no more bumping no reports, already I know everything you can speak in all languages (even arabic/turkish), not just english and more..just vote me and ban @ASIKOO
  18. @xP3NG3Rx @arves100@PACI
  19. Thanks for your recommendation, I'm glad to see that people know what the quality is.
  20. I sent you a private message with a post that I did 3-4 years ago related about this, I can't share it here.
  21. The poll has closed now, 56 members have voted. Yes, 43 votes (75.44%) No, 14 votes (24.56%) I will start from now to review all of the topics from that section and remove the ones which doesn't fulfill the conditions. Edit: The following sections were reviewed: Scripts / Systems (Coding & finished Systems) Models (3D works) Designs (Completed Designs or contract work (2D work)) Others (Hosting, Maps, Tools...) If you've something to tell about those actions, send me a PM. But first, read the content of this topic, don't send a message "why my topic is deleted, I'm not a scammer/reseller", thanks.
  22. Hi! After a long discussion with the whole staff, we decided to make some changes in the Service&Sales section. That's because in the last years we met a lot of resellers/scammers here in the forum. What we can do at the moment as a fast solution, is to make some changes in our rules. In that way, we will keep the quality instead of quantity, right now we've over 130 topics in this section and over 50% are not active. Most of the users who opened a service until now were like this: account created in 2014, 10 posts account created in 2014, 300 posts, no activity in the last years account created in 2018, 10 posts account created in 2020, 50 posts ______________________________________________________________________________________________________________________ So, we're trying to avoid those things and make some changes for help you with a better quality. They should fulfill the next conditions for being able to offer their service in metin2dev: at least 200 posts + registered for more than 2 years + being active over the last 6 months (releases and others) [Exception] Those conditions will not be applied in the next cases (but you still will need to help somehow the community itself too, not just selling your services): You're very good known for your reputation and you had a clean background in the last years and the staff is trusting you. You're recommended by an user who fulfill the [1] condition. I want to mention also: current topics will be reviewed again and those which doesn't satisfy the conditions will be deleted. subject approval will have multiple conditions that you'll know after you'll create the topic. If you're planning to do any form of reselling/scamming in metin2dev, stay away, we've our eyes on you. ______________________________________________________________________________________________________________________ Don't forget also you can contact VegaS™ or Raylee via those links (PM) to report a reseller/scammer with specific proofs. Don't forget to vote and do it right!
  23. I sent him the code to PM some months ago for test, he said would be nice if I post here too, so here's: GameLib/PythonPlayerInput.cpp Search for: void CPythonPlayer::__SetAutoAttackTargetActorID(DWORD dwVID) { m_dwAutoAttackTargetVID = dwVID; } Replace it with: [Hidden Content] UserInterface/InstanceBase.h Make the function public from protected. static bool __FindPVPKey(DWORD dwSrcVID, DWORD dwDstVID); UserInterface/Locale_Inc.h #define ENABLE_BLOCK_AUTO_ATTACK_DUEL
  24. @PACI @arves100 @martysama0134
×
×
  • 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.