Jump to content
Maintenance : Final step ×

k7k755

Banned
  • Posts

    81
  • Joined

  • Last visited

  • Days Won

    1
  • Feedback

    0%

k7k755 last won the day on September 2

k7k755 had the most liked content!

About k7k755

Core X

  • BAN_NOTICE
    Yes

Informations

  • Gender
    Male
  • Country
    Saudi Arabia
  • Nationality
    English

Social Networks

  • Discord
    moro286

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

k7k755's Achievements

Collaborator

Collaborator (7/16)

  • Very Popular Rare
  • Dedicated
  • Reacting Well
  • First Post
  • Collaborator

Recent Badges

213

Reputation

  1. Hello friends This error exists in some versions and appears sometimes, so I decided to search for the cause of the problem and its solution, and I wanted to share it with you so that everyone can benefit. cmd_gm.cpp ACMD(do_advance) { char arg1[256], arg2[256]; two_arguments(argument, arg1, sizeof(arg1), arg2, sizeof(arg2)); if (!*arg1 || !*arg2) { ch->ChatPacket(CHAT_TYPE_INFO, "Syntax: advance <name> <level>"); return; } LPCHARACTER tch = CHARACTER_MANAGER::instance().FindPC(arg1); if (!tch) { ch->ChatPacket(CHAT_TYPE_INFO, "%s not exist", arg1); return; } int level = 0; str_to_number(level, arg2); tch->SetExp(0); // Fix level tch->ResetPoint(MINMAX(0, level, gPlayerMaxLevel)); } ACMD(do_level) { char arg2[256]; one_argument(argument, arg2, sizeof(arg2)); if (!*arg2) { ch->ChatPacket(CHAT_TYPE_INFO, "Syntax: level <level>"); return; } int level = 0; str_to_number(level, arg2); ch->SetExp(0); // Fix level ch->ResetPoint(MINMAX(1, level, gPlayerMaxLevel)); ch->ClearSkill(); ch->ClearSubSkill(); } Hope it helps someone.. Goodbye
  2. Hi guys Anyone who used Marty's source and wants to make a very difficult server know about this bug You can hit from the top of the horse even though the horse is level 1 Let's fix this bug and make it work perfectly like the official server Fix instancebase.cpp: // Fix Horse 2024 UINT CInstanceBase::SHORSE::GetLevel() { if (m_pkActor) { DWORD dwMountVnum = m_pkActor->GetRace(); if (dwMountVnum == 20101 || dwMountVnum == 20102 || dwMountVnum == 20103) { return MOUNT_TYPE_NONE; } #ifdef ENABLE_NO_MOUNT_CHECK return MOUNT_TYPE_MILITARY; #else return static_cast<UINT>(GetMountLevelByVnum(dwMountVnum, false)); #endif } return 0; } Hope it helps someone.. Goodbye
  3. I understand your problem and I was trying to help you but that didn't help you so I'm sorry I couldn't help you I hope someone can help you
  4. Hi guys I know it's late but better late than never.. I'll introduce myself My real name is Omar I'm an Arab I've known Metin2 since 2007 I played on the official server when it opened in the Middle East and started my programming career in 2014 I was very bad and I'm still bad hahaha it's just a joke My experience is not great but I'm able to install systems and solve problems and create simple systems I've made files with my name and made many servers and I had a work history full of progress in 2019 but then I retired for a long time and came back two months ago and I'm trying to regain my experience and strength again I wanted to get to know you and introduce myself to you and be good friends
  5. I think this might help you solve your problem? [Hidden Content]
  6. If you are going to buy robots from them, you are welcome to their server. If you are going to use an external robot, they will ban you. They only care about money.
  7. This will help you. The newsletter has been approved.
  8. I have added a topic in which I explained the solution to this error, but you must wait until the moderator approves it. Follow the repairs section, you will find my topic called [FIX] HP/SP reset, which will help you solve your problem.
  9. There is an error that I personally and one of my friends were facing, and there is someone who was suffering from this error, but we could not find a solution, so I decided to search for the solution and share it with everyone so that everyone can benefit. Here is the error explanation 1. Make yourself level 5 (or any, at lvl mix you can see the bug better) 2. Give yourself a pet with HP and call it. 3. put points on hp/int/str/dex and watch how the hp bar goes backwards with the hp the pet has and keeps resetting. It is an old error and therefore there are new and famous sources that have not solved this problem, although they are basic problems that must be solved before anything else. Here is the solution open Char.cpp Search void CHARACTER::UpdatePacket() { Below you add: if (!m_pointsInstant.computed) return; Search for: long lSPRecovery = GetPoint(POINT_SP_RECOVERY); Add under: m_pointsInstant.computed = false; Search for: if (IsPC()) { if (this->GetHP() != iCurHP) this->PointChange(POINT_HP, iCurHP - this->GetHP()); if (this->GetSP() != iCurSP) this->PointChange(POINT_SP, iCurSP - this->GetSP()); } Add under: m_pointsInstant.computed = true; Open Char.h and search for: LPENTITY m_pDragonSoulRefineWindowOpener; Add under: bool computed; Good luck to you Note: All content aims to benefit everyone. I want to help everyone as much as possible so that everyone is happy.
  10. Honestly I don't know what the difference is between metin 2, Metin 1 and Matin 3. Aren't they all Metin 2 with the same look and same gameplay? I got to know Matin 2 in 2007 on the official Arabic server and I don't know if any other version of the ones you are talking about has ever appeared before. I'm curious to know the story of each of them.
  11. Honestly I don't know what the difference is between metin 2, Metin 1 and Matin 3. Aren't they all Metin 2 with the same look and same gameplay? I got to know Matin 2 in 2007 on the official Arabic server and I don't know if any other version of the ones you are talking about has ever appeared before. I'm curious to know the story of each of them.
  12. Your work is amazing as always, no doubt about it.
  13. Yes, it was shared in another forum and I wanted to put it here so that everyone can benefit.
  14. Hello my friends I was searching for this mod and found it but it was only for bouns rewards but in this tutorial we will bouns rewards, stones and Transmutation for this purpose using cube window. I know that this modification was previously released, but it was only to transfer the rewards. Search in cube.cpp: else TOKEN("gold") Add: #ifdef ENABLE_CUBE_RENEWAL else TOKEN("allow_copy_attr") { cube_data->allowCopyAttr = (value1 == 1 ? true : false); } else TOKEN("allow_copy_socket") { cube_data->allowCopySocket = (value1 == 1 ? true : false); } #ifdef ENABLE_CHANGELOOK_SYSTEM else TOKEN("allow_copy_transmutation") { cube_data->allowCopyTransmutation = (value1 == 1 ? true : false); } #endif #endif Search: bool Cube_make(LPCHARACTER ch) Add: #ifdef ENABLE_CUBE_RENEWAL DWORD copyAttr[ITEM_ATTRIBUTE_MAX_NUM][2]; memset(copyAttr, 0, sizeof(copyAttr)); DWORD copySocket[ITEM_SOCKET_MAX_NUM]; memset(copySocket, 0, sizeof(copySocket)); #ifdef ENABLE_CHANGELOOK_SYSTEM DWORD copyTransmutation = 0; #endif #endif Search: CUBE_VALUE* reward_value = cube_proto->reward_value(); add #ifdef ENABLE_CUBE_RENEWAL for (int i = 0; i < CUBE_MAX_NUM; ++i) { if (NULL == items[i]) continue; if (items[i]->GetType() == ITEM_WEAPON || items[i]->GetType() == ITEM_ARMOR || items[i]->GetType() == ITEM_UNIQUE || items[i]->GetType() == ITEM_COSTUME) { bool hasElement = false; for (int j = 0; j < cube_proto->item.size(); ++j) { if (cube_proto->item[j].vnum == items[i]->GetVnum()) { hasElement = true; break; } } if (hasElement == false) continue; for (int a = 0; a < ITEM_ATTRIBUTE_MAX_NUM; a++) { copyAttr[a][0] = items[i]->GetAttributeType(a); copyAttr[a][1] = items[i]->GetAttributeValue(a); } for (int a = 0; a < ITEM_SOCKET_MAX_NUM; a++) copySocket[a] = items[i]->GetSocket(a); #ifdef ENABLE_CHANGELOOK_SYSTEM copyTransmutation = items[i]->GetTransmutation(); #endif break; } continue; } #endif Search: LogManager::instance().CubeLog(ch->GetPlayerID(), ch->GetX(), ch->GetY(), reward_value->vnum, new_item->GetID(), reward_value->count, 1); Add above: #ifdef ENABLE_CUBE_RENEWAL if (cube_proto->allowCopyAttr == true) { new_item->ClearAttribute(); for (int a = 0; a < ITEM_ATTRIBUTE_MAX_NUM; a++) { new_item->SetForceAttribute(a, copyAttr[a][0], copyAttr[a][1]); } } if (cube_proto->allowCopySocket == true) { for (int i = 0; i < ITEM_SOCKET_MAX_NUM; i++) new_item->SetSocket(i, copySocket[i]); } #ifdef ENABLE_CHANGELOOK_SYSTEM if (cube_proto->allowCopyTransmutation == true) { new_item->SetTransmutation(copyTransmutation); } #endif #endif Search: CUBE_DATA::CUBE_DATA() Add: #ifdef ENABLE_CUBE_RENEWAL this->allowCopyAttr = false; this->allowCopySocket = false; #ifdef ENABLE_CHANGELOOK_SYSTEM this->allowCopyTransmutation = false; #endif #endif in cube.h search: unsigned int gold; add: #ifdef ENABLE_CUBE_RENEWAL bool allowCopyAttr; bool allowCopySocket; #ifdef ENABLE_CHANGELOOK_SYSTEM bool allowCopyTransmutation; #endif #endif Good bye
×
×
  • 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.