Ir para conteúdo

luangop

Membro
  • Registro em

  • Última visita

Tudo que luangop postou

  1. kkk fiz besteira, agora fui reler o código e vi. Testa: function onStepIn(cid, item, position, fromPosition) local newPosition = {x=632, y=737, z=7} if not isPlayer(cid) then return true end if getPlayerStorageValue(cid, 10102) <= os.time() then doTeleportThing(cid, fromPosition) doPlayerSendTextMessage(cid, 19, "Voce nao possui acesso vip, faça a quest!.") return true end doPlayerSendTextMessage(cid, 19, "Bem Vindo a ViP 1.") doSendMagicEffect(getPlayerPosition(cid), 2) doTeleportThing(cid, newPosition) doSendMagicEffect(newPosition, 10) return true end
  2. Sim, fui upando e do nada o char morria, quando relogava, ja nascia morto. Olhei na database e tava 0.
  3. Level > 429496730 Exp > 6148914674056648433 Considerando QUE, no processo o hp e mana bugou varias vezes, fazendo ir a 0 o healthmax e manamax, ai eu botava 1 na database e continuava upando o level.
  4. Funcionou perfeitamente! Muito obrigado!
  5. Eu ate agora só estava ajudando o amigo que criou o script.. Agora que percebi, seu TFS é 1.x, logo esse code não vai funcionar pois foi feito com funções 0.4 ou inferior. Infelizmente não tenho conhecimento das funções 1.x Peça para alguém converter para você.
  6. Consegui fazer funcionar aqui, reveja minha primeira resposta e refaça todos os passos.
  7. Script da action function onUse(cid, item, frompos, item2, topos) queststorage = 9881 queststatus = getPlayerStorageValue(cid,queststorage) if queststatus <= 0 or > 0 then questipdone = 0 playerip = getPlayerIp(cid) file = io.open('data/actions/scripts/iplist.txt', 'r') while true do local line = file:read("*l") if line == nil then break end if line == tostring(playerip) then questipdone = 1 end end ile:close() if questipdone == 0 then doCreatureSay(cid, "Voce abriu o bau e recebeu a recompensa!", TALKTYPE_ORANGE_1) doPlayerAddItem(cid,ITEMID,QUANTIA) doSendMagicEffect(getPlayerPosition(cid), 30) file = io.open('data/actions/scripts/iplist.txt','a') file:write("" .. playerip .. "\n") file:close() else doCreatureSay(cid, "Apenas um jogador por IP pode adquirir a recompensa!", TALKTYPE_ORANGE_1) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) end else doCreatureSay(cid, "Vazio!", TALKTYPE_ORANGE_1) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) end end Entendeu? Não precisa registrar storage no player, o bloqueio de IP já vai impedir ele de abrir o bau novamente.
  8. luangop postou uma resposta no tópico em Suporte Tibia OTServer
    Não, esse sistema não funciona em client 8.6 Apenas em client que tenha a opção de montaria na janela de change outfit.
  9. Quando o player pegar o item, já vai ficar impossibilitado de pegar denovo no mesmo dia, então nem precisa registrar storage, logo eliminando a necessidade de limpar a storage depois =)
  10. luangop postou uma resposta no tópico em Suporte Tibia OTServer
    O code do amigo acima vai resolver, mas da uma olhada nesse meu sistema: Pode ser útil futuramente para você!
  11. Se fosse eu, faria a tag do globalevent assim: <globalevent name="CleanIpList" time="23:00" event="script" value="CLEANIPLIST.lua"/> Pois da forma que você fez, vai verificar durante o dia todo, a cada 30 segundos. E dessa forma o script só roda no momento especificado.
  12. Fiz na hora sem testar, se funcionar avisa rsrs
  13. data/creaturescripts/scripts crie um arquivo killmission.lua local config = { message = "Congrulations. Now you can proceed your quest.", -- Mensagem que aparece quando matar o boss monsterName = "demon", -- Nome do monstro sto = 9898 -- storage do sistema } function onKill(cid, target, lastHit) if isMonster(target) then registerCreatureEvent(target, "killmission") local position = getCreaturePosition(target) if (getCreatureName(target):lower() == string.lower(config.monsterName)) and getPlayerStorageValue(cid, config.sto) <= 0 then doCreatureSay(target, config.message, TALKTYPE_ORANGE_1) setPlayerStorageValue(cid, config.sto, 1) doSendMagicEffect(position,10) end return true end end data/creaturescripts creaturescripts.xml <event type="kill" name="killmission" script="killmission.lua"/> Em data/creaturescripts/scripts login.lua Adicione a linha: registerCreatureEvent(cid, "killmission")
  14. Só faltou um then no arquivo CLEANIPLIST.lua function verifyTime(interval) if getWorldTime() > 2259 and getWorldTime() < 2301 then doBroadcastMessage("Lista de IPs Resetada! Bau liberado!") file = io.open('data/actions/scripts/iplist.txt', 'w') file:write("") file:close() return true end end
  15. data/creaturescripts/scripts crie o arquivo bosstp.lua local config = { message = "Congrulations. Teleports close in 1 minute", timeToRemove = 60, -- tempo em segundos que o teleport vai ser removido teleportId = 1387 } local boss = "Nome do Boss" local criar1, go1 = { x = 459, y = 594, z = 7 }, { x = 459, y = 594, z = 7 } --- primeira coordenada onde vai ser criado primeiro tp, segunda pra onde vai o player q entrar no tp local criar2, go2 = { x = 459, y = 594, z = 7 }, { x = 459, y = 594, z = 7 } --- primeira coordenada onde vai ser criado segundo tp, segunda pra onde vai o player q entrar no tp local criar3, go3 = { x = 459, y = 594, z = 7 }, { x = 459, y = 594, z = 7 } --- primeira coordenada onde vai ser criado terceiro tp, segunda pra onde vai o player q entrar no tp local function removal(criar1, criar2, criar3) doRemoveThing(getTileItemById(criar1, config.teleportId).uid, 1) doRemoveThing(getTileItemById(criar2, config.teleportId).uid, 1) doRemoveThing(getTileItemById(criar3, config.teleportId).uid, 1) return TRUE end function onDeath(cid, corpse, killer) registerCreatureEvent(cid, "teleportmonster") if boss == getCreatureName(cid) then teleport1 = doCreateTeleport(config.teleportId, go1, criar1) teleport2 = doCreateTeleport(config.teleportId, go2, criar2) teleport3 = doCreateTeleport(config.teleportId, go3, criar3) doCreatureSay(cid, config.message, TALKTYPE_ORANGE_1) addEvent(removal, config.timeToRemove * 1000, criar1, criar2, criar3) doSendMagicEffect(criar1,10) doSendMagicEffect(criar2,10) doSendMagicEffect(criar3,10) end return TRUE end data/creaturescripts/ creaturescripts.xml <event type="death" name="teleportmonster" script="bosstp.lua"/>
  16. Acho que é isso que você quer: function onSay(cid, words, param, channel) local item = 2471 --- id do item necessário local storage = 84456 -- storage que vai liberar uso da talkaction local remover = 0 -- se deve remover o item para liberar o comando (1 para sim ou 0 para nao) if getPlayerStorageValue(cid, storage) ~= 1 then if getPlayerItemCount(cid,item) < 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce nao pode usar esse comando!") else if remover == 1 then doPlayerRemoveItem(cid, item, 1) end setPlayerStorageValue(cid, storage, 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Comando liberado! Digite novamente e ira funcionar.") end else FUNÇÃO DA SUA TALKACTION AQUI end end
  17. Ah entendi, no caso como se tivesse uma pasta (fora da lib) somente para seus sistemas, ou seja, com parâmetros que não interferem no sistema geral do servidor, apenas no script qual for declarado. Tipo dofile('data/MyLib/MinhasConfig.lua') E no costume de fazer isso você declarou a pasta lib rs
  18. Unica coisa q vc fez foi jogar o meu script dentro de outro rsrs
  19. luangop postou uma resposta no tópico em Suporte Tibia OTServer
    Velho, analisei de vários lados, e me parece tudo certo. Ultima coisa que penso no momento são: Ou seu servidor está faltando a function player:hasMount, ou a identação está atrapalhando. Para eliminar a possibilidade da identação, teste assim: local ACTION_RUN, ACTION_BREAK, ACTION_NONE, ACTION_ALL = 1, 2, 3, 4 local TYPE_MONSTER, TYPE_NPC, TYPE_ITEM, TYPE_ACTION, TYPE_UNIQUE = 1, 2, 3, 4, 5 local config = { [5907] = {NAME = 'Bear', ID = 3, TYPE = TYPE_MONSTER, CHANCE = 20, FAIL_MSG = { {1, 'The bear ran away.'}, {2, 'Oh no! The slingshot broke.'}, {3, 'The bear is trying to hit you with its claws.'} },SUCCESS_MSG = 'You have tamed the bear.'}, [2158] = {NAME = 'Black Sheep', ID = 4, TYPE = TYPE_MONSTER, CHANCE = 25, FAIL_MSG = { {1, 'The black sheep ran away.'}, {2, 'Oh no! The reins were torn.'}, {3, 'The black sheep is trying to run away.'} },SUCCESS_MSG = 'You have tamed the sheep.'}, [13293] = {NAME = 'Midnight Panther', ID = 5, TYPE = TYPE_MONSTER, CHANCE = 40, FAIL_MSG = { {1, 'The panther has escaped.'}, {2, 'The whip broke.'} },SUCCESS_MSG = 'You have tamed the panther.'}, [13298] = {NAME = 'Terror Bird', ID = 2, TYPE = TYPE_MONSTER, CHANCE = 15, FAIL_MSG = { {1, 'The bird ran away.'}, {3, 'The terror bird is pecking you.'} }, SUCCESS_MSG = 'You have tamed the bird.'}, [13247] = {NAME = 'Boar', ID = 10, TYPE = TYPE_MONSTER, CHANCE = 40, FAIL_MSG = { {1, 'The boar has run away'}, {3, 'The boar attacks you.'} }, SUCCESS_MSG = 'You have tamed the boar.'}, [13305] = {NAME = 'Crustacea Gigantica', ID = 7, TYPE = TYPE_MONSTER, CHANCE = 40, FAIL_MSG = { {1, 'The crustacea has run away.'}, {2, 'The crustacea ate the shrimp.'} }, SUCCESS_MSG = 'You have tamed the crustacea.'}, [13291] = {NAME = 'Undead Cavebear', ID = 12, TYPE = TYPE_MONSTER, CHANCE = 40, FAIL_MSG = { {1, 'The undead bear has run away.'} }, SUCCESS_MSG = 'You have tamed the skeleton.'}, [13307] = {NAME = 'Wailing Widow', ID = 1, TYPE = TYPE_MONSTER, CHANCE = 40, FAIL_MSG = { {1, 'The widow has run away.'}, {2, 'The widow has eaten the sweet bait.'} }, SUCCESS_MSG = 'You have tamed the widow.'}, [13292] = {NAME = 'inoperative tin lizzard', ID = 8, TYPE = TYPE_ITEM, CHANCE = 40, FAIL_MSG = { {2, 'The key broke inside.'} }, SUCCESS_MSG = 'You wind up the tin lizzard.'}, [13294] = {NAME = 'Draptor', ID = 6, TYPE = TYPE_MONSTER, CHANCE = 40, FAIL_MSG = { {1, 'The draptor has run away.'}, {3, 'The draptor has fled.'} }, SUCCESS_MSG = 'You have tamed the draptor.'}, [13536] = {NAME = 'Crystal Wolf', ID = 16, TYPE = TYPE_MONSTER, CHANCE = 40, FAIL_MSG = { {1, 'The wolf has run away.'} }, SUCCESS_MSG = 'You have tamed the wolf.'}, [13539] = {NAME = 'Enraged White Deer', ID = 18, TYPE = TYPE_MONSTER, CHANCE = 40, FAIL_MSG = { {2, 'The cone broke.'}, {3, 'The deer has fled in fear.'} }, SUCCESS_MSG = 'You have tamed the deer.'}, [13538] = {NAME = 'Panda', ID = 19, TYPE = TYPE_MONSTER, CHANCE = 40, FAIL_MSG = { {4, 'Panda ate the leaves and ran away.'} }, SUCCESS_MSG = 'You have tamed the panda.'}, [13535] = {NAME = 'Dromedary', ID = 20, TYPE = TYPE_MONSTER, CHANCE = 40, FAIL_MSG = { {1, 'Dromedary has run away.'} }, SUCCESS_MSG = 'You have tamed the dromedary.'}, [13498] = {NAME = 'Sandstone Scorpion', ID = 21, TYPE = TYPE_MONSTER, CHANCE = 40, FAIL_MSG = { {1, 'The scorpion has vanished.'}, {2, 'Scorpion broken the sceptre.'} }, SUCCESS_MSG = 'You have tamed the scorpion.'}, [13537] = {NAME = 'Donkey', ID = 13, TYPE = TYPE_MONSTER, CHANCE = 40, FAIL_MSG = { {1, 'The witch has escaped!'} }, SUCCESS_MSG = 'You have tamed the mule.'}, [13938] = {NAME = 'inoperative uniwheel', ID = 15, TYPE = TYPE_ITEM, CHANCE = 40, FAIL_MSG = { {3, 'The oil have no effect.'}, {2, 'Splosh!'} }, SUCCESS_MSG = 'The strange wheel seems to vibrate and slowly starts turning continuously.'}, [13508] = {NAME = 'Slug', ID = 14, TYPE = TYPE_MONSTER, CHANCE = 40, FAIL_MSG = { {1, 'The slug has run away.'}, {3, 'The drug had no effect.'} }, SUCCESS_MSG = 'You have tamed the slug.'}, [13939] = {NAME = 'Wild Horse', ID = 17, TYPE = TYPE_MONSTER, CHANCE = 15, FAIL_MSG = { {1, 'The horse runs away.'}, {2, 'The horse ate the oats.'} }, SUCCESS_MSG = 'You have tamed the horse.'}, [15545] = {NAME = 'Manta Ray', ID = 28, TYPE = TYPE_MONSTER, CHANCE = 30, FAIL_MSG = { {1, 'The manta ray fled.'}, {3, 'The manta ray is trying to escape.'} }, SUCCESS_MSG = 'You have tamed the manta ray.'}, [15546] = {NAME = 'Lady Bug', ID = 27, TYPE = TYPE_MONSTER, CHANCE = 30, FAIL_MSG = { {1, 'The ladybug got scared and ran away.'}, {3, 'The ladybug is trying to nibble.'} }, SUCCESS_MSG = 'You tame a lady bug.'}, [18447] = {NAME = 'Ironblight', ID = 29, TYPE = TYPE_MONSTER, CHANCE = 30, FAIL_MSG = { {1, 'The ironblight managed to run away.'}, {2, 'Oh no! The magnet lost its power!'}, {3, 'The ironblight is fighting against the magnetic force.'} }, SUCCESS_MSG = 'You tamed the ironblight.'}, [18449] = {NAME = 'Dragonling', ID = 31, TYPE = TYPE_MONSTER, CHANCE = 30, FAIL_MSG = { {1, "The dragonling got scared and ran away."}, {3, "The dragonling is trying to nibble."} }, SUCCESS_MSG = "You tamed a dragonling."}, [18448] = {NAME = 'Magma Crawler', ID = 30, TYPE = TYPE_MONSTER, CHANCE = 30, FAIL_MSG = { {1, 'The magma crawler refused to drink wine and vanishes into thin air.'}, {2, 'Argh! The magma crawler pushed you and you spilled the glow wine!'}, {3, 'The magma crawler is smelling the glow wine suspiciously.'} }, SUCCESS_MSG = 'The magma crawler will accompany you as a friend from now on.'}, [18516] = {NAME = 'Modified Gnarlhound', ID = 32, TYPE = TYPE_MONSTER, CHANCE = 100, FAIL_MSG = { }, SUCCESS_MSG = 'You now own a modified gnarlhound.'}, [21452] = {NAME = 'Gravedigger', ID = 39, TYPE = TYPE_MONSTER, CHANCE = 40, FAIL_MSG = { {1, "The gravedigger got scared and ran away."}, {3, "The gravedigger is trying to nibble."} }, SUCCESS_MSG = "You tamed the hellgrip."}, [20138] = {NAME = 'Water Buffalo', ID = 35, TYPE = TYPE_MONSTER, CHANCE = 30, FAIL_MSG = { {1, 'The water buffalo got scared and ran away.'}, {3, 'The water buffalo is trying to nibble.'} }, SUCCESS_MSG = 'You tamed a water buffalo.'}, [22608] = {NAME = 'Shock Head', ID = 42, TYPE = TYPE_MONSTER, CHANCE = 30, FAIL_MSG = { {1, 'The shock head ran away.'}, {3, 'The shock head is growling at you.'} }, SUCCESS_MSG = 'You tamed the shock head.'}, [23550] = {NAME = 'Walker', ID = 43, TYPE = TYPE_MONSTER, CHANCE = 15, FAIL_MSG = { {2, 'This walker is incompatible with your control unit.'}, {4, 'This walker is incompatible with your control unit.'} }, SUCCESS_MSG = 'You tamed the walker.'}, [23880] = {NAME = 'Noble Lion', ID = 40, TYPE = TYPE_MONSTER, CHANCE = 30, FAIL_MSG = { {2, 'The lion got scared and ran away.'}, {4, 'The lion is trying to nibble.'} }, SUCCESS_MSG = 'You tamed the lion.'} } local function doFailAction(cid, mount, pos, item, itemEx) local action, effect = mount.FAIL_MSG[math.random(#mount.FAIL_MSG)], CONST_ME_POFF if(action[1] == ACTION_RUN) then Creature(itemEx.uid):remove() elseif(action[1] == ACTION_BREAK) then effect = CONST_ME_BLOCKHIT Item(item.uid):remove(1) elseif(action[1] == ACTION_ALL) then Creature(itemEx.uid):remove() Item(item.uid):remove(1) end pos:sendMagicEffect(effect) Player(cid):say(action[2], TALKTYPE_MONSTER_SAY) return action end function onUse(cid, item, fromPosition, itemEx, toPosition) local player = Player(cid) local targetMonster = Monster(itemEx.uid) local targetNpc = Npc(itemEx.uid) local targetItem = Item(itemEx.uid) local mount = config[item.itemid] if mount == nil or player:hasMount(mount.ID) then return false end local rand = math.random(100) --Monster Mount if targetMonster ~= nil and mount.TYPE == TYPE_MONSTER then if Creature(itemEx.uid):getMaster() then player:say('You can\'t tame a summon!', TALKTYPE_MONSTER_SAY) return true end if mount.NAME == targetMonster:getName() then if rand > mount.CHANCE then doFailAction(cid, mount, toPosition, item, itemEx) return true end player:addMount(mount.ID) player:say(mount.SUCCESS_MSG, TALKTYPE_MONSTER_SAY) targetMonster:remove() toPosition:sendMagicEffect(CONST_ME_MAGIC_GREEN) Item(item.uid):remove(1) return true end --NPC Mount elseif targetNpc ~= nil and mount.TYPE == TYPE_NPC then if mount.NAME == targetNpc:getName() then if rand > mount.CHANCE then doFailAction(cid, mount, toPosition, item, itemEx) return true end player:addMount(mount.ID) player:say(mount.SUCCESS_MSG, TALKTYPE_MONSTER_SAY) toPosition:sendMagicEffect(CONST_ME_MAGIC_GREEN) Item(item.uid):remove(1) return true end --Item Mount elseif targetItem ~= nil and mount.TYPE == TYPE_ITEM then if mount.NAME == targetItem:getName() then if rand > mount.CHANCE then doFailAction(cid, mount, toPosition, item, itemEx) return true end player:addMount(mount.ID) player:say(mount.SUCCESS_MSG, TALKTYPE_MONSTER_SAY) toPosition:sendMagicEffect(CONST_ME_MAGIC_GREEN) Item(item.uid):remove(1) return true end --Action Mount elseif itemEx.actionid > 0 and mount.TYPE == TYPE_ACTION then if(mount.NAME == itemEx.actionid) then if rand > mount.CHANCE then doFailAction(cid, mount, toPosition, item, itemEx) return true end player:addMount(mount.ID) player:say(mount.SUCCESS_MSG, TALKTYPE_MONSTER_SAY) toPosition:sendMagicEffect(CONST_ME_MAGIC_GREEN) Item(item.uid):remove(1) return true end --Unique Mount elseif itemEx.uid <= 65535 and mount.TYPE == TYPE_UNIQUE then if mount.NAME == itemEx.uid then if rand > mount.CHANCE then doFailAction(cid, mount, toPosition, item, itemEx) return true end player:addMount(mount.ID) player:say(mount.SUCCESS_MSG, TALKTYPE_MONSTER_SAY) toPosition:sendMagicEffect(CONST_ME_MAGIC_GREEN) Item(item.uid):remove(1) return true end end return false end
  20. luangop postou uma resposta no tópico em Suporte Tibia OTServer
    Cara, isso não implica em nada, se vc tem um script com problema, e posta outro, nunca vou poder ajudar.
  21. luangop postou uma resposta no tópico em Suporte Tibia OTServer
    Quando posta erro, tem que postar o script que você ta usando, se vc modificou o script já alterou as posições de linha, e eu já procurei por erro na linha errada...
  22. luangop postou uma resposta no tópico em Suporte Tibia OTServer
    Simples, você provavelmente só botou o id 2158 na tag do actions mas não botou no script, pois no script não tem mount configurada para o itemid 2158. E quando falei pra usar code, quis dizer assim:
  23. luangop postou uma resposta no tópico em Suporte Tibia OTServer
    Cara, use CODE quando for postar um script, ajuda bastante na leitura. Sobre o erro, me diga o ID do item que você está dando USE.

Informação Importante

Confirmação de Termo