enisina
-
Posts
195 -
Joined
-
Last visited
-
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Posts posted by enisina
-
-
Since I was using the officiall proto files, I noticed that when I was on the mount, I was thrown backwards and the slots were not loaded. When I looked at the proto file, I saw that they had removed the folder files of the mounts, so I pulled the folder names directly from the npclist.txt file. If the mob type is horse [CHAR_TYPE_HORSE], it gets it from here, otherwise it gets it according to mob_proto.
- 16
- 1
- 2
- 6
-
14 hours ago, flatik said:
_USE_32BIT_TIME_T macro enabled?
When I disabled the client src I was able to log in. But when I use items or something, I get this error.
Unprocessed packet header 32, state Game
-
-
On 20.10.2023 at 11:42, Hik said:
Visual studio ile derleyip daha sonra derlenen dosyaları freebsd'de kullanmak mümkün mü?
Açıkçası bir exe dosyası oluşturarak değil.
No
- 1
-
I want to compile the files that I use without any problems on the Freebsd server with Visual Studio and use them on the Windows server. I keep selecting the character but the client crashes completely before the character appears. The unknown packet error I get is always the same number. When I use it on freebsd server there is no problem.
-
25.10.2015 saat 00:22'de ds_aim şunları söyledi:
127.0.0.1 ip adresini nasıl takip edebilirim? Wireshark görmüyor (metin2 windows sunucu dosyaları)I'm listening to 127.0.0.1 and there are thousands of packets. how do I know which one is metin2?
-
help me please
-
2 hours ago, Draveniou1 said:
add fuction
(!your fuction) { return; }
I wrote the following code for testing purposes and it gave core on this line. There is an error in the function but I couldn't understand what it is.
sys_err("result0 %s, result1 %s", atoi(results[0].c_str()), atoi(results[1].c_str()));
-
1 hour ago, Draveniou1 said:
add fuction
(!your fuction) { return; }
unfortunately. there was no solution.
-
hello, when I create an item after something I add, I get game.core. can you help me ?
split_value func:
#include <vector> void split_value(std::string str, std::string splitBy, std::vector<std::string>& tokens) { tokens.push_back(str); size_t splitAt; size_t splitLen = splitBy.size(); std::string frag; while (true) { frag = tokens.back(); splitAt = frag.find(splitBy); if (splitAt == std::string::npos) break; tokens.back() = frag.substr(0, splitAt); tokens.push_back(frag.substr(splitAt + splitLen, frag.size() - (splitAt + splitLen))); } }
item_manager.cpp
line to crash(359):
const TItemTable* item_table = item->GetProto(); for (int i = 0; i < ITEM_RANDOM_VALUES_MAX_NUM; i++) { if (!item_table->alSockets[i]) continue; std::string foo = std::to_string(item_table->alSockets[i]); std::vector<std::string> results; split_value(foo, "00", results); 359: const auto irandomValue = static_cast<uint16_t>(number(atoi(results[0].c_str()), atoi(results[1].c_str()))); item->SetRandomDefaultAttr(i, irandomValue); }
- 1
- 1
-
Hi, I have a problem like this. After choosing a character, it throws it at the login screen. No Client Syserr.
CH1 Syslog
Jan 18 15:01:26 :: SYSTEM: new connection from [192.168.1.102] fd: 16 handshake 4237746029 output input_len 0, ptr 0x48165600 Jan 18 15:01:26 :: Packet Analyze [Header 255][bufferLeft 13] Jan 18 15:01:26 :: Packet Analyze [Header 255][bufferLeft 13] Jan 18 15:01:26 :: Handshake: lower than zero -178 Jan 18 15:01:26 :: Packet Analyze [Header 255][bufferLeft 13] Jan 18 15:01:26 :: Packet Analyze [Header 255][bufferLeft 13] Jan 18 15:01:26 :: Packet Analyze [Header 255][bufferLeft 13] Jan 18 15:01:26 :: Handshake: client_time 0 server_time 1109997 Jan 18 15:01:27 :: Packet Analyze [Header 251][bufferLeft 261] Jan 18 15:01:27 :: Packet Analyze [Header 109][bufferLeft 52] Jan 18 15:01:27 :: LOGIN_BY_KEY: admin key 676564720 Jan 18 15:01:28 :: LoginSuccess Jan 18 15:01:28 :: player(Dev).job(0) Jan 18 15:01:28 :: player(test).job(8) Jan 18 15:01:28 :: player().job(0) Jan 18 15:01:28 :: player().job(0) Jan 18 15:01:28 :: player().job(0) Jan 18 15:01:28 :: success to 0.0.0.0:12101 Jan 18 15:01:28 :: success to 0.0.0.0:12101 Jan 18 15:01:28 :: InputDB::login_success: admin Jan 18 15:01:31 :: SYSTEM: new connection from [192.168.1.102] fd: 17 handshake 1299000312 output input_len 0, ptr 0x48165b00 Jan 18 15:01:31 :: Packet Analyze [Header 100][bufferLeft 9] Jan 18 15:01:31 :: MARK_SERVER: Login Jan 18 15:01:35 :: Packet Analyze [Header 104][bufferLeft 1] Jan 18 15:01:35 :: LargePacket Size 24 Jan 18 15:01:35 :: MARK_SERVER: GuildMarkIDXList 31 bytes sent. Jan 18 15:01:35 :: Packet Analyze [Header 101][bufferLeft 322] Jan 18 15:01:35 :: MARK_SERVER: Sending blocks. (imgIdx 0 diff 0 size 10) Jan 18 15:01:35 :: SYSTEM: closing socket. DESC #17 Jan 18 15:01:40 :: SYSTEM: closing socket. DESC #16 Jan 18 15:01:44 :: GLOBAL_TIME: Jan 18 15:01:44 time_gap 0 Jan 18 15:02:10 :: CHARACTER COUNT vid 18179 pid 0
Auth Syslog
Jan 18 15:01:25 :: SYSTEM: new connection from [192.168.1.102] fd: 15 handshake 148142307 output input_len 0, ptr 0x214eca00 Jan 18 15:01:25 :: Handshake: client_time 0 server_time 1120192 Jan 18 15:01:25 :: AUTH_PHASE 0x214eca00 Jan 18 15:01:25 :: InputAuth::Login : admin(5) desc 0x214eca00 Jan 18 15:01:25 :: SetLoginKey 676564720 Jan 18 15:01:25 :: InputAuth::Login : key 676564720:0xc03bae3 login admin Jan 18 15:01:25 :: QID_AUTH_LOGIN: START 676564720 0x214eca00 Jan 18 15:01:25 :: Create_Time 1606372416 20201126 Jan 18 15:01:25 :: Block Time -1 Jan 18 15:01:26 :: SetRemainSecs admin 0 Jan 18 15:01:26 :: SendAuthLogin admin language 11 key 1 Jan 18 15:01:26 :: AuthLogin result 1 key 676564720 Jan 18 15:01:26 :: SYSTEM: closing socket. DESC #15
-
-
On 3/2/2020 at 8:44 AM, OtherChoice said:
Nice shot. For better code management and reusability you could remove the delete from the if (pkOldGrid) check and put it into the override method CGrid::CGrid(CGrid * pkGrid, int w, int h) : m_iWidth(w), m_iHeight(h) like this:
CGrid::CGrid(int w, int h) : m_iWidth(w), m_iHeight(h) { m_pGrid = new char[m_iWidth * m_iHeight]; memset(m_pGrid, 0, sizeof(char) * m_iWidth * m_iHeight); } CGrid::CGrid(CGrid * pkGrid, int w, int h) : m_iWidth(w), m_iHeight(h) //<- if you add delete pkGrid here you can call M2_NEW CGrid(CGrid*, width, height) and it will delete the old pointer of safebox function at the end of this method { m_pGrid = new char[m_iWidth * m_iHeight]; int iSize = std::MIN(w * h, pkGrid->m_iWidth * pkGrid->m_iHeight); thecore_memcpy(m_pGrid, pkGrid->m_pGrid, sizeof(char) * iSize); //here delete pkGrid; }
you are just doing excess code.
- 1
-
-
On 12/12/2019 at 12:43 AM, VegaS™ said:
void CPetActor::SetName() { std::string petName = m_pkOwner->GetName(); if (true == IsSummoned() && m_dwVnum == 34025) { petName += " - |cFFFF0049|H|hPhoenix de Foc"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34010) { petName += " - |cFFc9ff00|H|hBambi"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34003) { petName += " - |cFF009DFF|H|hPhoenix de Gheata"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34004) { petName += " - |cFF732222|H|hMicul Azrael"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34005) { petName += " - |cFF528508|H|hPorcusor"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34006) { petName += " - |cFF528508|H|hRufus"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34007) { petName += " - |cFF528508|H|hKhan"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34008) { petName += " - |cFF528508|H|hLeonidas"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34009) { petName += " - |cFFDCE627|H|hMicul Azrael (Aur)"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34011) { petName += " - |cFF009DFF|H|hKnuud"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34012) { petName += " - |cFF009DFF|H|hBao Bao"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34013) { petName += " - |cFF732222|H|hMini Executor"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34014) { petName += " - |cFFDCE627|H|hMini Executor (Aur)"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34015) { petName += " - |cFFc9ff00|H|hBoney"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34016) { petName += " - |cFFA1C718|H|hPhoenix de Jad"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34017) { petName += " - |cFF109EC7|H|hPorkie Polar"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34019) { petName += " - |cFF109EC7|H|hArctis Khan"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34020) { petName += " - |cFF109EC7|H|hLeonidas Alb"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34021) { petName += " - |cFFc9ff00|H|hSheldon"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34022) { petName += " - |cFFc9ff00|H|hChooper"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34023) { petName += " - |cFFC97D87|H|hPui de Pantera"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34028) { petName += " - |cFF109EC7|H|hFulg de Nea"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34029) { petName += " - |cFF109EC7|H|hClopotel de Nea"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34030) { petName += " - |cFFF42B07|H|hElf Rosu"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34031) { petName += " - |cFF34962B|H|hElf Verde"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34032) { petName += " - |cFF6B6B6B|H|hJiangshi Junior"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34033) { petName += " - |cFF237A00|H|hMr Jiangshi"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34034) { petName += " - |cFF16ACB8|H|hShiver"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34035) { petName += " - |cFF16ACB8|H|hSnivel"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34036) { petName += " - |cFFA210AB|H|hLiliacul Bruce"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34037) { petName += " - |cFFA210AB|H|hLiliacul Wayne"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34038) { petName += " - |cFF77B8EA|H|hRamblue"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34039) { petName += " - |cFFD58DEE|H|hEweriel"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34040) { petName += " - |cFF732222|H|hMicul Huashin"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34100) { petName += " - |cFFE13066|H|hSemiluna Rosie"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34101) { petName += " - |cFF6271E3|H|hSemiluna Albastra"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34102) { petName += " - |cFFE13066|H|hLanterna Rosie"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34103) { petName += " - |cFF6271E3|H|hLanterna Albastra"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34104) { petName += " - |cFFF91ECE|H|hValentinia"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34105) { petName += " - |cFF6271E3|H|hValentino"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34106) { petName += " - |cFFE13066|H|hAmoras"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34107) { petName += " - |cFFE13066|H|hInima Iute"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34108) { petName += " - |cFF13A575|H|hBonsai"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34109) { petName += " - |cFF13A575|H|hDonnie"; m_pkChar->SetName(petName); } else if (true == IsSummoned() && m_dwVnum == 34110) { petName += " - |cFF13A575|H|hBonnie"; m_pkChar->SetName(petName); } else if (true == IsSummoned()) { petName += " Companiot"; m_pkChar->SetName(petName); } m_name = petName; }
You could do it with a map.
#include "cff.h" using TPetName = std::map<uint32_t, std::tuple<std::string, std::string>>; static const TPetName map_pet_names = { { 34003, {"Phoenix de Gheata", "#009DFF"} }, { 34004, {"Micul Azrael", "#732222"} }, { 34005, {"Porcusor", "#528508"} }, }; void CPetActor::SetName() { std::string& stPetName = m_pkOwner->GetName(); const auto& it = map_pet_names.find(m_dwVnum); if (it != map_pet_names.end()) stPetName.append(CFF::format(std::get<0>(it->second), std::get<1>(it->second))); m_pkChar->SetName(stPetName); }
Also you could use my
(there exists ) for coloring a string, much easier.#include "cff.h" std::string text = CFF::format("Metin2", "green"); std::string text = CFF::format(std::to_string(8000), "banana"); std::string text = CFF::format(std::to_string(412.55), "red"); std::string text = CFF::format("Pending", "#113355"); std::string text = CFF::format("Item name:", "springgreen", CFF::FLAG_NEW_TAB) + CFF::format(pItemData->GetName(), "chocolate"); std::vector<string> text = CFF::multi_format({"a", "b", "c"}, "red"); // text[0], text[1], text[2]
computepoints(); on this system Why is it used? Does the need to use?
- 1
- 1
-
you are a very good python developer. but only python.
- 3
- 1
-
Gives features dont ride .. @.ZeNu
-
Use freebsd 12, not use freebsd 9
-
When you exit the game, mount continues ?
-
-
-
On 10/14/2019 at 7:52 PM, Kreciok said:
update your devil.dll in client.
devil updated 1.8 problem persists.
-
which files are you using ?
-
Official Client Locale String[REVERSED]
in Features & Metin2 Systems
Posted
code for growth pet system