Ir para conteúdo

Eduardo Carvalho

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    Eduardo Carvalho recebeu reputação de GOD Vitor em (Resolvido)New account free vip 5 dias   
    function onLogin(cid) local dias = 10 if getGlobalStorageValue(getPlayerAccountId(cid)+333) <= 0 then     doPlayerAddPremiumDays(cid, dias)     setGlobalStorageValue(getPlayerAccountId(cid)+333, 1) end  return true end   
  2. Gostei
    Eduardo Carvalho recebeu reputação de glacialot em {PEDIDO} Efeito no Player   
    creaturescripts..
    local storage = 13500 local efeito = 30 local time = 5     function effect(cid)       if isPlayer(cid) then          if getPlayerStorageValue(cid, storage) >= 1 then             doSendMagicEffect(getCreaturePosition(cid), efeito)             addEvent(effect, time * 1000, cid)          end       end     end function onLogin(cid) if getPlayerStorageValue(cid, storage) >= 1 then    doSendMagicEffect(getCreaturePosition(cid), efeito)    addEvent(effect, time * 1000, cid) end  return true end <event type="login" name="PlayerEffect" event="script" value="NomeDoArquivo.lua"/> obs : para o efeito sair o player tem que deslogar 1 vez depois de ganhar a storage.
  3. Gostei
    Eduardo Carvalho recebeu reputação de p e o p l e em Adicionar Storage   
    local storage = 123 function onStepOut(cid, item, position, fromPosition) if getPlayerStorageValue(cid, storage) >= 1 then    doPlayerSendCancel(cid, "Bem Vindo") else     doTeleportThing(cid, fromPosition, true) doSendMagicEffect(getCreaturePosition(cid), 12)     doPlayerSendCancel(cid, "Você não fez a quest.") end return true end
  4. Gostei
    Eduardo Carvalho recebeu reputação de churupetinha em [DUVIDA] Tile Vip   
    function onStepIn(cid, item, position, fromPosition) if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then    doTeleportThing(cid, fromPosition, true)       doPlayerPopupFYI(cid, "Voçe nao e vip , compre sua vip por apena R$9,00.")    doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) return true end local days = math.floor((getPlayerStorageValue(cid, 13540) - os.time()) / (24 * 60 * 60)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você ainda tem "..days.." dia(s) restante(s) de VIP.") return true end
  5. Gostei
    Eduardo Carvalho recebeu reputação de churupetinha em [DUVIDA] Tile Vip   
    é só colocar + 1 ali então..
    function onStepIn(cid, item, position, fromPosition) if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then    doTeleportThing(cid, fromPosition, true)       doPlayerPopupFYI(cid, "Voçe nao e vip , compre sua vip por apena R$9,00.")    doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) return true end local days = math.floor((getPlayerStorageValue(cid, 13540) - os.time()) / (24 * 60 * 60) + (1)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você ainda tem "..days.." dia(s) restante(s) de VIP.") return true end
  6. Gostei
    Eduardo Carvalho recebeu reputação de skailord em Dois Tipo De Spell Que Teleporta   
    Ta ae.. Agora é pelo nome , ngm tem o nome igual 'rsrs 
    local storage = 987123 -- storage local item = 2160 -- id do item local time = 20 -- tempo em segundos que o item vai ficar na posição. local pos = {} function terminus(cid) if isPlayer(cid) then for index, pid in pairs(pos) do if index == getCreatureName(cid) then local a = getTileItemById(pos[index], item) if a.uid > 0 then doRemoveItem(a.uid) end end end doPlayerSendTextMessage(cid, 22, "O item sumiu.") end end function onCastSpell(cid, var) if getPlayerStorageValue(cid, storage) - os.time() <= 0 then pos[getCreatureName(cid)] = getCreaturePosition(cid) setPlayerStorageValue(cid, storage, os.time()+time) doCreateItem(item, getCreaturePosition(cid)) doSendMagicEffect(getCreaturePosition(cid), 3) addEvent(terminus, time*1000, cid) elseif getPlayerStorageValue (cid, storage) - os.time() >= 1 then for index, pid in pairs(pos) do if index == getCreatureName(cid) then doTeleportThing(cid, pid) doSendMagicEffect(getCreaturePosition(cid), 10) end end end return true end o bom é que se mesmo o player deslogar e depois logar , se o item ainda tiver no lugar, o mesmo ainda é teleportado.
    whitewolf, vlw por reportar o bug.
  7. Gostei
    Eduardo Carvalho recebeu reputação de xWhiteWolf em Dois Tipo De Spell Que Teleporta   
    não, o for está correto. Usei pairs, pq eu não usei table.insert, eu adicionei na tabela a posição no index do nome do player.
     
    o for checa todos os index, e o index que for igual ao nome do player, ele teleporta para posição "pid"(posição salva no index do player).
     
    O bug foi resolvido. Eu só errei em fazer isso pq sempre só testo com 1 player, ae já estou acostumado, como se no serve fosse entrar apenas 1 player 'rsrs
     
     
     
    acabei de testar, está funcionando !
  8. Gostei
    Eduardo Carvalho deu reputação a Absolute em [City War Event] Luta pela sobrevivência   
    Fala galerinha linda do TK, hoje estou trazendo um evento que andei modificando e otimizando, é o evento City WAR, este evento tem no servidor globalwar e outros.
    A autoria vem de um membro da otland, portante havia o mesmo aqui em um datapack e decidi otimizar este evento para vocês do TK.
    Observação: É um pouco parecido com o evento do meu amigo e scripter DuH, porém com mais funções e regras, mas o objetivo é praticamente o mesmo.
     
     
    Como funciona:
     



     
     
     
     
     
     
    Vamos lá;
     
    Primeiramente, em sua pasta data/lib crie um arquivo com o nome de city war.lua e dentro do mesmo coloque:
    configCW = {timetostart = 500, -- tempo para iniciar o evento em segundos by Absolute telpos = {x=32340, y=32213, z=7}, -- onde aparecerá o teleport stats = 201201201701, kill = 201201201702, death = 201201201703, ostime = 201201201704, evttime = 20, -- quanto tempo irá rolar o evento topleftPos = {x=32722, y=31336, z=6}, -- canto esquerdo superior botrightPos = {x=32791, y=31384, z=6}, -- canto direito inferior templepos = {x=32369, y=32241, z=7}, -- posição do templo principal arenapos = {{x=32722, y=31340, z=6}, {x=32786, y=31336, z=6}, {x=32722, y=31380, z=6}, {x=32783, y=31374, z=6}}, -- posição dos 4 tronos times = 8, -- não precisa mexer finaltime = 300 -- não precisa mexer } function configCW:new() local newevt = {} setmetatable(newevt, self) self.__index = self doBroadcastMessage("The City War will be open in " .. self.timetostart .. " seconds.") setGlobalStorageValue(self.stats, 0) addEvent(function () newevt:start() end, self.timetostart*1000) end function configCW:start() if getGlobalStorageValue(self.stats) == 0 then setGlobalStorageValue(self.ostime, os.time()) local teleport = doCreateItem(1387, self.telpos) doItemSetAttribute(teleport, "aid", 5540) setGlobalStorageValue(self.stats, 1) doBroadcastMessage("The City War is starting...") for _, posi in pairs(self.arenapos) do local item = getTileItemById(posi, 1387) if(item.uid ~= 0) then doRemoveItem(item.uid) end end addEvent(function () self:preclose() end, self.evttime*1000*60) addEvent(function () self:announce(0) end, (self.evttime/self.times)*1000*60) end end function configCW:announce(times) if times < self.times then if #self:getTopFrags(true) >= 1 then doBroadcastMessage("Top City War fraggers: " .. self:getTopFrags()) end addEvent(function () self:announce(times+1) end, (self.evttime/self.times)*1000*60) end end function configCW:preclose() if getGlobalStorageValue(self.stats) == 1 then setGlobalStorageValue(self.stats, 2) doBroadcastMessage("The City War will end in " .. self.finaltime .. " seconds.") addEvent(function () self:close() end, self.finaltime*1000) local item = getTileItemById(self.telpos, 1387) if(item.uid ~= 0) then doRemoveItem(item.uid) end end end function configCW:close() if getGlobalStorageValue(self.stats) == 2 then if #self:getTopFrags(true) >= 1 then doBroadcastMessage("The City War has ended. The winners are: " .. self:getTopFrags()) else doBroadcastMessage("The City War has ended. There were no winners.") end doRemovePlayersFromArea(self.topleftPos, self.botrightPos, self.templepos) for _, posi in pairs(self.arenapos) do doCreateTeleport(1387, self.templepos, posi) end for place, info in ipairs(self:getTopFrags(true)) do if place > 5 then break end local cid = getPlayerByName(info) doPlayerSendTextMessage(cid, 4, "Congratulations, you were the " .. place .. "º place in the City War.") doPlayerAddItem(cid, 6571, 1) end setGlobalStorageValue(self.stats, -1) end end function configCW:isPlayerInEvent(cid) if getPlayerStorageValue(cid, self.stats) == -1 or getPlayerStorageValue(cid, self.stats) - os.time() <= -5 or getGlobalStorageValue(self.stats) < 1 then return false end return true end function configCW:getTopFrags(tab) local frag = {} for _, pid in pairs(getPlayersOnline()) do if (getPlayerStorageValue(pid, self.kill) ~= -1 or getPlayerStorageValue(pid, self.death) ~= -1) and self:isPlayerInEvent(pid) then local kill = getPlayerStorageValue(pid, self.kill)+1 local death = getPlayerStorageValue(pid, self.death)+1 print(getCreatureName(pid), kill-death) table.insert(frag, {getCreatureName(pid), kill-death}) end end print(#frag) local frag, str, n = doOrderTab(frag, 0), nil, 5 print(#frag) if tab then return frag else if #frag < 5 then n = #frag end for i = 1, n do local cid = getPlayerByName(frag[i]) local kill = getPlayerStorageValue(cid, self.kill)+1 local death = getPlayerStorageValue(cid, self.death)+1 str = str and str .. ", " .. frag[i] .. "[" .. kill .. "/" .. death .. "]" or frag[i] .. "[" .. kill .. "/" .. death .. "]" end end return str end function doOrderTab(tabela, value) local max, index = {}, nil for i = 1, #tabela do valor = value for a, b in ipairs(tabela) do if b[2] > valor then valor = b[2] valor2 = b[1] index = a end end table.remove(tabela, index) if valor ~= value then table.insert(max, valor2) end end return max end Configuração do arquivo:
    telpos = {x=32340, y=32213, z=7}, -- POSIÇÃO ONDE NASCE O TP DO EVENTO!
    topleftPos = {x=32722, y=31336, z=6}, -- AQUI COLOQUE A POSIÇÃO DO CANTO ESQUERDO LA EM CIMA DO MAPA botrightPos = {x=32791, y=31384, z=6}, -- AQUI A POSIÇÃO DO CANTO DIREITO EM BAIXO DO MAPA templepos = {x=32369, y=32241, z=7}, -- POSIÇÃO DO TEMPLO ONDE OS JOGADORES NASCERAM PÓS A MORTE arenapos = {{x=32722, y=31340, z=6}, {x=32786, y=31336, z=6}, {x=32722, y=31380, z=6}, {x=32783, y=31374, z=6}}, -- ATENÇÃO, NO MAPA QUE ESTAREI DISPONIBILIZANDO VISIVELMENTE TERÁ 4 BASES, VOCÊ TERA QUE COLOCAR A POSIÇÃO DAS BASES AÍ NESSES 3 LUGARES.  doPlayerAddItem(cid, 6571, 1) -- AQUI VOCÊ COLOCARÁ O PRÊMIO DO GANHADOR, NO CASO QUEIRA ADICIONAR POR EXEMPLO 1kk, COLOQUE 2160,1 - Primeiro ID depois quantia.       Segundo passo, crie um arquivo com o nome de citywarCreature.lua e coloque dentro da pasta creaturescripts/scripts com o seguinte conteúdo: function onPrepareDeath(cid, lastHitKiller, mostDamageKiller) if isInRange(getCreaturePosition(cid), configCW.topleftPos, configCW.botrightPos) then setPlayerStorageValue(cid, configCW.death, getPlayerStorageValue(cid, configCW.death) +1) setPlayerStorageValue(lastHitKiller[1], configCW.kill, getPlayerStorageValue(lastHitKiller[1], configCW.kill) +1) end return true end E adicione em creaturescripts.xml a seguinte tag
    <event type="preparedeath" name="CityWar" event="script" value="citywarCreature.lua"/>   Terceiro passo, crie um arquivo em movements/scripts com o nome de citywarMovements.lua com o seguinte conteúdo: function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition) if isPlayer(cid) and getGlobalStorageValue(configCW.stats) == 1 then doTeleportThing(cid, configCW.arenapos[math.random(1, #configCW.arenapos)]) doSendMagicEffect(getPlayerPosition(cid), 28) if not(configCW:isPlayerInEvent(cid)) then setPlayerStorageValue(cid, configCW.stats, getGlobalStorageValue(configCW.ostime) + configCW.evttime*60 + configCW.finaltime) setPlayerStorageValue(cid, configCW.kill, -1) setPlayerStorageValue(cid, configCW.death, -1) end else doTeleportThing(cid, fromPosition) end return true end Em Movements.xml adicione a seguinte linha: <movevent type="StepIn" actionid="5540" event="script" value="citywarMovements.lua"/> Quarto e último passo, em talkactions/scripts crie um arquivo com o nome de citywarTalkactions.lua e coloque o seguinte conteúdo:
    function onSay(cid, words, param) if getGlobalStorageValue(configCW.stats) == -1 then configCW:new() else doPlayerSendCancel(cid, "The event is already running.") end return true end Em talkactions/talkactions.xml adicione a seguinte linha:
    <talkaction log="yes" words="/citywar" access="3" event="script" value="citywarTalkactions.lua"/> E por fim, estou disponibilizando o world do evento, vocês usam se quiser, tentei adapta-lo para 8.6 mas ficou meio slá, o Viiting estava ocupado e não pode me ajudar, enfim segue a imagem e download do world.otbm:
     


        Lembrando que ninguém além do Collocorpusek da otland tem direito de pedir remoção do script, pois a base é dele.
       
    Créditos:
    Absolute
    Collocor Gringo Lindo.
     
  9. Gostei
    ops, falta de atenção minha , testa ae agora..
     
    function onUse(cid, item, fromPosition, itemEx, toPosition) if item.uid == 6411 then    if getPlayerStorageValue(cid, 6411) <= 0 then       doBroadcastMessage("O Jogador "..getCreatureName(cid).." completou a Anihilator 4.", MESSAGE_STATUS_CONSOLE_ORANGE)       doPlayerAddItem(cid,9693,1)       doPlayerAddItem(cid,2160,1)       setPlayerStorageValue(cid,6411,1)    else        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você já ganhou seu bonus.")    end end  return true end
  10. Gostei
    Eduardo Carvalho deu reputação a xWhiteWolf em Dois Tipo De Spell Que Teleporta   
    pelo que eu to vendo seu script tem um bug: se dois players usarem a spell o player 2 será teleportado pra posição 1. Confere isso pra mim e me diz se eu to errado. 

    OBS: seu script ficou muito melhor doque o meu mas tem esse bugzinho aí (acredito eu)
  11. Gostei
    Eduardo Carvalho recebeu reputação de skailord em (Resolvido)spells de teleporte   
    Ta ae mano..
    o conteúdo dos tópicos são o mesmo.
     
    http://www.tibiaking.com/forum/topic/35546-dois-tipo-de-spell-que-teleporta/
  12. Gostei
    Eduardo Carvalho recebeu reputação de llucas75 em Tutorial Básico Actions   
    Conteúdo removido por "anunciar venda de scripts".
  13. Gostei
    Eduardo Carvalho recebeu reputação de macalo em [ERRO] SCRIPT LOTTERY.LUA   
    Testei aqui , funcionou :s
  14. Gostei
    faz oq ele falou ^
     
    é bug no editor !, é só abrir no bloco de notas e refazer.
  15. Gostei
    Eduardo Carvalho recebeu reputação de llucas75 em (Resolvido)[AJUDA] Script Talkaction   
    Lucas, sempre que você usar um addEvent em um cid, cheque se ainda tem o mesmo, pq se o player sair vai dar erro !
    function potion(cid) if isPlayer(cid) then doChangeSpeed(cid, -speed) doPlayerSendTextMessage(cid,22,textofinal) end end
  16. Gostei
    Eduardo Carvalho recebeu reputação de SliceFalso em (Resolvido)[AJUDA] Script Talkaction   
    Lucas, sempre que você usar um addEvent em um cid, cheque se ainda tem o mesmo, pq se o player sair vai dar erro !
    function potion(cid) if isPlayer(cid) then doChangeSpeed(cid, -speed) doPlayerSendTextMessage(cid,22,textofinal) end end
  17. Gostei
    Eduardo Carvalho recebeu reputação de macalo em (Resolvido)[ERRO] SCRIPT   
    é só remover essa parte de todos os monsters que a tenha :
    <script>         <event name="KillingInTheNameOf"/> </script> faz isso ! Não lembro todos os monstros que tem , é só procurar.
    Creio que todos os monster que tem o nome no script tem o registro.
     
    é só excluir
  18. Gostei
    Eduardo Carvalho recebeu reputação de Farathor em Survival of the Fittest   
    Logo mais faço o mapa, e uma nova versão do evento, para que funcione em PVP zone.
     
    Abraços.
  19. Gostei
    Eduardo Carvalho recebeu reputação de Leoo Zanin em (Resolvido)[GLOBALEVENTS] Teleport automático   
    4 hrs = 14400000
    3 hrs = 10800000
    2 hrs = 7200000
    1 hr = 3600000
  20. Gostei
    Eduardo Carvalho recebeu reputação de Dennyz em (Resolvido)pedido ao teleporta sumonando monstro   
    isso não tem anda a ver com meu script 'kkkk
    muda o uniqueid !

    ou muda o tile.
  21. Gostei
    Eduardo Carvalho recebeu reputação de Lyon em Survival of the Fittest   
    Conteúdo removido por "anunciar venda de scripts".
  22. Gostei
    Eduardo Carvalho recebeu reputação de luanluciano93 em System Multi Vip   
    Conteúdo removido por "anunciar venda de scripts".
  23. Gostei
    Eduardo Carvalho recebeu reputação de llucas75 em (Resolvido)addEvent Send magic effect Alguém sabe?   
    function onUse(cid, item, frompos, item2, topos) local pausa = 30*1*1000 -- (1000 = 1 segundos) Tempo que o script durará local texto = "Você dobrou sua Experiencia por 30 minutos" -- Texto que irá receber ao usar a potion. textofinal = "Acabou o potion de Experiencia." -- Texto que irá receber quando o efeito da potion acabar. local exp = 2 -- O quanto que você quer que dobre sua experiencia, por exemplo 2 é 2x as rates do seu server. expfinal = 1 --Não mude, isso é para a experiencia voltar ao normal. local limitedeuso = 49015 local tempo = 1*1*1000 local textofinal1 = "Você já esta sob efeito da pot de experiência espere o efeito acabar." local timeEffect = 31 -- tempo em segundos que o efeito vai apareceer no player, 31 = 30 segundos. sempre coloque 1 segundo a mais.       function effect()          if isPlayer(cid) then             local pos = getCreaturePosition(cid)             doSendMagicEffect(pos, 35)          end       end           if item.itemid == 9930 and (getPlayerStorageValue(cid, limitedeuso) - os.time() <= 0) then   doRemoveItem(item.uid,1)    doPlayerSetExperienceRate(cid,exp)     doSendMagicEffect(frompos,13)      setPlayerStorageValue(cid, limitedeuso, os.time() + 30)     doPlayerSendTextMessage(cid,22,texto)      a = 1   while a ~= timeEffect do         addEvent(effect, a * 1000)           a = a + 1   end   elseif item.itemid == 9930 and (getPlayerStorageValue(cid, limitedeuso) - os.time() > 0) then   doPlayerSendTextMessage(cid,22,textofinal1) end return true end lembrado que dessa maneira se o player logar o efeito não sairá novamente, até que o mesmo der use denovo.
  24. Gostei
    para setar a storage com tempo..
     
    Exemplo :
    if getPlayerStorageValue(cid, XXXX) - os.time() <= 0 then      ...    setPlayerStorageValue(cid, XXXX, os.time() + 2 * 60) else    doPlayerSendCancel(cid, "Você só pode ... a cada 2 minutos.") end a storage é setada por 2 minutos.
     
    para setar uma storage você usar :
    setPlayerStorageValue(cid, XXXX, 1) Correto ? com os.time() só oq muda é o valor para qual será setada...
    os.time() + TIME (por padrão é segundos) os.time() + 10 (a storage será setada por 10 segundos) os.time() + 10 * 60 (a storage será setada por 10 minutos)
  25. Gostei
    Eduardo Carvalho recebeu reputação de Killua em Tutorial Básico Actions   
    Conteúdo removido por "anunciar venda de scripts".

Informação Importante

Confirmação de Termo