combatrw ganhou no último dia 25 de Dezembro 2025
combatrw teve o conteúdo mais curtida!
Últimos Visitantes
O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.
combatrw's Achievements
-
BASE W2PP CLONE WYD ROGUE (RELEASE + CLIENTE + 2 SOURCE)
combatrw respondeu ao tópico de Mauzyn em WYD - Desenvolvimento
Essa TM ta crashando depois de um tempo, juntei 5 pessoas pra testar e ela ja crashou umas 3x e sem mensagem de erro. To debugando pra ver se acho a origem do problema. Alguem se deparou com isso também? -
combatrw começou a seguir WYD COMUNIDADE 7.59 MÉDIO/MÉDIO , BASE W2PP CLONE WYD ROGUE (RELEASE + CLIENTE + 2 SOURCE) , AJUDA CÓDIGO LOJINHA FANTASMA 7.59 e 3 outros
-
BASE W2PP CLONE WYD ROGUE (RELEASE + CLIENTE + 2 SOURCE)
combatrw respondeu ao tópico de Mauzyn em WYD - Desenvolvimento
Esse client só abre em tela cheia, não abre nas resoluções 800x640 etc. Como arruma isso? -
Bom, agradeço a resposta, mas não entendo nada disso, vou mesmo assim tentar junto a IA uma solução baseado nessas coisas que me disse.
-
combatrw alterou sua foto pessoal
-
Fala ae pessoal, recebi ajuda de um usuário aqui da WC para editar o código de lojinha fantasma na versão 7.59 (tipo a base do the new world), e sinto que ta quase lá. Consigo criar o boneco que fica de loja, porém não fica como loja clicável, apenas o coelhinho parado conforme print. Tenho a relação de códigos e vou postar aqui pra caso alguem se interesse e também quem possa me ajudar a entender o que eu estou errando, só comentando que além do código que Renanzim me passou eu consegui melhorar mais, ainda assim não foi suficiente. PRINT>> [Hidden Content] Exec_MSG_SendAutoTrade.cpp > #include "ProcessClientMessage.h" #include "..\\Basedef.h" void Exec_MSG_SendAutoTrade(int conn, char* pMsg) { SendAutoTrade(conn, conn); if (conn <= 0 || conn >= MAX_USER) return; if (pUser[conn].Mode != USER_PLAY) return; MSG_SendAutoTrade* m = (MSG_SendAutoTrade*)pMsg; /* =============================== VALIDA SIZE DO PACKET =============================== */ if (m->Size > sizeof(MSG_SendAutoTrade)) { SendClientMessage(conn, "Erro ao abrir loja. Tente novamente."); return; } /* =============================== VALIDA ESTADO DO PLAYER =============================== */ if (pMob[conn].MOB.CurrentScore.Hp <= 0) { SendHpMode(conn); RemoveTrade(conn); return; } if (pUser[conn].Trade.OpponentID) { RemoveTrade(pUser[conn].Trade.OpponentID); RemoveTrade(conn); return; } if (pUser[conn].TradeMode) { SendClientMessage(conn, g_pMessageStringTable[_NN_CantWhenAutoTrade]); return; } if (NewbieEventServer == 0) { SendClientMessage(conn, g_pMessageStringTable[_NN_NEWBIEEVENTSERVER]); return; } /* =============================== LIMITADOR DE LOJAS =============================== */ if (pUser[conn].Ingame.Lojinha) { DeleteMob(MAX_MOB + conn, 2); pUser[conn].Ingame.Lojinha = 0; RemoveTrade(conn); SendClientMessage(conn, "Sua loja foi fechada."); return; } if (Limitadordelojinha(pUser[conn].MacAddress) >= 1) { SendClientMessage(conn, "Apenas 1 AutoLoja por máquina."); RemoveTrade(conn); return; } int sameIP = 0; for (int i = 0; i < MAX_USER; i++) { if (pUser.Mode != USER_PLAY) continue; if (!pUser.cSock.Sock) continue; if (pUser.Ingame.Lojinha && pUser.IP == pUser[conn].IP) sameIP++; } if (sameIP >= 1) { SendClientMessage(conn, "Apenas 1 AutoLoja por IP."); RemoveTrade(conn); return; } /* =============================== VALIDA POSIÇÃO =============================== */ int posX = pMob[conn].TargetX; int posY = pMob[conn].TargetY; int Village = BASE_GetVillage(posX, posY); if (Village < 0 || Village >= 5) { SendClientMessage(conn, g_pMessageStringTable[_NN_OnlyVillage]); RemoveTrade(conn); return; } if (posX >= 2123 && posX <= 2148 && posY >= 2139 && posY <= 2157) { SendClientMessage(conn, g_pMessageStringTable[_NN_OnlyVillage]); RemoveTrade(conn); return; } /* =============================== VALIDA ITENS DA LOJA =============================== */ bool hasItem = false; for (int i = 0; i < MAX_AUTOTRADE; i++) { if (m->Coin < 0 || m->Coin > 1999999999) return; if (m->Item.sIndex) { hasItem = true; if (!m->Coin) return; if (m->CarryPos < 0 || m->CarryPos >= MAX_CARGO) return; if (BASE_GetItemAbility(&m->Item, EF_NOTRADE)) { SendClientMessage(conn, g_pMessageStringTable[_NN_Cant_MoveItem]); return; } if (memcmp(&pUser[conn].Cargo[m->CarryPos], &m->Item, sizeof(STRUCT_ITEM))) { RemoveTrade(conn); return; } } } if (!hasItem) { SendClientMessage(conn, "Necessário pelo menos um item."); return; } /* =============================== APLICA TAXA DA CIDADE =============================== */ m->Tax = g_pGuildZone[Village].CityTax; m->Title[MAX_AUTOTRADETITLE - 1] = 0; m->Title[MAX_AUTOTRADETITLE - 2] = 0; /* =============================== SALVA AUTOTRADE NO USER =============================== */ memcpy(&pUser[conn].AutoTrade, m, sizeof(MSG_SendAutoTrade)); /* =============================== CRIA MOB DA LOJINHA =============================== */ /* =============================== CRIA MOB DA LOJINHA =============================== */ int mobid = CreateMobStore( "AutoStore", posX, posY, "npc", 0, MAX_MOB + conn, conn ); if (mobid <= 0) { SendClientMessage(conn, "Não foi possível abrir a loja."); return; } /* =============================== SALVA AUTOTRADE NO NPC =============================== */ memcpy(&pMob[mobid].AutoTrade, m, sizeof(MSG_SendAutoTrade)); pMob[mobid].TradeMode = 1; pMob[mobid].Leader = conn; pMob[mobid].IsSummon = 2; pUser[conn].Ingame.Lojinha = 1; pMob[conn].CheckLojinha = 600; if (mobid <= 0) { SendClientMessage(conn, "Não foi possível abrir a loja."); pUser[conn].Ingame.Lojinha = 0; pUser[conn].TradeMode = 0; return; } /* =============================== ENVIA PACOTE DE LOJA AO CLIENT =============================== */ MSG_CreateMobTrade sm; memset(&sm, 0, sizeof(MSG_CreateMobTrade)); sm.Score.Con = 0; GridMulticast(posX, posY, (MSG_STANDARD*)&sm, 0); /* =============================== FINALIZA =============================== */ RemoveTrade2(conn); SendClientMessage(conn, "Sua AutoLoja foi aberta com sucesso!"); } int CreateMobStore em GetFunc.cpp > int CreateMobStore(char* MobName, int PosX, int PosY, char* folder, int Type, int indexMob, int conn) { int tmob = indexMob; if (tmob == 0) { char temp[1024]; sprintf_s(temp, "err,no emptymob create %s", MobName); Log(temp, "-system", 0); return -1; } ReadMob(&pMob[tmob].MOB, "npc"); strncpy(pMob[tmob].MOB.MobName, MobName, NAME_LENGTH); memset(&pMob[tmob].PartyList, 0, sizeof(pMob[tmob].PartyList)); memcpy(&pMob[tmob].MOB, &pMob[conn].MOB, sizeof(STRUCT_MOB)); strncpy(pMob[tmob].MOB.MobName, pMob[conn].MOB.MobName, NAME_LENGTH); pMob[tmob].MOB.MobName[NAME_LENGTH - 1] = 0; pMob[tmob].MOB.BaseScore.Merchant = 0; for (int i = 0; i < NAME_LENGTH; i++) { if (pMob[tmob].MOB.MobName == 95) // '_' pMob[tmob].MOB.MobName = 32; // espaço if (pMob[tmob].MOB.MobName == '@') pMob[tmob].MOB.MobName = 0; } memset(pMob[tmob].Affect, 0, sizeof(pMob[tmob].Affect)); for (int i = 0; i < MAX_SEGMENT; i++) { if (pMob[tmob].MOB.Equip[0].sIndex != 220 && pMob[tmob].MOB.Equip[0].sIndex != 219 && pMob[tmob].MOB.Equip[0].sIndex != 358) { pMob[tmob].SegmentListX = PosX + rand() % 5 - 2; pMob[tmob].SegmentListY = PosY + rand() % 5 - 2; } else { pMob[tmob].SegmentListX = PosX; pMob[tmob].SegmentListY = PosY; } } if (pMob[tmob].MOB.Equip[0].sIndex == 220 || pMob[tmob].MOB.Equip[0].sIndex == 219) { if (pMob[tmob].MOB.Equip[0].sIndex == 219) { pMob[tmob].MOB.Guild = g_pGuildZone[4].ChargeGuild; pMob[tmob].MOB.GuildLevel = 0; } } pMob[tmob].MOB.Equip[0].sIndex = 230; pMob[tmob].MOB.Equip[6].sIndex = 0; pMob[tmob].MOB.Equip[7].sIndex = 0; pMob[tmob].MOB.Equip[14].sIndex = 0; pMob[tmob].MOB.BaseScore.Con = 400; pMob[tmob].GenerateIndex = -1; pMob[tmob].Formation = 0; pMob[tmob].RouteType = Type; pMob[tmob].Mode = 4; //pMob[tmob].TradeMode = 1; pMob[tmob].SegmentDirection = 0; pMob[tmob].IsSummon = 1; pMob[tmob].Leader = conn; // dono da loja pMob[tmob].WaitSec = Type == 0 ? 10 : 40; pMob[tmob].LastTime = CurrentTime; pMob[tmob].Leader = 0; pMob[tmob].GetCurrentScore(tmob); pMob[tmob].MOB.CurrentScore.Hp = pMob[tmob].MOB.CurrentScore.MaxHp; if (NewbieEventServer && pMob[tmob].MOB.CurrentScore.Level < 120) pMob[tmob].MOB.CurrentScore.Hp = 3 * pMob[tmob].MOB.CurrentScore.Hp / 4; pMob[tmob].SegmentProgress = Type == 0 ? 0 : 4; memset(pMob[tmob].EnemyList, 0, sizeof(pMob[tmob].EnemyList)); int px = pMob[tmob].SegmentListX[0]; int py = pMob[tmob].SegmentListY[0]; int mobslot = GetEmptyMobGrid(tmob, &px, &py); if (mobslot == 0) { char temp[1024]; sprintf_s(temp, "err,No empty mobgrid:%s x:%d y:%d", MobName, px, py); Log(temp, "-system", 0); pMob[tmob].Mode = 0; pMob[tmob].MOB.MobName[0] = 0; strncpy(pMob[tmob].Tab, "#VEMPROROGUE", 26); pMob[tmob].GenerateIndex = indexMob; return -2; } pMob[tmob].SegmentX = px; pMob[tmob].TargetX = px; pMob[tmob].LastX = px; pMob[tmob].SegmentY = py; pMob[tmob].TargetY = py; pMob[tmob].LastY = py; int skillnum = pMob[tmob].MOB.BaseScore.MaxMp; if (skillnum) { SetAffect(tmob, skillnum, 30000, 200); SetTick(tmob, skillnum, 30000, 200); } MSG_CreateMob sm; memset(&sm, 0, sizeof(MSG_CreateMob)); GetCreateMob(tmob, &sm); sm.CreateType |= 2; pMobGrid[py][px] = tmob; // === PARTE CRÍTICA PARA VIRAR LOJA === pMob[tmob].IsSummon = 2; SendGridMob(conn); // 🔥 seller / dono SendGridMob(tmob); // 🔥 a própria loja pMob[tmob].IsSummon = 1; GridMulticast(px, py, (MSG_STANDARD*)&sm, 0); // ==================================== return TRUE; } RemoveTrade2 em Server.cpp > void RemoveTrade2(int conn) { if (conn <= 0 || conn >= MAX_USER) return; if (pUser[conn].Mode != USER_PLAY) return; memset(&pUser[conn].Trade, 0, sizeof(MSG_Trade)); for (int i = 0; i < MAX_TRADE; i++) pUser[conn].Trade.InvenPos = -1; SendClientSignal(conn, conn, 900); if (pUser[conn].TradeMode) { int posX = pMob[conn].TargetX; int posY = pMob[conn].TargetY; MSG_CreateMob sm; memset(&sm, 0, sizeof(MSG_CreateMob)); GetCreateMob(conn, &sm); GridMulticast(posX, posY, (MSG_STANDARD*)&sm, 0); pUser[conn].TradeMode = 1; } } ainda tem getfunc.h , server.h mas só pra declarar as int no caso. Seja humilde e me ajude por favor.
-
Você é um anjo de Deus. Que o Senhor abençoe grandemente sua vida e que 2026 seja um ano de muita vitória para você e sua familia. Se eu puder contribuir ou ajudar com algo seu, eu ficaria muito feliz. Obrigado.
-
Então, como eu comentei anteriormente, a source que eu uso é muito parecida com aquela que voce citou acima, só que mais atual, onde possuo também a source do client exe, vou buscar entender isso que você disse e tentar fazer por ele.
-
Caro amigo, eu uso uma source muito parecida com essa, conheço o arquivo que está mencionando, trata as composições da Ehre, eu pensei em adicionar, mas minha ideia original é criar outro npc com outras composições, isso é mais dificil do que parece. Se fosse fácil realmente a gente veria isso a rodo, ai quando a gente fala com alguem que tem servidor mais lotado o cara enche a boca pra falar " criei novas composições , blá blá blá" . Quando descobrir como vou publicar um tutorial pra ajudar outras pessoas. Abraço.
-
Caro amigo, desculpe pelo caps, fui ignorante. Quanto ao que perguntou se tentei, sim, busquei fazer algo do tipo, porém a Ehre não é declarada como merchant como os outros npcs, eu entendi o que voce quis dizer, eu mesmo ja criei npc de teleporte, de troca de itens, etc, fazendo dessa forma. A Ehre é diferente, ela não é declarada na source do client também, acredito que para criar algo como ela teria que usar o mixlist, ainda não sei como, vou buscar uns tutoriais pra ver se acho uma resposta. Desde já agradeço sua atenção em responder esse post. Abraço.
-
também preciso de ajuda com isso
-
PESSOAL, BOA TARDE, FELIZ NATAL A QUEM LER. EU ESTOU TENTANDO CRIAR UM NPC COMPOSITOR, NO ESTILO DA EHRE, PORÉM QUERO COPIAR O MODELO DE CRIAÇÃO DA SOUL, NO LUGAR DE CONFIGURAR A SOUL SERIA PARA CRIAR COLARES E CINTOS. TIPO JUNTA X ITENS E COMPO O CINTO OU COLAR QUE ESCOLHER, HP, MP, VELO DE ATAQUE, ETC. A BASE QUE ESTOU USANDO É A DO THE NEW WORLD 7.59. TENHO SOURCE DO SERVER E DO CLIENT. SE ALGUEM PUDER ME EXPLICAR MAIS OU MENOS O QUE PRECISO ALTERAR OU CRIAR DO ZERO PARA TER UM NPC ASSIM EU AGRADEÇO. PRO CASO DE NPC QUE SÓ RESPONDE "TRAGA ALGO QUE EU FAÇO ISSO OU AQUILO" EU JA SEI FAZER. O QUE QUERO É O NPC QUE CLICA E APARECE A JANELA PARA ESCOLHER A COMPOSIÇÃO.
-
Problema ao editar composição do npc
combatrw respondeu ao tópico de asdasdasdas123 em WYD - Dúvidas
Pode mostrar como ficou o código da ehre ou algum outro que tenha alterado? eu to tentando criar um novo npc compositor -
INFINITY WYD 7.59 ON BETA!
combatrw respondeu ao tópico de combatrw em Servidores em Versão Beta-Teste / Projetos
ADM, FAVOR FECHAR ESSE TÓPICO -
WYD COMUNIDADE 7.59 MÉDIO/MÉDIO
combatrw postou um tópico no fórum em Servidores em Versão Beta-Teste / Projetos
VEM ! aqui tem KIT INICIANTE + CADASTRO PREMIADO (15K DONATE) ! WYD Comunidade 🥇Lançamento Oficial 01/26 ! 🔰Versão: 7.59 🔰EXP: MEDIO 🔰Drop: MEDIO 🔰Rates Compositores: MEDIO 📌Sistema RECONNECT: Reconect caso tome DC 📌Sistema de Grupos 📌 Ataque Mágico Azul. 📌 Modo Widescreen 📌 Jogo ira possuir 18 slots. Traje Montaria, Cinto, Colar 📌 A Fada Dourada estará agrupando os itens agrupaveis. 📌 Colocando Lojinha por 5 minutos receba 1 Pontos de Honra. 📌 Comandos de Armia,Azran,Erion ETC. = Tecla D 📌 Loja donate in game = Tecla D 📌 Drop List in game = Tecla D 📌 Comandos Exclusivos = /armia , /pilar , /kefra , etc 📌 KIT ESPECIAL NOVATO SET +11 INICIANTE pelo comando /novato 📌 Sistema criação de Cinto, Colar e Brincos(Faça Crafts) 🟢Ranking PVP In Game 🟢Ranking Level In Game 🟢Painel Pix para envio donate player pra player 🟢DropList In Game 🟢Filtro Drop 🆚Guerra de Torres as 21h 🆚Guerra de Reinos 22h 🛡️ Boss Tarantula a cada 4 horas 🛡️ Boss Dark Shadow a cada 4 horas 🛡️ Boss Frost (guilda) toda Segunda Feira Cada doação recebida é convertida para manutenção do servidor. 🎁 Premiação Especial: 🎁 30K DE DONATE ✨ (1) Fada Vermelha (3 dias) 📦 (5) Baús de Experiência 🍗 (2) Frangos 🐎 (1) Shire – 30 Dias KIT MIGRAÇÃO COMPLETO PARA GUILDAS (CHAME NO WHATSAPP). Link do grupo Whatsapp : [Hidden Content] Site : www.wydmasters.com.br/comunidade/ -
WYD INFINITY 7.59 - LANÇAMENTO
combatrw respondeu ao tópico de combatrw em Servidores em Versão Beta-Teste / Projetos
ALGUM ADM PODE FECHAR O TOPICO? SERVER DESATIVADO. -
eai mano achou algum pro brasil server ?
-

