Jump to content
M2Tec Community

Search the Community

Showing results for tags 'guide'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • M2Tec Community
    • News and Informations
    • Terms & Rules
    • Suggestions and Feedback
  • Metin2
    • Releases
    • Guides & Tutorials
    • File Request
    • Discussions & Opinions
    • Questions
    • Private Servers
  • General Content
    • HowTo & Guides
    • General Releases
    • Web development
    • Operative Systems
  • Trade Section
    • Buy
    • Sell
  • Save Zone
    • Videos & Music
    • Member Representations
  • M2tec Files's Topics

Categories

There are no results to display.

There are no results to display.

Blogs

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


About Me

Found 14 results

  1. Hey, if you have a new clean freebsd and is slow or deaing problems with it here is a way you can get some better exprerience with your vps. SPEED UP If you wan to use packages then find /etc/pkg/FreeBSD.conf or /usr/local/etc/pkg.conf and change URL to this: Then open your putty and install this Now open your /etc/hosts and change the ::1 localhost domain.name 127.0.0.1 localhost domain.name to where XX.XXX.XXX= YOUR IP DOMAIN=the domain provided by your host for ex. vps1111.host.com ROOTNAME= The name you have next to root when you open your putty ex. root@sneaky -----------DISABLE SENDMAIL(not required) but i dont find it usefull for metin2. COMMON PROBLEM WITH YOUR FREEBSD 11 OR 9.2 , 9.3 is this one: ALLOW_UNSUPPORTED_SYSTEM Or upgrade to an supported version like 11.2 /12.0 or open your /etc/make.conf If there is no make.conf then create one and add this
  2. Hallo, es gibt 2 schnelle Möglichkeiten, das Ganze zu beheben. Geht bitte alles chronologisch durch. Generell solltet ihr immer zu aller erst die MySQL-Log anschauen. Diese gibt euch immer mindestens einen Hinweis, was das Problem ist. Diese findet ihr unter: /var/db/mysql mit dem Namen "HOSTNAME.err". HOSTNAME ist der Name eurer Virtuellen Machine / des Servers. Wenn eine Tabelle oder sogar eine komplette Datenbank kaputt ist, steht es hier drin! Auch solltet ihr überprüfen, dass die Dateien des MySQL-Servers die richtigen Berechtigungen haben. Dazu muss der Besitzer auf 'mysql' und die Rechte auf 0777 geändert werden. cd /var/db chown -R mysql mysql/ chmod -R 777 mysql/ Möglichkeit 1: service mysql-server stop cd /var/db/mysql rm *.err service mysql-server start Manchmal reicht es aus, die .err Dateien zu löschen. sollte das nicht geklappt haben, macht mit Möglichkeit2 weiter. Möglichkeit 2: service mysql-server stop cd /var/db/mysql rm -rf mysql/ service mysql-server start mysql CREATE USER 'mt2'@'localhost' IDENTIFIED BY 'mt2!@#'; GRANT ALL PRIVILEGES ON * . * TO 'mt2'@'localhost'; CREATE USER 'admin'@'%' IDENTIFIED BY 'sehr_schweres_passwort'; GRANT ALL PRIVILEGES ON * . * TO 'admin'@'%'; FLUSH PRIVILEGES; EXIT; Ihr löscht die MySQL-Datenbank mit den Benutzern und einigen anderen wichtigen Infos und lasst MySQL diese neu erstellen. Das passiert automatisch beim Start des MySQL-Servers. Danach müssen noch neue User angelegt werden. Einmal, um mit Navicat verbinden zu können (admin) und einmal für den Metin2-Server (mt2). Danke .PolluX
  3. Hi there, In your GM u never need to reload char, because u need to logout and login again to test something!? And this is boring!!!! I don't know if there's any command for that. So i make one --> pastebin <-- In game just type: /stay and char will teleport (logout\login)
  4. Hallöchen, Heute zeige ich euch wie ihr das System "Icon on item +0-+9" verbaut. System RLS: [Hidden Content] ################################# eterPythonLib/PythonSlotWindow.h ################################# suchen: CGraphicImageInstance * pInstance; darunter: CGraphicImageInstance * pInstanceLevel; ============================================================================= suchen: void Destroy(); darunter: void SetSlotLevelImage(DWORD dwIndex, CGraphicImage * levelImage); ################################# eterPythonLib/PythonSlotWindow.cpp ################################# suchen: Slot.pFinishCoolTimeEffect = NULL; darunter: Slot.pInstanceLevel = NULL; ============================================================================= suchen: void CSlotWindow::SetSlotCount(DWORD dwIndex, DWORD dwCount) darunter: void CSlotWindow::SetSlotLevelImage(DWORD dwIndex, CGraphicImage * levelImage) { TSlot * pSlot; if (!GetSlotPointer(dwIndex, &pSlot) || !levelImage) return; assert(NULL == pSlot->pInstanceLevel); pSlot->pInstanceLevel = CGraphicImageInstance::New(); pSlot->pInstanceLevel->SetDiffuseColor(1.0, 1.0, 1.0, 1.0); pSlot->pInstanceLevel->SetImagePointer(levelImage); } ============================================================================= suchen: pSlot->dwCenterSlotNumber = 0xffffffff; darunter: if (pSlot->pInstanceLevel) { CGraphicImageInstance::Delete(pSlot->pInstanceLevel); pSlot->pInstanceLevel = NULL; } ============================================================================= suchen: if (rSlot.bActive) darüber: if (rSlot.pInstanceLevel) { rSlot.pInstanceLevel->SetPosition(m_rect.left + rSlot.ixPosition, (m_rect.top + rSlot.iyPosition + rSlot.byyPlacedItemSize*ITEM_HEIGHT) - 32); rSlot.pInstanceLevel->Render(); } ###################################### eterPythonLib/PythonWindowManagerModule.cpp ###################################### suchen: void initwndMgr() darüber: PyObject * wndMgrSetSlotImage(PyObject * poSelf, PyObject * poArgs) { UI::CWindow * pWin; if (!PyTuple_GetWindow(poArgs, 0, &pWin)) return Py_BuildException(); int iSlotIndex; if (!PyTuple_GetInteger(poArgs, 1, &iSlotIndex)) return Py_BuildException(); char * szImagePath; if (!PyTuple_GetString(poArgs, 2, &szImagePath)) return Py_BuildException(); if (!pWin->IsType(UI::CSlotWindow::Type())) return Py_BuildException(); UI::CSlotWindow * pSlotWin = (UI::CSlotWindow *)pWin; CGraphicImage * pImage = (CGraphicImage *)CResourceManager::Instance().GetResourcePointer(szImagePath); if (!pImage) return Py_BuildException(); pSlotWin->SetSlotLevelImage(iSlotIndex, pImage); return Py_BuildNone(); } ============================================================================= suchen: { "ShowOverInWindowName", wndMgrShowOverInWindowName, METH_VARARGS }, darunter: { "SetSlotLevelImage", wndMgrSetSlotImage, METH_VARARGS }, ################ root/ui.py ################ suchen: wndMgr.SetSlotCount(self.hWnd, renderingSlotNumber, ItemCount) darunter: itemName=item.GetItemName().strip() itemNameP=item.GetItemName().rfind('+') if itemNameP>0 and len(itemName)>itemNameP+1: level=itemName[itemNameP+1:] if level.isdigit(): wndMgr.SetSlotLevelImage(self.hWnd, renderingSlotNumber, ("icon/level/%d.tga"%int(level))) Der Ordner "level" muss in Pfad ("icon/") gelegt werden. Gruß, ĸαlιвor
  5. Hello! In the last days I needed that my server loads some mobs only once at server start. I found a function that only quests use (called: "regen_load_in_file") and it's similar what I need. I think it will be useful for some of you, so I decided to share it. In common/service.h - Add: #define ENABLE_REGEN_ONCE In game/src/sectree_manager.cpp - Search: snprintf(szFilename, sizeof(szFilename), "%s/%s/regen.txt", c_pszMapBasePath, szMapName); regen_load(szFilename, setting.iIndex, setting.iBaseX, setting.iBaseY); Add under: #ifdef ENABLE_REGEN_ONCE snprintf(szFilename, sizeof(szFilename), "%s/%s/regen_once.txt", c_pszMapBasePath, szMapName); regen_load_in_file(szFilename, setting.iIndex, setting.iBaseX, setting.iBaseY); #endif In game/src/regen.cpp - Search: snprintf(szFilename, sizeof(szFilename), "%sregen.txt", mbMapDataContainer[lMapIndex]->szBaseName); regen_load(szFilename, lMapIndex, mbMapDataContainer[lMapIndex]->base_x, mbMapDataContainer[lMapIndex]->base_y); Add under: #ifdef ENABLE_REGEN_ONCE snprintf(szFilename, sizeof(szFilename), "%sregen_once.txt", mbMapDataContainer[lMapIndex]->szBaseName); regen_load_in_file(szFilename, lMapIndex, mbMapDataContainer[lMapIndex]->base_x, mbMapDataContainer[lMapIndex]->base_y); #endif If you done it, you can create regen_once.txt with some mobs, and place it to your map folder next to regen.txt. If you don't place it in every map folder, you will get some syserr that says he can't find regen_once.txt. It won't cause any problem, just making your syserr bigger. Best regards, and sorry for my english!
  6. Hi there, As allways, i was search for some nice and free unlimited arrow system. But i can't find any full/complete/unbuged, so i make one! I create this today and until now i dont find any bug. So if u find any, let me know maybe we can solve it. Here u go. Enjoy! [Hidden Content] 08010.tga edit: code
  7. edit: [Hidden Content] Hi there, i was looking for some nice anti-bot capcha... i didn't find any, so i make one. Maybe it's not the best, but do his job. "Kick bots from the game." game source: cmd_general: find: edit like: battle.cpp find: edit like: quest:
  8. Alle "Releases" in diesem Beitrag sind durch pub. "Systeme" oder Eigenarbeit in diesen Beitrag gelangt. Alles was hier Vorgestellt wird wurde von mir getestet auf denn "Fliege reworked v2 Files" -- Liste -- 1. Kamera Fern* Modus [] [✔] ----------------------------------------------------------------------------- 1. Kamera Fern* Modus []
  9. [Hidden Content] If any one know how to disable system if inventory is full, this system will be 5* Otherwise, we have to disable it manual in gameoptions to avoid chat warning! xD edit: game.py def OnUpdate(self): [..] [..] if constInfo.AUTO_PICK_UP == 1: self.PickUpItem() [..] How to avoid this if inventory is full?
  10. Quest part: function GetPartyMapIndex() return party.getf("map_index"); end -- function function IsPartyInDungeon() return d.find(quest.GetPartyMapIndex()); end -- function function GetPartyDungeonFloor() return d.getf_from_map_index("dungeon_floor", quest.GetPartyMapIndex()); end -- function function IsSamePartyLeaderDungeon() return d.getf_from_map_index("party_leader_pid", quest.GetPartyMapIndex()) == party.get_leader_pid(); end -- function when NPC.chat."I want to go back into the dungeon" with party.is_party() and quest.IsPartyInDungeon() and quest.IsSamePartyLeaderDungeon() begin local dungeon_floor = quest.GetPartyDungeonFloor(); local spawn_coordinates = Dungeon.GetData()[dungeon_floor]; pc.warp(spawn_coordinates["x"] * 100, spawn_coordinates["y"] * 100, quest.GetPartyMapIndex()); --[[ my settings use coordinates based on floors and keys. Like this function GetData() local array = { [1] = {["x"] = 19850, ["y"] = 98254}, -- Floor 1 spawn coordinates. [2] = {["x"] = 19850, ["y"] = 98254}, -- Floor 2 spawn coordinates. ..etc. }; return array; end -- function ]] end -- when That's how I do in my quests. Please do not CopyPaste without knowing what you're doing because I do not offer any kind of support for this. Useful functions: function SetPartyMapIndex(index) party.setf("map_index", index); -- Call quest.SetPartyMapIndex(d.get_map_index()) upon entering the dungeon with the party leader. (Doing it once is enough). end -- function function IncreaseDungeonFloor() d.setf("dungeon_floor", d.getf("dungeon_floor")+1); -- Call it everytime the group gets to a new floor of the dungeon. end -- function function SetPartyLeaderPid() d.setf("party_leader_pid", party.get_leader_pid()); -- Call it upon entering the dungeon with the party leader. end -- function
×
×
  • Create New...