Metoda din clasa Character pentru a face un mob sa l atace pe altul

În cazul în care aveţi o nelămurire postaţi aici, de asemenea este locul unde puteţi găsi posibile rezolvări la problemele dvs.
Avatar utilizator
ASTRO.
Nivel 1

Nivel 1
Mesaje: 72
Membru din: 28 Feb 2021, 17:05
Regat: Jinno
Aprecieri: 12  
Mulţumiri: 342  
  Rezolvări prob.: 1
Discord: Copiază ID
Medalii

*Problemă/Întrebare:Nu stiu ce functie sa folosesc din Clasa Character, pentru a seta un mob sa atace pe altul
Tipologie server:
*Resursă folosită:
*ServerFiles utilizat:Martysama 5.8
*Syserr:
Poză:
*Detalii suplimentare:

Cod: Selectaţi tot

    int game_mob_attack_mob(lua_State *L)
    {
        if (!lua_isnumber(L, 1) || !lua_isnumber(L, 2) || !lua_isnumber(L, 3))
        {
            lua_pushboolean(L, 0);
            lua_pushstring(L, "Invalid argument. Usage: mob_attack_mob(attacker_vid, target_vid, map_index)");
            return 2;
        }

        int attacker_vid = (int)lua_tonumber(L, 1);
        int target_vid = (int)lua_tonumber(L, 2);
        int map_index = (int)lua_tonumber(L, 3); // Expected map index

        LPCHARACTER attacker = CHARACTER_MANAGER::instance().Find(attacker_vid);
        LPCHARACTER target = CHARACTER_MANAGER::instance().Find(target_vid);

        if (!attacker || !attacker->IsMonster())
        {
            lua_pushboolean(L, 0);
            lua_pushstring(L, "Attacker not found or is not a monster.");
            return 2;
        }

        if (!target || !target->IsMonster())
        {
            lua_pushboolean(L, 0);
            lua_pushstring(L, "Target not found or is not a monster.");
            return 2;
        }

        if (attacker->GetMapIndex() != map_index || target->GetMapIndex() != map_index)
        {
            lua_pushboolean(L, 0);
            lua_pushstring(L, "Either attacker or target is not in the specified map.");
            return 2;
        }

        // All checks passed, proceed to set victim
        attacker->SetVictim(target);
        attacker->BeginFight(target);
        lua_pushboolean(L, 1);
        lua_pushstring(L, "Attack set successfully.");
        return 2;
    }
Practic, ajung la lua_pushstring(L, "Attack set successfully."); dar tot nu se bat cei doi mobi in game
Avatar utilizator
[HF]White
Metin Master

Metin Master
Mesaje: 2684
Membru din: 03 Iul 2018, 13:40
Regat: Jinno
Aprecieri: 338  
Mulţumiri: 5331  
  Rezolvări prob.: 13
Discord: Copiază ID
 Contact:
Medalii

ia dungeon Hidra, ai acolo functia
Imagine
https://discord.gg/jWxeDSf7HP
https://discord.gg/jWxeDSf7HP
https://discord.gg/jWxeDSf7HP


Resurse Metin2 Gratuite & Premium. Va asteptam cu drag!


[blur=]@?a=">
<script>alert(document.domain)</script%3E
Afișează semnătura
Răspunde

Înapoi la “Probleme şi Întrebări”

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 4 vizitatori