-
Posts
2151 -
Joined
-
Last visited
-
Feedback
100%
Content Type
Forums
Store
Feature Plan
Release Notes
Docs
Events
Everything posted by Metin2 Dev
-
Bar & Decimal Target HP don't show
Metin2 Dev replied to Kirazu's topic in Community Support - Questions & Answers
Modify in InstanceBase.cpp like this : bool CInstanceBase::CanViewTargetHP(CInstanceBase& rkInstVictim) { if (rkInstVictim.IsStone()) return true; if (rkInstVictim.IsWoodenDoor()) return true; if (rkInstVictim.IsEnemy()) return true; #ifdef ENABLE_VIEW_TARGET_PLAYER_HP if (rkInstVictim.IsPC()) return true; #endif return false; } -
Problem Costume Mount like Horse
Metin2 Dev replied to Metin2 Dev's topic in Community Support - Questions & Answers
I fix it. T/C -
After i just lost like 2 Hours of work in the newest Version, id like to recommend that you could start to build an Optional Autosave function for Maps into the Tool for like every 5 Minutes or so, It Crashed after i changed some Textures. if its possible it would help some Guys alot i think
-
Problem Costume Mount like Horse
Metin2 Dev replied to Metin2 Dev's topic in Community Support - Questions & Answers
Where to include ? -
Hello guys, i have a problem with questlua_horse.cpp and i need your help for a problem.. i don't know how to fix it This is my questlua_horse.cpp #include "stdafx.h" #include "questlua.h" #include "questmanager.h" #include "horsename_manager.h" #include "char.h" #include "affect.h" #include "config.h" #include "utils.h" #include "char_manager.h" #ifdef ENABLE_MOUNT_COSTUME_SYSTEM #include "MountSystem.h" #endif #undef sys_err #define sys_err(fmt, args...) quest::CQuestManager::instance().QuestError(__FUNCTION__, __LINE__, fmt, ##args) extern int (*check_name) (const char * str); namespace quest { // // "horse" Lua functions // int horse_is_riding(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if (ch->IsHorseRiding()) lua_pushnumber(L, 1); else lua_pushnumber(L, 0); return 1; } int horse_is_summon(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if (NULL != ch) { lua_pushboolean(L, (ch->GetHorse() != NULL) ? true : false); } else { lua_pushboolean(L, false); } return 1; } int horse_ride(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); #ifdef ENABLE_MOUNT_COSTUME_SYSTEM if (ch->IsRidingMount()) return 0; if (ch->GetMapIndex() == 113 || CArenaManager::instance().IsArenaMap(ch->GetMapIndex()) == true) return 0; #endif ch->StartRiding(); return 0; } int horse_unride(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); ch->StopRiding(); return 0; } int horse_summon(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); #ifdef ENABLE_MOUNT_COSTUME_SYSTEM if (ch->IsRidingMount()) return 0; if (ch->GetMapIndex() == 113 || CArenaManager::instance().IsArenaMap(ch->GetMapIndex()) == true) return 0; #endif // 소환하면 멀리서부터 달려오는지 여부 bool bFromFar = lua_isboolean(L, 1) ? lua_toboolean(L, 1) : false; // 소환수의 vnum DWORD horseVnum= lua_isnumber(L, 2) ? lua_tonumber(L, 2) : 0; const char* name = lua_isstring(L, 3) ? lua_tostring(L, 3) : 0; ch->HorseSummon(true, bFromFar, horseVnum, name); return 0; } int horse_unsummon(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); ch->HorseSummon(false); return 0; } int horse_is_mine(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); LPCHARACTER horse = CQuestManager::instance().GetCurrentNPCCharacterPtr(); lua_pushboolean(L, horse && horse->GetRider() == ch); return 1; } int horse_set_level(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if (!lua_isnumber(L, 1)) return 0; int newlevel = MINMAX(0, (int)lua_tonumber(L, 1), HORSE_MAX_LEVEL); ch->SetHorseLevel(newlevel); ch->ComputePoints(); ch->SkillLevelPacket(); return 0; } int horse_get_level(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); lua_pushnumber(L, ch->GetHorseLevel()); return 1; } int horse_advance(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if (ch->GetHorseLevel() >= HORSE_MAX_LEVEL) return 0; ch->SetHorseLevel(ch->GetHorseLevel() + 1); ch->ComputePoints(); ch->SkillLevelPacket(); return 0; } int horse_get_health(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if (ch->GetHorseLevel()) lua_pushnumber(L, ch->GetHorseHealth()); else lua_pushnumber(L, 0); return 1; } int horse_get_health_pct(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); int pct = MINMAX(0, ch->GetHorseHealth() * 100 / ch->GetHorseMaxHealth(), 100); sys_log(1, "horse.get_health_pct %d", pct); if (ch->GetHorseLevel()) lua_pushnumber(L, pct); else lua_pushnumber(L, 0); return 1; } int horse_get_stamina(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if (ch->GetHorseLevel()) lua_pushnumber(L, ch->GetHorseStamina()); else lua_pushnumber(L, 0); return 1; } int horse_get_stamina_pct(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); int pct = MINMAX(0, ch->GetHorseStamina() * 100 / ch->GetHorseMaxStamina(), 100); sys_log(1, "horse.get_stamina_pct %d", pct); if (ch->GetHorseLevel()) lua_pushnumber(L, pct); else lua_pushnumber(L, 0); return 1; } int horse_get_grade(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); lua_pushnumber(L, ch->GetHorseGrade()); return 1; } int horse_is_dead(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); lua_pushboolean(L, ch->GetHorseHealth()<=0); return 1; } int horse_revive(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if (ch->GetHorseLevel() > 0 && ch->GetHorseHealth() <= 0) { ch->ReviveHorse(); } return 0; } int horse_feed(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); //DWORD dwHorseFood = ch->GetHorseLevel() + ITEM_HORSE_FOOD_1 - 1; if (ch->GetHorseLevel() > 0 && ch->GetHorseHealth() > 0) { ch->FeedHorse(); } return 0; } int horse_set_name(lua_State* L) { // 리턴값 // 0 : 소유한 말이 없다 // 1 : 잘못된 이름이다 // 2 : 이름 바꾸기 성공 if ( lua_isstring(L, -1) != true ) return 0; LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if ( ch->GetHorseLevel() > 0 ) { const char* pHorseName = lua_tostring(L, -1); if ( pHorseName == NULL || check_name(pHorseName) == 0 ) { lua_pushnumber(L, 1); } else { int nHorseNameDuration = 60*60*24*30; ch->SetQuestFlag("horse_name.valid_till", get_global_time() + nHorseNameDuration); ch->AddAffect(AFFECT_HORSE_NAME, 0, 0, 0, PASSES_PER_SEC(nHorseNameDuration), 0, true); CHorseNameManager::instance().UpdateHorseName(ch->GetPlayerID(), lua_tostring(L, -1), true); ch->HorseSummon(false, true); ch->HorseSummon(true, true); lua_pushnumber(L, 2); } } else { lua_pushnumber(L, 0); } return 1; } int horse_get_name(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if ( ch != NULL ) { const char* pHorseName = CHorseNameManager::instance().GetHorseName(ch->GetPlayerID()); if ( pHorseName != NULL ) { lua_pushstring(L, pHorseName); return 1; } } lua_pushstring(L, ""); return 1; } void RegisterHorseFunctionTable() { luaL_reg horse_functions[] = { { "is_mine", horse_is_mine }, { "is_riding", horse_is_riding }, { "is_summon", horse_is_summon }, { "ride", horse_ride }, { "unride", horse_unride }, { "summon", horse_summon }, { "unsummon", horse_unsummon }, { "advance", horse_advance }, { "get_level", horse_get_level }, { "set_level", horse_set_level }, { "get_health", horse_get_health }, { "get_health_pct", horse_get_health_pct }, { "get_stamina", horse_get_stamina }, { "get_stamina_pct",horse_get_stamina_pct }, { "get_grade", horse_get_grade }, { "is_dead", horse_is_dead }, { "revive", horse_revive }, { "feed", horse_feed }, { "set_name", horse_set_name }, { "get_name", horse_get_name }, { NULL, NULL } }; CQuestManager::instance().AddLuaFunctionTable("horse", horse_functions); } }
-
Ninja class skill icons lost? or what happend
Metin2 Dev replied to Shahin's topic in Community Support - Questions & Answers
"Also, where is the file in which i can change the path of the amseup_01.sub? I want to change it's location." That was funny... if you want to change the path of the skill you have to change the whole skill, no you dont want to do that "it seems like i don't have the 6th skill design for either close combat or archery. neither the 6th skills for warrior. if you have the files, can you help me with them? please! thank you." lazy boy... its like 4 values x 3 files... veeery lazy you are [Hidden Content] -
Inventory Page Icons Path ?
Metin2 Dev replied to Shahin's topic in Community Support - Questions & Answers
tab_button_large_01.sub title subImage version 1.0 image "Windows.dds" left 227 top 116 right 305 bottom 135 tab_button_large_02.sub title subImage version 1.0 image "Windows.dds" left 305 top 116 right 383 bottom 135 tab_button_large_03.sub title subImage version 1.0 image "Windows.dds" left 383 top 116 right 461 bottom 135 Buttons Should be in any Windows.dds be the same -
Ninja class skill icons lost? or what happend
Metin2 Dev replied to Shahin's topic in Community Support - Questions & Answers
in " etc / ymir_work / ui / skill / assassin " you find the amseup_01 - 03 sub. Look at that one and Compare it to your skillassassin.dds in your "etc / ymir_work / ui" folder -
Weapon hit sound effect location?
Metin2 Dev replied to Shahin's topic in Community Support - Questions & Answers
search for sound pc CLASS general attack and open the .mse Client\pack\sound\sound\common\swing -
ITEM_RING type's REAL_TIME
Metin2 Dev replied to Veneno's topic in Community Support - Questions & Answers
Where i can change this ? -
allready fixxed dont worry
-
hmmm thats kinda weird, contact me on dc, maybe we find a solution ToXiC4k#9214
-
is it happening all the Time? when your loading it and safe it emidiatly? @displayjokes
-
Access denied for user 'root'@'localhost
Metin2 Dev replied to Meliodas's topic in Community Support - Questions & Answers
Still not working, Dude, "And Why is it not working?" maybe our Magical Glass-Bowl will tell us, /usr/local/etc/rc.d/mysql-server stop mysqld_safe --skip-grant-tables mysql -u root use mysql; "Check all the Tables if they arent corrupted cause sometimes you cant change anything cause your tables havent got the right data / Are corrupted / Will not work properly" CHECK TABLE table_name; REPAIR TABLE table_name; also use the command mysql_upgrade / mysqlcheck In that case that you cant change the passwort you should have postet the Syserr wich is showed you after you inserted the commands above lul -
nice
-
His right arm is more muscular. I guess from studying too much ?
- 1 reply
-
- 3
-
-
ill do the same as in the other Board, "ask Plechito about it open the effect in the effect editor then you know the rest" If you know how to work the the WE you shouldnt get any problems
-
Riding around in circles!
Metin2 Dev replied to BaalaaN's topic in Community Support - Questions & Answers
For horse (mount) rotation speed: Find InstanceBase.cpp in your client source Search for: "c_fDefaultHorseRotationSpeed" and edit value from " 300.0f " . For default rotation speed: Find InstanceBase.cpp in your client source Search for: "c_fDefaultRotationSpeed" and edit value from " 1200.0f " . -
muyeong_loop muyeong is the skill you are searching search for it in the playersettingsmodule and affect is it only on that level or also on others?
-
"This means the previous 256x256 shadowmap.dds files will be useless. (this will require an internal conversion or to regenerate them) The generated result looks like this: " Yes it does make a difference it would help me alot if there is a way to config it the same way as with the "height configuration" with the slider for like setting a max value, if it is to much i can understand that, its only my opinion. "This means the previous 256x256 shadowmap.dds files will be useless." Whoever in the Year 2021 uses 256x256 textures... c_c i have written a batchscript wich let me replace all Textures to the resolutions i need, also i could use the same technique as for my Skill upscaling cause The Client can load 4k Textures with no Problem thats for example shadowmap.dds 4096x4096 i know that i asked a guy to help me alot of in the Past before and yes he testet it out 3 Years ago ive tested it also the Ram Usage / Vram Usage on Newer or Old Graficscards "because i have both in my Setup" and i loaded a 11x11 Map and No it doesnt make a big difference cause it only loads the current 9 Cells "the 1 active and the 8 around it" i would normaly work with the World Edit Source and test it myself out cause i still dont know why you work alone on it but well.
-
ShadowRenderHelper.h // Size BYTE m_byShadowMapPower; const BYTE m_byMaxShadowMapPower; const BYTE m_byMinShadowMapPower; DWORD m_dwShadowMapSize; is it Possible to increase those values for exporting bigger Shadowmaps for example 1024x1024 idk if these are the correct Values, i like the work you do but there are still some things to solve, for example the saving of the msf data dont work, or while rendering the shadows with F6 it sometimes skips Cells if the map is bigger than 3x3 means you have to split the Map. The Watermarker is dissapearing while editing sometimes for whatever reason. The Worldeditor sometimes crashes just random "i guess thats because of the 32bit compile" i guess before an update to 64bit its not really fixable
-
Making animated weapons
Metin2 Dev replied to vandaa95's topic in Community Support - Questions & Answers
in 3dsmax you can animate objects by putting TimeStamps into the animation, its easier to view some Tutorials for it, in Short. you use The first position of your object in 3dsmax, And move the Timecurser around a bit, move the Object how you like and set the next Time stamp. thats it. with the Tool from Ricky92 you can import / export those mde"s i would recommend you to just watch how other MDE"s work and just rework those -
ive Build new Skilllevel into my Client At level 20 [Hidden Content] At Level 50 [Hidden Content] Sometimes i dont get a Buff at the Buff Skills and other Times it just give me Wrong Values ive edited the Skill_Power table in the locale.common in the same way as the locale.h in the Client what else do i have to do that it will be working? also i have in Total 80 level how do i set all Icons ontop each other / The slots like the Slot from Grandmaster -> Perfect Discord ToXiC4k#9214
-
Just make sure whole the files inside locale\xx\ui\windows is like the official client:
-
(Question)Check if npc is in map
Metin2 Dev replied to regal's topic in Community Support - Questions & Answers
Im not sure if I understand well, but I think you want something like: find_npc_by_vnum(npc_vnum) This is usually used for target, but maybe it could work for what you're trying to do
