flexio

Member
  • Content Count

    58
  • Joined

  • Last visited

  • Days Won

    1

flexio last won the day on January 1

flexio had the most liked content!

Community Reputation

23 Good

1 Follower

About flexio

  • Rank
    Friendly

Profile Information

  • Gender
    Not Telling
  • Location
    Czech

Recent Profile Visitors

762 profile views
  1. flexio

    c++ Metin2 | How To | Relog In Dungeon

    I use this method in all dungeons(include devil tower) +- 2 months without any problem. only with one more dit.
  2. flexio

    c++ Metin2 | How To | Relog In Dungeon

    ?????????????????????????
  3. flexio

    open [get_language()] in when ... begin

    Fixed { // make when argument ostringstream os; while (lexstate.lookahead.token == '.') { next(&lexstate); os << '.'; next(&lexstate); t = lexstate.t; //if (t.token == TK_STRING) //t.token = TK_NAME; os << t; lookahead(&lexstate); } current_when_argument += os.str(); change to { // make when argument ostringstream os; while (lexstate.lookahead.token == '.') { next(&lexstate); os << '.'; next(&lexstate); t = lexstate.t; if (t.token == TK_STRING) t.token = TK_NAME; os << t; lookahead(&lexstate); } current_when_argument += os.str(); and in quest use when xxxx.chat."Global[get_language()].blacksmith._title" begin
  4. Hello i did simple multi lang system but with one problem. compiler dont work with [] in "when function" when xxxx.chat.Global[get_language()].blacksmith._title begin i think problem is in luaX_lex(liblua -llex.c) calling read_long_string function (luaX_lex) i just need skip this case for "when.. begin" without affect other quests functions case '[': { next(LS); if (LS->current != '[') return '['; else { read_long_string(LS, seminfo); return TK_STRING; } } (luaX_lex) after skip continue to this. else if (isalpha(LS->current) || LS->current == '_' || LS->current>=0xa0) { /* identifier or reserved word */ size_t l = readname(LS); TString *ts = luaS_newlstr(LS->L, luaZ_buffer(LS->buff), l); if (ts->tsv.reserved > 0) /* reserved word? */ return ts->tsv.reserved - 1 + FIRST_RESERVED; seminfo->ts = ts; return TK_NAME; } with defined something like. || LS->current == '[' || LS->current == ']',.. I tried it myself, but i dont have enough knowledge with liblua. I could cause other problems Does anyone know how to do or is there another possible solution? Thank you
  5. flexio

    CH3HP DDoS

    If somebody will have problem with ch3hp, just send me pm. But simply for not internationall server is good ovh + geo ip block in pf. And For internationall ovh + strong server with good pf rules, kernel limits,... or shit/strong server only with whitelist firewall (best solution for flood).
  6. flexio

    CH3HP DDoS

    Head he have to try it. It's easy fight with him. 4Head
  7. flexio

    CH3HP DDoS

    PeaceMaker is customer of Ch3HP, he have to write good about him or kiddo will ddos his server.
  8. flexio

    open COnnection refused in putty

    virtual box? Try look to ifconfig (command)
  9. flexio

    Metin2 - Unstuck character function

    Wut? I dont hate your post, i just said, there it is not necessary copy code from rubinum.
  10. flexio

    open Mobs getting bugged

    This happen all time or only after server restart? Try restart client to sync (after server restart).
  11. sysser,syslog after crash? which version offline shops you have?
  12. flexio

    Metin2 - Unstuck character function

    or just open your source and let the magic happen
  13. flexio

    Metin2 - Unstuck character function

    GJ. Thanks for idea.
  14. Whisper fix int CInputMain::Whisper(LPCHARACTER ch, const char * data, size_t uiBytes) { const TPacketCGWhisper* pinfo = reinterpret_cast<const TPacketCGWhisper*>(data); if (uiBytes < pinfo->wSize) return -1; int iExtraLen = pinfo->wSize - sizeof(TPacketCGWhisper); if (iExtraLen < 0) { sys_err("invalid packet length (len %d size %u buffer %u)", iExtraLen, pinfo->wSize, uiBytes); ch->GetDesc()->SetPhase(PHASE_CLOSE); return -1; } if (ch->GetLastPMPulse() < thecore_pulse()) ch->ClearPMCounter(); if (ch->GetPMCounter() > 3 && ch->GetLastPMPulse() > thecore_pulse()) { ch->GetDesc()->SetPhase(PHASE_CLOSE); return -1; } if (ch->FindAffect(AFFECT_BLOCK_CHAT)) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("채팅 금지 상태입니다.")); return (iExtraLen); } LPCHARACTER pkChr = CHARACTER_MANAGER::instance().FindPC(pinfo->szNameTo); if (pkChr == ch) return (iExtraLen); ch->IncreasePMCounter(); ch->SetLastPMPulse(); LPDESC pkDesc = NULL; std::string targetname; BYTE bOpponentEmpire = 0; if (test_server) { if (!pkChr) sys_log(0, "Whisper to %s(%s) from %s", "Null", pinfo->szNameTo, ch->GetName()); else sys_log(0, "Whisper to %s(%s) from %s", pkChr->GetName(), pinfo->szNameTo, ch->GetName()); } if (ch->IsBlockMode(BLOCK_WHISPER)) { if (ch->GetDesc()) { TPacketGCWhisper pack; pack.bHeader = HEADER_GC_WHISPER; pack.bType = WHISPER_TYPE_SENDER_BLOCKED; pack.wSize = sizeof(TPacketGCWhisper); strlcpy(pack.szNameFrom, pinfo->szNameTo, sizeof(pack.szNameFrom)); ch->GetDesc()->Packet(&pack, sizeof(pack)); } return iExtraLen; } CCI * pkCCI; if (!pkChr) { pkCCI = P2P_MANAGER::instance().Find(pinfo->szNameTo); if (pkCCI) { pkDesc = pkCCI->pkDesc; pkDesc->SetRelay(pinfo->szNameTo); bOpponentEmpire = pkCCI->bEmpire; targetname = pkCCI->szName; if (test_server) sys_log(0, "Whisper to %s from %s (Channel %d Mapindex %d)", "Null", ch->GetName(), pkCCI->bChannel, pkCCI->lMapIndex); } } else { pkDesc = pkChr->GetDesc(); bOpponentEmpire = pkChr->GetEmpire(); targetname = pkChr->GetName(); } if (!pkDesc) { if (ch->GetDesc()) { TPacketGCWhisper pack; pack.bHeader = HEADER_GC_WHISPER; pack.bType = WHISPER_TYPE_NOT_EXIST; pack.wSize = sizeof(TPacketGCWhisper); strlcpy(pack.szNameFrom, pinfo->szNameTo, sizeof(pack.szNameFrom)); ch->GetDesc()->Packet(&pack, sizeof(TPacketGCWhisper)); sys_log(0, "WHISPER: no player"); } } else { if (ch->IsBlockMode(BLOCK_WHISPER)) { if (ch->GetDesc()) { TPacketGCWhisper pack; pack.bHeader = HEADER_GC_WHISPER; pack.bType = WHISPER_TYPE_SENDER_BLOCKED; pack.wSize = sizeof(TPacketGCWhisper); strlcpy(pack.szNameFrom, pinfo->szNameTo, sizeof(pack.szNameFrom)); ch->GetDesc()->Packet(&pack, sizeof(pack)); } } else if (pkChr && pkChr->IsBlockMode(BLOCK_WHISPER)) { if (ch->GetDesc()) { TPacketGCWhisper pack; pack.bHeader = HEADER_GC_WHISPER; pack.bType = WHISPER_TYPE_TARGET_BLOCKED; pack.wSize = sizeof(TPacketGCWhisper); strlcpy(pack.szNameFrom, pinfo->szNameTo, sizeof(pack.szNameFrom)); ch->GetDesc()->Packet(&pack, sizeof(pack)); } } #ifdef ENABLE_MESSENGER_BLOCK else if ((pkCCI != NULL || pkChr != NULL) && MessengerManager::instance().CheckMessengerList(ch->GetName(), targetname.c_str(), SYST_BLOCK)) { if (ch->GetDesc()) { TPacketGCWhisper pack; char msg_2[CHAT_MAX_LEN + 1]; snprintf(msg_2, sizeof(msg_2), LC_TEXT("%s'yi blokladim"), targetname.c_str()); int len = MIN(CHAT_MAX_LEN, strlen(msg_2) + 1); pack.bHeader = HEADER_GC_WHISPER; pack.wSize = sizeof(TPacketGCWhisper) + len; pack.bType = WHISPER_TYPE_SYSTEM; strlcpy(pack.szNameFrom, pinfo->szNameTo, sizeof(pack.szNameFrom)); TEMP_BUFFER buf; buf.write(&pack, sizeof(TPacketGCWhisper)); buf.write(msg_2, len); ch->GetDesc()->Packet(buf.read_peek(), buf.size()); } } #endif else