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

Alpha Servers
Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 a 10 de 12

Tópico: Comando /bau

  1. #1

    Avatar de Geniopx
    Data de Ingresso
    May 2010
    Localização
    Internet
    Idade
    44
    Posts
    29
    Agradecido
    0
    Agradeceu
    0
    Peso da Avaliação
    0

    Padrão Comando /bau

    Olá Pessoal , estou disponibilizando o source do comando /bau desenvolvido por mim ! Bom ele foi desenvolvido para um MuServer 97d porém creio que não tenha nem um problema em codar para outra versão =)

    Source do Comando :
    Código PHP:
    void TrocaBau(short aIndex,char Cod){

    OBJECTSTRUCT *lpObj = (OBJECTSTRUCT*)OBJECT_POINTER(aIndex);
    int BauCod atoi(Cod);
    char QueryBau[200],mensagem[200];

    int TotalBau CSQL->GetFieldInt("MuOnline.dbo.MEMB_INFO","BausExtra""WHERE Memb___id = '%s'",lpObj->AccountID);
        if (
    BauCod ){
            
    GCServerMsgStringSend("Erro de Sintaxe : /bau <numero do baú>",aIndex,1);
            return ;    
        }
        else if(
    TotalBau BauCod){
            
    sprintf(mensagem,"[Erro] : Você ultrapassou o limite de %d báus!",TotalBau);
            
    GCServerMsgStringSend(mensagem,aIndex,1);
            return;
        } else {
            if(
    gObj_GetInt(lpObj->PlayerID,gObjWarehouseSave) == 0){
                
    sprintf(QueryBau,"EXEC MuOnline.dbo.MUDAR_BAU %d,%s",BauCod,lpObj->AccountID);
                
    CSQL->Exec(QueryBau);
                
    sprintf(mensagem,"Baú trocado com sucesso! Você está usando o baú nº %d",BauCod);
                
    GCServerMsgStringSend(mensagem,aIndex,1);
            } else {
                
    GCServerMsgStringSend("[Erro] : Feche o bau para usar esse comando!",aIndex,1);
                return;
            }
        }


    Função gObj_GetInt :

    Código PHP:
    long int gObj_GetInt(int PlayerIDint gObjParam){
        return *(
    long int*)(PlayerID gObjSize gObjOffset gObjParam);

    #define :
    Código PHP:
    #define gObjWarehouseSave   0xC70 
    Procedures/Querys :

    CRIAR_BAU :
    Código PHP:
    CREATE PROCEDURE [dbo].[CRIAR_BAU] (@login varchar(10)) AS
    BEGIN
        
    DECLARE @IDProce int
        set 
    @IDProce = (select count(itemsFROM VaultsExtra Where login = @login)
        IF (
    EXISTS SELECT FROM VaultsExtra WHERE [bauCod] = ))
        
    BEGIN
        set 
    @IDProce 0
        END
        
    ELSE
        
    EXEC CRIAR_BAU @login    
        set 
    @IDProce 1
        END
        INSERT INTO VaultsExtra 
    (login,items,[money],pw,IdAccVALUES (@login,0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,0,1,@IDProce)
        
    UPDATE MEMB_INFO set BausExtra=BausExtra+1 Where memb___id = @login
    GO 
    MUDAR_BAU:

    Código PHP:
    CREATE PROCEDURE [dbo].[MUDAR_BAU] (@bauCod INT,@login varchar(10)) AS
    BEGIN
        
    DECLARE @BAUUSO1 int
        set 
    @BAUUSO1 = (SELECT BauUso  FROM warehouse WHERE AccountID = @login)
        IF ( 
    EXISTS SELECT FROM VaultsExtra WHERE [IdAcc] = @bauCod ) ) and (@BAUUSO1 != @bauCod)
        
    BEGIN
            
    DECLARE  @itemback varbinary(1200)
            DECLARE  @
    money int
            set 
    @money = (SELECT [MoneyFROM warehouse WHERE AccountID = @login)
            
    set @itemback = (SELECT Items FROM warehouse WHERE AccountID = @login)
            IF (@
    bauCod 0) AND (@BAUUSO1 0)
            
    BEGIN
                UPDATE VaultsExtra SET Items 
    = @itemback,[Money]=@money WHERE login = @login AND IdAcc 0
            END        
            UPDATE warehouse SET Items 
    = (SELECT Items FROM VaultsExtra WHERE Login = @login AND  IDAcc = @bauCod),[Money] = (SELECT [MoneyFROM VaultsExtra WHERE Login = @login AND  IDAcc = @bauCod),BauUso = @bauCod  WHERE AccountID = @login
            UPDATE VaultsExtra SET Items 
    = @itemback,[Money]=@money WHERE login = @login AND IDAcc = @BAUUSO1
        END
    END
    GO 
    Tabela:

    Código PHP:
    ALTER TABLE dbo.MEMB_INFO ADD
        BausExtra int NOT NULL 
    DEFAULT
    GO 
    Tinha esquecido dessas Querys para alterar/criar as tabelas

    Código PHP:
    ALTER TABLE dbo.warehouse ADD
        
    [BauUso] [intNOT NULL CONSTRAINT [DF_warehouse_BauUso] DEFAULT (0)
    GO 
    Código PHP:
    CREATE TABLE [VaultsExtra] (
        [
    login] [varchar] (10COLLATE Chinese_PRC_CI_AS NOT NULL ,
        [
    bauCod] [intIDENTITY (11NOT NULL ,
        [
    items] [varbinary] (1200NULL ,
        [
    money] [intNULL ,
        [
    pw] [smallintNULL ,
        [
    IdAcc] [intNOT NULL 
    ON [PRIMARY]
    GO 
    Bom é isso pessoal , qualquer problema ,duvidas,dicas é só postar ou até mesmo me mandar um MP !

    PS: Comecei a Codar PMS faz 1 mês , ainda minhas sources estão meio bagunçadas !


    Atenciosamente , Luis Eduardo "Geniopx"

    ---------- Post added at 09:19 PM ---------- Previous post was at 08:50 PM ----------

    Ah , você poder usar normalmente usando a source da DLL da NFMTeam ou do Jamel
    Última edição por Geniopx; 30-06-2010 às 07:57 AM.

  2. #2

    Avatar de Diel
    Data de Ingresso
    Sep 2009
    Localização
    Brasilia
    Idade
    35
    Posts
    106
    Agradecido
    1
    Peso da Avaliação
    17

    Padrão

    Código:
    void COMMAND_CORE::CommandVault(short aIndex,char * arg)
    {
    	int MaxBaus = 0;
    
    	if(lpObj->Vip == 0) MaxBaus = this->MaxWarefree;
    	if(lpObj->Vip == 1) MaxBaus = this->MaxWareVip1;
    	if(lpObj->Vip == 2) MaxBaus = this->MaxWareVip2;
    	if(lpObj->Vip == 3) MaxBaus = this->MaxWareVip3;
    	if(lpObj->Vip == 4) MaxBaus = this->MaxWareVip4;
    	if(lpObj->Vip == 5) MaxBaus = this->MaxWareVip5;
    
    	int b_Index = GetNumber(arg,0);
    	
    	if(b_Index < 0)
    	{
    		Send.SendNotice(lpObj->m_Index,1,"Erro de Sintaxe : /bau <numero>");
    		return;
    	}
    	
    	else if(b_Index > MaxBaus)
    	{
    		Send.SendNotice(lpObj->m_Index,1,"Você ultrapassou o limite de %d báus!",MaxBaus);
    		return;
    	}
    
    	else
    	{
    		if(lpObj->m_IfState.type != 1 && lpObj->m_IfState.use != 1)
    		{
    		        GCLevelUpMsgSend(lpObj->m_Index,0);
                            MySQL.Execute("EXEC BAU '%s', %d",lpObj->AccountID,b_Index);
    	                Send.SendNotice(lpObj->m_Index,1,"Baú trocado com sucesso! Você está usando o nº %d", b_Index);
    		}
    		else
    		{
    			Send.SendNotice(lpObj->m_Index,1,"Feche o bau para usar esse comando!");
    		    return;
    		}
    	}
    }

  3. #3

    Avatar de Willerson
    Data de Ingresso
    Aug 2009
    Localização
    Em Algum Lugar
    Posts
    560
    Agradecido
    1630
    Agradeceu
    90
    Peso da Avaliação
    30

    Padrão

    @Geniopx, seu comando está muito bom para um Iniciante, parabéns por ele, e agradeço por ter postado para esse povo, só peço que crie as procedures para uma versão mais nova também quando puder, pois a procedure acima, creio eu que seja para versões abaixo de season 2.

    Att. Willerson

  4. #4

    Avatar de Geniopx
    Data de Ingresso
    May 2010
    Localização
    Internet
    Idade
    44
    Posts
    29
    Agradecido
    0
    Agradeceu
    0
    Peso da Avaliação
    0

    Padrão

    @Willerson Muito Obrigado ! Sobre as procedures creio que ela funciona para as vesções mais atuais sim , eu não posso dizer com toda certeza pois apenas desenvolvo para versão 97d porém somente precisa para funcionar a tabela warehouse ( Que deve ter em todas vesões , podendo mudar apenas o nome ou algumas colunas) . Quando sobrar um tempinho vou tentar testar em uma versão mais atual

    Peço a galera que tiver dúvidas ou se encontrar algum problema que poste , assim que possivel estarei ajudando =)

  5. #5

    Avatar de k12leito
    Data de Ingresso
    Sep 2009
    Localização
    Santa Catarina
    Posts
    91
    Agradecido
    4
    Agradeceu
    3
    Peso da Avaliação
    17

    Padrão

    olá nas versoes novas muda apenas a procedure, nos lugar exemplo: itemback varbinary(1200) ficaria o tamanho da coluna items do bau no caso a 97 usa [items] [varbinary] (1200) NULL se fosse [items] [varbinary] (1920) NULL , o itemback varbinary(1200) ficaria itemback varbinary(1920).

  6. #6

    Avatar de Geniopx
    Data de Ingresso
    May 2010
    Localização
    Internet
    Idade
    44
    Posts
    29
    Agradecido
    0
    Agradeceu
    0
    Peso da Avaliação
    0

    Padrão

    @k12leito muito obrigado eu nem sequer sabia disso , pois nunca configurei ou até mesmo joguei outra versão a não ser 97d e 99z

    ---------- Post added at 05:40 PM ---------- Previous post was at 04:38 PM ----------

    Citação Postado originalmente por eGamesDev Ver Post
    Código:
    void COMMAND_CORE::CommandVault(short aIndex,char * arg)
    {
    	int MaxBaus = 0;
    
    	if(lpObj->Vip == 0) MaxBaus = this->MaxWarefree;
    	if(lpObj->Vip == 1) MaxBaus = this->MaxWareVip1;
    	if(lpObj->Vip == 2) MaxBaus = this->MaxWareVip2;
    	if(lpObj->Vip == 3) MaxBaus = this->MaxWareVip3;
    	if(lpObj->Vip == 4) MaxBaus = this->MaxWareVip4;
    	if(lpObj->Vip == 5) MaxBaus = this->MaxWareVip5;
    
    	int b_Index = GetNumber(arg,0);
    	
    	if(b_Index < 0)
    	{
    		Send.SendNotice(lpObj->m_Index,1,"Erro de Sintaxe : /bau <numero>");
    		return;
    	}
    	
    	else if(b_Index > MaxBaus)
    	{
    		Send.SendNotice(lpObj->m_Index,1,"Você ultrapassou o limite de %d báus!",MaxBaus);
    		return;
    	}
    
    	else
    	{
    		if(lpObj->m_IfState.type != 1 && lpObj->m_IfState.use != 1)
    		{
    		        GCLevelUpMsgSend(lpObj->m_Index,0);
                            MySQL.Execute("EXEC BAU '%s', %d",lpObj->AccountID,b_Index);
    	                Send.SendNotice(lpObj->m_Index,1,"Baú trocado com sucesso! Você está usando o nº %d", b_Index);
    		}
    		else
    		{
    			Send.SendNotice(lpObj->m_Index,1,"Feche o bau para usar esse comando!");
    		    return;
    		}
    	}
    }
    Sim ! Eu usei as mesmas mensagens de erro Acho que esse source é da MCTeam não ? Porém este source que postei foi eu que desenvolvi !

  7. #7

    Avatar de divulguer
    Data de Ingresso
    May 2010
    Localização
    na cadeira do vc
    Idade
    30
    Posts
    29
    Agradecido
    0
    Agradeceu
    0
    Peso da Avaliação
    0

    Padrão

    a da MCTEAM esta programado em classes certo ? \O/ fica mais organizado pelo uq eu sei ... ou fica melhor ou nao tem diferença ?

  8. #8

    Avatar de Diel
    Data de Ingresso
    Sep 2009
    Localização
    Brasilia
    Idade
    35
    Posts
    106
    Agradecido
    1
    Peso da Avaliação
    17

    Padrão

    Geniopx

    essa source e minha sim man!

    att
    diel

  9. #9

    Avatar de Geniopx
    Data de Ingresso
    May 2010
    Localização
    Internet
    Idade
    44
    Posts
    29
    Agradecido
    0
    Agradeceu
    0
    Peso da Avaliação
    0

    Padrão

    Bom com Classes é claro que fica bem mais organizada , porém se eu postasse ela orientada a objetos iniciantes iriam ficar meio perdidos e até mesmo não conseguiriam compilar .
    Última edição por Segredo; 26-09-2010 às 01:21 PM. Razão: Não utilize QUOTE apenas se refira a pessoa a qual mensagem foi indicada.

  10. #10

    Avatar de Biersack05
    Data de Ingresso
    Aug 2010
    Localização
    são paulo
    Posts
    12
    Agradecido
    1
    Peso da Avaliação
    0

    Padrão

    se foçe ponhar na minha Obj como ficaria ?

    Exp : /*0xC70*/ /*|04|*/ usigned int WereHouseSave;

    correto ?

 

 
Página 1 de 2 12 ÚltimoÚltimo

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. |Pedido| Comando
    Por kaiocnx no fórum Pedidos
    Respostas: 4
    Último Post: 20-03-2016, 11:57 PM
  2. |Resolvido| add comando /creation
    Por xxrenanxx no fórum Tópicos resolvidos
    Respostas: 4
    Último Post: 03-04-2012, 04:30 PM
  3. |Release| Comando //clanfull
    Por UnderZone no fórum L2J -Mods
    Respostas: 0
    Último Post: 13-03-2012, 12:33 AM
  4. |Release| Comando Personalizado de GM
    Por Trozay no fórum AI | Desenvolvimentos
    Respostas: 0
    Último Post: 07-09-2011, 09:24 PM

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
  •