
Tudo que luangop postou
-
Bug no /cb de alguns pokemons
Que base esta usando? Cada pokémon tem sua própria ball no items.xml? È o único motivo que consegui pensar pra esse bug acontecer Caso a resposta for sim sobre o items.xml, vc precisa de um itemeditor para editar o items.otb.
-
AJUDA script anihi
function isOnSameFloor(fromPos, toPos) return fromPos.z == toPos.z and true or false end function isEven(arg) return arg % 2 == 0 and true or false end function getMiddlePos(fromPos, toPos) if not isOnSameFloor(fromPos, toPos) then return false end local middle = {x = 0, y = 0, z = 0} middle.x = isEven(fromPos.x + toPos.x) and (fromPos.x + toPos.x)/2 or math.floor((fromPos.x + toPos.x)/2) + 1 middle.y = isEven(fromPos.y + toPos.y) and (fromPos.y + toPos.y)/2 or math.floor((fromPos.y + toPos.y)/2) + 1 middle.z = fromPos.z or toPos.z return middle end function getDistanceRadius(fromPos, toPos) if not isOnSameFloor(fromPos, toPos) then return false end local distance = getDistanceBetween(fromPos, toPos) return isEven(distance) and (distance/2) or math.floor(distance/2) + 1 end function clearArea(middlePos, rangex, rangey) local final = {x=1072, y=1164, z=6} -- Posição onde será teleportado quando acabar o tempo for i = -rangex, rangex do for j = -rangey, rangey do pos = {x = middlePos.x + i, y = middlePos.y + j, z = middlePos.z} creature = getTopCreature(pos).uid if isMonster(creature) or isPlayer(creature) then doSendMagicEffect(getThingPos(creature), 10) doTeleportThing(creature, final) end end end setGlobalStorageValue(sto, -1) return true end local t = { lvl = 120, entrada = { {x = 1125, y = 1152, z = 7}, -- pos players {x = 1124, y = 1152, z = 7}, -- pos players {x = 1123, y = 1152, z = 7}, -- pos players {x = 1122, y = 1152, z = 7}, -- pos players {x = 1121, y = 1152, z = 7}, -- pos players }, saida = { {x = 1127, y = 1153, z = 8}, -- pos para onde eles irão {x = 1126, y = 1153, z = 8}, -- pos para onde eles irão {x = 1125, y = 1153, z = 8}, -- pos para onde eles irão {x = 1124, y = 1153, z = 8}, -- pos para onde eles irão {x = 1123, y = 1153, z = 8}, -- pos para onde eles irão }, monstros = { {{x = 1122, y = 1153, z = 8}, "Anihilation"}, -- defina pos dos montros e nomes {{x = 1121, y = 1151, z = 8}, "Anihilation"}, -- defina pos dos montros e nomes {{x = 1121, y = 1155, z = 8}, "Anihilation"}, -- defina pos dos montros e nomes {{x = 1128, y = 1153, z = 8}, "Anihilation"}, -- defina pos dos montros e nomes {{x = 1129, y = 1151, z = 8}, "Anihilation"}, -- defina pos dos montros e nomes {{x = 1129, y = 1155, z = 8}, "Anihilation"}, -- defina pos dos montros e nomes } } function onUse(cid, item, fromPosition, itemEx, toPosition) local configure = { fromPos = {x=1121, y=1150, z=8}, -- posição superior esquerda do mapa, da area em que esta mapeado a area. toPos = {x=1129, y=1156, z=8}, -- posição inferior direita do mapa, da area em que esta mapeado a area. boss = "Anihilation" -- Aqui você bota o nome do monstro que você quer remover } local config = { position = {x=1126, y=1152, z=7}, -- Contagem position1 = {x=1121, y=1150, z=8}, -- Contagem position2 = {x=1121, y=1156, z=8}, -- Contagem position3 = {x=1129, y=1150, z=8}, -- Contagem position4 = {x=1129, y=1156, z=8}, -- Contagem fromPosition = {x=1121, y=1150, z=8}, toPosition = {x=1129, y=1156, z=8}, id = 1498, time = 2 -- tempo que o teleport ira sumir em minutos } local time = 120 local check = {} 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 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você precisa de 5 jogadores para entrar na quest.") return true end if getGlobalStorageValue(sto) == 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde até que a sala seja liberada.") return true end table.insert(check, x) end for _, summon in pairs(t.monstros) do local creature = getTopCreature(summon[1]).uid doCreateMonster(summon[2], summon[1]) end for i, tid in ipairs(check) do doTeleportThing(tid, t.saida, false) doSendMagicEffect(t.saida, 10) doTransformItem(item.uid, item.itemid == 9893 and 9893 or 9893) end for i = 1,time do formula = time - 1*i addEvent(doSendAnimatedText, i*1000, config.position, formula, TEXTCOLOR_RED) addEvent(doSendAnimatedText, i*1000, config.position1, formula, TEXTCOLOR_RED) addEvent(doSendAnimatedText, i*1000, config.position2, formula, TEXTCOLOR_RED) addEvent(doSendAnimatedText, i*1000, config.position3, formula, TEXTCOLOR_RED) addEvent(doSendAnimatedText, i*1000, config.position4, formula, TEXTCOLOR_RED) end setGlobalStorageValue(sto, 1) local rx = getDistanceRadius(configure.fromPos, configure.toPos) addEvent(clearArea, config.time * 60 * 1000, getMiddlePos(configure.fromPos, configure.toPos), rx, rx) return true end Script meio completo "de mais" kkk Se ajudei, REP+
-
Add Pokemons em poketibia
Sobre o corpo, você deve configurar no items.xml o ID do corpse. Sobre todo o resto, depende da sua base. Se for PDA, tem muita coisa pra configurar nas LIB's.
-
[PEDIDO] !Capreset
Não seria muito mais conveniente integrar no seu script de reset, para resetar o CAP no mesmo instante que reseta o level? Se te interessa minha ideia, poste seu script do reset.
-
TILE Account Manager
E você configurando a coordenada do lado do tile, o efeito não seria o mesmo? '-' Daria para por doTeleportThing(cid,fromPosition, true) Porém se o player tiver chegado no tile via um teleport, retornaria para a posição de origem, e geraria um loop que daria crash no servidor. Por isso optei por definir uma coordenada.
-
Erro Globalevents
Tenta assim: function onStartup() db.Query("UPDATE `players` SET `online` = 0 WHERE `world_id` = " .. getConfigValue('worldId') .. ";") return true end
-
Adicionar storage tal pra player
Esse comando já existe por padrão amigo, /storage e funciona exatamente assim. /storage Player_name, Storage, valor_a_adicionar
-
[Talkactions] transferir premium points de player pra player
function onSay(cid, words, param, channel) local t = string.explode(param, ",") local stopoint = XXXX if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Exemplo de como usar o comando:\nTransferir 50 points para o player 'Amigo'\n!transferpoints, Amigo, 50") return true end local player = getPlayerByNameWildcard(tostring(t[1])) if(not isPlayer(player)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Esse jogador nao existe ou nao esta online.") return true end if not t[2] or t[2] and tostring(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Exemplo de como usar o comando:\nTransferir 50 points para o player 'Amigo'\n!transferpoints, Amigo, 50") return true end local points = tonumber(t[2]) local newpoint = getPlayerStorageValue(player, stopoint) + points local ppoint = getPlayerStorageValue(cid, stopoint) - points if getPlayerStorageValue(cid, stopoint) < points then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce nao tem points suficientes") return true end if getPlayerStorageValue(cid, stopoint) >= points then setPlayerStorageValue(player, newpoint) setPlayerStorageValue(cid, stopoint, ppoint) doPlayerSendTextMessage(player, MESSAGE_STATUS_CONSOLE_BLUE, "".. getPlayerName(cid) .." te deu ".. points .." Points!") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "".. t[1] .." recebeu ".. points .." Points!") return true end end Você não deu informações detalhadas quanto a seu sistema de premium points, chutei que seria por storage. Caso não seja o script não vai funcionar. No script, altere somente essa parte: local stopoint = XXXX Onde esta XXXX coloque a storage dos premium points.
-
TILE Account Manager
movements.xml adicione essa tag: <movevent type="StepIn" actionid="XXXX" event="script" value="AMtile.lua"/> XXXX = action ID que vc vai por no seu tile. data/movements/scripts crie um arquivo AMtile.lua e adicione o seguinte: local pos = {x = 728, y = 849, z = 15} -- configure a coordenada pra onde vai se não for acc manager. Fiz rápido sem testar, ve se vai funcionar. Se ajudei REP+
-
Task adicionando string na storage e bugando tudo!
Provavelmente tem algum outro sistema no seu servidor, que está programado para salvar STRING nessa mesma storage. Já verificou isso?
-
Loteria
Entendi, porém ai não sei como fazer. Sinto em não poder ajudar
-
(Resolvido)Tipo um Anti-MC
Olá! Seguinte, eu quero bloquear para que os players não possam logar em mais que um char na mesma conta ao mesmo tempo, porém a tag "onePlayerOnlinePerAccount" do meu config.lua não está funcionando. Acredito que seja possível fazer por creaturescripts, mas já tentei e não consegui. Alguém poderia me ajudar?
-
Mega Stone
Poste o arquivo .lua da pasta actions dessa stone.
-
Loteria
Fiz rapido sem testar, testa ai function onSay(cid, words, param, channel) for _, pid in ipairs(getPlayersOnline()) do local pos = getCreaturePosition(cid) local items = {"2160", "2152"} local premio = items[math.random(#items)] doPlayerSendTextMessage(pid, MESSAGE_STATUS_CONSOLE_BLUE, ""..getCreatureName(cid).." deu um premio aleatorio para todos os players online.") doPlayerAddItem(pid, premio, 1) end return true end
-
(Resolvido)Ajuda com getCreaturePosition(cid)
Muitíssimo obrigado!
-
(Resolvido)Ajuda com getCreaturePosition(cid)
Olá, estou desenvolvendo um sistema pro meu servidor, onde eu preciso verificar o floor que o player se encontra, a pos Z. Eu sei da função getCreaturePosition(cid). Mas como eu faço para me retornar apenas a posição Z para comparar com tonumber ?
-
Verificar floor
Olá, estou desenvolvendo um sistema pro meu servidor, onde eu preciso verificar o floor que o player se encontra, a pos Z. Eu sei da função getCreaturePosition(cid). Mas como eu faço para me retornar apenas a posição Z para comparar com tonumber ?
-
Como usar um item e virar Premium Account?
Poderia ter dado REP+ e melhor resposta né
-
[ACTION] Anihi modificada não teleporta
Esse não é o script que deu o erro, pois o erro foi na linha 183 do script, e esse que você passou tem apenas 104 linhas.
-
Como usar um item e virar Premium Account?
Eu ja tinha botado a função de somar os dias.. Sobre 7, 30 e 60 dias, substitua seu script por esse: function onUse(cid, item, fromPosition, itemEx, toPosition) if doRemoveItem(item.uid, 1) then if item.itemid == XXXX then days = 7 elseif item.itemid == XXXX then days = 30 elseif item.itemid == XXXX then days = 60 else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Algo deu errado....") return true end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Parabens! Agora voce possui VIP por ".. days .." dias restantes! Acesso a areas exclusivas e compra de outros items foram concedidas a voce!") doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce tem ".. getPlayerPremiumDays(cid) + days .." dias de VIP restantes.") doPlayerAddPremiumDays(cid, days) return true end end Explicando: if item.itemid == XXXX then days = 7 elseif item.itemid == XXXX then days = 30 elseif item.itemid == XXXX then days = 60 Onde ta XXXX coloca o ID do item de 7 dias Onde ta XXXX coloca o ID do item de 30 dias Onde ta XXXX coloca o ID do item de 60 dias Na tag do actions.xml, adicione o ID dos 3 items. Dessa forma: action itemid="XXXX;XXXX ;XXXX "
-
[ACTION] Anihi modificada não teleporta
Poste esse script data/actions/scripts/anihi.lua
-
[ACTION] Anihi modificada não teleporta
Verifique as posições nessa tabela do seu script, ve se as posições da frente em cada linha bate com o sqm onde os players devem estar no mapa para a alavanca funcionar: player = { {{x = 1427, y = 824, z = 7}, {x = 1440, y = 824, z = 7}}, --{{posição onde o player deve ficar}, {para onde será teleportado}}, {{x = 1426, y = 824, z = 7}, {x = 1439, y = 824, z = 7}}, {{x = 1425, y = 824, z = 7}, {x = 1438, y = 824, z = 7}}, {{x = 1414, y = 824, z = 7}, {x = 1437, y = 824, z = 7}}, {{x = 1423, y = 824, z = 7}, {x = 1436, y = 824, z = 7}}, },
-
Como usar um item e virar Premium Account?
doPlayerAddPremiumDays(cid, days) Esta é a função que você quer, apenas bote a quantia de dias no lugar de days. --EDIT cara esse script ai vai te dar storage, troque por esse: function onUse(cid, item, fromPosition, itemEx, toPosition) if doRemoveItem(item.uid, 1) then local days = 1 -- coloque os dias que serão a VIP! doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Parabens! Agora voce possui VIP por ".. days .." dias restantes! Acesso a areas exclusivas e compra de outros items foram concedidas a voce!") doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce tem ".. getPlayerPremiumDays(cid) + days .." dias de VIP restantes.") doPlayerAddPremiumDays(cid, days) return true end end em local days = 1 Mude 1 pela quantia de dias que o player vai ganhar.
-
[RESOLVIDO]Não consigo abrir OT em net Fibra Ótica
Tive o mesmo problema quando mudei para fibra óptica, embora minha internet não seja da Vivo, eu tive que ligar para a central da empresa contratada, e pedir a liberação de TCP/UDP da minha rede, pois mesmo eu desbloqueando no meu modem, eles possuem um firewall interno que me bloqueava. Tente isso! =) Off-topic * Vejamos a palavra ÓTICA, do grego OTIKÓS, OTÓS, que significa relativo ou pertencente ao OUVIDO, ORELHA. * A palavra ÓPTICA, do grego OPTIKÉ, pelo latim OPTICE, significa relativo e pertencente à visão. ÓPTICA é a parte da física que trata das propriedades da luz e da visão. (Internet de fibra, funciona com feixes de luz disparados via um canal micro de fibra).
-
Criar ACTION
data/actions/actions.xml Add essa linha: <action actionid="XXXX" event="script" value="parede.lua"/> onde da XXXX bota um numero que não exista no seu actions, e que vc vai por no action ID da parede no map editor. data/actions/scripts cria um arquivo chamado parede.lua e poe isso dentro: function onUse(cid, item, frompos, itemEx, topos) doPlayerAddItem(cid, 2160, 100) doPlayerSendTextMessage(cid, 27, "Ae maluco achou 1kk") return true end