Ir para conteúdo

Mateusoo

Campones
  • Total de itens

    78
  • Registro em

  • Última visita

  • Dias Ganhos

    1

Tudo que Mateusoo postou

  1. Bom dia, Gostaria de contratar os serviços de alguém para desenvolver uma interface gráfica no OTClient para mim. O sistema já funciona no jogo, não há necessidade de desenvolve-lo. Quando o player abrir a interface, o servidor receberá uma Table, com toda as informações do sistema, então a interface terá de ler esses dados e preencher-se com os mesmos. Mais informações sobre o sistema e detalhes de pagamentos, discutirei no privado. Mandem mensagens aqui ou no discord: Mateuso#6394 Obrigado.
  2. Oi, Seu primeiro método é mais eficiente, na realidade é complicado definir qual é mais eficiente, mas acredito ser o primeiro modo... Ainda aguardando novas respostas... Abraço.
  3. Olá, Obrigado pela resposta. Sim, essa forma é excelente, continua com a boa performance que o setStorageValue tem, e resolveria o problema, podendo ser passado qualquer tipo de dado. Muito obrigado, não vou marcar como melhor resposta ainda, espero que comentem um pouco mais sobre o assunto, se não acontecer eu dou como melhor resposta. Reputado. Abraços.
  4. Olá amigos! Estou mexendo em um servidor TFS 1.2 e me deparei com o seguinte: A função que estava mexendo era: player:setStorageValue(key, value) Ao tentar setar um storage(key) para o player de tipo de dado diferente de INT o valor(value) não é salvo. O motivo é: O banco de dados tem o tipo do campo que vai receber o parâmetro value definido como INT, então só ira aceitar inteiros. Porem eu preciso passar outro tipo de dado(string no caso), pesquisei e achei em outro fórum uma forma de salvar todos os tipos de dados, porem é criando uma função, que cria uma tabela em um arquivo .lua na pasta do servidor, e SALVA e CARREGA essa tabela sempre que o servidor desligar/ligar respectivamente. Não me interessou essa função, pois se o server crashar os dados serão perdidos, e quanto tempo levaria para salvar TODOS os storages de TODOS os players do servidor? Eu pensei em: alterar o campo do banco de dados, mas para que tipo? Com certeza seria necessário alterar a função SetStorageValue e getStorageValue para que leia o novo tipo do banco de dados e trate o dado de forma adequada, que acredito não ser complicado também. Poderia também fazer novas colunas no banco de dados para todos os tipos de dados, porem teria que criar as funções para as mesmas(isso eu não acho que seria fácil pra mim) Mas a questão é: O que vocês acham? Qual teria a melhor performance? Por que? Tem alguma outra ideia de como fazer isso? Deixa ai. Obrigado desde já, abraços a todos!
  5. Olá, Estou ciente, queria saber se não tem um Sqlite... To sem Sql Server agora... Obrigado pela rapida resposta. Abraço.
  6. Olá, Onde consigo a Database para abrir o servidor? Obrigado.
  7. Olá, A algum tempo pensei em um projeto bem legal de servidor, porem nunca entendi como funcionavam as SOURCES, falei com algumas pessoas, perguntei a outras e descobri algumas coisas, o que quero saber agora é: 1° - Eu tenho um servidor 9.6 com source TFS 0.3.7 SVN Crying Damson, porem percebi que não há muitas funções para a versão 0.3.7, como eu consigo source 0.4 para um servidor 9.6? 2° - Qual a vantagem de usar as versões 1.0, 1.1 e 1.2 do TFS? Qual eu deveria escolher? 3° - Estou pensando em mudar meu servidor para as versões mais recentes, eu gostaria de um servidor LIMPO com SOURCES para implementar meus sistemas, qual é mais indicado? E se possivel, por que? Obrigado pela atenção. Abraços.
  8. Olá @Demonbholder, Não tenho mais o link, mas tenho as sources dele aqui. É TFS 0.3.7 SVN Crying Damson, vou mandar a função em C++ para você da uma olhada... Obrigado pela atenção. Abraço Segue o codigo: int32_t LuaInterface::luaDoTileQueryAdd(lua_State* L) { //doTileQueryAdd(uid, pos[, flags]) uint32_t flags = 0, params = lua_gettop(L); if(params > 2) flags = popNumber(L); PositionEx pos; popPosition(L, pos); uint32_t uid = popNumber(L); ScriptEnviroment* env = getEnv(); Tile* tile = g_game.getTile(pos); if(!tile) { errorEx(getError(LUA_ERROR_TILE_NOT_FOUND)); lua_pushnumber(L, (uint32_t)RET_NOTPOSSIBLE); return 1; } Thing* thing = env->getThingByUID(uid); if(!thing) { errorEx(getError(LUA_ERROR_THING_NOT_FOUND)); lua_pushnumber(L, (uint32_t)RET_NOTPOSSIBLE); return 1; } lua_pushnumber(L, (uint32_t)tile->__queryAdd(0, thing, 1, flags)); return 1; }
  9. Olá @Demonbholder, Entendi. Essa questão da ladder me intrigou MUITO ai comecei a fazer uns teste e percebi: O erro está no script teleport.lua. No script é feito o calculo do local para onde o player vai apos usar uma escada, buraco e etc. E tem uma checagem para descobrir se o local para onde o player vai ser teletransportado é um tile que permita movimentação(chão, piso) e não (parede, cerca, poste, pedra, coisas que não são permitidos o movimento), porem essa checagem faz com que só possa subir escada se for pra um lugar que não pode andar. Então, o script bloqueia subir para lugares que deveria ser possível subir e permite subir para lugares que não deveria ser possível. Fiz vários testes para descobrir isso... Acredito que o problema seja na função: doTileQueryAdd(cid, POSIÇÃO para verificar, INT(não sei o que significa), false[Essa opção só esta disponível para a verão 0.4 do TFS, que é um parâmetro BOOL]), inclusive achei que atualizando essa função e recompilando as sources 0.3.7 que possuo o problema estaria sanado, porem não houve mudança. Vou postar o teleport.lua para você dar uma olhada, se quiser posso postar a função doTileQueryAdd que está nas minhas sources também. Quanto a questão original do topico, você saberia onde conseguir uma source 9.6 0.4 do TFS? Obrigado pela atenção, abraços. Segue o codigo do teleport.lua: local UP_FLOORS = {1386, 3678, 5543, 8599, 10035} local FIELDS = {1497, 1499, 11095, 11096} local DRAW_WELL = 1369 function onUse(cid, item, fromPosition, itemEx, toPosition) if(item.itemid == DRAW_WELL and item.actionid ~= 100) then return false end local check = false fromPosition.stackpos = STACKPOS_GROUND if(isInArray(UP_FLOORS, item.itemid)) then fromPosition.z = fromPosition.z - 1 fromPosition.y = fromPosition.y + 1 if(doTileQueryAdd(cid, fromPosition, 38, false) ~= RETURNVALUE_NOERROR) then local field = getTileItemByType(fromPosition, ITEM_TYPE_MAGICFIELD) if(field.uid == 0 or not isInArray(FIELDS, field.itemid)) then fromPosition.y = fromPosition.y - 2 else check = true end end else fromPosition.z = fromPosition.z + 1 end if(not check and doTileQueryAdd(cid, fromPosition, 38, false) ~= RETURNVALUE_NOERROR) then local field = getTileItemByType(fromPosition, ITEM_TYPE_MAGICFIELD) if(field.uid == 0 or not isInArray(FIELDS, field.itemid)) then return false end end local pos, dir = getCreaturePosition(cid), SOUTH if(pos.x < fromPosition.x) then dir = EAST elseif(pos.x == fromPosition.x) then if(pos.y == fromPosition.y) then dir = getCreatureLookDirection(cid) elseif(pos.y > fromPosition.y) then dir = NORTH end elseif(pos.x > fromPosition.x) then dir = WEST end doTeleportThing(cid, fromPosition, false) doCreatureSetLookDirection(cid, dir) return true end
  10. Olá @Demonbholder, Consigo fazer o upload das sources sim. Porem eu não quero usar souces 0.3.7(algumas funções que achei não consegui incluir nelas), eu gostaria de saber: Se eu pegar sources TFS 0.4 ou 0.3.6 eu consigo usar elas em qualquer versão do tibia? Ou é algo tipo TFS 0.4 para tibia 8.6 é diferente de TFS 0.4 para tibia 9.6. Não entendo direito como funciona sources, nunca mexi com essa parte... Quanto ao código que você mandou, eu não testei por que não tenho sources 1.0(e não queria utiliza-las). Algo interessante é: Ao compilar minhas sources 0.3.7 eu percebi que LADDER e BUEIROS não funcionam. Não tem como eu subir. Se eu criar uma ladder com o /i ESSA LADDER FUNCIONA. E algumas ladders funcionam e outras não. Ambas tem o mesmo ID. Alguma ideia? (Não é tão importante, pois como falei não pretendo usar sources 0.3.7, so curiosidade mesmo.) Obrigado pela atenção. Abraço.
  11. Olá @Demonbholder, Muito obrigado pela atenção. Atualmente, eu utilizo uma source 0.3.7. Que foi a que veio junto com o servidor base. Eu procurei por sources 9.6 0.3.6 ou 0.4, porem não encontrei nenhuma que funcionasse com o meu servidor. Então não pude fazer seu teste. Você saberia me informar onde eu consigo sources do TFS 0.3.6 ou 0.4 para 9.6? Desculpe, não sei muito como SOURCES funcionam. Obrigado.
  12. Olá, Muito obrigado pela atenção. Você vê a possibilidade dessa alteração nas sources? Eu não sei muito, mas acredito que usando a mesma forma que as talkactions utilizam para obter o parâmetro WORDS funcione... Obrigado, abraços.
  13. Olá amigos, boa tarde! Estou com uma pequena duvida, gostaria de saber se tem como eu obter o nome da magia que acabou de ser utilizada na função onCastSpell, no caso no script da propria spell. Vou tentar explicar melhor: --Esse é o script da magia intense healing. --O que eu preciso é basicamente que ela retorne o nome da magia que acabou de ser usado, ou seja o nome intense healing. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 5, 6) --local nome function onCastSpell(cid, var) --nome = função que retorna o nome dessa habilidade. return doCombat(cid, combat, var) --doCreatureSay(cid, "Voce usou "..nome.."!") --O output seria: Você usou Intense Healing! end Consegui ser claro? Existe algum modo de fazer isso sem editar as sources? Não teria problemas ele me retornar a palavra de conjuração da spell no caso(exura gran). Pra mim tanto faz. Muito obrigado! Abraços. up
  14. Mateusoo

    Clicar no item

    @allanzinh Obrigado, eu estava meio sem tempo quando postei o script, passei somente o que você pediu, eu não tinha ideia de qual a finalidade do script, pensei que seria algum item que invocaria um monstro e quando você falou "quebrar" eu pensei que o item iria sumir. Agora entendi o que você realmente quer. Um grande abraço e ainda bem que seu problema foi resolvido, lhe ajudarei no que eu puder :] @Slicer Mestre como sempre né? Como falei ao Allanzinh, eu postei o script com um pouco de pressa, quando ele falou que o item "quebraria" eu pensei que o item deveria ser destruido, como um item invocador e tal, não tinha a minima ideia do que ele estava planejando por isso fiz por itemid, pois acreditei que todos os itens teriam a mesma função. Obrigado por resolver o problema, o script está excelente como sempre, ganhou um REP :] Um grande abraço e boa noite.
  15. Olá, O depot existe para isso, guardar items... Não entendi muito bem qual o proposito disso... Explica melhor ai. Abraço
  16. Mateusoo

    Clicar no item

    Olá, Experimenta isso: Crie o arquivo monstroporitem.lua na pasta Data/Actions/Scripts e adicione o seguinte código: local monstro = "Demon" --Nome do monstro que será criado local createpos = {x = 200, y = 200, z = 7} --Local onde o monstro vai ser criado function onUse(cid, item, fromPosition, itemEx, toPosition) doCreateMonster(monstro, createpos) doRemoveItem(item.uid) return true end Onde a variável monstro é o nome do monstro que será criado e a variável createpos é a posição no mapa onde o monstro será criado. Agora adicione a seguinte TAG no Actions.xml: <action itemid="xxxx" script="monstroporitem.lua"/> Onde o xxxx é o id do item que ira sumonar o monstro ao ser clicado. Testei aqui e funcionou perfeitamente, qualquer problema posta ai que lhe ajudo. Um grande abraço, boa noite.
  17. Olá, Obrigado pela atenção, um grande abraço ;] Olá, Cara eu fiz o seguinte, fiz o script e falei que iria estudar uma forma de fazer com quantidade de summons a depender do level do player, estou um pouco apertado essa ultima semana e estou um pouco sem tempo pra isso, mas ainda farei o script. Como você pediu, pra o monstro ficar em um Item e tudo mais, você mesmo pode fazer, estude o sistema de Catch e Goback dos servidores de Poketibia, que da pra facilmente adaptar para funcionar no seu server. Esse sistema já está feito, então EU NÃO irei fazer. O que irei fazer será adaptar esse sistema que fiz, com a questão de quantidade de summons por level, se você estiver esperando o novo sistema como você pediu, eu não irei faze-lo. Um abraço e aguarde o sistema que postei com a nova função, logo postarei.
  18. Ainda bem que todos animaram! Eu só sei que eu revivi o tópico e quero minha VAGA! Se não cabeças vão rolar! Abraços e aguardando noticias ;]
  19. Esse item será criado como? Ao usar um item no stonecutter axe? Talkaction? Acontecerá o que quando o comando for dado? Seja claro com o que deseja... Aguardando.
  20. No caso você quer: Ter um Stonecutter Axe e ter um Stonecutter Axe VIP, no caso seria VIP Axe atk 80 que seria um stonecutter axe editado?
  21. Olá, Gostaria de saber também, deixa algum mago da programação aparecer por ai e ambos saberemos! Abraço
  22. Boa noite, Não entendi a sua pergunta, poderia ser mais claro? Abraços
  23. Já existe tópico para essa duvida, procure da próxima vez. http://www.xtibia.com/forum/topic/232165-auto-menssagem-vermelhar/ Abraço.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...