Ir para conteúdo
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×

querestico

Membro
  • Total de Posts

    1
  • Registro em

  • Última visita

  • WCoins

    1

Titulo do usuário

  • TItulo de usuário
    felipe
  • 1726531200

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

querestico's Achievements

Novato

Novato (1/15)

  • Agora que já nos conhecemos... Rara
  • De grão em grão... Rara
  • Olá, mundo!

Emblemas Recentes

0

Reputação

  1. Olá, pessoal! Sou novo no fórum e na programação, mas vi que as pessoas ajudam bastante por aqui, por isso resolvi criar o post. Tenho um servidor particular, apenas para brincar com alguns amigos, mas não conseguimos criar itens celestiais. Tentei mais de 50 vezes, todas resultaram em falha. Como não entendo muito da programação, tentei corrigir algumas coisas no _MSG_CombineItemOdin.cpp, mas ainda assim, não consegui resolver. Não faço ideia de como consertar. Esse é meu primeiro post, então não sei direito qual é o procedimento para pedir ajuda. Devo enviar o arquivo aqui? Apenas colar o código? Como fazer para pedir ajuda a vocês? De qualquer maneira, vou postar o início do código desse arquivo, até o ponto onde estão as funções do item celestial para vocês olharem. Conto com a sua paciência, e agradeço desde já! #include "ProcessClientMessage.h" void Exec_MSG_CombineItemOdin(int conn, char *pMsg) { MSG_CombineItem *m = (MSG_CombineItem*)pMsg; for (int i = 0; i < MAX_COMBINE; i++) { if (m->Item.sIndex == 0) continue; int invPos = m->InvenPos; if (invPos < 0 || invPos >= pMob[conn].MaxCarry) { RemoveTrade(conn); return; } if (memcmp(&pMob[conn].MOB.Carry[invPos], &m->Item, sizeof(STRUCT_ITEM))) { MyLog(LogType::Combines, "err,msg_CombineOdin - item remove or changed.", pUser[conn].AccountName, 0, pUser[conn].IP); SendClientSignalParm(conn, ESCENE_FIELD, _MSG_CombineComplete, 0); return; } } int combine = GetMatchCombineOdin(m->Item); if (combine == 2) { int sAgua = 0; int sTerra = 0; int sSol = 0; int sVento = 0; if(m->Item[3].sIndex == 5334 || m->Item[4].sIndex == 5334 || m->Item[5].sIndex == 5334 || m->Item[6].sIndex == 5334) sAgua = 1; if(m->Item[3].sIndex == 5335 || m->Item[4].sIndex == 5335 || m->Item[5].sIndex == 5335 || m->Item[6].sIndex == 5335) sTerra = 1; if(m->Item[3].sIndex == 5336 || m->Item[4].sIndex == 5336 || m->Item[5].sIndex == 5336 || m->Item[6].sIndex == 5336) sSol = 1; if(m->Item[3].sIndex == 5337 || m->Item[4].sIndex == 5337 || m->Item[5].sIndex == 5337 || m->Item[6].sIndex == 5337) sVento = 1; if((sAgua && (sTerra == 0 || sSol == 0 || sVento == 0)) || (sTerra && (sAgua == 0 || sSol == 0 || sVento == 0)) || (sSol && (sAgua == 0 || sTerra == 0 || sVento == 0)) || (sVento && (sAgua == 0 || sTerra == 0 || sSol == 0))) { SendClientSignalParm(conn, ESCENE_FIELD, _MSG_CombineComplete, 0); return; } } if (combine == 2 && (BASE_GetItemSanc(&m->Item[2]) >= REF_15 || BASE_GetItemAbility(&m->Item[2], EF_MOBTYPE) == 3)) { SendClientSignalParm(conn, ESCENE_FIELD, _MSG_CombineComplete, 0); return; } if (combine == 4 && (pMob[conn].MOB.CurrentScore.Level != 39 || pMob[conn].Extra.QuestInfo.Celestial.Lv40 == 1 || pMob[conn].Extra.ClassMaster != CELESTIAL)) { SendClientSignalParm(conn, ESCENE_FIELD, _MSG_CombineComplete, 0); return; } if (combine == 11 && (pMob[conn].Extra.ClassMaster == MORTAL || pMob[conn].Extra.ClassMaster == ARCH || BASE_GetItemSanc(&pMob[conn].MOB.Equip[15]) >= 9)) { SendClientSignalParm(conn, ESCENE_FIELD, _MSG_CombineComplete, 0); return; } for (int i = 0; i < MAX_COMBINE; i++) { if (m->Item.sIndex == 0) continue; memset(&pMob[conn].MOB.Carry[m->InvenPos], 0, sizeof(STRUCT_ITEM)); SendItem(conn, ITEM_PLACE_CARRY, m->InvenPos, &pMob[conn].MOB.Carry[m->InvenPos]); } for (int i = 0; i < MAX_COMBINE; i++) { if (m->Item.sIndex) { char itemlog[2048]; BASE_GetItemCode(&m->Item, itemlog); strcat(temp, itemlog); } } srand(time(NULL) /0.7432524524515122 - (rand() % 62325928) * .124323); int _rand = rand() % 91; if (combine == 1)//Item celestial { // if (_rand <= g_pOdinRate[combine] || LOCALSERVER) // { memcpy(&pMob[conn].MOB.Carry[m->InvenPos[1]], &m->Item[1], sizeof(STRUCT_ITEM)); pMob[conn].MOB.Carry[m->InvenPos[1]].sIndex = g_pItemList[m->Item[0].sIndex].Extra; BASE_SetItemSanc(&pMob[conn].MOB.Carry[m->InvenPos[1]], 0, 0); char tt[256]; SendNotice(g_pMessageStringTable[_SS_Combin_12Succ]); SendClientSignalParm(conn, ESCENE_FIELD, _MSG_CombineComplete, 1); sprintf(temp, "%s ", pUser[conn].AccountName); BASE_GetItemCode(&pMob[conn].MOB.Carry[m->InvenPos[1]], tt); strcat(temp, tt); MyLog(LogType::Combines, "*** Combine odin item celestial sucess ***", pUser[conn].AccountName, 0, pUser[conn].IP); SendItem(conn, ITEM_PLACE_CARRY, m->InvenPos[1], &pMob[conn].MOB.Carry[m->InvenPos[1]]); return; /* } else { memcpy(&pMob[conn].MOB.Carry[m->InvenPos[1]], &m->Item[1], sizeof(STRUCT_ITEM)); SendItem(conn, ITEM_PLACE_CARRY, m->InvenPos[1], &pMob[conn].MOB.Carry[m->InvenPos[1]]); sprintf(temp, "%s", g_pMessageStringTable[_NN_CombineFailed]); SendClientMsg(conn, temp); SendClientSignalParm(conn, ESCENE_FIELD, _MSG_CombineComplete, 2); MyLog(LogType::Combines, "*** Combine odin item celestial fail ***", pUser[conn].AccountName, 0, pUser[conn].IP); return; } */ }
×
×
  • 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.