Jump to content
M2Tec Community

Leaderboard


Popular Content

Showing content with the highest reputation since 06/20/19 in all areas

  1. 49 points
    Description: [Hidden Content] Download: [Hidden Content]
  2. 41 points
    Patch v19.3.9 Contains: Thanks to xP3NG3Rx Download
  3. 36 points
    Hey da ich neben Skype auch hier in der SB gesehen habe das es gesucht wird Release ich es hier mal! Hatte das mal aus einem Rumänem Forum runter geladen Credits gehen daher an die weis bloß den Namen nicht mehr!
  4. 36 points
    Hi to the community, I just share a module named "CFG" that will serve you for a lot of things, including backup or generation of .cfg file. It can also be used for a lot of things. Suppose you have added an option to switch between day and night, with the module "cfg", you will then be able to save the environment (day / night) in use by a cfg file. Download: I had already done the tutorial before, here is the link: HERE
  5. 32 points
    // #uitooltip.py #Search: elif item.LIMIT_TIMER_BASED_ON_WEAR == limitType: self.AppendTimerBasedOnWearLastTime(metinSlot) #dbg.TraceError("1) REAL_TIME flag On ") self.ShowToolTip() def __DragonSoulInfoString (self, dwVnum): #edit like: elif item.LIMIT_TIMER_BASED_ON_WEAR == limitType: self.AppendTimerBasedOnWearLastTime(metinSlot) #dbg.TraceError("1) REAL_TIME flag On ") self.ShowToolTip() if chr.IsGameMaster(player.GetMainCharacterIndex()): self.AppendTextLine(localeInfo.ITEM_VNUM_TOOLTIP % (int(itemVnum)), self.ITEM_VNUM_COLOR) def __DragonSoulInfoString (self, dwVnum): // # Search NEED_SKILL_POINT_COLOR = 0xff9A9CDB #add after ITEM_VNUM_COLOR = 0xffFFFF00 #add in locale_game.txt ITEM_VNUM_TOOLTIP item_vnum: [%d]
  6. 30 points
    (not mine) [Hidden Content] Report post Posted June 28, 2018 Hey, Today i will show you how you can fix easy the invisibility effect bug and the AFFECT_EUNHYEONG = sealth ninja skill from 17.5 Official update. InstanceBase.cpp (Is hiding the ninja from the minimap) Hide contents Search for: Hide contents BOOL CInstanceBase::IsInvisibility() { if (IsAffect(AFFECT_INVISIBILITY)) return true; return false; } Replace with: Hide contents BOOL CInstanceBase::IsInvisibility() { if (IsAffect(AFFECT_INVISIBILITY) || IsAffect(AFFECT_EUNHYEONG)) return true; return false; } Search for: Hide contents  void CInstanceBase::Render() { Inside the function search for: m_GraphicThingInstance.Render(); Add bellow: CPythonCharacterManager & rkChrMgr = CPythonCharacterManager::Instance(); for (auto ptr = rkChrMgr.CharacterInstanceBegin(); ptr != rkChrMgr.CharacterInstanceEnd(); ++ptr) { CInstanceBase * pkInstEach = *ptr; if (pkInstEach) { if (pkInstEach->IsAffect(AFFECT_EUNHYEONG) || pkInstEach->IsAffect(AFFECT_INVISIBILITY)) { if (CPythonPlayer::Instance().IsMainCharacterIndex(pkInstEach->GetVirtualID())) continue; pkInstEach->m_GraphicThingInstance.HideAllAttachingEffect(); } } } InstanceBaseEffect.cpp Search for: Hide contents void CInstanceBase::__SetAffect(UINT eAffect, bool isVisible) { Inside the function search: case AFFECT_INVISIBILITY: if (isVisible) { m_GraphicThingInstance.ClearAttachingEffect(); __EffectContainer_Destroy(); DetachTextTail(); } else { m_GraphicThingInstance.BlendAlphaValue(1.0f, 1.0f); AttachTextTail(); RefreshTextTail(); } return; break; } Replace with: Hide contents case AFFECT_INVISIBILITY: if (isVisible) { // m_GraphicThingInstance.ClearAttachingEffect(); // __EffectContainer_Destroy(); // DetachTextTail(); m_GraphicThingInstance.HideAllAttachingEffect(); } else { m_GraphicThingInstance.BlendAlphaValue(1.0f, 1.0f); m_GraphicThingInstance.ShowAllAttachingEffect(); // AttachTextTail(); // RefreshTextTail(); } return; break;
  7. 27 points
    Description: [Hidden Content] Download: [Hidden Content] Pickup.cpp
  8. 27 points
    Heyho hiermit Release ich nochmal das Target Render viel spaß damit. Download: [Hidden Content]: [Hidden Content] Bild: [Hidden Content]
  9. 25 points
    Description: [Hidden Content] Download: [Hidden Content] Refine
  10. 25 points
    SKILL COLOR SYSTEM: SHAMAN SYSTEM:
  11. 21 points
    Hi From time to time, some of the makers of the hacker Lalaker1 developed a publication on Facebook explaining the solution to the problem of the black screen after playing for a long time in servers Matin2 Look at this picture and you will understand everything [Hidden Content] I wanted to share with you the solution Search for this sheet UserInterface\PythonCharacterManager.cpp Open and search for if (pkInstEach->IsForceVisible()) { dwForceVisibleInstCount++; continue; } Replace with /*if (pkInstEach->IsForceVisible()) { dwForceVisibleInstCount++; continue; }*/ Best regards I apologize for the bad English language
  12. 21 points
    Description: Download: [Hidden Content] Change Channel
  13. 19 points
  14. 19 points
    ich habe keine bilder mehr auf meinen Rechner die Alphas sind angepasst an den waffen Sorry dafür das ich keine Screens habe Included Wolfman Weapons* New Link ALLCHARS*Wolfman 06.06 /19 ALPHACREATOR: .Ace
  15. 19 points
    Link: [Hidden Content]
  16. 18 points
    Hello everyone This is the flag system for chat,name,whisper etc.. Download Link [Hidden Content] Cheers
  17. 17 points
    New pet, mount and new aura system parts: [Hidden Content] [Hidden Content] Thanks to xP3NG3Rx
  18. 16 points
    This is how it should work. Tut later. [Hidden Content] Fix attached. cube_update.rar
  19. 15 points
    Hello i wanna share this item (not mine) Tutorial in file Link: Effect icon
  20. 15 points
    Description: Download: [Hidden Content] View Drop 0.1
  21. 15 points
    // #uitooltip.py #Search: elif item.LIMIT_TIMER_BASED_ON_WEAR == limitType: self.AppendTimerBasedOnWearLastTime(metinSlot) #dbg.TraceError("1) REAL_TIME flag On ") self.ShowToolTip() def __DragonSoulInfoString (self, dwVnum): #edit like: elif item.LIMIT_TIMER_BASED_ON_WEAR == limitType: self.AppendTimerBasedOnWearLastTime(metinSlot) #dbg.TraceError("1) REAL_TIME flag On ") self.ShowToolTip() if chr.IsGameMaster(player.GetMainCharacterIndex()): self.AppendTextLine(localeInfo.ITEM_VNUM_TOOLTIP % (int(itemVnum)), self.ITEM_VNUM_COLOR) def __DragonSoulInfoString (self, dwVnum): // # Search NEED_SKILL_POINT_COLOR = 0xff9A9CDB #add after ITEM_VNUM_COLOR = 0xffFFFF00 #add in locale_game.txt ITEM_VNUM_TOOLTIP item_vnum: [%d]
  22. 14 points
    Hello everyone, I have found a dito system in a other board [Hidden Content] [Hidden Content]
  23. 13 points
    Gaya System sollte auch jeder kennen. Download: [Hidden Content] VT: [Hidden Content] Bild: [Hidden Content]
  24. 13 points
    minIni.h /* minIni - Multi-Platform INI file parser, suitable for embedded systems * * Copyright (c) CompuPhase, 2008-2012 * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy * of the License at * * [Hidden Content] * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. * * Version: $Id: minIni.h 44 2012-01-04 15:52:56Z thiadmer.riemersma@gmail.com $ */ #ifndef MININI_H #define MININI_H #include "minGlue.h"  #if (defined _UNICODE || defined __UNICODE__ || defined UNICODE) && !defined MININI_ANSI #include <tchar.h> #define mTCHAR TCHAR #else /* force TCHAR to be "char", but only for minIni */ #define mTCHAR char #endif #if !defined INI_BUFFERSIZE #define INI_BUFFERSIZE 512 #endif #if defined __cplusplus extern "C" { #endif int ini_getbool(const mTCHAR *Section, const mTCHAR *Key, int DefValue, const mTCHAR *Filename); long ini_getl(const mTCHAR *Section, const mTCHAR *Key, long DefValue, const mTCHAR *Filename); int ini_gets(const mTCHAR *Section, const mTCHAR *Key, const mTCHAR *DefValue, mTCHAR *Buffer, int BufferSize, const mTCHAR *Filename); int ini_getsection(int idx, mTCHAR *Buffer, int BufferSize, const mTCHAR *Filename); int ini_getkey(const mTCHAR *Section, int idx, mTCHAR *Buffer, int BufferSize, const mTCHAR *Filename); #if defined INI_REAL INI_REAL ini_getf(const mTCHAR *Section, const mTCHAR *Key, INI_REAL DefValue, const mTCHAR *Filename); #endif #if !defined INI_READONLY int ini_putl(const mTCHAR *Section, const mTCHAR *Key, long Value, const mTCHAR *Filename); int ini_puts(const mTCHAR *Section, const mTCHAR *Key, const mTCHAR *Value, const mTCHAR *Filename); #if defined INI_REAL int ini_putf(const mTCHAR *Section, const mTCHAR *Key, INI_REAL Value, const mTCHAR *Filename); #endif #endif /* INI_READONLY */ #if !defined INI_NOBROWSE typedef int (*INI_CALLBACK)(const mTCHAR *Section, const mTCHAR *Key, const mTCHAR *Value, const void *UserData); int ini_browse(INI_CALLBACK Callback, const void *UserData, const mTCHAR *Filename); #endif /* INI_NOBROWSE */ #if defined __cplusplus } #endif #if defined __cplusplus #if defined __WXWINDOWS__ #include "wxMinIni.h" #else #include <string> /* The C++ class in minIni.h was contributed by Steven Van Ingelgem. */ class minIni { public: minIni(const std::string& filename) : iniFilename(filename) { }  bool getbool(const std::string& Section, const std::string& Key, bool DefValue=false) const { return ini_getbool(Section.c_str(), Key.c_str(), int(DefValue), iniFilename.c_str()) != 0; } long getl(const std::string& Section, const std::string& Key, long DefValue=0) const { return ini_getl(Section.c_str(), Key.c_str(), DefValue, iniFilename.c_str()); } int geti(const std::string& Section, const std::string& Key, int DefValue=0) const { return static_cast<int>(this->getl(Section, Key, long(DefValue))); } std::string gets(const std::string& Section, const std::string& Key, const std::string& DefValue="") const { char buffer[INI_BUFFERSIZE]; ini_gets(Section.c_str(), Key.c_str(), DefValue.c_str(), buffer, INI_BUFFERSIZE, iniFilename.c_str()); return buffer; } std::string getsection(int idx) const { char buffer[INI_BUFFERSIZE]; ini_getsection(idx, buffer, INI_BUFFERSIZE, iniFilename.c_str()); return buffer; } std::string getkey(const std::string& Section, int idx) const { char buffer[INI_BUFFERSIZE]; ini_getkey(Section.c_str(), idx, buffer, INI_BUFFERSIZE, iniFilename.c_str()); return buffer; } #if defined INI_REAL INI_REAL getf(const std::string& Section, const std::string& Key, INI_REAL DefValue=0) const { return ini_getf(Section.c_str(), Key.c_str(), DefValue, iniFilename.c_str()); } #endif #if ! defined INI_READONLY bool put(const std::string& Section, const std::string& Key, long Value) const { return ini_putl(Section.c_str(), Key.c_str(), Value, iniFilename.c_str()) != 0; } bool put(const std::string& Section, const std::string& Key, int Value) const { return ini_putl(Section.c_str(), Key.c_str(), (long)Value, iniFilename.c_str()) != 0; } bool put(const std::string& Section, const std::string& Key, bool Value) const { return ini_putl(Section.c_str(), Key.c_str(), (long)Value, iniFilename.c_str()) != 0; } bool put(const std::string& Section, const std::string& Key, const std::string& Value) const { return ini_puts(Section.c_str(), Key.c_str(), Value.c_str(), iniFilename.c_str()) != 0; } bool put(const std::string& Section, const std::string& Key, const char* Value) const { return ini_puts(Section.c_str(), Key.c_str(), Value, iniFilename.c_str()) != 0; } #if defined INI_REAL bool put(const std::string& Section, const std::string& Key, INI_REAL Value) const { return ini_putf(Section.c_str(), Key.c_str(), Value, iniFilename.c_str()) != 0; } #endif bool del(const std::string& Section, const std::string& Key) const { return ini_puts(Section.c_str(), Key.c_str(), 0, iniFilename.c_str()) != 0; } bool del(const std::string& Section) const { return ini_puts(Section.c_str(), 0, 0, iniFilename.c_str()) != 0; } #endif private: std::string iniFilename; }; #endif /* __WXWINDOWS__ */ #endif /* __cplusplus */ #endif /* MININI_H */
  25. 13 points
    heyho sollte jeder kennen, [Hidden Content] Bild: [Hidden Content]
  26. 12 points
    ServerSite Open your game/src Search for: if (LC_IsEurope() || LC_IsSingapore() || LC_IsVietnam()) return false; Change like this: /*if (LC_IsEurope() || LC_IsSingapore() || LC_IsVietnam()) return false;*/ NAVICAT SQL: INSERT INTO `item_proto` VALUES ('71051', '71051', '6-7 Bonus', '3', '10', '0', '1', '33152', '24576', '0', '', '30000000', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '-1', '-1', '-1', '-1', '-1', '-1', '0', '0', '0'); INSERT INTO `item_proto` VALUES ('71052', '71052', 'Change 6-7', '3', '10', '0', '1', '33152', '24576', '0', '', '3000000', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '-1', '-1', '-1', '-1', '-1', '-1', '0', '0', '0');
  27. 12 points
    Is working full [Hidden Content]
  28. 12 points
  29. 11 points
    Hello, today i post my work. Here the Gif: Link:
  30. 11 points
  31. 11 points
    Hello, I dont like official run animation for warrior m and w and i create new run animations i hope like you. Look İngame [Hidden Content] Download VirusTotal
  32. 11 points
    WBB 3.1.8 [Hidden Content] 300 Plugins for 3.1.8 [Hidden Content]
  33. 11 points
    SHIRO2-HOMEPAGE-BOARD Habe ich nicht getestet hier der link für euch SHIROHP-BOARD
  34. 11 points
    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
  35. 10 points
    hiermit Release ich das TargetRender um sich die Pets im Siegel anzeigen zu lassen. BTW ihr müsst die Funktion etwas ändern damit es klappt. Download: [Hidden Content] VT: [Hidden Content] Video: [Hidden Content]
  36. 10 points
    Da es schon auf einem anderen Forum hochgeladen wurde lade ich es mal hier hoch. [Hidden Content]
  37. 10 points
    Link: [Hidden Content]
  38. 9 points
    [Hidden Content] [Hidden Content]
  39. 9 points
    FREE NIVERIA LOGO - €FREE [Hidden Content]
  40. 9 points
    You can find them in those videos: Download
  41. 9 points
    FREEBSD 11.2 SYSTEM: 32BIT LOGINDATEN ROOT DEV -> SOURCE <- VIRTUALBOX .Ace
  42. 9 points
    Hello, I come to share my knowledge on what I discovered recently on the encryption of packets. Some may tell me, but this has already been shared by MartySama. In reality, this one is not complete, it has forgotten a very important factor which I will present to you subsequently. But suddenly, you have to wonder what is happening if we disable the encryption of packets, by the way he shared it? Well, we may have an overload at the buffers, which may cause crashes game without error, or rather strange bugs. I could see different strange bugs. The most common was the fact that we can no longer perform an action that requires an agreement with the game. Example, after 15 minutes of play with a few connected players, some can no longer click on an item, or others will not be able to talk, etc ... There was a lot of debate about this, I took advice left and right and I pulled a problem. Why these bugs were not present before the encryption of packets? Simply because the structure was edited. Indeed, we can see that in the protocol.h Game, the function buffer_adjust_size was commented. Also, in the desc.cpp, they completely removed the condition in the function: void DESC::Packet But why ? Simply because it is no longer useful, the new system no longer requires a size adjuster for buffers (it seems to me) Or, they coded something else that automatically adjusts the size of the buffers but I have not watched yet. Why would I disable this system? Connection time LARGELY decreased (as we no longer use Cipher) Loading time also decreased Better fluidity (personal opinion) Size of the game enormously diminished as well as that of the launcher Here is a small preview video: Server side changes: A. Service.h file (Common) Look for this line: #define _IMPROVED_PACKET_ENCRYPTION_ And comment or delete the line like this: //#define _IMPROVED_PACKET_ENCRYPTION_ B. Protocol.h file (Game) Look for this line: //buffer_adjust_size(pbuf, length); Uncomment it like this: buffer_adjust_size(pbuf, length); C. desc.cpp file (Game) Look for this line: void DESC::Packet(const void * c_pvData, int iSize) Replace the entire function with this: void DESC::Packet(const void * c_pvData, int iSize) { assert(iSize > 0); if (m_iPhase == PHASE_CLOSE) // 끊는 상태면 보내지 않는다. return; if (m_stRelayName.length() != 0) { // Relay 패킷은 암호화하지 않는다. TPacketGGRelay p; p.bHeader = HEADER_GG_RELAY; strlcpy(p.szName, m_stRelayName.c_str(), sizeof(p.szName)); p.lSize = iSize; if (!packet_encode(m_lpOutputBuffer, &p, sizeof(p))) { m_iPhase = PHASE_CLOSE; return; } m_stRelayName.clear(); if (!packet_encode(m_lpOutputBuffer, c_pvData, iSize)) {  m_iPhase = PHASE_CLOSE; return; } } else { if (m_lpBufferedOutputBuffer) { buffer_write(m_lpBufferedOutputBuffer, c_pvData, iSize); c_pvData = buffer_read_peek(m_lpBufferedOutputBuffer); iSize = buffer_size(m_lpBufferedOutputBuffer); } // TRAFFIC_PROFILE if (g_bTrafficProfileOn) TrafficProfiler::instance().Report(TrafficProfiler::IODIR_OUTPUT, *(BYTE *) c_pvData, iSize); // END_OF_TRAFFIC_PROFILER #ifdef _IMPROVED_PACKET_ENCRYPTION_ void* buf = buffer_write_peek(m_lpOutputBuffer); if (packet_encode(m_lpOutputBuffer, c_pvData, iSize)) {  if (cipher_.activated()) { cipher_.Encrypt(buf, iSize); } } else { m_iPhase = PHASE_CLOSE; } #else if (!m_bEncrypted) { if (!packet_encode(m_lpOutputBuffer, c_pvData, iSize)) {  m_iPhase = PHASE_CLOSE; } } else { if (buffer_has_space(m_lpOutputBuffer) < iSize + 8) { buffer_adjust_size(m_lpOutputBuffer, iSize); if (buffer_has_space(m_lpOutputBuffer) < iSize + 8) { sys_err( "desc buffer mem_size overflow : ", " memsize(%u) ",  " write_pos(%u)", " iSize(%d)", m_lpOutputBuffer->mem_size, m_lpOutputBuffer->write_point_pos, iSize); m_iPhase = PHASE_CLOSE; } } else { // 암호화에 필요한 충분한 버퍼 크기를 확보한다. /* buffer_adjust_size(m_lpOutputBuffer, iSize + 8); */ DWORD * pdwWritePoint = (DWORD *) buffer_write_peek(m_lpOutputBuffer); if (packet_encode(m_lpOutputBuffer, c_pvData, iSize)) { int iSize2 = TEA_Encrypt(pdwWritePoint, pdwWritePoint, GetEncryptionKey(), iSize); if (iSize2 > iSize) buffer_write_proceed(m_lpOutputBuffer, iSize2 - iSize); } } } #endif // _IMPROVED_PACKET_ENCRYPTION_ SAFE_BUFFER_DELETE(m_lpBufferedOutputBuffer); } //sys_log(0, "%d bytes written (first byte %d)", iSize, *(BYTE *) c_pvData); if (m_iPhase != PHASE_CLOSE) fdwatch_add_fd(m_lpFdw, m_sock, this, FDW_WRITE, true); } Warning ! Do not forget to compile your Game & your DB Client side change: D. ServiceDefs file (Eterpack) Look for this line: #define _IMPROVED_PACKET_ENCRYPTION_ Comment or delete like this: //#define _IMPROVED_PACKET_ENCRYPTION_ E. Locale.cpp file (Userinterface) Look for this line: #define LSS_SECURITY_KEY "testtesttesttest" Edit like this: #define LSS_SECURITY_KEY "1234abcd5678efgh" If you want to share this tutorial elsewhere, please quote the source. Kuroro
  43. 9 points
    Hier in diesen Thread werden voll Funktionsfähige Systeme erscheinen in jeden Bereich Python, Quest, C++ [ ] - New Yang Chat [ ] - Shining System Tamashi [ ] - WISPER WARNUNG [ ] ________________________________________________________________________________________________ New Yang Chat WISPER WARNUNG ________________________________________________________________________________________________ ________________________________________________________________________________________________ ________________________________________________________________________________________________ ________________________________________________________________________________________________ Hier kommen Systeme rein wo ich Persönlich getestet habe!
  44. 9 points
    Hey guys, Today I'm releasing a tutorial for Boss Effect Over Head. I believe someone will use it Download link: Pastebin tutorial (only): Picture of system: Special thanks to: @Syreldar @M.Sorin for some functions which I used in the tutorial. Sincerely, ReFresh
  45. 9 points
    [Hidden Content]
  46. 9 points
    And i create website what looks like this login interface... [Hidden Content] id: admin pw: admin thanks for share
  47. 8 points
    Hi guys ! I share to you the corrections of the weapons & the armors 105. Weapons Before/After : Armors 105 at night (before/after): Armors at day (Before/after) : Download Link : HERE Xayah,
  48. 8 points
    quest ingamebann2 begin state start begin when 30220.use with pc.is_gm() begin say("Was möchtest du tun?") local s = select('Bannen','Entbannen',"Nichts") if s == 3 then return end local ban,bantxt,bantxt2 = "BLOCK","bannen","gebannt" if s == 2 then ban,bantxt,bantxt2 = "OK","entbannen","entbannt" end say(col.blue('Spieler '..bantxt)); say('[ENTER]Gib den Spielernamen ein.[ENTER](ein Teil reicht auch)') local inp = input(); inp = mysql_escape(inp) if inp == "" or inp == pc.get_name() then say(col.red('Ungültige Eingabe.[ENTER]Abbruch!')) return end local q = mysql_query('select * from player.player WHERE name LIKE \\"%'..inp..'%\\" AND name NOT like \\"%[%\\"') if q == "ERROR" then say(col.red('Fehler beim Lesen der Daten oder es existiert niemand mit diesem Namen.')) return end say('Wähle den User, der '..bantxt2..' werden soll:') local wahl = q.name; table.insert(wahl,"-Abbruch-") table.insert(wahl,1,6) -- 6 ist die Anzahl der Maximalen User auf einer Seite. local auswahl = select2(wahl) if wahl[auswahl] == "-Abbruch-" then return end say('Den Spieler \\"'..q.name[auswahl]..'\\" wirklich '..bantxt..'?') if select("Ja","Nein") == 2 then return end mysql_query('UPDATE account.account SET status = \\"'..ban..'\\" WHERE id = '..q.account_id[auswahl]..' LIMIT 1') say('Der Spieler wurde gebannt.') end end end
  49. 8 points
    quest wartung begin state start begin when 40003.use with pc.is_gm() begin say_title("Wartungssystem") say("Was möchtest du tun?") say("") local s = select ("Wartungssystem Starten", "Wartungssystem beenden", "Abbrechen") if s == 1 then mysql_query("UPDATE account.account SET account.status = 'SHUTDOWN' WHERE status = 'OK' and account.login NOT IN (SELECT mAccount FROM common.gmlist);") command("shutdown") end if s == 2 then mysql_query("UPDATE account.account SET account.status = 'OK' WHERE status = 'SHUTDOWN' and account.login NOT IN (SELECT mAccount FROM common.gmlist);") end if s == 3 then return end end end end
  50. 8 points
    new link without password: [Hidden Content]

Announcements

×
×
  • Create New...