Ir para conteúdo

LeoPetryScript

Campones
  • Total de itens

    25
  • Registro em

  • Última visita

Tudo que LeoPetryScript postou

  1. não sei como faz isso, ai fiz diferente aqui, coloquei pra aparecer do lado do hit "-20%" ai coloquei doTargetCombatHealth(attacker, cid, combat, dano, dano, nill)
  2. é que tem que ter tipo um return false pro dano primario, mas se eu coloco return false, n sai nenhum dano
  3. testei com um monstro que hita sempre 1100-1200 ele começou a hitar 3200 com esse efeito ativo
  4. da erro pq nao reconhece dano = "dano" - (value*0.2)
  5. tipo: eu coloquei assim da maneira que está, porém o player deveria receber 800 de dano, e não recebe, recebe 1200 assim. aí tentei colocar pra não receber o dano normal, apenas 80* dele, com um return false no final, mas daí ele não recebe nem um e nem outro edit1 -- É pra ser tipo um absorvPercentAll = 20 do items.XML mas em vez de ser no item, ser quando o player estiver com um summon
  6. quando player sofrer um ataque de 1000, receber só 800 de dano que no caso seria (80/100) no caso abaixo, o player recebe os 1000 de dano + 20%, teria que ser - 20% function onStatsChange(cid, attacker, type, combat, value, summons) local summons = getCreatureSummons(cid) local angel = "death angel [0]" if #summons >= 1 then for j = 1, #summons do if getCreatureName(summons[j]):lower() == string.lower(angel) then if type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS then dano = math.ceil(value*0.2) doTargetCombatHealth(attacker, cid, combat, -dano, -dano, 255) end else return true end end end return true end
  7. setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) + config.health)
  8. quando abre o server : OTSYS_SQLITE3_PREPARE<>: SQLITE ERROR: no such table: guild_wars <SELECT "id", "guild_id", "enemy_id" FROM "guild_wars" WHERE "status" IN (1,4) AND "end" > 0 AND "end" <1596753249> quando loga algum player : OTSYS_SQLITE3_PREPARE<>: SQLITE ERROR: no such column: k.war <SELECT "pk"."player_id", "pd"."date" FROM "player_killers" pk LEFT JOIM "killers" k ON "pk"."kill_id" = "k"."id" LEFT JOIN "player_deaths" pd ON "k"."death_id" = "pd"."id" WHERE "pd"."player_id" = 3 AND "k"."unjustified" = 1 AND "pd"."date" >= 1596148675 AND "k"."war" = 0> como resolvo isso?
  9. REP++ Então Marshmello, tive que fazer apenas algumas modificações razas pra funcionar perfeitamente =D créditos a você pela script, mas ai vai a funcional:: function SendEffect(cid) doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, "Você está sem o Efeito de Gemas.") return TRUE end local storages = {77000,77001,77002,77003} local time = os.time() function onLogin(cid) local e = 1 and 2 and 3 and 4 for i = e, #storages do if getPlayerStorageValue(cid, 77000) - time > 1 then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, "Você está sob o Efeito da Task Gem.") elseif getPlayerStorageValue(cid, 77001) - time > 1 then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, "Você está sob o Efeito da Ring Gem.") elseif getPlayerStorageValue(cid, 77002) - time > 1 then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, "Você está sob o Efeito da Fishing Gem.") elseif getPlayerStorageValue(cid, 77003) - time > 1 then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, "Você está sob o Efeito da Mining Gem.") elseif getPlayerStorageValue(cid, storages[i]) - time < 1 then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, "Você está sem Efeito de Gemas.") end end return true end Muito obrigado por seu tempo, pode mover o topico para resolvido
  10. então man, funcionou, mas da 1 mensagem por storage, queria que fosse uma só mensagem sacas? se tiver sob efeito de alguma delas aparece uma msg q ta sob efeito, se n tiver sob efeito de nenhuma, aparece só uma msg q n está
  11. Eu tentei montar um script onde quando o player logar e as storages estiverem menores que os.time enviar uma mensagem e se tiver maior que os.time mandar outra... alguém poderia arruma-lá pra mim? local storage = 77000 local storage2 = 77001 local storage3 = 77002 local storage4 = 77003 local tempo = os.time() function onLogin(cid) local a = getPlayerStorageValue(cid, Storage) local b = getPlayerStorageValue(cid, Storage2) local c = getPlayerStorageValue(cid, Storage3) local d = getPlayerStorageValue(cid, Storage4) if a and b and c and d < tempo then SendEffect(cid) end if a and b and c and d > tempo then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, "Você está sob o Efeito de Gemas.") end return true end function SendEffect(cid) doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, "Você está sem o Efeito de Gemas.") return TRUE end
  12. Estou testando essa sctipt, mas ela não está funcionando alguém poderia modifica-lo para quando o monstro morrer, todos os players que estiverem na area determinada ganham pontos a mais de storage? ex: setPlayerStorageValue(cid, 29111, (getplayerstoragevalue(cid, 29111)) + 10) :: function onDeath(cid) local name = "Ferumbras" local Storage = 29111 local Sto = getPlayerStorageValue(cid, 29111) local pontos = 15 local from = {x= 1092, y= 1073, z= 6} local to = {x= 1093, y= 1075, z= 6} local tp = name[getCreatureName(cid)] if tp then if isInArea(getThingPos(cid), from, to) then if isPlayer(cid) then setPlayerStorageValue(cid, Storage, Sto + pontos) end end end return TRUE end (ta tudo errado provavelmente)
  13. O player vai poder comprar apenas uma vez ou quantas vezes quiser? então, não sei qual o seu tfs, espero que funcione, testei aqui crie o buylife.lua na pasta de talkactions e cole isso: (para que nao bugue os acentos certifique de formatar em ANSI) local config = { minLevel = 100, -- Level necessário para comprar. cost = 10000000, -- Custo. health = 10000 -- Quanto de life irá comprar mana = -- nao foi usado para knight } function onSay(cid, words, param) if not isKnight(cid) then -- se for para outra vocaçao, apenas mude 'Knight' para 'Sorcerer' ou 'Druid' ou 'Paladin' doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você precisa ser Knight para comprar vida.") return TRUE end if(getPlayerLevel(cid) < config.minLevel) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você precisa ser level " .. config.minLevel .. " para comprar vida.") elseif(doPlayerRemoveMoney(cid, config.cost) ~= TRUE) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Para comprar vida é necessário 10kk.") else setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) + config.health) doCreatureAddHealth(cid,config.health) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Parabéns, você adquiriu " .. config.health .. " de vida permanente.") doSendAnimatedText(getThingPos(cid), "+10000 HP", 180) doSendMagicEffect(getCreaturePosition(cid), math.random(28,28)) end return TRUE end ------------------------------------------------------------------ -- Caso queira dar mana, altere os parametros -- setCreatureMaxMana(cid, getCreatureMaxMana(cid) + config.mana) -- doCreatureAddMana(cid,config.mana) -- doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Parabéns, você adquiriu " .. config.mana .. " de mana permanente.") -- doSendAnimatedText(getThingPos(cid), "+valor MP", 180) -- doSendMagicEffect(getCreaturePosition(cid), math.random(28,28)) --------------------------------------------------------------- e lá em talkactions.xml cole: <talkaction words="!buylife" event="script" value="buylife.lua"/>
  14. Gostaria de uma ajuda, não sei se é necessario uma script ou pode ser mudado no items.xml.... Um life/mana ring que ao invés de healar "200" de life por segundo, healasse por exemplo: 5% de life por segundo consegui fazer os script após algum esforço: crie um arquivo lua com o nome que quiser, no meu caso 'ringmana.lua' e adicione: --script de heal ring por porcentagem-- --Creditos ao Leo-- function onEquip(cid, item, slot) if getPlayerStorageValue(cid, 29110) == 1 then SendEffect(cid) end return true end function onDeEquip(cid, item, slot) setPlayerStorageValue(cid, 29110, -1) if item.itemid == 2124 then -- id do ring quando equipado doTransformItem(item.uid, 2123) -- id do ring quando nao equipado end return true end function SendEffect(cid) if not isPlayer(cid) then return end local delay = 1000 -- tempo em milisegundos para healar dnovo local maxh = getCreatureMaxHealth(cid) local maxm = getCreatureMaxMana(cid) local mpe = 10 * maxm / 100 -- no '10' é a porcentagem que vai healar de mana local hpe = 10 * maxh / 100 -- no '10' é a porcentagem que vai healar de life if getPlayerStorageValue(cid, 29110) == 1 then if getCreatureHealth(cid) < maxh or getCreatureMana(cid) < maxm then doCreatureAddHealth(cid, hpe) doCreatureAddMana(cid, mpe) addEvent(SendEffect, delay, cid) else addEvent(SendEffect, delay, cid) end end end depois crie outro arquivo .lua no meu caso 'ringequip.lua' e adicione : function onEquip(cid, item, slot) setPlayerStorageValue(cid, 29110, 1) if item.itemid == 2123 then -- item quando nao equipado doTransformItem(item.uid, 2124) -- item quando equipado end return true end depois em movements.xml adicione: <movevent type="Equip" itemid="2124" slot="ring" event="script" value="ringmana.lua"/> -- item equipado <movevent type="DeEquip" itemid="2124" slot="ring" event="script" value="ringmana.lua"/> -- item equipado <movevent type="Equip" itemid="2123" slot="ring" event="script" value="ringequip.lua"/> -- item quando nao equipado
  15. De cabeçar eu não lembro, porém eu mudava a linha que dava erro, e quando arrumava aquela, outra dava problema, exemplo de uma que foi simples é "cid:sendtextmessage" meu tfs não reconheceu esse comando. Mesmo não dando nenhum erro no carregamento das movements, quando pisava no sqm ou dava erro, ou nada acontecia E outra coisa simples foi o tempo, você colocou 60000 ms oq já seria 60 seg, então ficou 60s * 5 * 60 Fico grato pela ajuda de qualquer forma, obrigado por tentar resolver meu problema
  16. Eu gostei dessa script pra usar na quest, porém teria como se nao for player, for monstro no sqm, tambem reconhecer como sqm preenchido?
  17. Deu erro, mudei varias linhas pra ver se dava certo, continuava dando erro, então eu pensei no sistema de colocar storage... sistema resolvido : ---sistema de Kick por tempo--- local pos = {x = 1081, y = 1081, z = 9} -- localização para onde vai local tempo = 2 -- tempo em minutos function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) setPlayerStorageValue(cid, 29109, 1) addEvent(function() if getPlayerStorageValue(cid, 29109) == 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você foi jogado para fora.") -- para não bugar acento deixe em codificação ANSI doTeleportThing(cid, pos) setPlayerStorageValue(cid, 29109, 0) end end, tempo*60*1000) return true end function onStepOut(cid, item, position, lastPosition, fromPosition, toPosition, actor) doPlayerSetStorageValue(cid, 29109, 0) return true end No Movements XML: <movevent type="StepIn" uniqueid="xxxx" event="script" value="Nome do arquivo.lua"/> <movevent type="StepOut" uniqueid="xxxx" event="script" value="Nome do arquivo.lua"/>
  18. vou testar, xml só precisa stepin ou stepout tbm? [27/07/2020 23:16:29] [Error - MoveEvents Interface] [27/07/2020 23:16:29] data/movements/scripts/tpStorages.lua:onStepIn [27/07/2020 23:16:29] Description: [27/07/2020 23:16:29] data/movements/scripts/tpStorages.lua:11: attempt to index local 'cid' (a number value) [27/07/2020 23:16:29] stack traceback: [27/07/2020 23:16:29] data/movements/scripts/tpStorages.lua:11: in function 'TimerToKick' [27/07/2020 23:16:29] data/movements/scripts/tpStorages.lua:28: in function <data/movements/scripts/tpStorages.lua:26>
  19. Assim, é uma sala onde só pode entrar uma pessoa por vez, pois é uma sala de fusão e são colocados os itens em cima do altar para fazer a fusão. Entra na sala por uma porta que teleporta pra dentro. Então como só pode entrar uma pessoa por vez, alguém pode entrar e ficar lá trancando a sala, pra não acontecer isso eu preciso de um script de que se o player fica na sala por mais de tantos minutos, ele é jogado pra fora, assim como está acontecendo, porém, se sair pela porta, cancele esse teleport, pois ele ja saiu da sala.
  20. acabei de testar, ele continua teleportando para fora mesmo depois de sair do sqm
  21. [27/07/2020 19:00:00] We Do OTS, version 0.1.0 (Beta Version) até queria trocar pra uma versão que agrupe os itens automaticamente na backpack, mas nao sei como se faz isso
  22. então, eu mudei o sistema da porta para ficar mais simples, decidi fazer o sistema de kick pela function de stepIn e stepOut, estou usando essa script que peguei em um site, porém o stop event não está funcionando, se puder me ajudar, fico grato local config = { time = 1, --Tempo, em minutos, parado para ser teleportado. toPos = {x = 1081, y = 1081, z = 9}, --Para onde o player será teleportado. events = {}, } function onStepIn(cid) config.events[cid] = addEvent(function() if isPlayer(cid) then doTeleportThing(cid, config.toPos) end end, config.time * 60 * 1000) return true end function onStepOut(cid) stopEvent(config.events[cid]) return true end
  23. Eu fiz esse script, porém falta uma coisa. Nesse lugar, tem um portal para se o player quiser sair antes do tempo acabar, porém mesmo ele saindo, quando o tempo acaba ele é teleportado para a kick position, alguém poderia me dizer como faço pra quando ele entrar no portal, parar o temporizador? function onUse(cid, item, frompos, item2, topos) positiOn = {x=1088,y=1084,z=9} kick = {x = 1081, y = 1081, z = 9} tempo = 2 * 60 storage = 30001 local p = getTopCreature({x=positiOn.x, y=positiOn.y, z=9}).uid if p~= 1 and isPlayer(p) then return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Já tem alguém no altar, aguarde sua vez!") else doTeleportThing(cid, positiOn, true) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você será jogado para fora em 2 minutos!") doSetStorage(storage, os.time() + tempo) addEvent(function() doTeleportThing(cid, kick) doSendMagicEffect(kick, CONST_ME_TELEPORT) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Seu tempo acabou.") end, tempo * 1000) return true end end
  24. Preciso de um mapa Carlin war (estilo aquele carlin war 2.1) Quero reconstruir um projeto perdido e consigo montar as scripts, mas o mapa nao consigo montar do zero se alguém puder me passar um link de download ativo, agradeço desde já!
  25. alguém ainda tem esse mapa? nao acho nenhum link funcionando
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...