Administrator
Administrator
  • Mesaje: 4729
    Membru din: 07 Aug 2024, 21:53
  • Reacții: 110363
  • Mesaje utile: 45
  • Status: Pe aici.. 🤠
    Server: Saga2 - Soon
  • Regat: Jinno
  • [ID Discord]
  • Contact:
    Avatar utilizator
    Administrator
    Administrator
    *Descriere:

    Mai jos aveti o protectie pentru pvp.

    Atunci cand 2 persoane sunt in duel, acestea nu vor mai putea fi atacate de alti jucatori care se pun pe liber / din alte regate.

    Este o masura care asigura buna desfasurare a duelului intre cei 2, fara sa existe discutii.

    - Jucatorul aflat intr-un duel nu poate ataca jucatori din afara duelului – Daca atacatorul este intr-un duel, dar tinta nu este, atacul este blocat.
    - Jucatorul care se da pe liber nu poate ataca un jucator aflat intr-un duel – Daca tinta este intr-un duel, dar atacatorul nu este, atacul este blocat.
    - Jucatorii aflati in dueluri diferite nu se pot ataca intre ei – Daca ambii sunt in duel, dar au adversari diferiti, atacul este blocat.
    - Jucatorii aflati in acelasi duel se pot lupta normal – Sistemul de duel functioneaza fara probleme.


    *Link download / Code:

    Adaugam in service.h:
    Code:
    #define ENABLE_DUEL_ATTACK_BLOCK

    Deschidem battle.cpp si cautam:
    Code:
    bool battle_is_attackable(LPCHARACTER ch, LPCHARACTER victim)
    {
    
    	if (pkVictim->IsNPC() && pkChr->IsNPC() && !pkChr->IsGuardNPC())
    		return false;
    Adaugam mai jos:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Deschidem char_battle.cpp si cautam:
    Code:
    bool CHARACTER::Attack(LPCHARACTER pkVictim, BYTE bType)
    {
    
    	if (!CanMove())
    		return false;
    Adaugam:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Deschidem char_skill.cpp si cautam:
    Code:
    int CHARACTER::ComputeSkill(DWORD dwVnum, LPCHARACTER pkVictim, BYTE bSkillLevel)
    {
    	if (IS_SET(pkSk->dwFlag, SKILL_FLAG_SELFONLY))
    		pkVictim = this;
    
    	if (!pkVictim)
    	{
    		if (test_server)
    			sys_log(0, "ComputeSkill: %s Victim == null, skill %d", GetName(), dwVnum);
    
    		return BATTLE_NONE;
    	}
    Adaugam:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Cautam:
    Code:
    struct FuncSplashDamage
    {
    	FuncSplashDamage(int x, int y, CSkillProto * pkSk, LPCHARACTER pkChr, int iAmount, int iAG, int iMaxHit, LPITEM pkWeapon, bool bDisableCooltime, TSkillUseInfo* pInfo, BYTE bUseSkillPower)
    		:
    		m_x(x), m_y(y), m_pkSk(pkSk), m_pkChr(pkChr), m_iAmount(iAmount), m_iAG(iAG), m_iCount(0), m_iMaxHit(iMaxHit), m_pkWeapon(pkWeapon), m_bDisableCooltime(bDisableCooltime), m_pInfo(pInfo), m_bUseSkillPower(bUseSkillPower)
    		{
    		}
    
    	void operator () (LPENTITY ent)
    	{
    		if (!ent->IsType(ENTITY_CHARACTER))
    		{
    			//if (m_pkSk->dwVnum == SKILL_CHAIN) sys_log(0, "CHAIN target not character %s", m_pkChr->GetName());
    			return;
    		}
    
    		LPCHARACTER pkChrVictim = (LPCHARACTER) ent;

    Adaugam:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Deschidem pvp.cpp si cautam:
    Code:
    bool CPVPManager::CanAttack(LPCHARACTER pkChr, LPCHARACTER pkVictim)
    {
    	switch (pkVictim->GetCharType())
    	{
    		case CHAR_TYPE_NPC:
    		case CHAR_TYPE_WARP:
    		case CHAR_TYPE_GOTO:
    			return false;
    	}
    
    	if (pkChr == pkVictim)
    		return false;
    
    	if (pkVictim->IsNPC() && pkChr->IsNPC() && !pkChr->IsGuardNPC())
    		return false;
    Adaugam:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.

    Nou Cum descarc de pe TeraBox?

    Afișează detalii Ascunde detalii
    • Este asemănător cu Mega.nz
    • Instalați-vă clientul lor de Download de aici
    • Faceți-vă un cont (vă puteți loga cu Facebook / Google / etc)
    • Nou Dacă nu vreți să descărcați clientul de Download, folosiți acest site
    • Gata! Acum puteți descărca resursele rapid & simplu.

    De ce folosim TeraBox?

    • Este gratuit
    • Primești 1TB de spațiu gratuit la orice cont creat!
    • Este ușor de folosit și varianta premium este foarte ieftină
    • Fișierele nu sunt șterse niciodată
    TeraBox logo
    Comunitatea Metin2 Romania este si pe Discord! :ymcowboy:

    2500+ membri • Chat activ zilnic • Support • Cereri & Resurse

    ► discord.gg/jWxeDSf7HP ◄





    See full signature

    Creează-ți un cont sau autentifică-te pentru a participa la discuție

    Trebuie să fii membru pentru a răspunde

    Creează-ți un cont

    Membrii pot crea subiecte noi și pot descărca resurse Metin2 Gratuit!


    Te poți înregistra sau conecta rapid utilizând contul tău de Discord, Github sau Google.

    Înregistrare

    Autentifică-te

    Înapoi la “Îmbunătățiri”

    Informații

    Utilizatori ce navighează pe acest forum: chr1stian, Cryptex, marcos_impacto, SCOOB, soforyou și 2 vizitatori

    Discord ID copiat: