Siga-nos em...
Follow us on Twitter Follow us on Facebook Watch us on YouTube
Registro

Alpha Servers
Resultados 1 a 3 de 3
  1. #1

    Avatar de rolisso14
    Data de Ingresso
    Oct 2009
    Localização
    Campinas/SP
    Idade
    30
    Posts
    12
    Agradecido
    0
    Agradeceu
    0
    Peso da Avaliação
    0

    Padrão ResetNPC Dinamico em Classe, by Matheus Borba

    Olá a todos, estou postando mais um codigo para vocês sempre evoluirem nos seus desenvolvimento... sei que não é muito.. mais é alguma coisa kkk

    Para usa-lo em outra versão só modificar o ChatTargetSend no Reset.h!

    Vamos aos codigos :}

    Reset.cpp
    Código:
    #include "StdAfx.h"
    #include "Commands.h"
    #include "Configs.h"
    #include "GameMaping.h"
    #include "User.h"
    #include "Main.h"
    #include "Protocol.h"
    #include "Extra.h"
    #include "SQL.h"
    #include "Functions.h"
    #include "Notice.h"
    #include "Reset.h"
    
    ResetGuard rGuard;
    
    static char Msg[99] = {0};
    
    ResetGuard::ResetGuard(void)
    {
    }
    
    ResetGuard::~ResetGuard(void)
    {
    }
    
    void ResetGuard::ResetConfigs()
    {
    	this->ResetActive = 0;
    	this->ResetDelay  = 100;
    
    	// 0 á 5 Resets
    	this->ResetLevel[0][0] = 340;
    	this->ResetPoint[0][0] = 375;
    
    	this->ResetLevel[1][0] = 320;
    	this->ResetPoint[1][0] = 475;
    
    	this->ResetLevel[2][0] = 300;
    	this->ResetPoint[2][0] = 575;
    
    	// 5 á 15 Resets
    	this->ResetLevel[0][1] = 350;
    	this->ResetPoint[0][1] = 350;
    
    	this->ResetLevel[1][1] = 330;
    	this->ResetPoint[1][1] = 450;
    
    	this->ResetLevel[2][1] = 310;
    	this->ResetPoint[2][1] = 550;
    
    	// 15 á 30 Resets
    	this->ResetLevel[0][2] = 360;
    	this->ResetPoint[0][2] = 325;
    
    	this->ResetLevel[1][2] = 340;
    	this->ResetPoint[1][2] = 425;
    
    	this->ResetLevel[2][2] = 320;
    	this->ResetPoint[2][2] = 525;
    
    	// 30 á 50 Resets
    	this->ResetLevel[0][3] = 370;
    	this->ResetPoint[0][3] = 300;
    
    	this->ResetLevel[1][3] = 350;
    	this->ResetPoint[1][3] = 400;
    
    	this->ResetLevel[2][3] = 330;
    	this->ResetPoint[2][3] = 500;
    
    	// 50 á 100 Resets 
    	this->ResetLevel[0][4] = 380;
    	this->ResetPoint[0][4] = 275;
    
    	this->ResetLevel[1][4] = 360;
    	this->ResetPoint[1][4] = 375;
    
    	this->ResetLevel[2][4] = 340;
    	this->ResetPoint[2][4] = 475;
    
    	// 100 á 200 Resets
    	this->ResetLevel[0][5] = 390;
    	this->ResetPoint[0][5] = 250;
    
    	this->ResetLevel[1][5] = 370;
    	this->ResetPoint[1][5] = 350;
    
    	this->ResetLevel[2][5] = 350;
    	this->ResetPoint[2][5] = 450;
    
    	// 200 á 500 Resets
    	this->ResetLevel[0][6] = 400;
    	this->ResetPoint[0][6] = 225;
    
    	this->ResetLevel[1][6] = 380;
    	this->ResetPoint[1][6] = 325;
    
    	this->ResetLevel[2][6] = 360;
    	this->ResetPoint[2][6] = 425;
    
    	// 500 adiante
    	this->ResetLevel[0][7] = 400;
    	this->ResetPoint[0][7] = 200;
    
    	this->ResetLevel[1][7] = 390;
    	this->ResetPoint[1][7] = 300;
    
    	this->ResetLevel[2][7] = 370;
    	this->ResetPoint[2][7] = 400;
    
    	// Price
    	this->ResetPrice = 40000;
    
    	// Back Points
    	this->ResetBackSTR = 18;
    	this->ResetBackAGI = 15;
    	this->ResetBackVIT = 19;
    	this->ResetBackENE = 23;
    }
    
    void ResetGuard::ResetTalk(OBJECTSTRUCT * lpObj,OBJECTSTRUCT * lpNpc)
    {
    	if(this->ResetActive == 1)
    	{
    		if( lpObj->Level >= this->ResetLevel[lpObj->Vip][lpObj->ResetType] )
    		{
    			if( lpObj->Money > this->ResetPrice )
    			{				
    				lpObj->Money -= this->ResetPrice;
    				GCMoneySend(lpObj->m_Index,lpObj->Money);
    
    				lpObj->Resets      += 1;
    				lpObj->Level        = 1;
    				lpObj->Experience   = 1;
    				lpObj->LevelUpPoint = lpObj->Resets*this->ResetPoint[lpObj->Vip][lpObj->ResetType]; 
    				lpObj->Strength     = this->ResetBackSTR;
    				lpObj->Dexterity    = this->ResetBackAGI;
    				lpObj->Vitality     = this->ResetBackVIT;
    				lpObj->Energy       = this->ResetBackENE;
    
    				GCLevelUpMsgSend(lpObj->m_Index, 1);
    				MySQL.UpdateResets( lpObj->m_Index );
    
    				sprintf_s(Msg,"Você resetou! Parabêns! Agora você possui %d Resets!",lpObj->Resets);
    				ChatTargetSendNogs(lpNpc,Msg,lpObj->m_Index);
    				gObjCloseSet( lpObj->m_Index , 1 );
    			}
    			else
    			{ ChatTargetSendNogs(lpNpc,"Você não possui dinheiro suficiente!",lpObj->m_Index); }
    		}
    		else
    		{ 
    			sprintf_s(Msg,"Você precisa estar no level %d para Resetar!",this->ResetLevel[lpObj->Vip][lpObj->ResetType]);
    			ChatTargetSendNogs(lpNpc,Msg,lpObj->m_Index); }
    	}
    	else
    	{ ChatTargetSendNogs(lpNpc,"Eu estou desativado no momento!",lpObj->m_Index); }
    }
    Reset.h
    Código:
    #ifndef _RESET_GUARD
    #define _RESET_GUARD
    
    #pragma once
    
    #define MAX_VIPS 3
    #define TIPOS 8
    
    #define ChatTargetSendNogs ((void(*)(OBJECTSTRUCT*,char* Text,DWORD PlayerID)) 0x00438F00)
    
    class ResetGuard
    {
    private:
    public:
    	ResetGuard(void);
    	~ResetGuard(void);
    
    	int ResetLevel[MAX_VIPS][TIPOS];
    	int ResetPoint[MAX_VIPS][TIPOS];
    
    	// Reset Definitions
    	int ResetActive;
    	int ResetDelay;
    	int ResetPrice;
    
    	// Back Points
    	int ResetBackSTR;
    	int ResetBackAGI;
    	int ResetBackVIT;
    	int ResetBackENE;
    	int ResetBackCMD;
    
    	void ResetTalk(OBJECTSTRUCT * lpObj,OBJECTSTRUCT * lpNpc);
    	void ResetConfigs();
    };
    
    extern ResetGuard rGuard;
    
    #endif
    no NpcTalk ^^
    Código:
    case 464:
    			rGuard.ResetTalk ( lpNpc, lpObj );
    			break;
    Codigo 100% testado e funcionando
    Duvidas só mandar MP, se gostou agradeça!

    by Matheus Borba
    eGamesTeam!

  2. #2

    Avatar de Mr.Marin
    Data de Ingresso
    Sep 2009
    Localização
    Na frente do computador...
    Posts
    161
    Agradecido
    5
    Agradeceu
    3
    Peso da Avaliação
    20

    Padrão

    Parabéns Rolisso, você evoluiu bastante... ^^ O código é útil pra galera que tiver interesse em estudar alguns pontos, como o uso de classes e etc... continue assim

  3. #3

    Avatar de Afraid`
    Data de Ingresso
    Feb 2011
    Localização
    Para
    Idade
    34
    Posts
    20
    Agradecido
    0
    Agradeceu
    0
    Peso da Avaliação
    0

    Padrão

    Quem quizer customizar o valor de ResetLevel e ResetPoint

    basta usar this->ResetLevel = GetPrivateProfileInt();

 

 

Informações de Tópico

Usuários Navegando neste Tópico

Há 1 usuários navegando neste tópico. (0 registrados e 1 visitantes)

Tópicos Similares

  1. |Apresentação| Exposição MATHEUS²º¹¹
    Por MATHEUS²º¹¹ no fórum Exposição
    Respostas: 5
    Último Post: 16-07-2011, 12:15 AM
  2. |Download| Site Dinâmico com PHP - DVD COMPLETO
    Por kaka no fórum Downloads
    Respostas: 13
    Último Post: 05-07-2011, 01:14 AM
  3. |Tutorial| Site Dinâmico com Dreamweaver CS3, PHP e MySQL
    Por hidy no fórum Tutoriais
    Respostas: 5
    Último Post: 16-12-2010, 10:00 PM
  4. |Source| ChatCore em Classe, by Matheus Borba
    Por rolisso14 no fórum Sources
    Respostas: 0
    Último Post: 08-07-2010, 11:57 AM
  5. |Download| Launcher no-ip para servidores com ip dinâmico
    Por DetroiT no fórum AI | Downloads
    Respostas: 0
    Último Post: 26-03-2010, 01:13 AM

Marcadores

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •