Jump to content
metin2dev

Search the Community

Showing results for tags 'source'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Community
    • Announcements
    • Feedback
  • Metin2
    • General
    • Questions and Answers
    • Guides & HowTo
    • Design
    • Private Servers
    • Services
    • Videos
  • Releases
    • General
    • Tools
    • Programming / Scripts
    • Quests
    • Binaries & Clients/Serverfiles
    • 3D Models
    • 2D Graphics
    • Operating Systems
  • Safe Zone
    • Offtopic
    • Games Talk
    • Music/Videos/Art

Categories

There are no results to display.

There are no results to display.


Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Website URL


ICQ


Yahoo


Skype


Location

Found 164 results

  1. Hi, How do I change the regeneration percentage of the elixir item? Bênção de Helong (S) > Change percent hp to instant hp Example item 70020
  2. Hello, here's a tutorial on how to update your MySQL Connector C (i think it's not supported anymore thanks oracle @.@) into MariaDB Connector C extracted from my source. You must need MariaDB, if you use MySQL with this connector don't ask help because it's not ment to be compatible. With this edit you could use MariaDB Connector v3.x without any problem. 1) Makefile update Open your libsql, db and game makefile and on the CFLAGS/IFLAGS add this: -I<your Extern source>/include/mariadb (ie.: ../Extern/include/mariadb) Also, if you have a -I referencing mysql please delete it Then, add this to your libsql, db and game CFLAGS this -D__MARIADB__ Finally, change on your db and game LIBS this -lmysqlclient into -lmariadbclient -lssl -lcrypto NOTE: If you already link libssl and libcrypto you can skip them NOTE ON 64BIT ENVIRONMENT: 2) Source Update Edit this code from libsql/AsyncSQL.h: #include <mysql/mysql.h> #include <mysql/errmsg.h> #include <mysql/mysqld_error.h> into: #ifdef __MARIADB__ #include <mariadb/mysql.h> #include <mariadb/errmsg.h> #include <mariadb/mysqld_error.h> #else #include <mysql/mysql.h> #include <mysql/errmsg.h> #include <mysql/mysqld_error.h> #endif Edit this code on db/DBManager.h #include <mysql/mysql.h> into this: #ifdef __MARIADB__ #include <mariadb/mysql.h> #else #include <mysql/mysql.h> #endif Finally, edit this file on libsql/AsyncSQL.cpp fprintf(stdout, "AsyncSQL: connected to %s (reconnect %d)\n", m_stHost.c_str(), m_hDB.reconnect); into: #ifdef __MARIADB__ fprintf(stdout, "AsyncSQL: connected to %s\n", m_stHost.c_str()); #else fprintf(stdout, "AsyncSQL: connected to %s (reconnect %d)\n", m_stHost.c_str(), m_hDB.reconnect); #endif 3) Database Server Update Now we're gonna replace the name "window" because MariaDB introduce the window operator that conflict with the query name What we will basicly do is change any "window" in query into "windows" db/AuctionManager.cpp function LoadAuctionItem() Replace: FROM item WHERE window = 'AUCTION' To: FROM item WHERE windows = 'AUCTION' db/ClientManagerPlayer.cpp Replace: ///////////////////////////////////////////// // 2) 아이템이 DBCache 에 없음 : DB 에서 가져옴 ///////////////////////////////////////////// else { snprintf(szQuery, sizeof(szQuery), "SELECT id,window+0,pos,count,vnum,socket0,socket1,socket2,attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,attrtype3,attrvalue3,attrtype4,attrvalue4,attrtype5,attrvalue5,attrtype6,attrvalue6 " "FROM item%s WHERE owner_id=%d AND (window < %d or window = %d)", GetTablePostfix(), pTab->id, SAFEBOX, DRAGON_SOUL_INVENTORY); CDBManager::instance().ReturnQuery(szQuery, QID_ITEM, peer->GetHandle(), new ClientHandleInfo(dwHandle, pTab->id)); into: ///////////////////////////////////////////// // 2) 아이템이 DBCache 에 없음 : DB 에서 가져옴 ///////////////////////////////////////////// else { snprintf(szQuery, sizeof(szQuery), "SELECT id,windows+0,pos,count,vnum,socket0,socket1,socket2,attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,attrtype3,attrvalue3,attrtype4,attrvalue4,attrtype5,attrvalue5,attrtype6,attrvalue6 " "FROM item%s WHERE owner_id=%d AND (windows < %d or windows = %d)", GetTablePostfix(), pTab->id, SAFEBOX, DRAGON_SOUL_INVENTORY); CDBManager::instance().ReturnQuery(szQuery, QID_ITEM, peer->GetHandle(), new ClientHandleInfo(dwHandle, pTab->id)); Also replace: ClientHandleInfo * pkInfo = new ClientHandleInfo(dwHandle, packet->player_id); pkInfo->account_id = packet->account_id; CDBManager::instance().ReturnQuery(queryStr, QID_PLAYER, peer->GetHandle(), pkInfo); //-------------------------------------------------------------- // 아이템 가져오기 //-------------------------------------------------------------- snprintf(queryStr, sizeof(queryStr), "SELECT id,window+0,pos,count,vnum,socket0,socket1,socket2,attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,attrtype3,attrvalue3,attrtype4,attrvalue4,attrtype5,attrvalue5,attrtype6,attrvalue6 " "FROM item%s WHERE owner_id=%d AND (window < %d or window = %d)", GetTablePostfix(), packet->player_id, SAFEBOX, DRAGON_SOUL_INVENTORY); CDBManager::instance().ReturnQuery(queryStr, QID_ITEM, peer->GetHandle(), new ClientHandleInfo(dwHandle, packet->player_id)); Into: ClientHandleInfo * pkInfo = new ClientHandleInfo(dwHandle, packet->player_id); pkInfo->account_id = packet->account_id; CDBManager::instance().ReturnQuery(queryStr, QID_PLAYER, peer->GetHandle(), pkInfo); //-------------------------------------------------------------- // 아이템 가져오기 //-------------------------------------------------------------- snprintf(queryStr, sizeof(queryStr), "SELECT id,windows+0,pos,count,vnum,socket0,socket1,socket2,attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,attrtype3,attrvalue3,attrtype4,attrvalue4,attrtype5,attrvalue5,attrtype6,attrvalue6 " "FROM item%s WHERE owner_id=%d AND (windows < %d or windows = %d)", GetTablePostfix(), packet->player_id, SAFEBOX, DRAGON_SOUL_INVENTORY); CDBManager::instance().ReturnQuery(queryStr, QID_ITEM, peer->GetHandle(), new ClientHandleInfo(dwHandle, packet->player_id)); Finally replace: snprintf(queryStr, sizeof(queryStr), "DELETE FROM player%s WHERE id=%d", GetTablePostfix(), pi->player_id); delete CDBManager::instance().DirectQuery(queryStr); snprintf(queryStr, sizeof(queryStr), "DELETE FROM item%s WHERE owner_id=%d AND (window < %d or window = %d)", GetTablePostfix(), pi->player_id, SAFEBOX, DRAGON_SOUL_INVENTORY); delete CDBManager::instance().DirectQuery(queryStr); Into: snprintf(queryStr, sizeof(queryStr), "DELETE FROM player%s WHERE id=%d", GetTablePostfix(), pi->player_id); delete CDBManager::instance().DirectQuery(queryStr); snprintf(queryStr, sizeof(queryStr), "DELETE FROM item%s WHERE owner_id=%d AND (windows < %d or windows = %d)", GetTablePostfix(), pi->player_id, SAFEBOX, DRAGON_SOUL_INVENTORY); delete CDBManager::instance().DirectQuery(queryStr); 4) Query update Design your player.item table, and change "window" to "windows". We have update into the new connector (mariadb connector c 3.x safetly), if you would like to downgrade change -lmariadbclient into -lmysqlclient, remove -D__MARIADB__ and change the -I referencing mariadb into mysql. Thanks for reading UPDATE: I've found other place to edit "window" into "windows" Open ClientManager.cpp From: else sys_log(0, "SAFEBOX id[%d] size[%d]", pSafebox->dwID, pSafebox->bSize); } if (0 == pSafebox->dwID) pSafebox->dwID = pi->account_id; pi->pSafebox = pSafebox; m2char szQuery[512]; snprintf(szQuery, sizeof(szQuery), "SELECT id, window+0, pos, count, vnum, socket0, socket1, socket2, " "attrtype0, attrvalue0, " "attrtype1, attrvalue1, " "attrtype2, attrvalue2, " "attrtype3, attrvalue3, " "attrtype4, attrvalue4, " "attrtype5, attrvalue5, " "attrtype6, attrvalue6 " "FROM item%s WHERE owner_id=%d AND window='%s'", GetTablePostfix(), pi->account_id, pi->ip[0] == 0 ? "SAFEBOX" : "MALL"); To: else sys_log(0, "SAFEBOX id[%d] size[%d]", pSafebox->dwID, pSafebox->bSize); } if (0 == pSafebox->dwID) pSafebox->dwID = pi->account_id; pi->pSafebox = pSafebox; m2char szQuery[512]; snprintf(szQuery, sizeof(szQuery), "SELECT id, windows+0, pos, count, vnum, socket0, socket1, socket2, " "attrtype0, attrvalue0, " "attrtype1, attrvalue1, " "attrtype2, attrvalue2, " "attrtype3, attrvalue3, " "attrtype4, attrvalue4, " "attrtype5, attrvalue5, " "attrtype6, attrvalue6 " "FROM item%s WHERE owner_id=%d AND windows='%s'", GetTablePostfix(), pi->account_id, pi->ip[0] == 0 ? "SAFEBOX" : "MALL"); From: else pItemAward->dwSocket0 = item_table->aLimits[i].lValue; break; } } } snprintf(szQuery, sizeof(szQuery), "INSERT INTO item%s (id, owner_id, window, pos, vnum, count, socket0, socket1, socket2) " "VALUES(%u, %u, '%s', %d, %u, %u, %u, %u, %u)", GetTablePostfix(), GainItemID(), pi->account_id, pi->ip[0] == 0 ? "SAFEBOX" : "MALL", iPos, pItemAward->dwVnum, pItemAward->dwCount, pItemAward->dwSocket0, pItemAward->dwSocket1, dwSocket2); } To: else pItemAward->dwSocket0 = item_table->aLimits[i].lValue; break; } } } snprintf(szQuery, sizeof(szQuery), "INSERT INTO item%s (id, owner_id, windows, pos, vnum, count, socket0, socket1, socket2) " "VALUES(%u, %u, '%s', %d, %u, %u, %u, %u, %u)", GetTablePostfix(), GainItemID(), pi->account_id, pi->ip[0] == 0 ? "SAFEBOX" : "MALL", iPos, pItemAward->dwVnum, pItemAward->dwCount, pItemAward->dwSocket0, pItemAward->dwSocket1, dwSocket2); } From: m_map_itemCache.erase(p->id); delete c; } m2char szQuery[512]; snprintf(szQuery, sizeof(szQuery), "REPLACE INTO item%s (id, owner_id, window, pos, count, vnum, socket0, socket1, socket2, " "attrtype0, attrvalue0, " "attrtype1, attrvalue1, " "attrtype2, attrvalue2, " "attrtype3, attrvalue3, " "attrtype4, attrvalue4, " "attrtype5, attrvalue5, " "attrtype6, attrvalue6 " ") " "VALUES(%u, %u, %d, %d, %u, %u, %ld, %ld, %ld, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d" ")", GetTablePostfix(), p->id, p->owner, p->window, To: m_map_itemCache.erase(p->id); delete c; } m2char szQuery[512]; snprintf(szQuery, sizeof(szQuery), "REPLACE INTO item%s (id, owner_id, windows, pos, count, vnum, socket0, socket1, socket2, " "attrtype0, attrvalue0, " "attrtype1, attrvalue1, " "attrtype2, attrvalue2, " "attrtype3, attrvalue3, " "attrtype4, attrvalue4, " "attrtype5, attrvalue5, " "attrtype6, attrvalue6 " ") " "VALUES(%u, %u, %d, %d, %u, %u, %ld, %ld, %ld, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d" ")", GetTablePostfix(), p->id, p->owner, p->window, UPDATE2: Open db/Cache.cpp and find: if (memcmp(aAttr, p->aAttr, sizeof(TPlayerItemAttribute) * ITEM_ATTRIBUTE_MAX_NUM)) isAttr = true; char szColumns[QUERY_MAX_LEN]; char szValues[QUERY_MAX_LEN]; char szUpdate[QUERY_MAX_LEN]; int iLen = snprintf(szColumns, sizeof(szColumns), "id, owner_id, window, pos, count, vnum"); int iValueLen = snprintf(szValues, sizeof(szValues), "%u, %u, %d, %d, %u, %u", p->id, p->owner, p->window, p->pos, p->count, p->vnum); int iUpdateLen = snprintf(szUpdate, sizeof(szUpdate), "owner_id=%u, window=%d, pos=%d, count=%u, vnum=%u", p->owner, p->window, p->pos, p->count, p->vnum); Replace into: if (memcmp(aAttr, p->aAttr, sizeof(TPlayerItemAttribute) * ITEM_ATTRIBUTE_MAX_NUM)) isAttr = true; char szColumns[QUERY_MAX_LEN]; char szValues[QUERY_MAX_LEN]; char szUpdate[QUERY_MAX_LEN]; int iLen = snprintf(szColumns, sizeof(szColumns), "id, owner_id, windows, pos, count, vnum"); int iValueLen = snprintf(szValues, sizeof(szValues), "%u, %u, %d, %d, %u, %u", p->id, p->owner, p->window, p->pos, p->count, p->vnum); int iUpdateLen = snprintf(szUpdate, sizeof(szUpdate), "owner_id=%u, windows=%d, pos=%d, count=%u, vnum=%u", p->owner, p->window, p->pos, p->count, p->vnum);
  3. Hello. I saw this stuff on this and on another board also with bugs or it was incomplete, and I made it to myself. Feel free to use it with your brain. Good to know about this: The name of those items which have attributes will be golden. The skillbook and skillforget items will show the name of skill also. If the item isn't yours than the ownership color will be red instead of yellow. * Készségkönyv = Skillbook(id:50300) * Feledés könyve = Skillforget book(id:70037) PS.: If you have problems with the implementation: start to upgrade your programming knowledges and don't disturb me in private message, I won't answer. Thank you for understanding. https://mega.nz/#!KAh3DQqL!yQQX9o4N8sTsS7Woa4W07C8t5jwp0TV5xg7MHLSFz5Y
  4. Hi community! As you know, the original item_scale looks like this: #ID JOB SEX X Y Z SCALE_X SCALE_Y SCALE_Z 85001 JOB_WOLFMAN M 100 100 100 0 0 0 85001 JOB_ASSASSIN M 62 68 62 0 0 0.52 85001 JOB_ASSASSIN F 62 62 62 0 0 0.45 85001 JOB_SHAMAN M 75 75 75 0 0 0.3 85001 JOB_SHAMAN F 65 65 65 0 0 0.43 85001 JOB_SURA M 73 77 73 0 0 0.4 85001 JOB_SURA F 65 70 65 0 0 0.4 85001 JOB_WARRIOR M 78 83 78 0 0 0.3 85001 JOB_WARRIOR F 70 70 70 0 0 0.4 But the GF changed to like this: #ID JOB SEX X Y Z 85001 JOB_WOLFMAN M 100 100 100 85001 JOB_ASSASSIN M 62 68 62 85001 JOB_ASSASSIN F 62 62 62 85001 JOB_SHAMAN M 75 75 75 85001 JOB_SHAMAN F 65 65 65 85001 JOB_SURA M 73 77 73 85001 JOB_SURA F 65 70 65 85001 JOB_WARRIOR M 78 83 78 85001 JOB_WARRIOR F 70 70 70 As you can see they just removed the last 3 columns. My question is, someone knows how to change the binary source to could handle this? Because I don't know, how they calculate the scale from the x y z columns. Thanks in advance!
  5. Hello all. I have a problem which gives me headaches. I tried to compile all libraries of the external links for the binary source but still with no success. I can compile successfully the binary in release and distribute mode, but in debug mode it gives me this error: 1>eterlib.lib(GrpTextInstance.obj) : error LNK2019: unresolved external symbol "int __cdecl Ymir_WideCharToMultiByte(unsigned int,unsigned long,wchar_t const *,int,char *,int,char const *,int *)" (?Ymir_WideCharToMultiByte@@YAHIKPB_WHPADHPBDPAH@Z) referenced in function "public: static int __cdecl CGraphicTextInstance::Hyperlink_GetText(char *,int)" (?Hyperlink_GetText@CGraphicTextInstance@@SAHPADH@Z) 1>eterlib.lib(GrpTextInstance.obj) : error LNK2019: unresolved external symbol "wchar_t __cdecl Arabic_ConvSymbol(wchar_t)" (?Arabic_ConvSymbol@@YA_W_W@Z) referenced in function "public: void __thiscall CGraphicTextInstance::Update(void)" (?Update@CGraphicTextInstance@@QAEXXZ) 1>eterlib.lib(GrpTextInstance.obj) : error LNK2019: unresolved external symbol "bool __cdecl Arabic_IsInPresentation(wchar_t)" (?Arabic_IsInPresentation@@YA_N_W@Z) referenced in function "public: void __thiscall CGraphicTextInstance::Update(void)" (?Update@CGraphicTextInstance@@QAEXXZ) 1>eterlib.lib(GrpTextInstance.obj) : error LNK2019: unresolved external symbol "bool __cdecl Arabic_HasPresentation(wchar_t *,int)" (?Arabic_HasPresentation@@YA_NPA_WH@Z) referenced in function "public: void __thiscall CGraphicTextInstance::Update(void)" (?Update@CGraphicTextInstance@@QAEXXZ) 1>eterlib.lib(GrpTextInstance.obj) : error LNK2019: unresolved external symbol "bool __cdecl Arabic_IsInSymbol(wchar_t)" (?Arabic_IsInSymbol@@YA_N_W@Z) referenced in function "public: void __thiscall CGraphicTextInstance::Update(void)" (?Update@CGraphicTextInstance@@QAEXXZ) 1>eterlib.lib(GrpTextInstance.obj) : error LNK2019: unresolved external symbol "unsigned int __cdecl Arabic_MakeShape(wchar_t *,unsigned int,wchar_t *,unsigned int)" (?Arabic_MakeShape@@YAIPA_WI0I@Z) referenced in function "public: void __thiscall CGraphicTextInstance::Update(void)" (?Update@CGraphicTextInstance@@QAEXXZ) 1>eterlib.lib(GrpTextInstance.obj) : error LNK2019: unresolved external symbol "int __cdecl Ymir_MultiByteToWideChar(unsigned int,unsigned long,char const *,int,wchar_t *,int)" (?Ymir_MultiByteToWideChar@@YAHIKPBDHPA_WH@Z) referenced in function "public: void __thiscall CGraphicTextInstance::Update(void)" (?Update@CGraphicTextInstance@@QAEXXZ) What can I do?
  6. Ashiné

    open More enchant items?

    Hello. On pure SF and Source I'm learning to create a metin2 server. I'm not creating a mega project just for my teachings ... maybe in a couple of years I'll be able to make some project I noticed that there are, for example, Enchant item and Enchant item +. Enchant item adds to the standard 5 bonus items (strong against humans + 10%). Enchant item + adds improved bonuses (strong against people + 18%) or (average damage up to 120%) in the item. Is it possible to do this on the server? For each advice I will be very happy, I would very much like to make a variety of bonuses. I would also ask if you do not know how to make an unlimited Enchant item. Many thanks and apologize for English.
  7. kagamatosama

    open Horse visible bug

    Hello! Anyone know how can i solve tihs? (Video is not from me, but the bug is fully like mine!) Thanks in advance !!!
  8. Typical

    open Lags in Virtualbox

    (Sorry for mistakes, my English is bad) Hi, for some time now a virtual machine is running very slowly. The commissioning takes only +/- 10 minutes, where it once started in a moment. The screen is not smooth and everything is very slow. I reinstalled it several times and checked it on different versions, but on each one it is the same. The problem only occurs on FreeBSD 9.2. Other versions (such as 9.0 or 9.3) work quickly and do not lag. Before this inscription disappears it takes about 3-4 minutes, and the rest can be seen in the following video. Please help. Log from virtualbox: https://pastebin.com/YmyCRWeV
  9. Rider

    open Sources & Website

    Greetings all, I'm writing this topic to ask Metin2Dev for some help. I'm a Webdeveloper and wanted to create some new stuff for websites and forums. To do that, I need a database so I can see what queries can I integrate. Now I don't know how this works since sources were been released and that's why I'm asking for some help, since it's been like 4-5 years that I don't start a metin2 server. The introduction got long, so the request is this: Where can I find sources or even compiled files (but better sources) so can create a local server for test purposes on developing new websites? If there is a guide to help me to make it work so I can start it that would be super awesome I don't know if there is a link for everyone or not in case PM it to me if that's possible. Thanks for reading this!
  10. RcDragon

    open [SOURCE]Mob spawn

    Hi guys, I would like to know how can I spawn a mob via source. Like...I want to spawn a mob (mob2_vnum) when another certain mob(mob1_vnum) reach 90% of his hp...so I tried this...didn' worked... if (mob1_vnum->GetHPPct() > 98) { SpawnMob(mob2_vnum); } Can someone tell me how to do that correctly? Please...
  11. LiiKeFam3

    Char select bug [40k]

    Hi, metin2dev. Today i've noticed a bug, and i don't know how to solve it. Bug: No hair and played minutes .
  12. Hey Devs! Anyone can you help me? I do not want to disappear after teleport the skills. Thanks!
  13. Here you got some bugfixes from me. Stack Potts etc directly in Belt Inventory, before putting them to Inventory Stack items you drop for Other guys in your party: Fix for the Drops Pet makes if they kill an Monster Pets run towards your dropped items and pick them up for you:
  14. hello, i have a question of the topic start position from the individually character i would like a start position for the individually character, Warrior, Shaman, Ninja and the orther guy you know, the guy with the red hand ... the ninja have point 350 240 and the warrior 500 600 and the orther guys also and now... i dont know how to implement it. I am looking for the solution kind regards
  15. Hi all. I have got a question, if you can help me. How to editing the source of PackMaker for that only one pack file make/enpack and extract/unpack? I hope for you answer to my question. Thank you very mutch.
  16. If I search for "GEOMKYUNG" (aura of the sword I think) I get this output: I looked up in those .cpp and .h files but did not find anything(you can see the lines in the output,only lines with RemoveAffect() etc). Where is the skill defined? If I want to create a new skill or modify this skill where do I actually need to look? Tried to look into that database and did not find anything,it's too big
  17. Hi, recently released a new version of llvm (6) and I decided to update the source of vanilla 70220. (NOT TESTED) Download Cryptopp 5.6.5 Boost 1.65.1 Minilzo 2.09 MariaDB 101 DevIL 1.8.7 To install, you will need several packages. pkg install gmake pkg install subversion pkg install clang-devel Compiled on freebsd 11.1 i386 Best regard
  18. oncemoron

    open No module named net

    Hello guys, I have big problem with source. I compile my source and try to open client application. And show this error. Some advice to solution? Sorry for my bad english.
  19. Numele serverului: Ransom2 Canale deschise: 4 Nivel maxim: 120 Puncte status: 90 Site-ul serverului: http://ransom2.org Forumul serverului: http://board.ransom2.org Inregistrare: http://ransom2.org/reg.php Client: http://ransom2.org/download.php Rata experienta: Setata din mobi Rata yang: Setata din mobi Rata obiecte: Setata din mobi Rata fierarului: Difera de la item la item Detalii despre server: Un server pvm hard. Detalii despre evenimente: Evenimente zilnice. Prezentare full screen : http://ransom2.org/prezentare.php Echipa jocului: Elijah - Administrator Damon - Administrator B.Eduard - Administrator forum & Designer
  20. iShadoW

    open how could i fix that?

    i have a problem with db source, i add gaya , and cheque but when i create a character or i have one already , he;s part_main and part_base from db with no armor is 127 look and my code from db is this: queryLen = snprintf(queryStr, sizeof(queryStr), "INSERT INTO player%s " "(id, account_id, name, level, st, ht, dx, iq, " "job, voice, dir, x, y, z, " "hp, mp, random_hp, random_sp, stat_point, stamina, part_base, part_main, part_hair, part_sash, gold,gaya, cheque, playtime, " "skill_level, quickslot) " "VALUES(0, %u, '%s', %d, %d, %d, %d, %d, " "%d, %d, %d, %d, %d, %d, %d, " "%d, %d, %d, %d, %d, %d, %d, 0, %d, %d, %d, %d, 0 ", GetTablePostfix(), packet->account_id, packet->player_table.name, packet->player_table.level, packet->player_table.st, packet->player_table.ht, packet->player_table.dx, packet->player_table.iq, packet->player_table.job, packet->player_table.voice, packet->player_table.dir, packet->player_table.x, packet->player_table.y, packet->player_table.z, packet->player_table.hp, packet->player_table.sp, packet->player_table.sRandomHP, packet->player_table.sRandomSP, // packet->player_table.sHorse_appearance, packet->player_table.stat_point, packet->player_table.stamina, packet->player_table.part_base, packet->player_table.part_base, packet->player_table.gold , packet->player_table.gaya #ifdef ENABLE_CHEQUE_SYSTEM ,packet->player_table.cheque #endif ); and as well when i compile it tell me , there are too many arguments for format thank you.
  21. Hello, I´m searching for the file in the source where I can change the base vaules on each character like Vit, Dex, Int... Hope that someone can help me
  22. How to compile Metin2 server on x64 without jails or VMs First, make sure to use the default FreeBSD compiler (cc for .c and c++ for .cpp), i tryied GCC but i didn't get any result. Second, add "-m32" to all the CFLAGS in your makefile. Finally, make this changes on your srcs if you got any error building with CLang The Extern dosen't need to be changed, but the freebsd libraries must be linked with -L/usr/local/lib32 rather than -L/usr/local/lib. WARNING: I failed to build MySQL/MariaDB Connector with -m32 flags, i recommend you to use a VM/Jail for build x86 libraries char_manager.cpp line 20 there is something that include boost/bind.hpp, change that include with this: #if !defined(__GNUC__) || defined(__clang__) #include <boost/bind.hpp> #endif line 650 change all the function: void CHARACTER_MANAGER::Update(int iPulse) { using namespace std; #if defined(__GNUC__) && !defined(__clang__) using namespace __gnu_cxx; #endif BeginPendingDestroy(); // PC 캐릭터 업데이트 { if (!m_map_pkPCChr.empty()) { // 컨테이너 복사 CHARACTER_VECTOR v; v.reserve(m_map_pkPCChr.size()); #if defined(__GNUC__) && !defined(__clang__) transform(m_map_pkPCChr.begin(), m_map_pkPCChr.end(), back_inserter(v), select2nd<NAME_MAP::value_type>()); #else transform(m_map_pkPCChr.begin(), m_map_pkPCChr.end(), back_inserter(v), boost::bind(&NAME_MAP::value_type::second, _1)); #endif if (0 == (iPulse % PASSES_PER_SEC(5))) { FuncUpdateAndResetChatCounter f; for_each(v.begin(), v.end(), f); } else { //for_each(v.begin(), v.end(), mem_fun(&CFSM::Update)); for_each(v.begin(), v.end(), bind2nd(mem_fun(&CHARACTER::UpdateCharacter), iPulse)); } } // for_each_pc(bind2nd(mem_fun(&CHARACTER::UpdateCharacter), iPulse)); } // 몬스터 업데이트 { if (!m_set_pkChrState.empty()) { CHARACTER_VECTOR v; v.reserve(m_set_pkChrState.size()); #if defined(__GNUC__) && !defined(__clang__) transform(m_set_pkChrState.begin(), m_set_pkChrState.end(), back_inserter(v), identity<CHARACTER_SET::value_type>()); #else v.insert(v.end(), m_set_pkChrState.begin(), m_set_pkChrState.end()); #endif for_each(v.begin(), v.end(), bind2nd(mem_fun(&CHARACTER::UpdateStateMachine), iPulse)); } } // 산타 따로 업데이트 { CharacterVectorInteractor i; if (CHARACTER_MANAGER::instance().GetCharactersByRaceNum(xmas::MOB_SANTA_VNUM, i)) { for_each(i.begin(), i.end(), bind2nd(mem_fun(&CHARACTER::UpdateStateMachine), iPulse)); } } // 1시간에 한번씩 몹 사냥 개수 기록 if (0 == (iPulse % PASSES_PER_SEC(3600))) { for (itertype(m_map_dwMobKillCount) it = m_map_dwMobKillCount.begin(); it != m_map_dwMobKillCount.end(); ++it) DBManager::instance().SendMoneyLog(MONEY_LOG_MONSTER_KILL, it->first, it->second); #ifdef _USE_SERVER_KEY_ extern bool Metin2Server_IsInvalid(); extern bool g_bShutdown; if (Metin2Server_IsInvalid()) { g_bShutdown = true; } #endif m_map_dwMobKillCount.clear(); } // 테스트 서버에서는 60초마다 캐릭터 개수를 센다 if (test_server && 0 == (iPulse % PASSES_PER_SEC(60))) sys_log(0, "CHARACTER COUNT vid %zu pid %zu", m_map_pkChrByVID.size(), m_map_pkChrByPID.size()); // 지연된 DestroyCharacter 하기 FlushPendingDestroy(); } sectree.h line 90 inside find_if function change the it_tree declaration with this #ifdef __clang__ LPSECTREE_LIST::const_iterator it_tree = m_neighbor_list.begin(); #else LPSECTREE_LIST::iterator it_tree = m_neighbor_list.begin(); #endif stdafx.h line 24 after <vector> include change all the part that include boost/unordered_map and tr1/unordered_map to this: #if defined(__clang__) #include <float.h> #include <unordered_map> #include <unordered_set> #define TR1_NS std #elif defined(__GNUC__) #include <float.h> #include <tr1/unordered_map> #include <tr1/unordered_set> #define TR1_NS std::tr1 #elif defined(_MSC_VER) #include <boost/unordered_map.hpp> #include <boost/unordered_set.hpp> #define TR1_NS boost #define isdigit iswdigit #define isspace iswspace #endif We've builded our server on x64 machine, but we created a x86 application. Why? Compiling on x64 increases the value of some C types (eg.: sizeof(int) return 4bit in x86 and 8bit on x64). Let's take for example this packet: typedef struct command_script_button { BYTE header; unsigned int idx; } TPacketCGScriptButton; The size of this packet will be 5 on x86 program, and 9 on a x64 program. If we use a x86 metin2 client, the server will except 9 bytes to be received however it will only receive 5 bytes, leaving the server listening for the 4 remaning bytes. The first, possible fix for x64, is building the metin2 client on x64 bit, loosing compatibily with old x86 PCs. The second, is to change all the packets on client/server to the same data (eg.: int becames int32 etc...), so the server builded in x64 will understand that the int packets are 4 byte and not 8; but, convering (on the rest of the server) a 8byte int into a 4byte int could lead up to loosing data. The wrong fix is to define int,long with int32 and long32 (for example). This won't fix nothing because it's like you're using a x86 program, so you could not use any x64 advantage. PS: Sorry for bad english, i hope it's now more clear for everyone
  23. Hi Devs! Anyone can you help me? How to move the Sash in Inventory from CostumeWindow? Thanks the replies, and sorry for my english.
  24. So my problem is that it says Procedureentrypoint "_GrannyUpdateModelMatrix@16" was not found on the dll "......./metin2client.exe" Can someone help me to fix it :)?
  25. DaaRa

    open Source Copile

    Hi guys! I have a problem with a game source , if you can help me. After copiling the game and wanting to use it , i have this error : Oh , and db to.... Some ideas?
×