Ir para conteúdo
Faça parte da equipe! (2024) ×

own3dcor3

Silver Member
  • Total de Posts

    403
  • Registro em

  • Última visita

  • WCoins

    0

Posts postados por own3dcor3

  1. esses valores ficam dentro de uma array no executável, tanto no cliente como no servidor, se precisar alterar procure em hex o valor dos atributos de uma montaria ou montaria temporária, com isso você pode achar os valores para modificar.

    Pode usar hexworkshop ou qualquer editor hexadecimal.

  2. Essa situação ocorre na sectimer da TM, porem é na sectimer do executavel e não da source code.

    Para fixar isso você precisa desabilitar a função que faz o teleport para fora da área, é a mesma responsável pelas quests e vale.

  3. para que o auto-buff funcione corretamente, você define o tempo da skilldata.bin do cliente com 1/4 do tempo do servidor se não me engano, isso faz com que o buff funcione no tempo correto.

    Se você deixar parado um tempo vai ver que os buffs são ativados, mas em longo intervalo de tempo.

  4. Fera, INV_SLOT é apenas um define, p-> é um ponteiro e pode ter outro nome no seu código, basta olhar o que está setando o ponteiro da struct do 373, e clientId é o conn no caso do seu código, olhe melhor o código em que está trabalhando para encontrar uma solução para esses problemas.

    Caso tenha dúvida de como alguma dessas funções funcionem, clique nela e aperte a tecla f12 que irá diretamente para o que essa função faz.

  5. if (Vol == 184)

    {

    int donate = BASE_GetItemAbility(item, _DN_NeedDonate); // -> checar o valor que está definido na itemeffect e se no item está atribuído um valor base para adicionar.

     

    pUser[conn].Donate += donate; // caso tenha algum valor será atribuido a sua conta.

     

    SendClientMessage(conn, "Saldo de [%d] adicionado a sua conta, seu saldo atual é de [%d]", donate, pUser[conn].Donate);

     

    if (amount > 1)

    BASE_SetItemAmount(item, amount - 1); // remove um item caso seja volatile.

     

    else

    memset(&item, 0, sizeof(STRUCT_ITEM)); // zerou os itens ele exclui todos os valores.

     

    PutItem(clientId, INV_SLOT, p->SrcSlot, &item); // envia um item para o slot de uso, com os valores do slot utilizados e assim limpando ou deixando o slot livre para o jogador.

    SendEmotion(conn, 14, 3);

    return;

    }

  6. Eu penso assim. não vai usa mais compartilha porra!!! falam falam que tem que criar investir em conhecimento mais no final são tudo uns mama saco zoilhudos que não querem compartilha o conteudo evoluido; mais fala em comprar pra ver se não vende... afirmo aqui tudo que revolucionou das releanse de wyd pirata nada mais é do que copia da base do programado pTrox. do tempo de cb. O cara compartilhou conteudo revolucionou a nova era wyd tudo isso sem cobrar nada! Afirmo quem diz que criou que isso e aquilo esta mentindo afirmo aqui e doa a quem doer. Tudo que fizeram foi somente copia e otimizar em suas source furreca e disse que foi tal que fez. WYD 7.xx se não fosse pTrox até hoje não averia... então vão se fu------d....er..... to farto desse papo furado.

    Aguardando você postar seus conteúdos então :)

  7. Amigo, isso está completamente errado.

     

     

    for (i = 0; i < pMob[conn].MaxCarry; i++)

    {

    if (pMob[conn].MOB.Carry.sIndex != ItemReq)

    continue;

     

    break;

    }

     

    essa parte está meio que sem sentido, pois irá fazer um loop completo e achar a instrução, quando encontrar vai parar todo o seu code.

    Caso queria adicionar um novo item, adicione uma variavel ao seu codigo e verifique por ela.

     

     

    int ItemReq = 4056; //Marmita

    int ItemReq2 = 3314; // Frango Assado

     

    int achouitem1 = 0;

    int achouitem2 = 0;

    for (i = 0; i < pMob[conn].MaxCarry; i++)

    {

    if (pMob[conn].MOB.Carry.sIndex != ItemReq)

    continue;

    if(pMob[conn].Mob.Carry.SIndex == ItemReq && achouitem1 == 0)

    achouitem1++;

     

    else if(pMob[conn].Mob.Carry.SIndex == ItemReq2 && achouitem2 == 0)

    achouitem2++;

     

    if(achouitem1 == 0 & achouitem2 == 0)

    break;

    }

     

    if(achouitem1 & achouitem2)

    {

    // instrução

    }

     

     

    Outra coisa que está completamente errada é o seu _rd, ai está setado apenas para que valores inferiores a 9 sejam aceitos, ou seja, caso tenha um rand maior que 9 nada aconteceria.

     

     

    Outro detalhe.

    Item.sIndex = 540, 43, 9, 45, 12;

    a forma com que você atribui ao index também está totalmente errada. se for fazer dessa forma, faça da forma correta, isso irá gerar um problema muito grande no seu sistema.

    use item.sIndex = 540;

    item.Efv = 43;

    item. Efv1 = 9;

    e assim por diante.

     

     

    creio que um bom livro de c ou c++ iria lhe ajudar com essa sua dúvida simples, alguns capítulos e creio que você não terá mais dúvidas relacionadas a um problema simples como esse.

    • Curtir 1
×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.