Nem lehet eladni?

Indította RealKorf, 2018-05-06, 17:52:59

2018-05-06, 17:52:59 Utolsó szerkesztés: 2018-05-06, 18:23:52 Szerző: RealKorf
Sziasztok .Akadt egy olyan problémám, hogy a szerveren nem lehet eladni semmit. Valakinek van erre megoldása?

Kérlek adj legalább két mondattal több információt arról, hogy Mit módosítottál vagy mit tettél be vagy
mégis milyen tárgyakkal próbálkoztál eddig.
THX

Amiket eddig forrásban változtattam:

  • SEQUENCE HIBA javítása
  • GM eladás, kereskedelem stb. tiltása
  • Szorzókat beállítottam, hogy adatbázisból nézze ki

  • Emiket eddig nem sikerült eladnom:

  • Kardok (kard+9 -> FMS +9)
  • Vértek
  • rögök, aranyrudak stb.

  • És jelenleg implementor karakterrel rendelkező fiókról próbálsz eladni valamit?
    Vagy civil tesztfiókkal/karival tolod a dolgot?  ??? -- van szeróoldalon valami gyanús syserr v syslog?

    2018-05-06, 21:32:56 #4 Utolsó szerkesztés: 2018-05-06, 21:34:29 Szerző: RealKorf
    Próbáltam Implementorrol, simáról, plusz 4 másik accountról

    Üzenet összefésülés: 2018-05-06, 21:34:29

    De a GM eknek nincs letiltva az eladás szerintem.

    Esetleg 1 szerver syserrt nézz meg :-X ::)

    Semmit nem látok, ami ezzel kapcsolatos lenne :(

    Client:

    Idéz0506 19:49:27244 :: Unknown Server Command KillName [SA]Valaki| KillName
    0506 19:49:27244 :: Unknown Server Command KillRotReich 0 | KillRotReich
    0506 19:49:27244 :: Unknown Server Command KillGelbReich 0 | KillGelbReich
    0506 19:49:27244 :: Unknown Server Command KillBlauReich 0 | KillBlauReich
    0506 19:49:27244 :: Unknown Server Command KillMob 0 | KillMob

    Channel 1:
    IdézSYSERR: May  6 19:48:18.134912 :: pid_init:
    Start of pid: 52664

    SYSERR: May  6 19:48:44.892205 :: LoadSkillMotion: Motion: Skill exist but no motion data for index 0 mob 3596 skill 257
    SYSERR: May  6 19:48:44.892306 :: LoadSkillMotion: Motion: Skill exist but no motion data for index 1 mob 3596 skill 258
    SYSERR: May  6 19:48:45.20240 :: GetMotionFileName: Motion: 0 have not motlist.txt vnum(20233) folder(0)
    SYSERR: May  6 19:48:45.20277 :: GetMotionFileName: Motion: 0 have not motlist.txt vnum(20233) folder(0)
    SYSERR: May  6 19:48:45.20309 :: GetMotionFileName: Motion: 0 have not motlist.txt vnum(20233) folder(0)
    SYSERR: May  6 19:48:45.20411 :: GetMotionFileName: Motion: 0 have not motlist.txt vnum(20234) folder(0)
    SYSERR: May  6 19:48:45.20443 :: GetMotionFileName: Motion: 0 have not motlist.txt vnum(20234) folder(0)
    .
    .
    .
    SYSERR: May  6 19:48:45.22571 :: GetMotionFileName: Motion: 0 have not motlist.txt vnum(20250) folder(0)
    SYSERR: May  6 19:49:08.549529 :: ChildLoop: AsyncSQL: query failed: Data too long for column 'hint' at row 1 (query: INSERT DELAYED INTO log (type, time, who, x, y, what, how, hint, ip) VALUES('CHARACTER', NOW(), 68702, 959390, 270475, 0, 'LOGIN', '89.186.103.22 671110840 1 41 300000', '89.186.103.22') errno: 1406)
    SYSERR: May  6 19:49:08.550370 :: ChildLoop: AsyncSQL: query failed: Incorrect integer value: 'Y' for column 'is_gm' at row 1 (query: INSERT INTO loginlog2(type, is_gm, login_time, channel, account_id, pid, ip, client_version) VALUES('INVALID', 'Y', NOW(), 1, 1, 68702, inet_aton('89.186.103.22'), '') errno: 1366)
    SYSERR: May  6 19:52:14.25516 :: Analyze: login phase does not handle this packet! header 100
    SYSERR: May  6 19:55:11.587383 :: Analyze: login phase does not handle this packet! header 100
    SYSERR: May  6 19:58:08.803402 :: Analyze: login phase does not handle this packet! header 100
    SYSERR: May  6 20:01:05.723089 :: Analyze: login phase does not handle this packet! header 100
    SYSERR: May  6 20:04:03.169343 :: Analyze: login phase does not handle this packet! header 100
    SYSERR: May  6 20:07:00.515396 :: Analyze: login phase does not handle this packet! header 100
    SYSERR: May  6 20:09:57.778550 :: Analyze: login phase does not handle this packet! header 100
    SYSERR: May  6 20:12:55.246657 :: Analyze: login phase does not handle this packet! header 100
    SYSERR: May  6 20:14:43.947270 :: ChildLoop: AsyncSQL: query failed: Truncated incorrect time value: '5362:50:43' (query: UPDATE loginlog2 SET type='VALID', logout_time=NOW(), playtime=TIMEDIFF(logout_time,login_time) WHERE id=@i errno: 1292)
    SYSERR: May  6 20:14:44.256190 :: ChildLoop: AsyncSQL: query failed: Data too long for column 'hint' at row 1 (query: INSERT DELAYED INTO log (type, time, who, x, y, what, how, hint, ip) VALUES('CHARACTER', NOW(), 68702, 959131, 269783, 0, 'LOGOUT', '89.186.103.22 671110840 1 41 300000', '89.186.103.22') errno: 1406)

    db:
    Idézcsak ilyen sorok:

    SYSERR: May  6 19:48:15.482958 :: ChildLoop: AsyncSQL: query failed: Data truncated for column 'size' at row 1 (query: replace into mob_proto (vnum, name, locale_name, type, rank, battle_type, level, size, ai_flag, setRaceFlag, setImmuneFlag, on_click, empire, drop_item, resurrection_vnum, folder, st, dx, ht, iq, damage_min, damage_max, max_hp, regen_cycle, regen_percent, exp, gold_min, gold_max, def, attack_speed, move_speed, aggressive_hp_pct, aggressive_sight, attack_range, polymorph_item, enchant_curse, enchant_slow, enchant_poison, enchant_stun, enchant_critical, enchant_penetrate, resist_sword, resist_twohand, resist_dagger, resist_bell, resist_fan, resist_bow, resist_fire, resist_elect, resist_magic, resist_wind, resist_poison, dam_multiply, summon, drain_sp, skill_vnum0, skill_level0, skill_vnum1, skill_level1, skill_vnum2, skill_level2, skill_vnum3, skill_level3, skill_vnum4, skill_level4, sp_berserk, sp_stoneskin, sp_godspeed, sp_deathblow, sp_revive) values (34024, "???â ??´?", "Leopárdkölyök", 1,

    game99:
    IdézSYSERR: May  6 19:48:20.152592 :: pid_init:
    Start of pid: 52667

    SYSERR: May  6 19:48:30.777500 :: LoadSkillMotion: Motion: Skill exist but no motion data for index 0 mob 3596 skill 257
    SYSERR: May  6 19:48:30.777614 :: LoadSkillMotion: Motion: Skill exist but no motion data for index 1 mob 3596 skill 258
    SYSERR: May  6 19:48:30.930425 :: GetMotionFileName: Motion: 0 have not motlist.txt vnum(20233) folder(0)
    SYSERR: May  6 19:48:30.930483 :: GetMotionFileName: Motion: 0 have not motlist.txt vnum(20233) folder(0)
    SYSERR: May  6 19:48:30.930515 :: GetMotionFileName: Motion: 0 have not motlist.txt vnum(20233) folder(0)
    .
    .
    .
    SYSERR: May  6 19:48:30.933842 :: GetMotionFileName: Motion: 0 have not motlist.txt vnum(20250) folder(0)
    SYSERR: May  6 19:48:30.933873 :: GetMotionFileName: Motion: 0 have not motlist.txt vnum(20250) folder(0)
    SYSERR: May  6 19:48:30.933904 :: GetMotionFileName: Motion: 0 have not motlist.txt vnum(20250) folder(0)

    Senkinek nincs ötlete? Nézegettem külföldi fórumokat is de nem találtam megoldást.

    2018-05-08, 19:12:45 #8 Utolsó szerkesztés: 2018-05-08, 19:14:20 Szerző: fabtam11
    A newsellpacket bemondta az unalmast. Próbáld P3NG3R témája segítségével visszaállítani a régi sellpacket-et
    aka van a leírás deven https://metin2dev.org/board/index.php?/topic/5890-c-new-sellpacket-from-gf/ és neked a P3NG3R által megadott részeket egy korábbi forrásalapból kell átollóznod a mostani projektedbe, hogy a kliens és a szerveroldali forrásod megfelelően kezelhesse a tárgyak eladását.  8)

    2018-05-08, 19:56:28 #9 Utolsó szerkesztés: 2018-05-08, 20:09:51 Szerző: Chookez™
    Itt van a visszafelé verzió. (NewSellpacket eltávolítása)

    Nyisd meg az input_main.cpp fájlt és keress rá erre:
    case SHOP_SUBHEADER_CG_SELL2:

    Az egész funkciót cseréld le erre:

    case SHOP_SUBHEADER_CG_SELL2:
    {
    if (uiBytes < sizeof(BYTE) + sizeof(BYTE))
    return -1;

    BYTE pos = *(c_pData++);
    BYTE count = *(c_pData);

    sys_log(0, "INPUT: %s SHOP: SELL2", ch->GetName());
    CShopManager::instance().Sell(ch, pos, count);
    return sizeof(BYTE) + sizeof(BYTE);
    }


    Nyisd meg a shop_manager.h fájlt és keress rá erre:
    void Sell(LPCHARACTER ch, WORD wCell, BYTE bCount = 0, BYTE bType = 0);

    Cseréld le erre:
    void Sell(LPCHARACTER ch, BYTE bCell, BYTE bCount=0);

    Nyisd meg a shop_manager.cpp fájlt és keress rá erre:
    void CShopManager::Sell(LPCHARACTER ch, WORD wCell, BYTE bCount, BYTE bType)

    Cseréld le erre:
    void CShopManager::Sell(LPCHARACTER ch, BYTE bCell, BYTE bCount)

    Nem sokkal alatta ezt:
    LPITEM item = ch->GetItem(TItemPos(bType, wCell));

    Cseréld le erre:
    LPITEM item = ch->GetInventoryItem(bCell);

    Ez alatt nem sokkal van egy ilyen:
    if (IS_SET(item->GetAntiFlag(), ITEM_ANTIFLAG_SELL))
    return;

    Ha ez van akkor ne piszkáld!!!

    De ha ilyet látsz helyette:
    if (IS_SET(item->GetAntiFlag(), ITEM_ANTIFLAG_SELL))
    {
    // In clientside the sell is blocked by python if a player arrive here he's a hacker, maybe.
    ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You can't sell this item."));
    sys_err("[HACKER] Force sell-script used by name [%u]%s.", ch->GetPlayerID(), ch->GetName());
    return;
    }


    Akkor cseréld le erre:
    if (IS_SET(item->GetAntiFlag(), ITEM_ANTIFLAG_SELL))
    return;


    Indító oldali forrás:

    Nyisd meg a PythonNetworkStream.h fájlt és keress rá erre:
    bool SendShopSellPacketNew(WORD wSlot, BYTE byCount, BYTE byType);

    Cseréld le erre:
    bool SendShopSellPacketNew(BYTE bySlot, BYTE byCount);

    Nyisd meg a PythonNetworkStreamPhaseGameItem.cpp fájlt és keress rá erre:
    bool CPythonNetworkStream::SendShopSellPacketNew(WORD wSlot, BYTE byCount, BYTE byType

    Az egész funkciót cseréld le erre:
    bool CPythonNetworkStream::SendShopSellPacketNew(BYTE bySlot, BYTE byCount)
    {
    if (!__CanActMainInstance())
    return true;

    TPacketCGShop PacketShop;
    PacketShop.header = HEADER_CG_SHOP;
    PacketShop.subheader = SHOP_SUBHEADER_CG_SELL2;

    if (!Send(sizeof(TPacketCGShop), &PacketShop))
    {
    Tracef("SendShopSellPacket Error\n");
    return false;
    }
    if (!Send(sizeof(BYTE), &bySlot))
    {
    Tracef("SendShopAddSellPacket Error\n");
    return false;
    }
    if (!Send(sizeof(BYTE), &byCount))
    {
    Tracef("SendShopAddSellPacket Error\n");
    return false;
    }

    Tracef(" SendShopSellPacketNew(bySlot=%d, byCount=%d)\n", bySlot, byCount);

    return SendSequence();
    }


    Nyisd meg a PythonNetworkStreamModule.cpp fájlt és keress rá erre:
    PyObject* netSendShopSellPacketNew(PyObject* poSelf, PyObject* poArgs)

    Az egész funkciót cseréld le erre:
    PyObject* netSendShopSellPacketNew(PyObject* poSelf, PyObject* poArgs)
    {
    int iSlotNumber;
    if (!PyTuple_GetInteger(poArgs, 0, &iSlotNumber))
    return Py_BuildException();
    int iCount;
    if (!PyTuple_GetInteger(poArgs, 1, &iCount))
    return Py_BuildException();
    CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
    rkNetStream.SendShopSellPacketNew(iSlotNumber, iCount);
    return Py_BuildNone();
    }


    Ennyi lenne.

    Köszönöm szépen! Meg fogom próbálni!

    Valaki le tudná írni, hogy mi okozza a problémát? Mi ez a sell pack meg ilyenek?

    Próbálj már megértetni egy németet magyarul az időjárásról, kb ilyesmit kérsz, ahogy elnézem.

    Egyre több panaszt látok arról a leírásról. Most akkor hibás, vagy csak senki sem tudja normálisan követni? ???
    "Tisztelet a kivételnek! Mindig tisztelet a kivételnek!"
    "KezdÅ' vagyok, ne nézz le... (:"

    Köszönöm szépen, ez működött!

    Nem magára a kódra gondoltam elmagyarázni, hanem, hogy milyen rendszert kell pl. eltávolítani.