Tio Akima

Membro
  • Total de itens

    71
  • Registro em

  • Última visita

  • Days Won

    6

Reputação

30 Contribuidor

6 Seguidores

Sobre Tio Akima

M?todos de Contato

  • Website URL
    http://tioakima.deviantart.com/

Informa??o do Perfil

  • Sexo:

Últimos Visitantes

2.086 visualizações
  1. Faz o seguinte, no browedit, utilizando o modo Global, você seleciona a parte do mapa que você quer, depois de selecionado, essa parta vai ficar em destaque, use a tecla C para copiar... Com a parte do mapa copiada, leve o mouse até a opção NEW e crie um novo grid, a parte que você copiou vai aparecer nesse novo grid, basta você escolher o local e clicar com o botão esquerdo do mouse. Isso é praticamente recortar um pedaço do mapa e jogar em um novo grid. Acho que é a solução mais viável pra sua questão.
  2. ÒTIMO Vermilion! Parabéns pelo tutorial e agradecemos pela contribuição a comunidade!
  3. Mestres dos magos em ação! HUASUHSAUHASHU
  4. Visulizar Arquivo Bundaring (Poring Bundinha) - Tio Akima Esse é o Poring BumBum Tam Tam* - Qual bumbum mais bate? Qual bumbum mais pula? Faz um tempo que editei esse poring pro iMihael, estava perdido aqui no meu pc, estou disponibilizando aqui no forum pra quem quiser. Além de servir como beckup pra mim msmo (hahaha) Desenhei uma bundinha no poring, então... Basta ser criativo que sai daí vários eventos divertidos e engraçados. haha att, Tio Akima Autor Tio Akima Enviado 04-09-2017 Categoria Monstros  
  5. Opa, valew HD, consegui setar as direções usando o sc_start mesmo, ele tem vários parâmetros, fui até sua declaração pra saber quais eram.. Agora estou pesquisando como chamar skill's pelo arquivo Status.c inicialmente qualquer skill pra teste! Mas não sei qual função poderia fazer isso no arquivo status.c
  6. Olá pessoal, estou tentando outra estratégia, fazendo o mob andar usando SC_RUN sc_start(src,&md->bl,SC_RUN,100,skill_lv,skill->get_time2(skill_id,skill_lv)); Até ai tudo bem, mas.. como definir a direção que eu quero? Digo, definir as direções*
  7. Seu emulador é o brA ? Ta faltando remover em algum arquivo, porq se não remover de todos, ela vai continuar aparecendo no seu Alt S Não tem nenhum arquivo no banco de dados que também precisa remover? @EDIT Alias, na pasta data tem 2 caminhos bem semelhantes... Da uma olhada - luafiles514\lua files\skillinfoz - luafiles514\lua files\skillinfo
  8. Faz o seguinte: Em battle.c, na função: int battle_check_target( struct block_list *src, struct block_list *target,int flag) No inicio (cabeçalho da função) coloque isto: struct map_session_data *sd = NULL; //condição para acertar um mob apenas se estiver usando determinado item int hand1,hand2 = 0; //condição para acertar um mob apenas se estiver usando determinado item int item_id = 1201; //knife //condição para acertar um mob apenas se estiver usando determinado item int mob_id = 1002; //poring //condição para acertar um mob apenas se estiver usando determinado item Agora, abaixo do primeiro IF(), você coloca essa condição: if(src->type==BL_PC){ sd = BL_UCCAST(BL_PC,src); hand1 = sd->status.inventory[sd->equip_index[EQI_HAND_L]].nameid; hand2 = sd->status.inventory[sd->equip_index[EQI_HAND_R]].nameid; } Agora procure por estas linhas que setam condições da pedra do Emperium: if (map_flag_gvg(m) && !sd->status.guild_id && t_bl->type == BL_MOB && BL_UCCAST(BL_MOB, t_bl)->class_ == MOBID_EMPELIUM) return 0; //If you don't belong to a guild, can't target emperium. if( t_bl->type != BL_PC ) state |= BCT_ENEMY; //Natural enemy. break; E logo acima, coloque a essa condição: if(BL_UCCAST(BL_MOB, t_bl)->class_ == mob_id && (hand1 != item_id || hand2 != item_id)) return 0; Oque vai acontecer ai é o seguinte, você configura la em cima o ID do equipamento que você quer.. configura o ID do mob que vc quer atacar.. Se você estiver sem esse equipamento, você não consegue atacar o MOB. Se tiver com o equipamento, você ataca normalmente. É isso.. Só compilar e ser Feliz. Thanks/collaboration: @Vor pela ajuda e por compartilhar seu conhecimento. @Easycore (from Herc. community) pela contribuição.
  9. Tenta alterar no arquivo msgstringtable.txt Esse arquivo fica na sua pasta data. No meu funciona perfeitamente. tenta essa alternativa, talvez resolva.
  10. Estou lendo sobre alguns comandos ai Unit->walk, entre outros.. acredito que o caminho é por ai mesmo... Estou fazendo uma skill que sumona um mob correndo numa direção (na direção que o player estiver virado ) e quando o mob encontrar uma célula nao andável (ou ocupada) o mob desaparece. @EDIT: Encontrei essa skill case NPC_RUN: { const int mask[8][2] = {{0,-1},{1,-1},{1,0},{1,1},{0,1},{-1,1},{-1,0},{-1,-1}}; uint8 dir = (bl == src)?unit->getdir(src):map->calc_dir(src,bl->x,bl->y); //If cast on self, run forward, else run away. unit->stop_attack(src); //Run skillv tiles overriding the can-move check. if (unit->walktoxy(src, src->x + skill_lv * mask[dir][0], src->y + skill_lv * mask[dir][1], 2) && md) md->state.skillstate = MSS_WALK; //Otherwise it isn't updated in the AI. } break; Vou tentar editar e usar algo...
  11. Olá pessoal, alguém sabe se te alguma função na SRC para manipular um mob? (faze-lo andar nas direções que vc quer) Estive olhando em mob.c e vi que tem o comando mob->randomwalk() faz o mob andar, mas para direções randômicas... Se acaso não tiver nenhum comando especifico, vou ter que adaptar esse.
  12. Desculpe HD, erro meu Troca o comando "script_reload(nd);" pelo npc->reload(nd);
  13. HD tem algumas coisas que está estranho... algo errado nao está certo, rs como por exemplo a declaração em cima, tenta por ACMD aqui ó, testa esse daqui ACMD(npc) { char npcname[NAME_LENGTH+1]; struct npc_data *nd; memset(npcname, '\0', sizeof(npcname)); // armazenar oque o plyer digitou na variavel "npcname" if (!*message || sscanf(message, "%23[^\n]", npcname) < 1) { clif->message(fd, msg_fd(fd,1129)); // Please enter a NPC name (usage: @npc <NPC_name>). return false; } nd = npc->name2id(npcname); //Seleciona o script a ser executado (nome do script deve ser igual ao conteudo do parâmetro) if (nd){ npc->reload(nd); clif->message(fd, msg_fd(fd,100)); // Scripts carregado } else { clif->message(fd, msg_fd(fd,111)); // Este NPC não existe return false; } return true; } compilei aqui e rodou! veja se da ok ai @EDIT tenta agora @HD Scripts
  14. Acho que entendi hahah pelo rumo que tava tomando o post, achei que você queria só exibir mensagens na tela (ou no console) Bom, você pode tentar fazer o seguinte (seguindo a lógica do que você quer) ACMD_FUNC(npc) { struct npc_data* nd; nullpo_retr(-1, sd); char nome_script; memset(nome_script, '\0', sizeof(nome_script)); // armazenar oque o plyer digitou na variavel "nome_script" nd = npc->name2id("nome_script"); //Seleciona o script a ser executado (nome do script deve ser igual ao conteudo do parâmetro) if (nd){ script->run(nd->u.scr.script, 0, sd->bl.id, nd->bl.id); //Executa o Script } else { char output[128]; sprintf(output, "Não foi possível realizar esta ação!"); clif->messagecolor_self(sd->fd, COLOR_RED, output); } } break; Você pode trocar o script->run() por script->reload(nd) Acredito que a lógica é por ai @EDIT - melhorou, acho.
  15. Olá Você está fazendo esse código na src? em qual arquivo exatamente/ skill.c ? Se você quer printar essa mensagem no console (saída no mapserver) vc pode usar printf("Mensagem no console do emulador"); Se quer printar a mensagem dentro do game, no chat, você pode usar: char output[128]; sprintf(output, "Sua mensagem aqui na cor vernmelha!"); clif->messagecolor_self(sd->fd, COLOR_RED, output);