
Tudo que Rogex Joyz postou
-
(Resolvido)Script !mount/!unmount precisando de um adicional
@Naze funcionou perfeitamente, muito obrigado!! Só um pequeno problema, está dando o looktype em cor branca, teria como por para checar as cores que o personagem está usando para assim implementar no looktype? Consegui resolver, eu mudei o DoSetCreatureOutfit para player_outfit = getCreatureOutfit(cid) doSetCreatureOutfit(cid, {lookType = 570, lookHead = player_outfit.lookHead, lookAddons = 1, lookLegs = player_outfit.lookLegs, lookBody = player_outfit.lookBody, lookFeet = player_outfit.lookFeet}, -1). (Espero que ajude futuras pessoas) Um abraço ao Naze, fiquei muito agradecido!! Rep++!! Marquei como melhor resposta, pode fechar o tópico
-
(Resolvido)Script !mount/!unmount precisando de um adicional
@Vodkart @xWhiteWolf @Nolis da um help por favor!!
-
(Resolvido)Script !mount/!unmount precisando de um adicional
Galera, boa noite. Eu estou trabalhando em um servidor 8.60 com montarias, grande parte delas estou usando OnEquip/OnDeEquip. Porém algumas montarias eu preciso que sejam adicionadas através do comando !mount/!desmount (este script eu já obtive e funciona 100%), mas o script em questão adiciona o looktype sem addon algum (mesmo que inicialmente eu já esteja usando algum addon, ele ''me monta'' sem addon). Agora que eu acredito ter dado os detalhes do pedido, vou explicar melhor o caso. O looktype sem addon é apenas a sprite da montaria, e quando adicionado o addon 1 o player aparece montado (como se o personagem do player fosse o addon 1 desta outfit e a montaria fosse apenas a outfit, note que montei desta forma no OB). Resumindo tudo, preciso que este script ao falar !mount, dê a looktype com o addon 1 obrigatoriamente. Não sei se foi muito confuso minha explicação ? Estarei deixando 2 fotos anexadas, a da esquerda é a looktype SEM ADDON (ou seja, só outfit) e a da direita é a looktype com o addon 1 (o personagem). Preciso muito dessa ajuda, estarei dando rep+ como forma de agradecimento. É um pedido de desespero ! Você tem o código disponível? Se tiver publique-o aqui: local config = { mount = {"mount", "montar"}, unmount = {"demount", "desmontar"} } local outfit = {lookType = 570} local condition = createConditionObject(CONDITION_HASTE) setConditionParam(condition, CONDITION_PARAM_TICKS, -1) setConditionFormula(condition, 0.25, 0, 0.50, 0) function onSay(cid, words, param, channel) param = param:lower() if(table.isStrIn(param, config.mount)) then doSetCreatureOutfit(cid, outfit, -1) doAddCondition(cid, condition) doSendMagicEffect(getPlayerPosition(cid),12) elseif(table.isStrIn(param, config.unmount)) then doRemoveCondition(cid, CONDITION_OUTFIT) doRemoveCondition(cid, CONDITION_HASTE) doSendMagicEffect(getPlayerPosition(cid),67) else doPlayerSendCancel(cid, "Only !mount or !demount is available.") return true end end
-
Recompensa Diaria
desculpe reviver este tópico, mas seria possível este script permitir apenas 1 vez por IP? Para evitar que os jogadores peguem com vários makers as recompensas? Estou pensando em por no templo, então seria fácil para os jogadores fazer isso. Ou fazer por level, tipo X level ser permitido pegar recompensa nela. @Storm
-
Script exiva
up
-
Script exiva
up
-
Script exiva
- Script exiva
No meu não há essa pasta, será que deve estar em outro local? Uso tfs 0.4 (8.6) Eu gostaria bastante de entender o que você disse, pois parece uma solução simples para o meu pedido. </instant> <instant name="Find Person" words="exiva" lvl="8" mana="20" aggressive="0" params="1" exhaustion="1000" needlearn="0" event="function" value="searchPlayer"> <vocation id="1"/> <vocation id="2"/> <vocation id="3"/> <vocation id="4"/> <vocation id="5"/> <vocation id="6"/> <vocation id="7"/> <vocation id="8"/> </instant> (única coisa que achei a respeito do exiva, pois não há pasta de script para ele. Porém ele funciona normalmente)- Script exiva
Perdão, mas onde fica esse script do exiva? Eu revirei aqui e não achei ele.- Script exiva
Seria possível um script de exiva onde mostrasse junto a localização do player qual foi o último monstro targetado pelo mesmo? Exemplo : Tibia King is very far to the west. Last target: Dragon (pra 8.60) // eu revirei essa internet e nada até agora, caso exista deve estar sendo ofuscado pelos resultados de buscas que em maioria aparece hotckeys de elfbot. Rep+ para quem ajudar. cya- arma que da uma paralyzada
em creaturescripts/scripts crie um arquivo chamado weaponpar.lua e add dentro: -- <Script TK> -- local weaponpar = {2377, 2378, 2379, 2380} -- id dos items que darão paralize local chancepar = 5 -- chance de ocorrer o paralize (10 = 10%, 20 = 20%, 30 = 30%, 1 = 1%, 5 = 5%) e assim por diante local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0) -- aqui edita os valores pro dano de paralize, vai mudando ae e testando até achar o desejado local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, 10000) -- aqui vai o tempo de paralyze, 1000 = 1 segundo setConditionParam(condition, CONDITION_PARAM_SPEED, -400) -- velocidade que o monstro irá perder setConditionFormula(condition, 0, 0, 0, 0) setCombatCondition(combat, condition) function onAttack(cid, target) if ((getCreaturePosition(target).x == getCreaturePosition(cid).x or getCreaturePosition(target).x == getCreaturePosition(cid).x+1 or getCreaturePosition(target).x == getCreaturePosition(cid).x-1) and (getCreaturePosition(target).y == getCreaturePosition(cid).y or getCreaturePosition(target).y == getCreaturePosition(cid).y+1 or getCreaturePosition(target).y == getCreaturePosition(cid).y-1)) then for i=0, #weaponpar do if (getPlayerSlotItem(cid, 5).itemid == weaponpar[i] or getPlayerSlotItem(cid, 6).itemid == weaponpar[i]) then if (math.random(1,100) > (100 - chancepar)) then doPlayerSendTextMessage(cid, 23, getCreatureName(target).." has paralized.") doAddCondition(target, condition) return true else return true end end end end return true end Em creaturescripts.xml <event type="attack" name="WeaponPar" event="script" value="weaponpar.lua"/> e por último volte em creaturescripts/scripts, abra o login.lua e add isso Créditos : Jhon992 registerCreatureEvent(cid, "WeaponPar")- arma que da uma paralyzada
o script ativa dando use, porém você pode ajustar o tempo de delay que o player vai ter que esperar para usar novamente a paralize da arma. É como se ele esperasse ela ''recarregar''- Retro Outfits Tibia Global .obd
Bom, eu dei uma pesquisada e não achei. Então eu trouxe todos os retros outfits do Tibia Global para vocês já no formato .obd, tem tanto a versão male quanto a female e estão devidamente nomeados conforme o gênero. Espero ajudar alguém que está adicionando outfits no próprio servidor assim como eu. DOWNLOAD: https://www.mediafire.com/folder/kfztadsf0es1b4k,k5kcw136r77y5e7,lwe8s19rnzkm5r1,k9fbiszfvymz4wa,9lw9ka040bo9b9s,9pyz8s6zvyqm05y,lhxbenuuiler35w,gnkgq9mtsi4sqrh,0fabwiq08ua4qb0,hhxp3dp9yo9pqii,wliicdt568nxgud,jgb2rmbapr7k2mz,russ2jy128ws65h,b0fhgl5nrsdyfe7/shared SCAN: https://www.virustotal.com/gui/url/30e578e066c761c38a2e9dc48acf03210a8c300660933264f3831539db1ad0dc/detection- arma que da uma paralyzada
Para ser em sword basta trocar o ID que eu falei pelo id que você quer, não importa se for em wand, bow ou sword. Eu particularmente acho bem legal esse script para o player ''esperar carregar'' a paralise da arma para usar, basta você ajustar o tempo conforme seu gosto, mas da forma como você quer eu não poderei ajudar infelizmente.- arma que da uma paralyzada
local condition2 = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition2, CONDITION_PARAM_TICKS, 6500) --- duration of paralyze setConditionFormula(condition2, -0.4, 0, -0.7, 0) --- strength of paralyze function onUse(cid, item, fromPosition, itemEx, toPosition) local tPos = getCreaturePosition(getCreatureTarget(cid)) --- CONFIG --- local levelReq = 50 -- level para usar a arma local vocID = 2 -- ID da vocação para usar a arma local exhStorage = 5450 -- storage for exhaustion between usages local exhTime = 50 -- tempo de delay para usar (in seconds) --- CONFIG --- if getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid == 8858 or getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid == 8858 then if getPlayerLevel(cid) >= levelReq then if getPlayerVocation(cid) == vocID then if getCreatureTarget(cid) ~= 0 then if not(exhaustion.check(cid,exhStorage)) then exhaustion.set(cid, exhStorage, exhTime) doSendDistanceShoot(fromPosition, tPos, 34) doCreatureSay(cid, "Freeze!", 19) doSendMagicEffect(tPos, 43) doAddCondition(getCreatureTarget(cid), condition2) doSendMagicEffect(fromPosition, 14) else doPlayerSendCancel(cid, "You need to wait "..exhaustion.get(cid, exhStorage).." seconds before you can use it again.") end else doPlayerSendCancel(cid, "You need a target.") end else doPlayerSendCancel(cid, "Your vocation can not use this item.") end else doPlayerSendCancel(cid, "Your level is too low to use this item.") end else doPlayerSendCancel(cid, "You must equip this item first.") end end >>>> <action itemid="8858" event="script" value="parawand.lua"/> O script que te passei vai funcionar assim, o player ao dar USE na arma, vai paralizar o target. E ah, os créditos do script é de Shadowsong Para mudar o id da arma no script, da um ctrl F e troca todos os ''8858'' pelo id da sua arma, incluindo na tag- Pedido script andar no WASD
Pessoal, eu revirei a internet (isso não significa que não tenha, significa que procurei bastante) e não achei NADA relacionado com algum script que seria capaz de alterar a função do player de ao invés de dashar pelas setas, passar a dashar pelo WASD (com uma tecla de atalho para mudar entre ambas) impedindo que ao pressionar o WASD ele escreva etc. A pergunta é, seria possível no oldclient 8.6 um script fazer isso? Fica aqui o meu pedido desesperador XDD- Pequeno erro no autoloot system
Eu comentei lá, pode me dar suporte pelo outro post? Este aqui se algum moderador puder fechar, ficaria grato.- AutoLoot 100% Funcional
Tópico muito bem organizado, as pastas estão em sequencia para facilitar a implementação dos scripts, reputado!! - Eu uso tfs 0.4 e a minha distro simplesmente para de funcionar quando tenta carregar os scripts, não chega nem a apontar erro, apenas para no ''loading scripts'' e para de responder. Sendo assim, não consegui testar ele. Sabe resolver? Eu entendo muito pouco de script pra tentar fazer algo XDD- Pequeno erro no autoloot system
Bom, estou utilizando tfs 0.4 e tibia 8.6. Eu peguei ontem aqui no fórum um script de autoloot feito pelo Daniel Varejão (bom por sinal) e está coletando apenas alguns itens, eu digo !autoloot list e a lista está vazia, porém digo !autoloot add, mastermind shield e diz que já está na lista e mesmo assim não puxa o item do corpo do demon e percebi que ele diz que todos os itens do servidor já estão adicionados na lista mesmo ela estando VAZIA. Mas itens como assassin star e potions, ele puxa (desconfio que só esteja puxando agrupáveis). Outro erro também é o autoloot boost que não está vendendo nada, mesmo falando que já está ativado. Por gentileza, alguém que entenda poderia me ajudar? Eu não entendo muito de scripts, por isso vim pedir ajuda. Vou deixar o link do script aqui para facilitar a visualização. Desde já, muito obrigado. att - rogex Você tem o código disponível? Se tiver publique-o aqui: Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.- (Resolvido)Login.lua dando erro
@Storm rep + obgdo- (Resolvido)Login.lua dando erro
@Storm Deu certo, mais uma vez muito obrigado poderia me dizer o que havia de errado?- (Resolvido)Login.lua dando erro
Você tem o código disponível? Se tiver publique-o aqui: local config = { loginMessage = getConfigValue('loginMessage') } function onLogin(cid) local loss = getConfigValue('deathLostPercent') if(loss ~= nil) then doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10) end local accountManager = getPlayerAccountManager(cid) if(accountManager == MANAGER_NONE) then local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage if(lastLogin > 0) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str) str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "." else str = str .. " Please choose your outfit." doPlayerSendOutfitWindow(cid) end doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str) elseif(accountManager == MANAGER_NAMELOCK) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, it appears that your character has been namelocked, what would you like as your new name?") elseif(accountManager == MANAGER_ACCOUNT) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to manage your account and if you want to start over then type 'cancel'.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to create an account or type 'recover' to recover an account.") end if(not isPlayerGhost(cid)) then doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) end registerCreatureEvent(cid, "Mail") registerCreatureEvent(cid, "GuildMotd") registerCreatureEvent(cid, "TiraBattle") registerCreatureEvent(cid, "killer") registerCreatureEvent(cid, "Idle") registerCreatureEvent(cid, "attackguild") registerCreatureEvent(cid, "advance") registerCreatureEvent(cid, "FimVip") registerCreatureEvent(cid, "SkullCheck") registerCreatureEvent(cid, "ReportBug") registerCreatureEvent(cid, "VipReceive") registerCreatureEvent(cid, "PlayerKill") if (InitArenaScript ~= 0) then InitArenaScript = 1 -- make arena rooms free for i = 42300, 42309 do setGlobalStorageValue(i, 0) setGlobalStorageValue(i+100, 0) end end --- CRITICAL SYSTEM ---- registerCreatureEvent(cid, "critical") if getPlayerStorageValue(cid, 48913) == -1 then setPlayerStorageValue(cid, 48913, 0) end end -- if he did not make full arena 1 he must start from zero if getPlayerStorageValue(cid, 42309) < 1 then for i = 42300, 42309 do setPlayerStorageValue(cid, i, 0) end end -- if he did not make full arena 2 he must start from zero if getPlayerStorageValue(cid, 42319) < 1 then for i = 42310, 42319 do setPlayerStorageValue(cid, i, 0) end end -- if he did not make full arena 3 he must start from zero if getPlayerStorageValue(cid, 42329) < 1 then for i = 42320, 42329 do setPlayerStorageValue(cid, i, 0) end end if getPlayerStorageValue(cid, 42355) == -1 then setPlayerStorageValue(cid, 42355, 0) -- did not arena level end setPlayerStorageValue(cid, 42350, 0) -- time to kick 0 setPlayerStorageValue(cid, 42352, 0) -- is not in arena end registerCreatureEvent(cid, "Dodge") if getPlayerStorageValue(cid, 123455678) == -1 then setPlayerStorageValue(cid, 123455678, 0) end return true end end Boa tarde a todos, tudo bem? Eu to a horas quebrando a cabeça tentando achar o problema que está sendo apontado na imagem mas eu não acho ? Eu só sei que deve ser para cima do ---CRITICAL SYSTEM -- pois eu apaguei ele e deu o mesmo erro... Alguém consegue verificar onde está o erro? Postei meu login.lua junto, desde já muito agradecido- (Resolvido)Exhausted em uma lever
@Storm deu certo ? Muito obrigado pela ajuda!! Passei a tarde toda quebrando a cabeça nisso. Vou tentar te reputar, até agora não achei esse botão no fórum. Muito obrigado mesmo.- (Resolvido)Exhausted em uma lever
@Storm e como faço isso? eu sou extremamente leigo em questão de scripts. Eu entendi o que você quis dizer porque eu uso um script assim nos trainers do meu ot, porém eu não sei o que escrever e onde colocar. E para caso alguém futuramente tenha dúvidas no script, tem monstros sendo sumonados nele porque é uma adaptação da anihi e eu não consegui remover os monstros rsrsrs Mas isso não vem ao caso haha- (Resolvido)Exhausted em uma lever
estou usando tfs 0.4 Você tem o código disponível? Se tiver publique-o aqui: local t = { lvl = 8, Time = 10, -- em minutos entrada = { {x = 15, y = 53, z = 13}, -- pos players {x = 16, y = 53, z = 13}, }, saida = { {x = 18, y = 60, z = 13}, -- pos para onde eles irão {x = 21, y = 60, z = 13}, }, monstros = { {{x = 122, y = 10, z = 9}, "Rabbit"}, -- defina pos dos montros e nomes {{x = 123, y = 10, z = 9}, "Deer"}, {{x = 124, y = 10, z = 9}, "Parrot"}, {{x = 125, y = 10, z = 9}, "Cat"}, {{x = 122, y = 13, z = 9}, "Dog"}, {{x = 124, y = 14, z = 9}, "Bear"}, {{x = 124, y = 15, z = 9}, "Spider"} } } function VarAnihiPlayer(cid) if not isCreature(cid) then return LUA_ERROR end if isInRange(getPlayerPosition(cid), t.saida[1], t.saida[#t.saida]) then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) end end function getPlayersInArea(fromPos, toPos) local players = {} for _, pid in ipairs(getPlayersOnline()) do if isInRange(getPlayerPosition(pid), fromPos, toPos) then table.insert(players, pid) end end return players end function onUse(cid, item, fromPosition, itemEx, toPosition) local check = {} if #getPlayersInArea(t.saida[1], t.saida[#t.saida]) > 0 then doPlayerSendCancel(cid, 'please, wait') return true end for _, k in ipairs(t.entrada) do local x = getTopCreature(k).uid if(x == 0 or not isPlayer(x) or getPlayerLevel(x) < t.lvl) then doPlayerSendCancel(cid, 'É necessário ter 2 players para o duelo e ser level'..t.lvl..' ou mais.') return true end table.insert(check, x) end for _, summon in pairs(t.monstros) do local creature = getTopCreature(summon[1]).uid if(creature > 0 and not isPlayer(creature)) then doRemoveCreature(creature) end doCleanTile(summon[1]) doCreateMonster(summon[2], summon[1]) end for i, tid in ipairs(check) do doSendMagicEffect(t.entrada[i], CONST_ME_POFF) doTeleportThing(tid, t.saida[i], false) addEvent(VarAnihiPlayer, t.Time*60*1000, tid) doSendMagicEffect(t.saida[i], CONST_ME_ENERGYAREA) end doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945) return true end Olá, boa quarentena a todos, tudo bem? Eu preciso de um suporte a respeito deste script... Estou usando ele em meu ot para teleportar os players para uma sala do famoso ''frodo'' onde os players adoram brincar de push, então coloquei este script para apenas entrar 2 players de uma vez e assim duelar sem interferência de terceiros. Até ai tudo ok. O problema está dando quando os dois players saem do sqm que foram teleportados (em vermelho) e andam 1 sqm, isso faz com que libere a alavanca para outros players entrar na mesma hora sem precisar aguardar eles sair. O meu pedido em resumo seria para que o script checasse a sala toda para saber se há players nela ou não... Porque o script já está reconhecendo os 2 sqm's de destino e não deixa usar a alavanca enquanto tiver player neles (tile em vermelho), porém ele ignora o restante. Acho que consegui explicar bem detalhado rsrs. Alguém consegue me ajudar? (a versão é 8.60) Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. - Script exiva
Informação Importante
Confirmação de Termo