Resultados 1 a 6 de 6

Tópico: CustomEarthQuake

  1. #1
    Developer C++ LorenStudio's Avatar




    Data de Ingresso
    Jul 2020
    Posts
    136
    Thanks Thanks Given 
    172
    Thanks Thanks Received 
    267
    Thanked in
    60 Posts
    Mencionado
    10 Post(s)
    País
    Canada

    CustomEarthQuake

    Bom como estou a desenvolver um season2.5 usando a source muemu(S6) resolvi liberar o CustomEarthQuake que já tem FREE porém não organizado ou facil de pegar para quem é mais leigo..



    OBS: A PARTE DO GETMAININFO NÃO VOU POSTAR ATÉ PQ NÃO É NADA DIFICIL DE SER FEITA.


    VIDEO: [Somente membros podem ver os links. ]

    [Somente membros podem ver os links. ]


    CustomEarthQuake.h
    Código:
    #pragma once
    #include "stdafx.h"
    #define MAX_EARTH_QUAKE 512
    
    
    #include <vector>
    
    
    struct HORSE_EARTH_QUAKE{
        int Index;
        int ItemIndex;
        int EffectCode;
        int UseRGB;
        int ColorR;
        int ColorG;
        int ColorB;
        int EffectSize;
        int SkillEarthQuake1;
        int SkillEarthQuake2;
    };
    
    
    class cCEarthQuake
    {
    public:
        cCEarthQuake();
        virtual ~cCEarthQuake();
        void Load(HORSE_EARTH_QUAKE* info);
        void LoadRDarkHorseSkill();
    public:
        std::vector<HORSE_EARTH_QUAKE> m_EarthQuake;
    }; extern cCEarthQuake gCustomEarthQuake;

    CustomEarthQuake.cpp
    Código:
    #include "StdAfx.h"
    #include "Import.h"
    #include "zzzmathlib.h"
    #include "Util.h"
    #include "CustomEarthQuake.h"
    #include "Object.h"
    #include "Defines.h"
    #include "CustomPet.h"
    
    
    #define pAngleMatrix2			((int(__cdecl*)(vec3_t a1, vec34_t a2)) 0x959CE0)
    #define pVectorRotate2			((int(__cdecl*)(vec3_t a1, vec34_t a2, vec3_t a3)) 0x95A1E0)
    #define pMoveSceneFrame			*(int*)0x00E8CB20
    #define pEarthQuake				*(float*)0x08787D48
    #define pCreateEffect2			((int(__cdecl*)(int a4, vec3_t Bone1, float* a6, vec3_t color, int a8, int a9, __int16 a10, __int16 a11, __int16 a12, __int16 a13, float a14, __int16 a1)) 0x006D9070)
    
    
    cCEarthQuake gCustomEarthQuake;
    
    
    cCEarthQuake::cCEarthQuake(){
    	this->m_EarthQuake.clear();
    }
    cCEarthQuake::~cCEarthQuake()
    {
    }
    
    
    void cCEarthQuake::Load(HORSE_EARTH_QUAKE * info){
    	for( int n = 0; n < MAX_EARTH_QUAKE; n++){
    		if(info[n].Index < 0 || info[n].Index >= MAX_EARTH_QUAKE){
    			return;
    		}
    		this->m_EarthQuake.push_back(info[n]);
    	}
    }
    
    
    void RDarkHorseSkill(lpModelObj lpObjModel, lpViewObj lpObj){
    	if (lpObjModel && lpObj){
    		vec3_t Color;
    		++lpObjModel->OnAttacking;
    		if ( !(pMoveSceneFrame % 10) )
    			for(std::vector<HORSE_EARTH_QUAKE>::iterator it = gCustomEarthQuake.m_EarthQuake.begin();it != gCustomEarthQuake.m_EarthQuake.end();it++){
    			    if(it->ItemIndex == (*(DWORD *)((int)lpObjModel + 48) - 1171)){
    			        Color[0] = it->ColorR;
    					Color[1] = it->ColorG;
    					Color[2] = it->ColorB;
    					if(it->UseRGB == 1){
    					    pCreateEffect2(it->EffectCode, &lpObjModel->VecPosX, &lpObjModel->WorldPos.X, Color, it->EffectSize, 0, -1, 0, 0, 0, 0.0, -1);
    					}else{
    						pCreateEffect2(it->EffectCode, &lpObjModel->VecPosX, &lpObjModel->WorldPos.X, &lpObjModel->ColorR, it->EffectSize, 0, -1, 0, 0, 0, 0.0, -1);
    					}
    				}else if (!gCustomPet2.CheckCustomPetByItem( *(DWORD *)((int)lpObjModel + 48) - 1171 )){
    				    pCreateEffect2(32279, &lpObjModel->VecPosX, &lpObjModel->WorldPos.X, &lpObjModel->ColorR, 0, 0, -1, 0, 0, 0, 0.0, -1);
    			    }
    			}
    		if ( lpObjModel->CoordX < 8.0 || lpObjModel->CoordX > 9.5 ){
    			if ( lpObjModel->OnAttacking == 19 ){
    				for(std::vector<HORSE_EARTH_QUAKE>::iterator it = gCustomEarthQuake.m_EarthQuake.begin();it != gCustomEarthQuake.m_EarthQuake.end();it++){
    					if(it->ItemIndex == (*(DWORD *)((int)lpObjModel + 48) - 1171)){
    					    pCreateEffect2(it->SkillEarthQuake1, &lpObjModel->VecPosX, &lpObjModel->WorldPos.X, &lpObjModel->ColorR, 0, (int)lpObjModel, -1, 0, 2, 0, 0.0, -1);
    				    }else if (!gCustomPet2.CheckCustomPetByItem( *(DWORD *)((int)lpObjModel + 48) - 1171 )){
    					    pCreateEffect2(301, &lpObjModel->VecPosX, &lpObjModel->WorldPos.X, &lpObjModel->ColorR, 0, (int)lpObjModel, -1, 0, 2, 0, 0.0, -1);
    				    }
    				}
    				lpObjModel->OnAttacking = -3;
    			}
    		}else{
    			for(std::vector<HORSE_EARTH_QUAKE>::iterator it = gCustomEarthQuake.m_EarthQuake.begin();it != gCustomEarthQuake.m_EarthQuake.end();it++){
    			    if ( lpObjModel->OnAttacking % 2 == 1 ){
    				    vec3_t WorldPos;
    				    vec3_t AnglePos;
    				    Vector(0.0, (double)(lpObjModel->OnAttacking / 2) * 150.0, 0.0, WorldPos);
    				    Vector(0.0, 0.0, (double)(rand() % 360), AnglePos);
    				    vec34_t Matrix;
    				    vec3_t ResultPosition;
    				    for (int i = 0; i < 6; ++i ){
    					    AnglePos[2] += 60;
    					    pAngleMatrix2(AnglePos,Matrix);
    					    pVectorRotate2(WorldPos,Matrix,ResultPosition);
    					    ResultPosition[0] += lpObjModel->VecPosX;
    					    ResultPosition[1] += lpObjModel->VecPosY;
    					    ResultPosition[2] += lpObjModel->VecPosZ;
    					    if(it->ItemIndex == (*(DWORD *)((int)lpObjModel + 48) - 1171)){
    							pCreateEffect2(it->SkillEarthQuake2, ResultPosition, &lpObjModel->WorldPos.X, &lpObjModel->ColorR, 0, 0, -1, 0, 0, 0, 0.0, -1);
    					    }else if (!gCustomPet2.CheckCustomPetByItem(*(DWORD *)((int)lpObjModel + 48) - 1171 )){
    							pCreateEffect2((rand() % 2) + 331, ResultPosition, &lpObjModel->WorldPos.X, &lpObjModel->ColorR, 0, 0, -1, 0, 0, 0, 0.0, -1);
    						}
    					}
    					pEarthQuake = (double)(rand() % 3 - 3) * 0.699999988079071;
    				}
    			}
    		}
    	}
    }
    
    
    void cCEarthQuake::LoadRDarkHorseSkill(){
    	MemorySet(0x00502A95,0x90,0x5);
    	SetCompleteHook(0xE8,0x00502A95,&RDarkHorseSkill);
    }

    Protect.h
    Código:
    HORSE_EARTH_QUAKE m_EarthQuakeLoad[MAX_EARTH_QUAKE];

    Main.cpp
    Código:
    gCustomEarthQuake.Load(gProtect.m_MainInfo.m_EarthQuakeLoad);
    gCustomEarthQuake.LoadRDarkHorseSkill();
    Creditos:
    Kosh
    Nemesis
    Louis
    Last edited by LorenStudio; 27/05/2021 at 08:24 PM.


    PROJETOS:
    [Somente membros podem ver os links. ][Somente membros podem ver os links. ]

  2. The Following 4 Users Say Thank You to LorenStudio For This Useful Post:


  3. #2
    Membro VIP zodiacddos's Avatar
    Data de Ingresso
    Dec 2017
    Posts
    13
    Thanks Thanks Given 
    50
    Thanks Thanks Received 
    1
    Thanked in
    1 Post
    Mencionado
    0 Post(s)
    País
    Philippines
    Share complete please

  4. #3
    Fundador PerfectZone Mentor's Avatar


    Data de Ingresso
    Jun 2013
    Posts
    2,850
    Thanks Thanks Given 
    784
    Thanks Thanks Received 
    2,193
    Thanked in
    355 Posts
    Mencionado
    804 Post(s)
    MEU HUMOR
    Twisted
    País
    Brazil
    @[Somente membros podem ver os links. ]

    Sabe me informar como corrigir esse problema?


    O CustomEarhQuake.cpp que você postou veio com uns caracteres que está ocasionando uns erros, acho que foi na hora do ctrl v deu algum problema ^^



    Edit______________

    O problema da imagem 1 já resolvi, estava faltando uma letra nessa parte &lpObjModel
    Last edited by Mentor; 27/05/2021 at 07:16 PM.
    Perfect Zone Brasil



    Inscreva-se no meu canal clicando [Somente membros podem ver os links. ]

  5. #4
    Developer C++ LorenStudio's Avatar




    Data de Ingresso
    Jul 2020
    Posts
    136
    Thanks Thanks Given 
    172
    Thanks Thanks Received 
    267
    Thanked in
    60 Posts
    Mencionado
    10 Post(s)
    País
    Canada
    Citação Originally Posted by Mentor Ver Post
    @[Somente membros podem ver os links. ]

    Sabe me informar como corrigir esse problema?


    O CustomEarhQuake.cpp que você postou veio com uns caracteres que está ocasionando uns erros, acho que foi na hora do ctrl v deu algum problema ^^



    Edit______________

    O problema da imagem 1 já resolvi, estava faltando uma letra nessa parte &lpObjModel
    Corrigido, vlw pelo aviso e desculpe pela falta de atenção


    PROJETOS:
    [Somente membros podem ver os links. ][Somente membros podem ver os links. ]

  6. The Following User Says Thank You to LorenStudio For This Useful Post:


  7. #5
    Fundador PerfectZone Mentor's Avatar


    Data de Ingresso
    Jun 2013
    Posts
    2,850
    Thanks Thanks Given 
    784
    Thanks Thanks Received 
    2,193
    Thanked in
    355 Posts
    Mencionado
    804 Post(s)
    MEU HUMOR
    Twisted
    País
    Brazil
    Citação Originally Posted by zodiacddos Ver Post
    Share complete please

    GetMainInfo


    CustomEarthQuake.h
    Código:
    #pragma once
    
    #define MAX_EARTH_QUAKE 512
    
    struct HORSE_EARTH_QUAKE
    {
        int Index;
        int ItemIndex;
        int EffectCode;
        int UseRGB;
        int ColorR;
        int ColorG;
        int ColorB;
        int EffectSize;
        int SkillEarthQuake1;
        int SkillEarthQuake2;
    };
    
    class cCEarthQuake
    {
    public:
        cCEarthQuake();
        virtual ~cCEarthQuake();
        void Init();
        void Load(char* path);
        void SetInfo(HORSE_EARTH_QUAKE info);
    
    public:
        HORSE_EARTH_QUAKE m_EarthQuake [MAX_EARTH_QUAKE];
    
    }; extern cCEarthQuake gCustomEarthQuake;

    CustomEarthQuake.cpp
    Código:
    #include "StdAfx.h"
    #include "EarthQuake.h"
    #include "MemScript.h"
    
    cCEarthQuake gCustomEarthQuake;
    
    cCEarthQuake::cCEarthQuake()
    {
        this->Init();
    }
    cCEarthQuake::~cCEarthQuake()
    {
    }
    
    void cCEarthQuake::Init()
    {
        for(int n=0;n < MAX_EARTH_QUAKE;n++)
        {
            this->m_EarthQuake[n].Index = -1;
        };
    }
    
    void cCEarthQuake::Load(char* path)
    {
        CMemScript* lpMemScript = new CMemScript;
        if(lpMemScript == 0){
            printf(MEM_SCRIPT_ALLOC_ERROR,path);
            return;
        }
        if(lpMemScript->SetBuffer(path) == 0)
        {
            printf(lpMemScript->GetLastError());
            delete lpMemScript;
            return;
        }
        this->Init();
        try
        {
            while(true)
            {
                if(lpMemScript->GetToken() == TOKEN_END)
                {
                    break;
                }
                if(strcmp("end",lpMemScript->GetString()) == 0)
                {
                    break;
                }
                HORSE_EARTH_QUAKE info;
                memset(&info,0,sizeof(info));
                static int CustomItemIndexCount = 0;
                info.Index = CustomItemIndexCount++;
                info.ItemIndex = lpMemScript->GetNumber();
                info.EffectCode = lpMemScript->GetAsNumber();
                info.UseRGB = lpMemScript->GetAsNumber();
                info.ColorR = lpMemScript->GetAsFloatNumber();
                info.ColorG = lpMemScript->GetAsFloatNumber();
                info.ColorB = lpMemScript->GetAsFloatNumber();
                info.EffectSize = lpMemScript->GetAsNumber();
                info.SkillEarthQuake1 = lpMemScript->GetAsNumber();
                info.SkillEarthQuake2 = lpMemScript->GetAsNumber();
                this->SetInfo(info);
            }
        }
        catch(...)
        {
            printf(lpMemScript->GetLastError());
        }
    
        delete lpMemScript;
    }
    
    void cCEarthQuake::SetInfo(HORSE_EARTH_QUAKE info)
    {
        if(info.Index < 0 || info.Index >= MAX_EARTH_QUAKE)
        {
            return;
        }
        this->m_EarthQuake[info.Index] = info;
    }

    GetMainInfo.cpp

    ATENÇÃO! NÃO COPIAR SIMPLESMENTE ESSAS LINHAS ABAIXO E COLAR NO SEU CPP, ANALISE PRIMEIRO SEU CÓDIGO E ADICIONE ESSAS LINHAS NOS SEUS DEVIDOS LUGARES.

    Código:
    #include "EarthQuake.h"
    
    
    DWORD CustomEffectEarthQuake;
    
    HORSE_EARTH_QUAKE m_EarthQuake[MAX_EARTH_QUAKE];
    
    
    info.CustomEffectEarthQuake = GetPrivateProfileInt("Custom","CustomEffectEarthQuake",0,".\\MainInfo.ini");
    
    gCustomEarthQuake.Load("CustomEarthQuake.txt");
    
    
    memcpy(info.m_EarthQuake, gCustomEarthQuake.m_EarthQuake, sizeof(info.m_EarthQuake));
    Perfect Zone Brasil



    Inscreva-se no meu canal clicando [Somente membros podem ver os links. ]

  8. #6
    RoxGaming Developer Denis Alves's Avatar



    Data de Ingresso
    May 2017
    Posts
    299
    Thanks Thanks Given 
    215
    Thanks Thanks Received 
    705
    Thanked in
    118 Posts
    Mencionado
    36 Post(s)
    MEU HUMOR
    Amused
    País
    Brazil
    Citação Originally Posted by zodiacddos Ver Post
    Share complete please
    para quem quem possa ter o erro da imagem 1, segue (adicionar em qualquer header (arquivo com extensão .h - pra ficar organizado use a Object.h)

    Código:
    
    typedef struct	//648? 848!!
    {
    	/*+0*/		int		Prev;
    	/*+4*/		BYTE	IsSetted;
    	/*+5*/		BYTE	Unknown5;
    	BYTE gap01[3];
    	/*+9*/		BYTE	Unknown9;
    	/*+10*/		BYTE	Unknown10;
    	/*+11*/		BYTE	Unknown11;
    	/*+12*/		BYTE	Unknown12;
    	/*+13*/		BYTE	Unknown13;
    	/*+14*/		BYTE	Unknown14;
    	/*+15*/		BYTE	Unknown15;
    	/*+16*/		BYTE	Unknown16;
    	/*+17*/		BYTE	Unknown17;
    	/*+18*/		WORD	AnimationID;
    	/*+20*/		WORD	Unknown20;
    	/*+22*/		BYTE	Unknown22;
    	/*+23*/		BYTE	Unknown23;
    	/*+24*/		BYTE	ObjectType;
    	/*+25*/		BYTE	Unknown25;
    	/*+26*/		BYTE	Unknown26;
    	/*+27*/		BYTE	Unknown27;
    	/*+28*/		BYTE	Unknown28;
    	/*+29*/		BYTE	Unknown29;
    	/*+30*/		BYTE	OnAttacking;
    	/*+31*/		BYTE	Unknown31;
    	/*+32*/		BYTE	Unknown32;
    	/*+33*/		BYTE	Unknown33;
    	/*+34*/		BYTE	Unknown34;
    	/*+35*/		BYTE	Unknown35;
    	/*+36*/		WORD	Unknown36;
    	/*+38*/		WORD	Unknown38;
    	BYTE gap05[8];
    	/*+48*/		DWORD	SkinID;
    	/*+52*/		DWORD	ActionType; //Fireworks
    	/*+48*/		DWORD	Unknown48;
    	/*+56*/		DWORD	Unknown56;
    	/*+60*/		DWORD	Unknown60;
    	/*+64*/		DWORD	Unknown64; //Count ?
    	/*+68*/		DWORD	Transparency;
    	/*+72*/		float	Unknown72;
    	/*+76*/		float	Unknown76;
    	/*+80*/		float	Unknown80;
    	BYTE gap06[8];
    	/*+92*/		DWORD	Time; //Tempo de duração ?
    	/*+96*/		float	Scale;
    	/*+100*/	float	Unknown100;
    	/*+104*/	float	Unknown104;
    	/*+108*/	float	Unknown108;
    	/*+112*/	float	Unknown112;
    	/*+116*/	float	Unknown116;
    	/*+120*/	float	Unknown120;
    	/*+124*/	float	Unknown124;
    	/*+128*/	float	Unknown128;
    	/*+132*/	float	Unknown132;
    	/*+136*/	float	Unknown136;
    	/*+140*/	float	CoordX;
    	/*+144*/	float	CoordY;
    	/*+148*/	float	Unknown148;
    	/*+152*/	float	Unknown152;
    	/*+156*/	float	ColorR;
    	/*+160*/	float	ColorG;
    	/*+164*/	float	ColorB;
    	/*+168*/	float	Unknown168;
    	/*+172*/	float	Unknown172;
    	/*+176*/	float	Unknown176;
    	/*+180*/	float	Unknown180;
    	/*+184*/	float	Unknown184;
    	/*+188*/	float	Unknown188;
    	/*+192*/	float	Unknown192;
    	/*+196*/	float	Unknown196;
    	/*+200*/	float	Unknown200;
    	/*+204*/	VAngle	Unknown204;
    	/*+216*/	VAngle	Unknown216;
    	/*+228*/    VAngle  Unknown228;
    	/*+240*/    VAngle  SelectZone; //ou o de cima
    	/*+252*/	float	VecPosX;
    	/*+256*/	float	VecPosY;
    	/*+260*/	float	VecPosZ;
    	/*+264*/	VAngle	WorldPos;
    	BYTE gap11[148];
    	/*+424*/	ObjectModel_424 Unknown424;
    	/*+472*/	VAngle	Unknown472;
    	BYTE gap12[164];
    	/*+484*/
    } 
    
    
    ObjectModel2, * lpModelObj;

  9. The Following User Says Thank You to Denis Alves For This Useful Post:


Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • You may not post Resposta(s)
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •  
Sobre nós
Somos uma comunidade em atividade a 8 anos que aborda assuntos relacionados a games em geral, principalmente games MMORPG. e que busca sempre ajudar os membros através de conteúdos, tutoriais e suporte...
Nossos anunciantes
Hinetworks
VelozHost
InovHost
Rede Sociais