Jump to content

Recommended Posts

Bom galera, faz tempo que não posto um tutorial, então resolvi trazer esse, que apesar de ser simples tem utilidade pra algumas pessoas.

 

Esse é um sistema que eu criei pra fazer com que o god possa alterar a visão dele pra como se fosse sempre dia ou pra visão de players normais.

1°)Como funciona:

    Quando o GOD entrar no server, ele já vai estar com a visão de "sempre dia". Se ele quiser ver que nem os players normais, basta falar /light. Se ele quiser voltar a ver "sempre dia" basta falar novamente /light

 

2°)Instalando o sistema:

 

   Primeiramente vá em data\creaturescripts e adicione essa tag ao arquivo creaturescripts.xml:

	<event type="login" name="GodLight" event="script" value="godLight.lua"/>

   Agora va em data\creaturescripts\scripts abra o arquivo login.lua e adicione isso antes do ultimo return true:

registerCreatureEvent(cid, "GodLight")

   Agora ainda na pasta data\creaturescripts\scripts crie um arquivo chamado godLight.lua e coloque isso dentro:

local condition = createConditionObject(CONDITION_LIGHT)
setConditionParam(condition, CONDITION_PARAM_LIGHT_LEVEL, 13)
setConditionParam(condition, CONDITION_PARAM_LIGHT_COLOR, 215)
setConditionParam(condition, CONDITION_PARAM_TICKS, 9000000000)

function onLogin(cid, var)
if getPlayerGroupId(cid) == 6 then
doAddCondition(cid, condition)
setPlayerStorageValue(cid, 54448, 1)
end
return TRUE
end

 

 

   Agora va na pasta data\talkactions e adicione essa tag ao arquivo talkactions.xml:

	<talkaction words="/light" event="script" access="5" value="godLight.lua"/>

   Agora va na pasta data\talkactions\scripts e crie um arquivo chamado godLight.lua e coloque isso dentro:

local condition = createConditionObject(CONDITION_LIGHT)
setConditionParam(condition, CONDITION_PARAM_LIGHT_LEVEL, 13)
setConditionParam(condition, CONDITION_PARAM_LIGHT_COLOR, 215)
setConditionParam(condition, CONDITION_PARAM_TICKS, 9000000000)

function onSay(cid, words, param)
if getPlayerStorageValue(cid, 54448) ~= 1 then
doAddCondition(cid, condition)
setPlayerStorageValue(cid, 54448, 1)
else
doRemoveCondition(cid, CONDITION_LIGHT)
setPlayerStorageValue(cid, 54448, 0)
end
return TRUE
end

 

Pronto! Seu sistema está instalado.

 

Se vc quiser que qualquer pessoa possa usar esse sistema, basta fazer o seguinte:

Trocar o script godLight.lua da pasta data\creaturescripts\scripts por esse:

local condition = createConditionObject(CONDITION_LIGHT)
setConditionParam(condition, CONDITION_PARAM_LIGHT_LEVEL, 13)
setConditionParam(condition, CONDITION_PARAM_LIGHT_COLOR, 215)
setConditionParam(condition, CONDITION_PARAM_TICKS, 9000000000)

function onLogin(cid, var)
doAddCondition(cid, condition)
setPlayerStorageValue(cid, 54448, 1)
return TRUE
end

 

E ao invés de colocar a tag (que está aí em cima) em talkactions.xml, coloque essa:

	<talkaction words="/light" event="script" value="godLight.lua"/>

 

 

E isso é tudo, pessoal!

Um sistema simples mas que pra alguns tem bastante utilidade. Em breve trarei novos tutoriais! Se tiverem alguma sugestão, podem mandar por pm. ^^

Na verdade isto vai fazer com que o god vire uma "tocha humana", não vai ser só a visão dele, pois, se ele estiver de /ghost perto de algum player será detectado por emitir luz, não é como visão noturna, mas é um bom script, sendo assim, o certo não seria a área de Sistemas e Mods ?


                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Share this post


Link to post
Share on other sites

Então cara. Isso vai variar de ot pra ot. No meu qnd o god está como ghost essa luz não aparece para os players.


Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Share this post


Link to post
Share on other sites

òtimo, deu certo + rep, só uma sugestão, tinha que por uma fala, por exemplo "Agora você esta iluminado full", sei lá


(1º) | [8.60] - Galaxy Server - Download

(2º) | [8.60] - Glorious Server - Download

(3º) | [8.60] - Epic Server - Download

Share this post


Link to post
Share on other sites

@jNo, boa idéia. Vou implementar isso amn. Vlw!


Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Share this post


Link to post
Share on other sites

isso é configurável por flag, não há necessidade de um script.

 

Mas obrigado.  ;D



 

Contato: beeki@ resto vocês sabem, eu acho.

Share this post


Link to post
Share on other sites

Interessante.
Porém, como @Beeki disse, há uma customflag que dá esse privilégio ao creatureid: PLAYERCUSTOMFLAG_HASFULLLIGHT.


 

 

setConditionParam(condition, CONDITION_PARAM_TICKS, 9000000000)

Você pode alterar pra -1, assim o tempo de duração da condição fica indeterminado (até que seja feito logout).


The corrupt fear us.

The honest support us.

The heroic join us.

Share this post


Link to post
Share on other sites

@Beeki, não sabia dessa flag, por isso criei o script.

@Suicide, obrigado cara, ja vou atualizar o script. ^^


Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Share this post


Link to post
Share on other sites

Aqui não funcionou, mas também não ocorreu nenhum erro no distro.

Eu falo /light com o GOD e a talkaction "sai" como se fosse uma mensagem comum. :boos:

Share this post


Link to post
Share on other sites

@Baltazar, então você não configurou corretamente a tag no arquivo talkactions.xml

Reveja a instalação do sistema com mais atenção. ^^


Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Share this post


Link to post
Share on other sites

@Danihcv: Realmente eu tinha esquecido de por a tag em talkactions.xml, mas ainda sim o script não funciona.

Agora, após o GOD tentar enviar a mensagem, ela não é enviada, apenas some do chat.

Share this post


Link to post
Share on other sites

@Baltazar, algum erro no console?

 

Os arquivos estão realmente nos locais corretos e com os devidos códigos dentro?


Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Share this post


Link to post
Share on other sites

Aqui eu tenho o mesmo "problema", o comando é usado e nenhuma alteração de ambiente é feita... Nenhum erro no distro ou algo do tipo, apenas não funciona. Eu uso o TFS 0.4 do Luciano.

Edited by ScythePhantom (see edit history)

Share this post


Link to post
Share on other sites

@ScythePhantom, vou procurar saber com o Luan se o problema está nos meus códigos...

 

@Baltazar, qual distro você usa?


Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Share this post


Link to post
Share on other sites

Opa, desculpem o esquecimento:

 

@ScythePhantom, deveria rodar tranquilo.

 

@Baltazar, foi testado em tfs 0.3.6


Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Share this post


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.


  • Similar Content

    • By Belmont
      E ai pessoal, vi que muitas pessoas tem problemas em instalar, e achar um script de autoloot 100% funcional. Foi ai que decidi postar aqui para vocês, um script totalmente novo e que realmente funciona, pronto para usar e abusar dele kkk. Bom, vamos parar de lero lero e bora ao que interessa.
       
      Fixados:
      Dinheiro Duplicado;
      Coleta itens até mesmo dentro das bag dos monstros;
       
      Lembrando que esse script NÃO é de minha autoria, e que já existe no Tk, mas em tópicos diferentes. Como eu uso ele já vou deixar tudo certo para o uso do mesmo.
       
      1° Passo - Dentro da pasta data/actions/scripts crie um arquivo chamado autoloot_boost.lua
      Em data/actions/actions.xml registre o script assim:
      <action itemid="ITEMID" event="script" value="autoloot_boost.lua"/>  
      2° Passo - Vá na pasta data/creaturescripts/script e crie dois arquivos, um chamado autoloot.lua e o outro fimautoloot.lua depois, adicione os seguintes códigos:
      autoloot.lua
      fimautoloot.lua
      Agora em data/creaturescripts/creaturescripts.xml você vai registrar esses scripts dessa forma:
      <event type="kill" name="autoloot" event="script" value="autoloot.lua"/> <event type="login" name="fimautoloot" event="script" value="fimautoloot.lua"/> Abra o arquivo login.lua localizado na mesma pasta e adicione este código abaixo de outro registerCreatureEvent
      registerCreatureEvent(cid, "autoloot")  
      Depois de instalar tudo, vamos para a pasta data/talkactions/script nela você irá criar um arquivo chamado autoloot.lua e vai adicionar este código:
      Em data/talkactions/talkcations.xml resgistra o script assim:
      <talkaction words="!autoloot" event="script" value="autoloot.lua"/>  
      Vá na pasta lib, e crie um arquivo chamado autoloot, e cole isso dentro:
       
      Isso é tudo pessoal!
       
      Informações:
      Este sistema funciona através de Premium Account, junto com ele vem o sistema de Autoloot Booster, que consiste em vender automaticamente os itens coletados. Foi testado em um servidor de Tibia 8.60 utilizando OTX 2.
       
      Créditos:
      @lordzetros
      @KOLISAO
      @Dwarfer
       
    • By karlkalvin
      Aê galerinha do TK, aqui é o Kalvin é o seguinte eu vi que no POKEMON existe apenas um sistema de mute que é /mute e o player é mutado 100 minutos, mais se ele relogar ele volta normal, então criei editei esse script para que nao fica-se esse bug ee o cara pode alterar o tempo que elee vai mutar tipo 10 minutos... em geral, e agora ele pode dar /desmute no cara se ele kiser que nao vá o tempo todo. vamos lá .. LEMBRANDO ESSE SCRIPT FOI EDITADO POR MIM / KALVIN KARL . topicos no #####, é o pobre do caio que me pediu, pedi pra ele nao postar ele postou.. então vai ai o scripter para todos agora ... no talkaction vamos adicionar isso crie um arquivo chamado mute.lua
      Vamos a tag ...
      Agora em creaturescript vamos adicionar isso .... mute.lua um novo arquivo e vamos add isso dentro dele..
      Vamos a tag agora ....
      Lembrando quem postou aqui, pegou no forum . ##### e o script foi criado por mim, o pablo viadão postou lá, se alguem já postou nesse forum eu nao achei.
      Esse script foi criado por não sei quem e editado por mim Kalvin Karl ! naão adiantem falar que não foi 🙂 !
    • By EddyHavoc
      Perfect Vip system 2.2
      Versão Testada:TFS 0.3.6 - 8.54 - 8.60
      Creditos pelas modificações: Kydrai,Nicekid e Marcryzius e EddyHavoc
      Creditos pelas publicações: EddyHavoc e Vodkart
      Oque Contém no Sistema vip 2.2?
      Quote
      - Compra Vip pela talkaction ( Comando !buyvip ) -- ou sem o comando.
      - Tile para somente Players Vip passarem ( conta também com funçâo os.time )
      - verifica quantos dias de Vip o character ainda possui.
      - Administradores(GOD) podem adicionar e remover dias de Vip para characters.
      -- Administradores(GOD) podem checkar dias de Vip dos Players.
      -- É adicionado [VIP] ao nome e retirado quando a vip Acabar.
      GOD Adicionando e Removendo dias de Vip
       
      Comprando VIP e Checkando dia da sua VIP
      Quote
      Comando:
       
      comprar vip:
      !buyvip
      checkar dias de vip:
      !vipdays
      God checkar dias de vip do character:
      /checkvip Nick
      exemplo: /checkvip Nicekid
       
       
      God adionar dias ao character:
      /addvip Nick,dias
      exemplo: /addvip Nicekid,5
      aqui adicionei 5 dias de vip.
      God Retirar dias de Vip do character:
      /delvip Nick,dias
      exemplo: /delvip Nicekid,5
      aqui retirei 5 dias de vip.
      Primeiro passo
       
      vá até talkactions/scripts Crie um arquivo.lua e renomeie para systemvip.lua
      dentro coloque:
        -- Script System Vip 2.2 -- function onSay(cid, words, param) if(words == "!buyvip") then local price = 5000000 if doPlayerRemoveMoney(cid, price) == TRUE then local days = 30 local daysvalue = days * 24 * 60 * 60 local storageplayer = getPlayerStorageValue(cid, 13540) local timenow = os.time() if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then time = timenow + daysvalue else time = storageplayer + daysvalue end if string.find(tostring(getCreatureName(cid)),"[[Vip]]") then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.") setPlayerStorageValue(cid, 13540, time) local quantity = math.floor((getPlayerStorageValue(cid, 13540) - timenow)/(24 * 60 * 60)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.") setPlayerStorageValue(cid, 13540, time) local name = getCreatureName(cid) db.executeQuery("UPDATE `players` SET `name` = '[Vip] "..name.."' WHERE `id` = "..getPlayerGUID(cid)..";") doRemoveCreature(cid) end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa de "..price.." gp's para colocar vip.") end elseif(words == "!vipdays") then local timenow = os.time() local quantity = math.floor((getPlayerStorageValue(cid, 13540) - timenow)/(24 * 60 * 60)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. (quantity < 0 and 0 or quantity) .." dias de VIP no seu character.") elseif(words == "/checkvip") then if getPlayerAccess(cid) == 5 then if not param then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") end local player = getPlayerByName(param) if not isPlayer(player) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player "..player.." not found.") end local timenow = os.time() local quantity = math.floor((getPlayerStorageValue(player, 13540) - timenow)/(24 * 60 * 60)) doPlayerPopupFYI(cid, "O jogador tem ".. (quantity < 0 and 0 or quantity) .." dias de VIP no character.") return TRUE end elseif(words == "/addvip") then if getPlayerAccess(cid) == 5 then local t = string.explode(param, ",") if not t[2] then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") end local player = getPlayerByName(t[1]) local name = getCreatureName(player) local days = t[2] local pid = getPlayerByNameWildcard(t[1]) if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.") return TRUE end local daysvalue = days*3600*24 local storageplayer = getPlayerStorageValue(player, 13540) local timenow = os.time() local time = storageplayer <= 0 and (timenow + daysvalue) or (storageplayer + daysvalue) if string.find(tostring(getCreatureName(pid)),"[[Vip]]") then doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Foram adicionados "..days.." dias de VIP no seu character.") setPlayerStorageValue(player, 13540, time) local quantity = math.floor((getPlayerStorageValue(player,13540) - timenow)/(3600*24)) doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você tem "..quantity.." dias de VIP restantes.") else setPlayerStorageValue(player, 13540, time) db.executeQuery("UPDATE `players` SET `name` = '[Vip] "..name.."' WHERE `id` = "..getPlayerGUID(player)..";") doRemoveCreature(player) end end elseif(words == "/delvip") then if getPlayerAccess(cid) == 5 then local dec = MESSAGE_INFO_DESCR if(param == "") then return TRUE,doPlayerSendTextMessage(cid,18,"Command param required.")end local C,t = {},string.explode(param, ",") C.pos = getPlayerPosition(cid) C.uid = getCreatureByName(t[1]) C.time = ((tonumber(t[2]) == nil) and 1 or tonumber(t[2]))*3600*24 --Tempo da vip por dia. C.days = (tonumber(t[2]) == nil) and 1 or tonumber(t[2]) --Dias de vip. if(getPlayerStorageValue(C.uid,13540) < C.time)then doPlayerSendTextMessage(cid,dec,'O jogador '..t[1]..' não possui '..C.days..' dias de vip.') else doPlayerSendTextMessage(cid,dec,'Você removeu '..C.days..' dias de vip do player '..t[1]..'.') setPlayerStorageValue(C.uid,13540,getPlayerStorageValue(C.uid,13540)-C.time) end doSendMagicEffect(C.pos, math.random(28,30)) end end return TRUE end price = é o quanto a vip vai custar em gps days = quantos dias de vip serão adicionados ao player em talkactions.xml adicione a tag:
        <talkaction words="!vipdays;!buyvip;/checkvip;/addvip;/delvip" script="systemvip.lua"/> Pronto primeiro passo terminado. Sistema vip sem o !buyvip abra a spoiler Spoiler ---------------------------------------------------------------------------------------------------------------------------- Tile VIP Segundo passo. vá até movements/scripts crie um arquivo.lua e renomeie para vipe.lua dentro coloque:
        -- Script Vip Sytem 1.0 -- function onStepIn(cid, item, position, fromPosition) local config = { msgDenied = "Você não e vip ,fale com Administrador do Server.", msgWelcome = "Seja Bem Vindo a Area vip." } if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then doTeleportThing(cid, fromPosition, true) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgDenied) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) return TRUE end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgWelcome) return TRUE end Em movements.xml adicione a tag: <movevent type="StepIn" uniqueid="13700" event="script" value="vipe.lua"/> FIM DA VIP creaturescript/script crie um arquivo.lua e renomeie para endvip.lua e cole isso dentro dele:
        --[[ by EddyHavoc Tibiaking.com ]]-- function onLogin(cid) if getPlayerStorageValue(cid, 13540) - os.time() > 0 then setPlayerStorageValue(cid, 9898, 1) end local pos = {x = 157, y = 50, z = 7} -- posiçao do templo. function EddyHavoc(cid) if isPlayer(cid) then db.executeQuery("UPDATE `players` SET `name` = '"..string.sub(getCreatureName(cid), 7).."' WHERE `id` = "..getPlayerGUID(cid)..";") doRemoveCreature(cid) end end if getPlayerStorageValue(cid, 9898) == 1 and getPlayerStorageValue(cid, 13540) - os.time() < 1 or getPlayerStorageValue(cid, 13540) - os.time() == 0 then doTeleportThing(cid, pos) doPlayerPopupFYI(cid, "Sua vip Account acabou.") setPlayerStorageValue(cid, 9898, -1) if string.find(tostring(getCreatureName(cid)),"[[Vip]]") then addEvent(EddyHavoc, 3*1000, cid) end end return TRUE end em creaturescript.xml adicione a tag:
        <event type="login" name="CheckVip" script="endvip.lua"/>[i] Pronto Seu sistema Vip está terminado.
    • By Danyel Varejao
      Fala galerinha do TK, aqui vai um script muito útil para vários servidores. O script serve para salvar o player e a house do mesmo, utilizando o comando !save.
      O script foi testado em OTXServer 2.
      local Configs = { Exhausted = 180, Storage_Exhausted = 5000001, Messages = { SALVED = "You character has been salved.", EXHAUST = "You need wait %d seconds to save again.", }, } local function doSavePlayerAndHouse(cid) doPlayerSave(cid) if getHouseByPlayerGUID(getPlayerGUID(cid)) then doSaveHouse(getHouseByPlayerGUID(getPlayerGUID(cid))) end return true end function onSay(cid, words, param) if getPlayerStorageValue(cid, Configs.Storage_Exhausted) >= os.time() then doPlayerSendCancel(cid, string.format(Configs.Messages.EXHAUST, getPlayerStorageValue(cid, Configs.Storage_Exhausted) - os.time())) return true end doSavePlayerAndHouse(cid) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, Configs.Messages.SALVED) setPlayerStorageValue(cid, Configs.Storage_Exhausted, os.time() + Configs.Exhausted) return true end Tag do talkactions.xml
      <talkaction words="/save;!save" event="script" value="SavePlayers.lua"/>  
    • By Underewar
      Créditos:  Azi,Underewar(Remover bugs)
       
      Caso precisem de atualizações para as novas tfs,derivado só pedir.
      TalkAction.Xml
      <talkaction log="yes" access="3" words="!equipment" event="script" value="arquivo.lua"/> Arquivo.Lua
      Ramon RBN
      Postado Sexta às 12:40 Lamento reviver o tópico, é por uma boa causa.

      O pessoal que está tento problema com o erro:
      attempt to concatenate local 'slotName' basta mudar os
      ..slotName.. para 
      ..slotName[i].. OBS: Mude os três 'slotName' que irá funcionar normalmente.
       
      Muito bom o código, ótima ideia 
  • Recently Browsing   0 members

    No registered users viewing this page.


Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia começando do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer fazer um plano publicitário para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução!

×
×
  • Create New...