Jump to content

Zonni

Premium
  • Posts

    165
  • Joined

  • Last visited

  • Days Won

    4
  • Feedback

    0%

Posts posted by Zonni

  1. I just recompiled whole source & quest and this works without any problem ^^

     

    btw. i think you should correct your tabs :D (sorry, i know i give to you badly format of code but i haven't so much time to correct whitespaces)

     

    	void CQuestManager::Dead(unsigned int pc, unsigned int npc)
    	{
    		PC * pPC;
    
    		sys_log(0, "CQuestManager::OnDead QUEST_DEAD_EVENT (pc=%d, npc=%d)", pc, npc);
    
    		if ((pPC = GetPC(pc)))
    		{
    			if (!CheckQuestLoaded(pPC))
    				return;
    			m_mapNPC[npc].OnDead(*pPC);
    
    			if (m_mapNPC[QUEST_NO_NPC].OnDead(*pPC))
    				return;
    		}
    		else
    			sys_err("QUEST: no such pc id : %d", pc);
    	}
    
    should work. :)
    • Love 1
  2. questmanager.cpp

    - in bool CQuestManager::Initialize() add

    m_mapEventName.insert(TEventNameMap::value_type("dead", QUEST_DEAD_EVENT));

     

    - add

    void CQuestManager::Dead(unsigned int pc, unsigned int npc)
    {
    PC * pPC;
     
    sys_log(0, "CQuestManager::OnDead QUEST_DEAD_EVENT (pc=%d, npc=%d)", pc, npc);
     
    if ((pPC = GetPC(pc)))
    {
    if (!CheckQuestLoaded(pPC))
    return;
    m_mapNPC[npc].OnDead(*pPC);
     
    if (m_mapNPC[QUEST_NO_NPC].OnDead(*pPC))
    return;
    }
    else
    sys_err("QUEST: no such pc id : %d", pc);
    }

     

    quest.h

    [second enum] (add after QUEST_ITEM_INFORMER_EVENT,)

    QUEST_DEAD_EVENT,

     

    questnpc.h

    bool NPC::OnDead(PC & pc)
    {
    if (m_vnum)
    return HandleEvent(pc, QUEST_DEAD_EVENT);
    else
    return HandleReceiveAllEvent(pc, QUEST_DEAD_EVENT);
    }
     
    char_battle.cpp
    in CHARACTER::Dead add
    if(pkKiller && IsPC()) {
    pkKiller->SetQuestNPCID(GetVID());
    quest::CQuestManager::instance().Dead(GetPlayerID(), pkKiller->GetPlayerID());
    }

     

     

    sorry for format but it should work if you add missing functions in .h files

     

    btw. that's not my work, anyway it's really easy to create events like this.

    • Love 2
  3. @Benhero says good thing, something doesn't show up. Did you checked the horse_level is initialized? You know, this is extraordinary bug, and you must do this while you changing something in source. Good practice is making backup of files (if you want some batch script just tell) because you can easily check what you do wrong.

     

     

    Anyway, i tell you what you must do.

    1. Check how horse_stamina binding to your horse from database to last function which give this information to client. Check everything, every function, every variable, just as i said, everything. (in this way you'll learn how this made, i recommend to you to use rubber duck debugging (if you don't know what is this - http://en.wikipedia.org/wiki/Rubber_duck_debugging )

    2. Repeat this steps but with horse_level, check everything. you figure out what's wrong, but this take some time.

     

     

    Sorry, there isn't easy way to figure out, nobody without your source don't want to help you, someone can help you via TeamViewer of course but... cost, you know how it works. Even better is to figure out by yourself because you can learn something :)

  4. Grab it from the ogher one server ex. WoM (they have same keys as global), but in their files this patches are unprotected (i'm preety sure, you'll unpack DC without problems ^^).

     

     

    In other way, you can use files from this package.

    This is the hidden content, please

     

     

    As far as I remember i can't unpack height.raw from DC  too and i used this files from archive which i post up. I don't know wy, but ScriptStealer can't extract height from DC.

    Link source: http://www.elitepvpers.com/forum/metin2-pserver-guides-strategies/2063156-release-devils-catacomb-full-entbuggt.html

    • Metin2 Dev 3
    • Good 1
  5. @Endymion, you're right because attacker uses account_id from his server, and if doesn't match with attacked server it's creating new char on attacked server but using account_id from attacker server.

    This is madness, any person doesn't want to have similar situation on server so protect your DB port via IPFW (if you're using more than one dedicated server) or Endymion's method (if you have only one dedicated server).

  6. Please, move this post into right pinned topic.

    Name: I don't know how to name it. Sub-server maybe?

    Release date: I discovered this in 2010.

    Affects: all game revisions

    Symptoms: It won't show. You can discover this only via reading config and looking for unknown IP.

    Causes: Someone can connect to your db cache server. Can login without know password into everyone's account (attacker must know id from account->account->id). Attacker uses login&password from his own server, but he's logging into victim account. Attacker can do whatever he/she want (login into GM account too).

    Fix: Reject all connections to your DB port. Every connections except localhost (if you haven't other servers which must connect into this port).

    Actually is harder to make this work because mess with packets but it's still possible if someone don't take off db port from public.

    • Love 1
  7. As i said yesterday on mpc, very nice work probably the best interface i've seen, already have it in green. The only thing i've relize now is this : uOW7iZw.png

    I think "DOSTĘPNE" should be much more easier to see like STATUS POSTACI but in smaller font size.

     

    Anywayz really good work, hope to see more.

    Decrase font size to 12 and every should be fine.

  8. thank You for this wonderful tutorial, however I got an error - I'm logging in and while going to the change character screen I receive an error

     

    Run - <type 'exceptions.AttributeError'>: 'SelectCharacterWindow' object has no attribute dlgQuestion
     

    what do I do wrong? Thanks in advance for your help ;)

    You didn't anything wrong... You just haven't valid root ^^

    Search dlgQuestion in introSelect.py and delete anything related to this, error should disappear.

  9. bump

     

    You need to change names size in item_proto i think...

    ofc not item != mob/npc

     

    My mistake ^^

     

    Ok Avenue, think.

    In 2009 we can't edit client side mob_proto, we can only change things in database.

    When we change npc name in database, it shows in game too.

     

    So it's only my theory and i don't have to check this but you can ;>

    Now we load mob_proto from text file. DB server loads npc_name from text file and send it to game server. Game server sending npc name while loading npcs after player choose character.

    Packets: db <=> game, game <=> client.

     

    If I change CHARACTER_NAME_MAX_LEN to 48 (game & binary), I can't connect to the server

    So tell me, where is syslog, syserr or something what can tell us what's wrong?
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.