Ir para conteúdo
  • Cadastre-se

Posts Recomendados

  • Respostas 74
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Olá pessoal, eu estava ajudando um amigo em um script de Tibia Naruto, e me deparei com a necessidade de usar uma função para trocar o nome de um summon, mas isso teria que ser inGame, e depois de pro

Não modifique tudo roriscrave, mude apenas "mType->nameDescription" para "nameDescription"

vlw deu tudo certo, estou usando 8.54 vlw

Posted Images

4 - Ainda em monster.h procure por:

virtual std::string getDescription(int32_t) const {return mType->nameDescription + ".";}

 

 

Na sources nao tem essa parte, o que eu faço?

 

 

edit: o mais parecido que tem é esse, posso substuir ele?

virtual std::string getDescription(int32_t lookDistance) const {return mType->nameDescription + ".";}
Editado por roriscrave (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

6 - Agora em luascript.h adicione isso perto das linhas semelhantes:

static int32_t luaSetCreatureName(lua_State* L);

7 - Agora em luascript.cpp adicione isso perto das linhas semelhantes:

//setCreatureName(cid, name, description)
lua_register(m_luaState, "setCreatureName", LuaInterface::luaSetCreatureName);

8 - Ainda em luascript.cpp adicione isso perto das linhas semelhantes:

int32_t LuaInterface::luaSetCreatureName(lua_State* L)
{
//setCreatureName(cid, newName, newDescription)
std::string newDesc = popString(L);
std::string newName = popString(L);
ScriptEnviroment* env = getEnv();
Creature* creature;
if(creature = env->getCreatureByUID(popNumber(L))){
Monster* monster = (Monster*)creature;
monster->name = newName;
monster->nameDescription = newDesc;
lua_pushboolean(L, true);
}
else{
errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND));
lua_pushboolean(L, false);
}
return 1;
}

Pelo fato de algumas diferenças no modo de escrever a função entre as TFS, pode ocorrer erros, e então substitua as seguintes linhas dos 2 passos anteriores:
 

//setCreatureName(cid, name, description)
lua_register(m_luaState, "setCreatureName", LuaScriptInterface::luaSetCreatureName); int32_t LuaScriptInterface::luaSetCreatureName(lua_State* L)

 

Eu n entendi nds de linha semenlhantes

Editado por CreatServer (veja o histórico de edições)
Link para o post
Compartilhar em outros sites


6 - Agora em luascript.h adicione isso perto das linhas semelhantes:
static int32_t luaSetCreatureName(lua_State* L)
 

Por exemplo: Tem várias funções que ficam ai, por exemplo o setVocationName, ai deve ta assim: static int32_t luaSetVocationName(lua_State* L) e junto com muitos outros, são linhas parecidas é só procurar, dar ctrl+F ...
Link para o post
Compartilhar em outros sites

Luan é valido lembrar das limitações do client da Cip, e que você poderia fazer isso com o OtClient muito mais facil, e sem a limitação do client.

O mesmo BananaFight, mais com um novo Nick.

 

 
Abra sua mente, sangue suga não vive sem um hospedeiro, Não faça script para os outros, ensine-os a fazer.
Link para o post
Compartilhar em outros sites

olá então amigo eu coloquei as funções mais não consigo compilar no win server 2003 ... ele fala que o programa do dev não tem permissão ... como faço pra arrumar isso?

 

aparece a seguinte mensagen

 

 

Application version: 4.9.9.2

Machine info
---------
Platform : Windows NT
OS version : version 5.1 (build 2600)
Additional info:


The following error occured in version 4.9.9.2:
Access violation at address 0013FA0F. Write of address 0013FA0F (at address 0x0013FA0F)


Please include a description of what you were doing before the error occured (please give as much precisions as possible) :


State information follows:
Stack trace:
------------
0058F80A (0018E80A): ShowExceptionInfo (ExceptionsAnalyzer - 566)
0058F9FF (0018E9FF): TExceptionsAnalyzer.GlobalExceptionHandler (ExceptionsAnalyzer - 574)
005712FA (001702FA): TfrmProjectOptions.InitVersionInfo (ProjectOptionsFrm - 1026)
0056EC8F (0016DC8F): TfrmProjectOptions.SetOptions (ProjectOptionsFrm - 513)
00578C83 (00177C83): TProject.ShowOptions (project - 1674)
00559E2E (00158E2E): TMainForm.actProjectOptionsExecute (main - 3551)
0059105B (0019005B): (devcpp - 230)
00591079 (00190079): (devcpp - 230)

Compre seus Scripts Agora totalmente seguro e de forma rápida, aceitamos também encomendas.

discord.gg/phJZeHa2k4

 

Projeto ATS (Naruto)

Informações Abaixo

Facebook

Youtube
Discord

 

Tutoriais / Conteúdos

Clique Aqui

Link para o post
Compartilhar em outros sites

Consigui add a funçao nas sources, mas a spell n funcionar.

 

 

function onCastSpell(cid, var)
local cloth = getCreatureOutfit(cid)
local health = getCreatureHealth(cid)
local maxhealth = getCreatureMaxHealth(cid)
local MaximoSummon = 2

local summons = getCreatureSummons(cid)
if(table.maxn(summons) < MaximoSummon) then
local pos = getPlayerPosition(cid)
local bpos = {x=pos.x+2, y = pos.y, z = pos.z}
local farAwayPos = {x = 2061, y = 2056, z = 7}
local Teste = doCreateMonster("Clone", farAwayPos)
doConvinceCreature(cid, Teste)
setCreatureMaxHealth(Teste, maxhealth)
doCreatureAddHealth(Teste, health)
doSetCreatureOutfit(Teste, cloth, -1)
setCreatureName(Teste, "".. getCreatureName(cid) .."", "a ".. getCreatureName(cid) .."")
addEvent(doSendMagicEffect, 300, pos, 2)
addEvent(doTeleportThing, 300, Teste, pos)
return true
end
end

 

olha erro:

 

post-90243-0-23343600-1406679690_thumb.p

Editado por CreatServer (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Muito bom obrigado pelo conteúdo com certeza irá ajudar muita gente  (y)

"Lendas jamais voltam pois são apenas lendas. eu, eu sou real."

 

Attr:// [GM] Eddy

2013 ~ 2014 R.I.P

Kjc5D10.png

O retorno da lenda....

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por Anderson Sacani
      Estou criando um servidor com base nos scripts de TFS 1.x e voltado ao público da america latina por causa do baixo ping na VPS... Argentina, Bolívia, Brasil, Chile, entre outros, portanto sei que falamos em português e nossos vizinhos em espanhol.
      Todos os sistemas do meu servidor são pensados para terem traduções e venho por meio deste tópico compartilhar à vocês algumas dessas funções:
       
      Antes de qualquer coisa, você precisará adicionar a seguinte variável em alguma biblioteca:
      USER_LANGUAGE = 1022118443  
      Agora que adicionou essa variável em alguma biblioteca, poderá adicionar as seguintes funções na mesma biblioteca, porém a baixo da variável USER_LANGUAGE.
       
      A primeira função serve para retornar qual idioma o player está usando:
      --[[ getLanguage, how to use: player:getLanguage() ]] function Player.getLanguage(self) if self:isPlayer() then if self:getStorageValue(USER_LANGUAGE) < 1 then return "portuguese" else return "spanish" end else print("getLanguage: Only works on players..") end end Um exemplo de como usar: player:getLanguage()
       
      A segunda função serve para alterar o idioma do player. O ideal é que seja usada na primeira vez em que o player loga no servidor:
      --[[ setLanguage, how to use: player:setLanguage("portuguese") ]] function Player.setLanguage(self, language) local value = 0 if self:isPlayer() then if language == "portuguese" then value = 0 elseif language == "spanish" then value = 1 else print("setLanguage: Only two options available. Choose one of them: 'portuguese' or 'spanish'.") end return self:setStorageValue(USER_LANGUAGE, value) else print("setLanguage: Only works on players..") end end Exemplos de como usar:
      player:setLanguage("portuguese")
      ou
      player:setLanguage("spanish")
       
      A terceira e não menos importante função, serve para mandar uma mensagem de texto ao jogador, porém ele receberá no idioma em que escolheu:
      --[[ sendLanguageTextMessage, how to use: local portugueseMessage = "Ola, tudo bom? Isto aqui é um algoritmo!" local spanishMessage = "Hola todo bien? Esto de aqui es un algoritmo!" player:sendLanguageTextMessage(MESSAGE_EVENT_ADVANCE, portugueseMessage,spanishMessage) ]] function Player.sendLanguageTextMessage(self, type, portugueseMessage, spanishMessage) if self:isPlayer() then if self:getStorageValue(USER_LANGUAGE) < 1 then return self:sendTextMessage(type, portugueseMessage) else return self:sendTextMessage(type, spanishMessage) end else print("sendLanguageTextMessage: Only works on players..") end end Um exemplo de como usar:
      player:sendLanguageTextMessage(MESSAGE_EVENT_ADVANCE, portugueseMessage, spanishMessage)
      O primeiro parâmetro é o tipo de mensagem, o segundo parâmetro será a mensagem em português e o terceiro parâmetro será em espanhol.
    • Por danielsort
      A minha poke ball nao esta funcionando como contador aonde consigo ageitar isso?
       
       

    • Por yurikil
      Saudações a todos, venho por meio deste tópico pedir uma ajuda no qual estou tentando fazer a muito tempo. Já vi alguns post aqui mesmo no TK, mas nenhum eu tive êxito. Por isso venho pedir um socorro de como eu consigo aumentar a quantidade de MagicEffects acima de 255 no meu NewClient OTC? Se alguém puder fortalecer ficarei muito grato!!
    • Por Vodkart
      Uma função que ao invés de usar o "cid" para pegar o valor de uma storage, usa o ip do jogador.
       
      baseado neste pedido:
       
       
       
       
      INSTALAÇÃO:
       
       
      Execute essa query:
       
      CREATE TABLE `ip_storages` (         `ip` int NOT NULL default 0,         `key` int NOT NULL default 0,         `value` varchar(255) NOT NULL default 0         )  
      funções para serem adicionadas na lib:
       
      function setIpStorageValue(ip, key, value) local func = db.executeQuery or db.query local query = db.getResult("SELECT `value` FROM `ip_storages` WHERE `key` = "..key.." AND `ip` = "..ip) if query:getID() == -1 then return func("INSERT INTO `ip_storages` (`ip`, `key`, `value`) VALUES ("..ip..", "..key..", "..value..")") end return func("UPDATE `ip_storages` SET `value` = "..value.." WHERE `key` = "..key.." AND `ip` = "..ip) end function getIpStorageValue(ip, key) local ret = db.getResult("SELECT `value` FROM `ip_storages` WHERE `ip` = "..ip.." AND `key` = "..key) if ret:getID() == -1 then return -1 end return ret:getDataInt("value") or ret:getDataString("value") end  
       
       
       
      exemplo de uso:
       
      pegar baú a cada X horas:
       
      function onUse(cid, item, fromPosition, itemEx, toPosition)     local storage, hours = 18000, 24     local ip = getPlayerIp(cid)     local item = 2160     if getIpStorageValue(ip, storage) - os.time() <= 0 then         doPlayerSendTextMessage(cid,22,"Tome seu prêmio.")         setIpStorageValue(ip, storage, os.time()+hours*3600)         doPlayerAddItem(cid, item, 100)          return true     end      return doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Espere para pegar um novo item!") end  

      ou só podendo pegar 1x:
       
      function onUse(cid, item, fromPosition, itemEx, toPosition)     local storage, ip = 18000, getPlayerIp(cid)     local item = 2160     if getIpStorageValue(ip, storage) > 1 then     doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"voce ja pegou o item!") return true     end         doPlayerSendTextMessage(cid,22,"Tome seu prêmio.")         setIpStorageValue(ip, storage, 1)         doPlayerAddItem(cid, item, 100)          return true end
       
    • Por Endless
      Olá meus senhores, tem muita gente que pede serviços em relação a Gerar Outfits Animadas do seu cliente, o que muitos não sabem é que existe esse sistema de Gerar as Outfit animadas gratuitamente na internet e ele foi desenvolvido pelo Gesior.pl (Polones), então todo o crédito deste tutorial em relações a códigos vão para ele.

      Primeiro de tudo, o que é esse Sistema de Gerar Outfits Animadas?

      Basicamente é 1 Sistema Web que vai ler o teu tibia.spr / tibia.dat e seu items.otb e gerar todas suas outfit do seu cliente em forma de frames e na hora de exibir o sistema utiliza uma script em php que fica responsável por montar 1 gif utilizando esses frames.
      O resultado é algo como isto:



      Existe 2 formas de utilizar o sistema, eu vou ensinar a mais fácil, para quem quiser vou deixar o link do código fonte e vocês podem simplesmente estar clonando o repositório e fazer suas alterações a vontade. (Sim, ele é open source e.e).

      Código Fonte: https://github.com/gesior/open-tibia-library 

      Explicando como utilizar o sistema:

      1° acesse o link => https://outfit-images.ots.me/generator/

      Você deve visualizar algo como isto: 



      Percebam que ele vai pedir os seguintes dados: 
      -Client Version:
      -Sprite file:
      -Dat file:
      -Otb file:

      Antes de sair adicionando, precisamos configurar nosso cliente para que o sistema consiga reconhecer ele. Abra seu cliente no object builder. Agora vá na área de effects e apague todos os efeitos. Sim apague TODOS, agora vá até Tools->Spriter Otimizer



      Clique em start e você vai ter 1 retorno parecido com isto:



      Agora aperta CTRL+SHIFT+S, vamos salvar esse cliente em 1 pasta separada (você só vai usar ele pra esse sistema, então fique tranquilo, você não vai apagar o original). Na hora de salvar deixe desmarcado as 3 opções (Extended, Transparency, Improved Animations).



      Tendo feito isso, agora vamos voltar para o site. 
      Em Client Version você vai digitar a versão de seu cliente. Exemplo: Se for 8.60 digite 860
      Em sprite file você vai selecionar o tibia.spr do seu cliente que você exportou (esse sem efeitos)
      Em dat file você vai selecionar o tibia.dat do seu cliente que você exportou (esse sem efeitos)
      Em otb file você vai selecionar o items.otb do seu servidor.

      Agora clique em Load Files. Você deve ter 1 retorno parecido com isto:



      Agora clique em Generate Imagens e ele vai começar a gerar os frames das suas outfits.



      Ao terminar ele vai efetuar sozinho o download das outfits.




      Agora acesse este repositório no github e baixe os arquivos: https://github.com/gesior/open-tibia-library/tree/master/tools/colored-outfit-images-generator

      Tendo feito o download, você vai extrair a pasta outfits.zip que você baixo e extrair a pasta que você clonou o repositório. Ao extrair o arquivo outfits.zip você vai encontrar 1 pasta chamada outfits_anim, dentro dela você deve ter algo como isto:



      Cada pasta é referente a 1 looktype do seu cliente.
      Agora copie a pasta 'outfits_anim' que está dentro da pasta outfits que você extraiu e cole dentro da pasta do repositório que foi clonado. Ficando assim:



      Pronto, agora você somente precisa deixar essa pasta em 1 servidor web e utilizar a mesma via requisição. Exemplo:
      Se você for exibir uma outfit, você pode exibir da seguinte forma:
      <img src="http://seudominio.com/nomedapastaqueestaoosarquivos/animoutfit.php/?id=270">  
      Esse id será o looktype que você deseja. Lembrando que: Você pode colocar 1 script pra puxar a outfit de cada vocação e chamar esse diretório, ele vai exibir a imagem já com o diretório correto.
      Sugestão de uso: Para derivados de NTO/DBO e afins, você pode utilizar para exibir as outfits de transformações de cada Personagens, algo como isto:



       
      Outra opção é exibir na lista de Ranking no menu da direita (Normalmente Tibia Classico faz isso)
      A criatividade fica por conta de vocês.
       
      Créditos:
      Gesior.pl por todo o código e disponibilizar para a comunidade em 1 Forum Gringo
      A mim por disponibilizar o tutorial para a comunidade.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo