Ir para conteúdo

psychonaut

Membro
  • Registro em

  • Última visita

Tudo que psychonaut postou

  1. Salva ele na pasta \data\creaturescripts\scripts com o nome de allmounts.lua Depois vai na pasta anterior, \data\creaturescripts\ e edita o arquivo creaturescripts.xml colocando essa linha: <event type="login" name="AllMounts" script="allmounts.lua" /> Ela? hsuahsuhah
  2. local looktypes = { 128, 136, 129, 137, 130, 138, 131, 139, 132, 140, 133, 141, 134, 142, 143, 147, 144, 148, 145, 149, 146, 150, 151, 155, 152, 156, 153, 157, 154, 158, 251, 252, 268, 269, 273, 270, 278, 279, 289, 288, 325, 324, 335, 336, 366, 367, 328, 329, 430, 431, 432, 433, 463, 464, 465, 466, 471, 472, 512, 513, 514, 516, 541, 542, 574, 575, 577, 578 } local storage = 4545 function onLogin(player) if player:getStorageValue(storage) ~= 1 then for i = 1, #looktypes do player:addOutfitAddon(looktypes[i], 3) end for i = 1, 47 do player:addMount(i) end player:setStorageValue(storage, 1) end return true end creaturescripts.xml: <event type="login" name="qualquernome" script="nomedoscript.lua" /> qualquer coisa tenta esse, manda os erros se der:
  3. Esqueci de identar, mas era só você me mandar o erro do console e eu corrigia.
  4. Não Só no creaturescripts.xml. Você colocou assim no creaturescripts? O nome não importa <event type="login" name="SemVip" script="acabouvip.lua" /> obs: Tu ta usando TFS > 1.0+ né
  5. Ah pera, tenho que editar Cria um creaturescript, não sei se vai funfar, peguei como base um que o luanluciano fez: local STORAGE_PREMIUM = 13500 local TEMPLE_ID = 1 local storage2 = 13501 function onLogin(cid) local player = Player(cid) if player:getStorageValue(STORAGE_PREMIUM) < 1 and player:getStorageValue(storage2) == 1 then player:setStorageValue(storage2, 0) player:teleportTo(Town(TEMPLE_ID):getTemplePosition()) player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) player:setTown(TEMPLE_ID) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Sua vip acabou!") end return true end E muda o seu vip: function onUse(cid, item, fromPosition, itemEx, toPosition) local storage2 = 13501 local config={ removeOnUse = "yes" -- remover quando usar ("yes" or "no") } local days = 30 -- coloque os dias que serão a VIP! local daysvalue = days * 24 * 60 * 60 local storageplayer = getPlayerStorageValue(cid, 13500) local timenow = os.time() if getPlayerStorageValue(cid, 13500) - os.time() <= 0 then time = timenow + daysvalue else time = storageplayer + daysvalue end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de Donate no seu character.") setPlayerStorageValue(cid, 13500, time) setPlayerStorageValue(cid, storage2, 1) local quantity = math.floor((getPlayerStorageValue(cid, 13500) - timenow)/(24 * 60 * 60)) doSendMagicEffect(getPlayerPosition(cid), math.random(28,30)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de Donate restantes.") if (config.removeOnUse == "yes") then doRemoveItem(item.uid, 1) end return TRUE end Testa isso ai.
  6. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 6, 6, 5.5, 6) local cooldown = 5 -- tempo de exhaust, segundos local exhaust = createConditionObject(CONDITION_EXHAUST) setConditionParam(exhaust, CONDITION_PARAM_TICKS, 6 * 15 * 100) function onCastSpell(cid, var) if exhaustion.check(cid,299) then doPlayerSendCancel(cid, "Sua spell tem "..exhaustion.get(cid, 299).." segundos de cooldown.") exhaustion.set(cid,299,cooldown) return doCombat(cid, combat, var) end return true end spells.xml exhaustion="2000"
  7. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 6, 6, 5.5, 6) function onCastSpell(cid, var) if getGlobalStorageValue(STORAGE) >= os.time() then doPlayerSendCancel(cid,"Voce tem que esperar ".. getGlobalStorageValue(STORAGE) - os.time() .." pra usar denovo.") else setGlobalStorageValue(STORAGE, os.time() + 5) return doCombat(cid, combat, var) end Muda o STORAGE, pra um storage qualquer sem ta sendo usado, esse 5 é o cooldown
  8. Edita no spells.xml tira os group cooldown e deixa exhaust="2000"(acho que é isso) ou menos, ai vai na spell que você quer colocar pra ter exhaust próprio e deixa o oncast mais ou menos assim 45000 é o storage dessa spell, exemplo, muda pra um valor qualquer que não esteja em uso function onCastSpell(cid, var) local target = getCreatureTarget(cid) if getGlobalStorageValue(45000) >= os.time() then doPlayerSendCancel(cid,"Voce tem que esperar ".. getGlobalStorageValue(45000) - os.time() .." pra usar denovo.") else Ai la no final dele tu coloca setGlobalStorageValue(45000, os.time() + 5) end Exemplo de spell com cooldown próprio: http://pastebin.com/GiG69Zqi Acho que é isso que você quer.
  9. #edit Tipo, você quer sem esses cooldowns de grupo, que usa uma magia e a outra entra em cooldown?
  10. psychonaut postou uma resposta no tópico em Suporte Tibia OTServer
    Você copiou parte errada ai. Se eu não tiver enganado, copia o script que ele te mandou novamente e tenta de novo. Opa, se funcionar não da a melhor resposta pra mim não, eu não fiz nada. #edit E essa linha: [4123] = {used_id = 8298, target_id = 8572, effect = 29, transform_id = 8576, create_id = 0, sto = 40067}, -- Druids Não tenho certeza, mas é sem virgula: [4123] = {used_id = 8298, target_id = 8572, effect = 29, transform_id = 8576, create_id = 0, sto = 40067} -- Druids
  11. Qual a versão do seu TFS #Edit, Tem que ter algum item no que tem em comum, ou apaga as linhas local firstItems = {2665, 2417, 2427, 2379, 2545, 7387, 7436, 2666} --ID dos itens EM COMUMe for i = 1, #firstItems do player:addItem(firstItems[i], 1) endSe tu for colocar uma bolsa por exemplo, faz assim:
  12. Só me diz uma coisa, local naruto = {2665, 2417, 2427} -- itens soh pra sorc local sasuke = {2665, 2417, 2427} -- itens soh pra sasukea local lee = {2665, 2417, 2427} -- itens soh pra paladim local sakura = {2665, 2417, 2427} -- itens soh pra sakura Porque tu colocou os mesmos itens pra todos? Obs: Os em comum, todos vão receber, então não precisa repetir nas vocações, a não ser que ela ganhe a mais. Pra aumentar quantidade, repete o id la em cima ou coloca isso la em baixo: Substitui com os valores player:addItem(IDDOMEAT, Quantidade) Poe depois do end do for i = 1, #firstItems do player:addItem(firstItems[i], 1) end
  13. Testa agora local firstItems = {2665, 2417, 2427, 2379, 2545, 7387, 7436, 2666} --ID dos itens EM COMUM local naruto = {2665, 2417, 2427} -- itens soh pra sorc local sasuke = {2665, 2417, 2427} -- itens soh pra sasukea local lee = {2665, 2417, 2427} -- itens soh pra paladim local sakura = {2665, 2417, 2427} -- itens soh pra sakura function onLogin(cid) local player = Player(cid) if player:getLastLoginSaved() = 0 then doPlayerSendTextMessage(cid,22,"Voce acabou de conseguir os Items Iniciais!") if player:getVocation() == 1 then for i = 1, #naruto do player:addItem(naruto[i], 1) end elseif player:getVocation() == 10 then for i = 1, #sasuke do player:addItem(sasuke[i], 1) end elseif player:getVocation() == 30 then for i = 1, #lee do player:addItem(lee[i], 1) end elseif player:getVocation() == 40 then for i = 1, #sakura do player:addItem(sakura[i], 1) end end for i = 1, #firstItems do player:addItem(firstItems[i], 1) end end return true end
  14. De novo eu conseguindo tirar scripts antigos do meu TFS recente, pera aí que vou arrumar. Tenta assim, qualquer coisa dou uma arrumada local firstItems = {2050, 2382} --ID dos itens EM COMUM local sorcerer = {xxxx, xxx} -- itens soh pra sorc local druid = {xxxx, xxx} -- itens soh pra druida local paladin = {xxxx, xxx} -- itens soh pra paladim local knight = {xxxx, xxx} -- itens soh pra knight function onLogin(cid) if getPlayerLastLoginSaved(cid) == 0 then doPlayerSendTextMessage(cid,22,"Voce acabou de conseguir os Items Iniciais!") if getPlayerVocation(cid) == 1 then for i = 1, #sorcerer do doPlayerAddItem(cid, sorcerer[i], 1) end end if getPlayerVocation(cid) == 2 then for i = 1, #druid do doPlayerAddItem(cid, druid[i], 1) end end if getPlayerVocation(cid) == 3 then for i = 1, #paladin do doPlayerAddItem(cid, paladin[i], 1) end end if getPlayerVocation(cid) == 4 then for i = 1, #knight do doPlayerAddItem(cid, knight[i], 1) end end for i = 1, #firstItems do doPlayerAddItem(cid, firstItems[i], 1) end end return true end
  15. Isso pode apagar, ele checa o sexo do personagem, caso seja masculino, da um item, caso seja feminino outro item. Vem no padrão mesmo.
  16. Não, não substitui o texto, só troca os numeros: if player:getVocation() == 1 then Muda o 1 pra id da vocação e assim por diante. Se você testar do jeito que esta, acho que deve funcionar, dependendo do número de vocações.
  17. Vou alterar. Qualquer erro avisa, fiz agora. local firstItems = {2050, 2382} --ID dos itens EM COMUM local sorcerer = {xxxx, xxx} -- itens soh pra sorc local druid = {xxxx, xxx} -- itens soh pra druida local paladin = {xxxx, xxx} -- itens soh pra paladim local knight = {xxxx, xxx} -- itens soh pra knight function onLogin(player) if player:getLastLoginSaved() == 0 then doPlayerSendTextMessage(cid,22,"Voce acabou de conseguir os Items Iniciais!") if player:getVocation() == 1 then for i = 1, #sorcerer do player:addItem(sorcerer[i], 1) end end if player:getVocation() == 2 then for i = 1, #druid do player:addItem(druid[i], 1) end end if player:getVocation() == 3 then for i = 1, #paladin do player:addItem(paladin[i], 1) end end if player:getVocation() == 4 then for i = 1, #knight do player:addItem(knight[i], 1) end end for i = 1, #firstItems do player:addItem(firstItems[i], 1) end player:addItem(player:getSex() == 0 and 2651 or 2650, 1) player:addItem(1987, 1):addItem(2674, 1) end return true end
  18. Tipo assim \data\creaturescripts\creaturescripts.xml <event type="login" name="FirstItems" script="others/firstitems.lua" /> \data\creaturescripts\scripts local firstItems = {2050, 2382} --ID dos itens function onLogin(player) if player:getLastLoginSaved() == 0 then doPlayerSendTextMessage(cid,22,"Voce acabou de conseguir os Items Iniciais!") for i = 1, #firstItems do player:addItem(firstItems[i], 1) end player:addItem(player:getSex() == 0 and 2651 or 2650, 1) player:addItem(1987, 1):addItem(2674, 1) end return true end
  19. Edita o tempo, mals a demora, tive que sair... actions.xml <action itemid="22513" script="removeraousar.lua"/> data/actions/removeraousar.lua function onUse(cid, item, fromPosition, target, toPosition) --item que sera criado no lugar local itemcriado = 22514 local itemnormal = 22513 local tempo = 120 -- tempo em segundos local summon = "Slime" -- nome do monstro summonado local bonesTile = Tile(toPosition) if item.itemid == itemcriado or item.itemid == itemnormal then doTransformItem(item.uid, itemcriado) doSummonCreature(summon, fromPosition) addEvent(function(bonesPos) bonesTile:getItemById(itemcriado):remove() Game.createItem(itemnormal, 1, bonesPos) bonesPos:sendMagicEffect(CONST_ME_POFF) end, tempo * 1000, bonesTile:getPosition()) else doPlayerSendCancel(cid, "q droga tu ta tentando fazer em.") end return true end
  20. psychonaut postou uma resposta no tópico em Suporte Tibia OTServer
    Muda return -min, -max Pra return +min, +max
  21. psychonaut postou uma resposta no tópico em Suporte Tibia OTServer
    Creio que sim, funcionou?
  22. Fica mais ou menos assim, precisa de um setGlobalStorageValue(storage, 1) pra quando o jogador morrer e um quando o monstro morrer, na tile da saída ou sei la, é que to de saida se não eu fazia essas 2 partes, ta aí o script, espero que funcione. function onUse(cid, item, fromPosition, target, toPosition) --ID da chave local chave = XXXX --Storage local storage = XXXXX --Destino do jogador ao usar o item local config = { pos = {x = 33569, y = 32423, z = 12}, -- posição que o player vai cair } if getGlobalStorageValue(storage) = 0 then doPlayerRemoveItem(cid, chave, 1) doSummonCreature("Prince Drazzak", {x = 33523, y = 32334, z = 12}) doTeleportThing(cid, config.pos) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_GREEN) setGlobalStorageValue(storage, 1) else doPlayerSendTextMessage(cid, TEXTCOLOR_ORANGE, "Ja tem um jogador la dentro") end return true end Achei um creature script pra quando o boss morrer fazer um tp, e mudei um pouco, não sei se vai funcionar, to saindo... se ninguém ajudar amanhã eu arrumo se não der certo. --Storage local storage = XXXXX -- a msm do script de cima local config = { ["prince drazzak"] = {time = 60, toPos = {x = 100, y = 100, z = 7}} -- topos = pra onde manda o jogador } local function teleportar(tp) local teleport = getTileItemById(tp, 1387).uid -- tem q ser o tp de id 1387 doTeleportThing(cid, config.toPos) setGlobalStorageValue(storage, 0) return true end function onKill(cid, target) local monster = config[getCreatureName(target):lower()] if(isPlayer(target) or not monster) then return true end doCreatureSay(cid, "Voce sera teleportado!", TALKTYPE_ORANGE_1) addEvent(teleportar, monster.time * 1000, monster.toPos) return true end lembra de registrar no login.lua
  23. psychonaut postou uma resposta no tópico em Suporte Tibia OTServer
    Se tudo tiver online, o mysql tudo, entra aqui: http://127.0.0.1/phpmyadmin/e faz login com sua conta do mysql, o usuário normalmente é root, depois seleciona o banco, "ot"(pelo que eu to vendo ai), e cria as tabelas e nelas os 2 "valores" reason e expires_at
  24. psychonaut postou uma resposta no tópico em Suporte Tibia OTServer
    Cria uma tabela no banco de dados 'ot', chamada 'ip_bans' Ela tem que ter 'reason' e 'expires_at'

Informação Importante

Confirmação de Termo