Jump to content

Recommended Posts

  • Replies 74
  • Created
  • Last Reply

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 + ".";}
Edited by roriscrave (see edit history)
Link to post
Share on other 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

Edited by CreatServer (see edit history)
Link to post
Share on other 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 ...

 

1634118_4.png

Link to post
Share on other 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 to post
Share on other 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)

🛠️ Projeto NTO NS 🛠️

📝 Detalhes 📝

🗺️ Mapa próprio em produção 🗺️

🖱️ Versão: 8.60 🖱️

🔥 War System 🔥

⚔️ Jutsus Próprios baseado no anime ⚔️

🔰 Itens com as características e efeitos do anime 🔰

💻 Para mais detalhes acesse as redes sociais do servidor abaixo 💻

💡 Usando como referencias Anime/Jogos/Wallpapers etc... para trazer algo mais próximo possível do universo de Naruto 💡

 

💎 Redes Sociais 💎

🌀 Facebook 🌀

🎒 Youtube 🎒
🌌 Discord 🌌

 

📚 Tutoriais / Conteúdos 📥

♨️ Clique Aqui ♨️

Link to post
Share on other 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

Edited by CreatServer (see edit history)
Link to post
Share on other 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 to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.


  • Similar Content

    • By 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
       
    • By 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.
    • By Rogex Joyz
      Um script simples (sei que existe outros parecidos/iguais, este funcionou perfeitamente pra tfs 0.4), mas que coloca todo um RPG naquela quest/hunt que você quer montar. No caso uma mystic flame fica ao lado (editável) de um empty coal basin (id: 1485) e após colocar um item (editável) em cima desta coal basin, a mystic flame passa a teleportar para um local pré destinado (Funciona exatamente igual ao de acesso as tumbas de Ankrahmun do global). Sem o item no local correto, ela é apenas uma mystic flame sem destino podendo andar em cima dela sem que nada aconteça. Para voltar, coloque outra mystic flame no destino com o AID 19383 (esta mystic flame faz o player retornar sem sacríficio). Vamos ao script ?
      😄
      créditos: Andu
       
      Em movements.xml adicione estas duas linhas:
       
      <movevent type="StepIn" actionid="19382" event="script" value="flametp.lua" />
      <movevent type="StepIn" actionid="19383" event="script" value="flametp.lua" />
       
      Em movements crie um arquivo lua com o nome flametp e adicione dentro dele: 
       
      function onStepIn(cid, item, position, fromPosition) local tileActionID = 19382 -- actionid inserida na primeira mystic flame (a do sacrifício) local tileActionIDBack = 19383 -- actionid inserida na segunda mystic flame (a de retorno sem sacrifício) local coin = 8978 -- id do item que precisará estar na coal basin para que a mystic flame teleporte o player local teleportTo = {x=12687, y=3426, z=14}-- posição em que o player será teleportado ao fazer o sacrifício local teleportBack = {x=14012, y=33793, z=15}-- posição em que o player irá voltar no momento que passar pela mystic flame sem sacrifício local itemPosition = {x=14012, y=33788, z=15, stackpos=STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE} local getItem = getThingFromPos(itemPosition)-- posição em que o item de sacrifício terá que estar para ativar a primeira mystic flame if isPlayer(cid) == TRUE then if item.itemid == 1397 and item.actionid == tileActionID then if getItem.itemid == coin then doRemoveItem(getItem.uid, 1) doTeleportThing(cid, teleportTo) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) doSendMagicEffect(getThingPos(item.uid), CONST_ME_TELEPORT) doSendMagicEffect(itemPosition, 15) end elseif item.itemid == 1397 and item.actionid == tileActionIDBack then doTeleportThing(cid, teleportBack) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) doSendMagicEffect(getThingPos(item.uid), CONST_ME_TELEPORT) end end return TRUE end
    • By Cat
      LISTA DE LOOKTYPES
       
      0-1283
       
    • By WooX
      Biblioteca de funções Lua
       
      Eu me recordo que alguns anos atrás quando iniciei meus estudos em Lua, a biblioteca de funções postada pelo @xWhiteWolf me ajudou muito com a escrita de alguns scripts, me fez economizar tempo e algumas linhas de código. Ter uma biblioteca de funções uteis é uma mão na roda para qualquer desenvolvedor pois poupa tempo que teria de ser gasto desenvolvendo algo que algum outro programador provavelmente já fez.
       
      Pensando nisso, hoje eu decidi trazer algumas funções Lua, tenho certeza que poderá ser útil pra alguém algum dia. Algumas dessas funções foram feitas por mim, outras por amigos meus e algumas eu já nem lembro mais onde encontrei. Irei postar aqui o conteúdo desta biblioteca porem ela também estará no final do tópico como anexo. As funções que me recordo a origem estará com os créditos do autor.
       
      Lib
       
      Explicação das funções:
       
      Por enquanto é isso... pretendo atualizar este tópico sempre que achar necessidade de escrever algo novo ou encontrar algo que possa ser útil a biblioteca.
       
      090-woox_functions.lua

×
×
  • Create New...

Important Information

Confirmação de Termo