Ir para conteúdo
Close

REFORMULAMOS A SEÇÃO DE CLASSIFICADOS! - Crie grátis os seus anúncios de procura e oferta de serviços e produtos relacionados ao OTServ! - Acesse através do nosso menu ou clique aqui e confira já!

Joaovettor

Membro
  • Total de itens

    132
  • Registro em

  • Última visita

Sobre Joaovettor

  • Rank
    João Vítor
  • Data de Nascimento 08/08/2002

Informação de Perfil

  • Genero
    Masculino
  • Localização
    Brasil, Minas Gerais
  • Eu sou
    Scripter
  • OTServ favorito
    FoxWorld OT
  • Bot preferido
    Elf Bot
  • Interesses
    Criar e Editar OTS

Últimos Visitantes

713 visualizações
  1. Opa amigo agora não está dando erro, porém ele executa a ação a todo momento, mesmo se não tiver players em volta de mim
  2. Opa mano, obrigado pela ajuda, mas deu esse seguinte erro V [29/1/2019 13:37:54] [Error - Action Interface] [29/1/2019 13:37:54] data/actions/scripts/testeitem.lua:onUse [29/1/2019 13:37:54] Description: [29/1/2019 13:37:54] data/actions/scripts/testeitem.lua:5: attempt to index a boolean value [29/1/2019 13:37:54] stack traceback: [29/1/2019 13:37:54] data/actions/scripts/testeitem.lua:5: in function 'checkPlayersAround' [29/1/2019 13:37:54] data/actions/scripts/testeitem.lua:27: in function <data/actions/scripts/testeitem.lua:26> Eu deixei o script dessa maneira V function checkPlayersAround(uid) local players = {} -- Deixe vazio local pos = getCreaturePosition(uid) local positions = { [1] = {x = pos.x -1, y = pos.y, z = pos.z}, [2] = {x = pos.x +1, y = pos.y, z = pos.z}, [3] = {x = pos.x, y = pos.y +1, z = pos.z}, [4] = {x = pos.x, y = pos.y -1, z = pos.z} } for _, var in pairs(positions) do for i = 0, 255 do var.stackpos = i tile = getTileThingByPos(var) if tile.uid > 0 and isPlayer(tile.uid) then table.insert(players, tile.uid) end end end if not players then return false end return players end function onUse(cid, item, frompos, item2, topos) if checkPlayersAround(uid) then doSendMagicEffect(getCreaturePos(cid), 17) end return true end
  3. Olá galera do TibiaKing, venho aqui pedir a vocês que me ajudem em um scripting de verificar a posição de um Player, vou resumir abaixo. Eu quero que o script cheque se tem um player ao redor do Player que executou x ação (qualquer ação), exemplo: If playerpos.x=x-1 then executar ação end Ele deveria checar se tem 1 Player na posx -1, mas não sei muito bem como funciona os checkin de Position
  4. Para fazer por Skill você deve mudar > getPlayerMagLevel(cid) < para getPlayerSkillLevel(cid, skillid) em Skill ID você coloca o ID da skill que vai checar SKILL_CLUB = 1 SKILL_SWORD = 2 SKILL_AXE = 3 SKILL_DISTANCE = 4 SKILL_SHIELD = 5 SKILL_FISHING = 6
  5. Sua quantidade ML é a quantidade em % que aumenta no Dano Base EXEMPLO: Se o Dano base é 25000 e você tem 35 de Magic Level, vai aumentar 35% de 25000 ou seja, 25000+8750=33750
  6. Tente com isso VV -- tratamento pra remover a pos salva local remove = getTileItemById(position[getPlayerStorageValue(cid, config.storage)], config.itemid).uid doPlayerSetStorageValue(cid, config.storage, 0) positions[getPlayerStorageValue(cid, config.storage)] = nil doRemoveItem(remove, 1)
  7. local w = { [1] = {ef = 47, sh = 35, dmg = COMBAT_ENERGYDAMAGE}, } function onUseWeapon(cid, var) local ml = (getPlayerMagLevel(cid)*25000/100) local min, max = (25000+ml),(25000+ml) local effect = getPlayerStorageValue(cid, 4561) local target = getCreatureTarget(cid) if target ~= 0 then local wx = w[effect] or w[math.random(#w)] doSendDistanceShoot(getThingPos(cid), getThingPos(target), wx.sh) addEvent(doAreaCombatHealth, 100, cid, wx.dmg, getThingPos(target), 0, -min, -max, wx.ef) end return true end
  8. Você pode criar 1 script de movements que remove o item, POR EXEMPLO: function onAddItem(moveItem, tileItem, position, cid) local time = 10 -- Tempo em segundos que o item será removido if isPlayer(cid) then addEvent(doRemoveItem, time*1000, moveItem.uid) doSendMagicEffect(getCreaturePosition(cid), 29) end end <movevent event="AddItem" itemid="11615" script="nomedoarquivo.lua"/>
  9. quantidade é igual a quantidade, ou seja QUANTIDADE, simplesmente coloque o id do item e a quantidade de items que vai remover.................................................... Explique o que seu SCRIPT faz
  10. local dano = (getPlayerMagLevel(cid) * 25000/100) -- Aqui é a porcentagem que de 25000, se seu Magic Level é 25, irá retornar 25% de 25000 local min, max = (25000+dano),(25000+dano) -- Aqui irá somar o valor anterior ou seja, (25000+% de 25000) local w = { [1] = {ef = 47, sh = 35, dmg = COMBAT_ENERGYDAMAGE}, } function onUseWeapon(cid, var) local effect = getPlayerStorageValue(cid, 4561) local target = getCreatureTarget(cid) if target ~= 0 then local wx = w[effect] or w[math.random(#w)] doSendDistanceShoot(getThingPos(cid), getThingPos(target), wx.sh) addEvent(doAreaCombatHealth, 100, cid, wx.dmg, getThingPos(target), 0, -min, -max, wx.ef) end return true end
  11. local magic = getPlayerMagLevel(cid) -- Não mexa local dano = (magic * 25000/100) -- Aqui é a porcentagem que de 25000, se seu Magic Level é 25, irá retornar 25% de 25000 local min, max = (25000+dano),(25000+dano) -- Aqui irá somar o valor anterior ou seja, (25000+% de 25000) local w = { [1] = {ef = 47, sh = 35, dmg = COMBAT_ENERGYDAMAGE}, } function onUseWeapon(cid, var) local effect = getPlayerStorageValue(cid, 4561) local target = getCreatureTarget(cid) if target ~= 0 then local wx = w[effect] or w[math.random(#w)] doSendDistanceShoot(getThingPos(cid), getThingPos(target), wx.sh) addEvent(doAreaCombatHealth, 100, cid, wx.dmg, getThingPos(target), 0, -min, -max, wx.ef) end return true end
  12. Utilize este script \/ function onLogin(cid) registerCreatureEvent(cid, "fraglook") return true end function onLook(cid, thing, position, lookDistance) if isPlayer(thing.uid) and thing.uid ~= cid then doPlayerSetSpecialDescription(thing.uid,' [Critical: '..math.max(0,(tonumber(getCreatureStorage(thing.uid,48903)) or 0))..'] [Dodge: '..math.max(0,(tonumber(getCreatureStorage(thing.uid,98798644)) or 0))..']\nPosition: [X:'.. position.x..'] [Y:'.. position.y..'] [Z:'.. position.z..']') return true elseif thing.uid == cid then doPlayerSetSpecialDescription(cid,' [Critical: '..math.max(0,(tonumber(getCreatureStorage(cid,48903)) or 0))..'] [Dodge: '..math.max(0,(tonumber(getCreatureStorage(cid,98798644)) or 0))..']\nPosition: [X:'.. position.x..'] [Y:'.. position.y..'] [Z:'.. position.z..']') local string = '\nLevel: ['.. getPlayerLevel(cid) ..'] .' if getPlayerFlagValue(cid, PLAYERFLAG_SHOWGROUPINSTEADOFVOCATION) then string = string..' You are '.. getPlayerGroupName(cid) ..'.' elseif getPlayerVocation(cid) ~= 0 then string = string..' Voc: '.. getPlayerVocationName(cid) ..'.' else string = string..' You have no vocation.' end string = string..getPlayerSpecialDescription(cid)..'' if getPlayerGuildId(cid) > 0 then string = string..' You are ' .. (getPlayerGuildRank(cid) == '' and 'a member' or getPlayerGuildRank(cid)) ..' of the '.. getPlayerGuildName(cid) string = getPlayerGuildNick(cid) ~= '' and string..' ('.. getPlayerGuildNick(cid) ..').' or string..'.' end if getPlayerStorageValue(cid, 30001) >= 1 then string = string..'\nHealth: ['.. getCreatureHealth(cid) ..' / '.. getCreatureMaxHealth(cid) ..']\nMana: ['.. getCreatureMana(cid) ..' / '.. getCreatureMaxMana(cid) ..'].' end if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEECREATUREDETAILS) then string = string..'\nIP: '.. doConvertIntegerToIp(getPlayerIp(cid)) ..'.' end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string) return false end return true end
  13. Claro, doRemoveItem(item.uid, count) o item.uid tem que ser declarado na callback da função, tente usar \/ doPlayerRemoveItem(cid, itemid, quantidade)

Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia partindo do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer publicidade para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução! A publicação do seu anuncio é instantânea!

×