Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''SCRIPTING''.



Mais opções de pesquisa

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • A Cidade OTBR
    • OTServ Brasil
    • Atendimento
    • Taverna
  • Projetos Open Source
    • Canary
    • OTServBR-Global
    • Mehah OTClient
    • MyAAC
  • OpenTibia
    • Notícias e Discussões
    • Suporte - Dúvidas, Bugs, Erros
    • Downloads
    • Tutoriais
    • Show-Off
  • Outros
    • Design

Encontrado 371 registros

  1. Scripting Erro CreatureScript

    Boa noite, bom to com meu servidor ta dando um erro quase toda hora que mata algum pokemon. Meu arquivo EXP2.lua Alguém poder me ajudar. Agradeço de coração o servidor que eu to usando e o By Smash 2018. Poke Smash.
  2. Scripting Catch Window (DxP)

    Ola, alguem me pode ajudar adaptar Catch Window ( DarxPoke) a meu PokeTibia pfv
  3. Preciso de uma ajuda para arrumar o erro ao tentar desenvolver o código abaixo. Ele consiste em fazer a alteração da Outfit e Vocação ao pegar determinado nível. Ao regredir de nível, deixa de ter a Outfit e Vocação que conseguiu e volta para a anterior. O erro acontece na linha aonde ele addOutfit -> player:addOutfit(arrayOutfit[o][2]) Aparentemente ele não está detectando o [o] (está dando como nulo), que é justamente a dúvida que tenho. Não estou conseguindo formular o problema apesar de parecer algo fácil e/ou algum erro bobo. Eu criei uma variável local o = 1 e local v = 1 e deu certo. Porque nesse caso ele está pegando os nomes das arrays que são 1 mesmo, mas eu quero que ele pegue automaticamente de acordo com o "for" que fiz. function onAdvance(player, skill, oldlevel, newlevel) -- OUTFITS -- local OUTFIT0001 = 905 -- 01 local OUTFIT0002 = 129 -- 02 local arrayOutfit = { [1] = {OUTFIT0001, OUTFIT0002} } local arrayVocation = { [1] = {1, 2} } local L01 = 10 -- Storage_Evolution local storage00000 = 70000 local storage00001 = 70001 local outfit = player:getOutfit() for _, o in pairs(arrayOutfit) do if type(o) == 'table' then if isInArray(o, outfit.lookType) and (skill == SKILL_LEVEL) then for _, v in pairs(arrayVocation) do if type(v) == 'table' then if isInArray(v, player:getVocation():getId()) then if (player:getStorageValue(storage00000) ~= 1) and (player:getLevel() < L01) then player:setStorageValue(storage00000, 1) player:setStorageValue(storage00001, 0) player:addOutfit(arrayOutfit[o][1]) player:removeOutfit(arrayOutfit[o][2]) outfit.lookType = arrayOutfit[o][1] player:setOutfit(outfit) player:setVocation(arrayVocation[v][1]) end if (player:getStorageValue(storage00001) ~= 1) and (player:getLevel() >= L01) then player:setStorageValue(storage00000, 0) player:setStorageValue(storage00001, 1) player:addOutfit(arrayOutfit[o][2]) outfit.lookType = arrayOutfit[o][2] player:setOutfit(outfit) player:setVocation(arrayVocation[v][2]) end end end end end end end return true end O erro é o seguinte: Lua Script Error: [CreatureScript Interface] data/creaturescripts/scripts/outfitVoc_onAdvance.lua:onAdvance data/creaturescripts/scripts/outfitVoc_onAdvance.lua:41: attempt to index a nil value stack traceback: [C]: in function '__index' data/creaturescripts/scripts/outfitVoc_onAdvance.lua:41: in function <data/creaturescripts/scripts/outfitVoc_onAdvance.lua:1> [C]: in function 'addExperience' data/actions/scripts/other/itemlevel.lua:7: in function <data/actions/scripts/other/itemlevel.lua:6>
  4. Então, boa noite galera. Estou com um problema pois uso sistema de VIP por Account e não por Player, meu problema está em dar 2 dias vip grátis aos novos players que criarem conta. Consegui por para dar aos player porém fica acumulativo, toda vez que cria um char novo ele adicionado mais 2 dias, ou seja, não tem nada checando se já foi dado esses dias vip naquela conta. Queria saber como faz para o script verificar um valor na Database (exemplo VipC) e se este valor for diferente de 1 lhe dará a VIP e adicionara o valor 2 no lugar deste 1 ! assim teria um check pra verificar se o usuario daquela conta já recebeu a vip e resolveria meu problema !!!! -Grato --------------------------------------------Editado (Fix)----------------------------------------------- Para ser sincero não sei se a forma que o código foi elaborado está correta ou acarretara em algum bug mais pra frente porém foi a qual eu achei depois da madrugada toda procurando, entendendo os cod, refazendo libs, etc... algumas funções estavam 'trocados' na minha lib. Ai está o código para adicionar 2 dias Vips Grátis ao primeiro Login do player, Será adicionado a vip na MySQL na tabela "VipDays" a qual eu uso, junto ao sistema Vip. Mesmo criando vários characters não será possível acumular a bonificação do tempo de vip !!! Só colocar no Login.lua , dentro da pasta de Creaturescript/Script (podendo estar em alguma subpasta tb). local storage3 = (player:getAccountId(cid)+550) local diasv = 2 --DIAS DE VIP (Em dias mesmo não em horas - pois é o que uso no systema vip) if getGlobalStorageValue(storage3) == 1 then player:sendTextMessage(MESSAGE_EVENT_ORANGE,string.format('MSG PARA QUEM JA GANHOU O VIP TIME')) else setGlobalStorageValue(storage3, 1) player:addVipDays(diasv) player:sendTextMessage(MESSAGE_EVENT_ORANGE,string.format('MSG PARA QUEM RECEBERA A VIP TIME')) end Obs : Antes do ultimo return true end Qualquer problema ou bug avisar pois ajudara a mim também ainda não testei no dia a dia.
  5. Scripting Error teleport.lua

    [Error - Action Interface] data/actions/scripts/other/teleport.lua:onUse Description: attempt to index a number value stack traceback: [C]: in function 'doTileQueryAdd' data/actions/scripts/other/teleport.lua:13: in function <data/actions/scripts/other/teleport.lua:4> Script: teleport.lua local UP_FLOORS = {1386, 3678, 5543, 8599, 10035} local DRAW_WELL = 1369 function onUse(cid, item, fromPosition, itemEx, toPosition) if(item.itemid == DRAW_WELL and item.actionid ~= 100) then return false end fromPosition.stackpos = STACKPOS_GROUND if(isInArray(UP_FLOORS, item.itemid)) then fromPosition.z = fromPosition.z - 1 fromPosition.y = fromPosition.y + 1 if(doTileQueryAdd(cid, fromPosition, 4, false) ~= RETURNVALUE_NOERROR) then fromPosition.y = fromPosition.y - 2 end else fromPosition.z = fromPosition.z + 1 end if(doTileQueryAdd(cid, fromPosition, 4, false) ~= RETURNVALUE_NOERROR) then return false end local pos, dir = getCreaturePosition(cid), SOUTH if(pos.x < fromPosition.x) then dir = EAST elseif(pos.x == fromPosition.x) then if(pos.y == fromPosition.y) then dir = getCreatureLookDirection(cid) elseif(pos.y > fromPosition.y) then dir = NORTH end elseif(pos.x > fromPosition.x) then dir = WEST end doTeleportThing(cid, fromPosition, false) doCreatureSetLookDirection(cid, dir) return true end
  6. Estou com uma duvida e sim já pesquisei neste fórum e em outros porém tudo muito incompleto ou mal explicado. O caso é que queria um script com o sistema de vip por item, pretendo por na Store do game tipo o scroll de premmy que adiciona premy time, e o item sumir após o uso. Os script que acho assim não vem com a parte de retirar o player da area VIP quando acabar o tempo !! Se souberem o link de algum tópico desse jeito (Vip por item e script completo) favor compartilhar, realmente não achei Obs : Uso o [TFS 1.x| Global Windows e Linux 10.0 old / 11.3] qual o #Majesty compartilhou AQUI ! Aproveitando pra agradecer o Majesty pela ajuda até agora, resolvi todos os problemas com o Imbu,Prey, Etc... Muito obrigado! obs² : procurei área de pedido mas não achei, se estiver no local errado favor mover. grato
  7. Scripting [AJUDA] battlefield script - walls

    Boa noite, Eu adicionei o script do Vodkart no meu ot, o famoso Battlefield, funcionou tudo corretamente, porem há um problema, o script funciona normal, ao matar os players, todos são teleportados para o templo e o time ganhador ganha os premios, porem as paredes que separam os times não são adicionadas novamente, elas somem quando começa o evento, porem quando termina, não são adicionadas novamente, então na próxima vez que o evento rodar, vai bugar, pq n vai ter a parede lá separando os times até o evento começar, abaixo segue o script da LIB: _Lib_Battle_Info = { Reward = { exp = {false, 0}, items = {true, 9020, 50}, premium_days = {false, 0} }, TeamOne = {name = "Black Assassins", storage = 140120, pos = {x=32505,y=32540,z=7}}, TeamTwo = {name = "Red Barbarians",storage = 140121,pos = {x=32546,y=32538,z=7}}, storage_count = 180400, tpPos = {x=32365, y=32232, z=7}, limit_Time = 5 -- limite de tempo para adentrar o evento } function resetBattle() setGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage, 0) setGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage, 0) end function OpenWallBattle() local B = { {1541,{x=32525, y=32540, z=6, stackpos = 1}}, {1542,{x=32525, y=32541, z=6, stackpos = 1}}, {1543,{x=32525, y=32542, z=6, stackpos = 1}}, {1544,{x=32525, y=32543, z=6, stackpos = 1}}, {1545,{x=32518, y=32528, z=6, stackpos = 1}}, {1546,{x=32518, y=32529, z=6, stackpos = 1}}, {1547,{x=32529, y=32528, z=6, stackpos = 1}}, {1548,{x=32529, y=32529, z=6, stackpos = 1}} } for i = 1, #B do if getTileItemById(B[i][2], B[i][1]).uid == 0 then doRemoveItem(getThingfromPos(B[i][2]).uid,1) else doCreateItem(B[i][1], 1, B[i][2]) end end end function doBroadCastBattle(type, msg) for _, cid in pairs(getPlayersOnline()) do if getPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage) >= 1 or getPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage) >= 1 then doPlayerSendTextMessage(cid,type,msg) end end end function removeBattleTp() local t = getTileItemById(_Lib_Battle_Info.tpPos, 1387).uid return t > 0 and doRemoveItem(t) and doSendMagicEffect(_Lib_Battle_Info.tpPos, CONST_ME_POFF) end function getWinnersBattle(storage) local str, c = "" , 0 for _, cid in pairs(getPlayersOnline()) do if getPlayerStorageValue(cid, storage) == 1 then if _Lib_Battle_Info.Reward.exp[1] == true then doPlayerAddExperience(cid, _Lib_Battle_Info.Reward.exp[2]) end if _Lib_Battle_Info.Reward.items[1] == true then doPlayerAddItem(cid, _Lib_Battle_Info.Reward.items[2], _Lib_Battle_Info.Reward.items[3]) end if _Lib_Battle_Info.Reward.premium_days[1] == true then doPlayerAddPremiumDays(cid, _Lib_Battle_Info.Reward.premium_days[2]) end doRemoveCondition(cid, CONDITION_OUTFIT) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) setPlayerStorageValue(cid, storage, -1) c = c+1 end end str = str .. ""..c.." Player"..(c > 1 and "s" or "").." from team "..(getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage) == 0 and _Lib_Battle_Info.TeamTwo.name or _Lib_Battle_Info.TeamOne.name).." won the event battlefield!" resetBattle() OpenWallBattle() return doBroadcastMessage(str) end function CheckEvent(delay) if delay > 0 and getGlobalStorageValue(_Lib_Battle_Info.storage_count) > 0 then doBroadcastMessage("[BattleField Event] We are waiting "..getGlobalStorageValue(_Lib_Battle_Info.storage_count).." players to Battlefield starts") elseif delay == 0 and getGlobalStorageValue(_Lib_Battle_Info.storage_count) > 0 then for _, cid in pairs(getPlayersOnline()) do if getPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage) >= 1 or getPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage) >= 1 then doRemoveCondition(cid, CONDITION_OUTFIT) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) setPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage, -1) setPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage, -1) end end doBroadcastMessage("The event cannot be started because not had enough players.") setGlobalStorageValue(_Lib_Battle_Info.storage_count, 0) resetBattle() removeBattleTp() end addEvent(CheckEvent, 60000, delay-1) end Alguém poderia me ajudar por favor? preciso que essas paredes voltem a aparecer, nem que seja por meio de gambiarra. Obrigado.
  8. Boa noite, Estou com um problema, eu preciso que todos que matarem X monster, ganhem uma storage, porem só o player que dá o ultimo hit tá ganhando a storage, precisava de uma que todo que ajudaram a matar ganhasse a storage, podem me ajudar por favor? segue o código: function onDeath(cid, corpse, killer) local monstName = "Demon" -- nome do monstro local Storage = 30003 -- storage que o jogador ira ganhar if isMonster(cid) then if string.lower(getCreatureName(cid)) == string.lower(monstName) then setPlayerStorageValue(killer[1], Storage, 1) end end return TRUE end Obrigado.
  9. Ola boa noite eu estou com uma duvida que esta me matando eu gostaria de criar algumas quests que o premio seriam box que daria um poke aleatório dentro de uma pokeball, mais eu preciso criar novas boxs alguem saberia como me ajudar ? Estou a muito tempo sem mecher com server voltei meio perdido A minha divida e que n sei onde seria a id da box e onde seria a id da pokeball. vou deixar o script da box Obrigado desde já. Rep++ pra quem ajudar. Server de poketibia 8.54. Script Box
  10. Scripting Varios mundos em um só

    Ola estou em uma duvida se teria como fazer um servidor com 3 servers. mas do mesmo. tipo word= brasil. ai teria brasil 1, brasil 2, brasil 3. seria tipo um canal. o play loga no brasil 1 e vai até a cav de dragon porem esta muito cheia de pessoas nessa cav, entao ele muda para o brasil 2. o char dele desloga do brasil 1 e loga no brasil 2.
  11. Scripting [BUG] talkactions CITYWAR.LUA

    Boa tarde, Instalei o citywar no meu server ( war anti-entrosa ), porem está com 2 bugs, o primeiro que é o mais critico, é que a primeira war funciona normalmente, os players dão /citywar go e vão para a cidade privada, porem na segunda vez, funciona também normalmente, porem na hora de usar o /citywar go dá um erro na distro e o comando não funciona para o player. Esse comando só volta a funcionar, quando do reload nas talkactions, segue a img do erro: O citywar.lua talkactions: E o segundo bug, não tão critico, mas que atrapalha muito, é que quando uso o /citywar exit, para o player sair da cidade privada, ele fala que o player não está em war, mesmo estando. Alguem pode me ajudar por favor? Obrigado.
  12. Scripting teleport com delay

    Boa noite, Preciso de uma ajuda, tentei de tudo e não consegui... no meu ot, tem sistema de task onde o player é teleportado para uma sala e mata o boss, porem se ele ficar ali segurando respawn e outro player for parar nessa sala, vai bugar, pois o outro player não vai poder matar o boss.. Eu precisava de um script, acredito eu de StepIn, onde quando ele entrasse na sala, já caia pisando no tile com a action, essa action daria X minutos para ele matar o boss, após vencer esses X minutos, ele seria teleportado para o templo de thais, alguém consegue fazer isso por favor?
  13. Scripting Como liberar as principais quest

    Estou com duvida, de como faço pra ativar as principais quero que todos os players tenham postman, in service of yalahar, acesso goroma, explororer society, blue e green djins etc. por favor alguem pode me ajudar
  14. Boa noite, Tenho o zombie event em meu servidor funcionando normal, porem ele funciona através da talkaction: /zombiestart, eu queria que esse evento fosse automatico, que começasse todo dia as 18:00 automaticamente, para isso eu sei que precisa de uma globalevent, tentei de tudo e não consegui configurar, será que precisa alterar o script do sistema inteiro para isso? segue o script da talkaction para iniciar o sistema: e o globalevent: Alguém pode me ajudar por favor? -Edit modifiquei a talkaction do evento para globalevent com a função onTime no arquivo ontime.lua e tá funcionando, ele executa na hora certa o evento, porem eu gostaria se possivel que ele avisasse vamos supor as 19:00 que o evento vai começar e as 19:01 ele retirasse a barreira para o evento começar, onde adiciono isso no script: Obrigado.
  15. Boa noite, Quando tento comprar algum item que seja RUNA, FLUIDO, OU QUE TENHA CHARGE,o npc não deixa eu comprar ele com backpack, e queria que comprasse com backpack tambem, caso eu colocasse buy with backpack no cliente, eu dei uma olhada e a unica coisa que achei a respeito, foi esses codigos no module dos npcs: alguem pode me ajudar e dizer se editando isso da forma correta vai resolver o problema?
  16. Scripting Sistema de pet

    Olá galera, Vi uns link de Pet-sistem do Junior la no Otlan... Sabe, "NÃO SEI SE EU POSSO FALAR NOME" Mais tipo eu n entendi aonde instalar os Scrypt podia me ajudar?...
  17. Scripting Cooldown Varios

    Bom galera to com 1 ot aqui. 10.10, Queria aumentar a velocidade de solta a magia sabe, e healar tbm, pq Tipo o mage ta igual o Palla, se heala ele n atacava, e quando desce um buero selecionar um Rat pra ataca ele demora uns 3 segundos pra começa a atacar. Alguém pode me ajudar se existe algum script que faz isso, já modifiquei vários lugar...
  18. Queria um scripts igual ot pokémon o pokemon fêmea tem mais life e o pokemon macho tem mais atake sera q alguém. Pode me ajuda nisso
  19. Scripting Relacionamento player x quest

    Boa tarde pessoal estou utilizando o OTServerBR-Global e estou com uma dúvida de como é feito o relacionamento player x quest. Pelo que entendi cada missão de uma quest tem um código específico e esse código é relacionado com o player. A dúvida é: onde é feito esse relacionamento? Eu procurei no banco de dados e não encontrei nenhuma tabela que fizesse isso. Onde isso é armazenado? Gostaria de entender isso para alterar a missão que um player está em determinada quest, alterar para determinadas quests já estarem prontas na criação do char etc.
  20. Scripting Bug no Autoloot Help

    Pessoal alguem pode me ajudar resolver esse bug? -- Nao entendo muito de script, mas pelo que entendi esse erro acontece por que o char esta longe do corpo do bixo... E no script acho que esta para pegar se estiver proximo... Se puderem me ajudar, agradeço.... Creaturescript AUTOLOOT.LUA:
  21. Scripting Como criar um Utori Frigo

    Olá novamente. Estou tentando balancear as vocações do meu projeto, e a idéia é de criar uma magia do tipo "utori" mas do elemento "frigo". Queria saber como e onde programar essa magia. E, caso você tenha alguma idéia para o nome dessa magia ou o nome desse status, peço para dar a sugestão. Só me vem à cabeça o nome "Frozen", mas não sei se faria sentido esse nome pra essa magia. Desde já, agradeço!
  22. Olá tudo bom sou novo aqui E gostaria de pedir um script de !pvp on/off Quando o player quiser upar em área com poder em Wave ele usasse !pvp on/off e não pegava Frags , nem Pk Assim fazendo que ele não pegue RedSkull Mas todos podendo atacar ele mesmo ele tendo de !pvp off Rep++
  23. Scripting Sistema de autoloot

    Boa Noite, estou a 3 dias procurando em varios FORUMS e ate agora nao achei um sistema de AUTOLOOT que funcione no meu OT. Minha distro é 11.49. Alguem pode me ajudar?
  24. Boa noite. Como faço pra agrupar automaticamente os ítens agrupáveis? Meu ot é um tfs 8.6 Obrigado.
  25. Scripting DropEffect

    Meu sistema de dropeffet (Sistema que mostra no corpo do monstro um efeito quando dropar certo item) não mostra o efeito quando o item é dropado dentro da bag do monstro, só quando dropa fora. Alguem pode me ajudar?
×