Tudo que Storm postou
-
[AJUDA PVP] Level alto atacando lvl baixo
@dbofurie Vou fazer o código mais tarde e posto aqui.
-
erro sistema de surf poketibia
@GaspaR1 Sim, é só você falar o que quer que mude, mas é muito mais fácil você adicionar as funções que faltam na lib.
-
Script
@Lokyskiller Me manda os erros que aparecem.
-
Script
@Lokyskiller
-
[AJUDA] Definir level minimo e máximo em creaturescript POKETIBIA
@Bepovi Faz o que eu disse acima, talvez dê certo em seu servidor. Printa o que aparecer na distro e me manda.
-
[AJUDA] Definir level minimo e máximo em creaturescript POKETIBIA
@Bepovi De qualquer forma, esse sistema é gambiarra pura. O certo seria ter na sua source a função onSpawn, aí sim poderiamos fazer algo bom. Faz assim, coloca esse script que vou te mandar e me manda o que vai printar na source, quando um jogador atacar um pokemon e vice e versa. Por onThink até da pra fazer, mas creio que vai pesar muito o servidor, já que na função onThink não é possível obter o id do player que está próximo ao pokemon.
-
[AJUDA] Definir level minimo e máximo em creaturescript POKETIBIA
@Bepovi Tenta assim:
-
[AJUDA] Definir level minimo e máximo em creaturescript POKETIBIA
@Bepovi Esse sistema é meio confuso, não sei se vai funcionar de um jeito bom. Mas enfim, arrumei a callback para uma melhor, onde você consegue puxar o id do player. Arruma o nome das tabelas, desse jeito que está não vai funcionar. Outra coisa, troca a XML para isso: <event type="combat" name="Pokelvl" event="script" value="Pokelvl.lua"/>
-
erro sistema de surf poketibia
@GaspaR1 Cria qualquer arquivo .lua na pasta lib e coloca essa função dentro. Lembre-se que storages.isInDuel tem que ser uma tabela declarada também na lib do seu servidor. O complicado de trocar sistemas para servidores diferentes é isso, tem que fazer várias alterações.
-
[AJUDA PVP] Level alto atacando lvl baixo
@One Punch Man @dbofurie Atualizei o código, porém testem antes de colocar no servidor principal de vocês.
-
[AJUDA PVP] Level alto atacando lvl baixo
@dbofurie local limit = 300 -- Até quantos leveis a mais um jogador pode atacar um jogador level menor que ele local areas = { [1] = { fromPos = {x = 100, y = 200, z = 7}, toPos = {{x = 200, y = 100, z = 8}} }, [2] = { fromPos = {x = 500, y = 600, z = 7}, toPos = {{x = 800, y = 700, z = 7}} }, } function onCombat(cid, target) if isPlayer(cid) and isPlayer(target) then if getPlayerLevel(target) + limit <= getPlayerLevel(cid) then for _, var in pairs(areas) do if not isInArea(getCreaturePosition(target), var.fromPos, var.toPos) then doPlayerSendTextMessage(cid, 27, "Voce nao pode atacar jogadores de ".. limit .." leveis a menos que você.") return false end end end end return true end tag no XML: <event type="combat" name="LevelCheck" event="script" value="levelcheck.lua"/> Registra no login.lua: registerCreatureEvent(cid, "LevelCheck")
-
[AJUDA] Definir level minimo e máximo em creaturescript POKETIBIA
@Bepovi Manda o código completo.
-
erro sistema de pesca
@GaspaR1 A função isWatchingTv não foi encontrada no seu servidor, é o mesmo caso do outro tópico que você criou.
-
erro sistema de surf poketibia
@GaspaR1 Seu servidor não contém a função isInDuel. Não sei se essa função é da source ou é feita por lib, então fica difícil de ajudar.
-
[AJUDA] Definir level minimo e máximo em creaturescript POKETIBIA
@Bepovi O erro é que você está tentando comparar o level de um pokemon (que não existe), com um número. if getPlayerLevel(cid) >= 10 and getPlayerLevel(cid) <= 20 then Aquele cid ali deve ser substituído pelo id do player, pois o cid no casso desse script se refere ao pokémon(monstro).
-
Pequeno Erro nos teleportes que vão aos trainers
@Serpente Tenta assim: function onStepIn(creature, item, position, fromPosition) local player = creature:getPlayer() if not player then return true end if findFirstEmpty() then player:teleportTo(availableTrainingSlot) player:sendTextMessage(MESSAGE_INFO_DESCR, "LeftTopCorner: X=".. config.leftTopCorner.x .."Y=".. config.leftTopCorner.y .." RightDownCorner: X=".. config.rightDownCorner.x .." Y= ".. config.rightDownCorner.y .." pronto") --player:sendTextMessage(MESSAGE_INFO_DESCR, "Treiner stamina regeneration engaged.") else player:sendTextMessage(MESSAGE_INFO_DESCR, "No available treiner slots.") end return true end
-
(Resolvido)getItemAttribute retornando null
@Balkalima Tirei aquele print(type) e mudei algumas outras coisas, tenta ai: function onGetFormulaValues(cid, level, skill, attack, factor) local arma = getPlayerSlotItem(cid, CONST_SLOT_LEFT) if getItemWeaponType(arma.uid) ~= 4 then local danoArma = getItemInfo(arma.itemid).attack else local danoArma = getItemInfo(getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid).attack end print(danoArma) -- print apenas para ver o que é retornado (null neste caso) min = -(((attack * 5) + (skill * 0.5) + (level * 0.04)) / factor) max = -(((attack * 5) + (skill * 0.8) + (level * 0.06)) / factor) return min, max end
-
(Resolvido)getItemAttribute retornando null
@Balkalima Tenta usar aspas duplas ao invés de usar a aspa simples e vê se funciona. Tava pesquisando aqui, vê se no seu servidor existe a função getItemAttack e usa ela no lugar do getItemAttribute local danoArma = getItemAttack(arma) Se não tiver a função, aqui está ela: function getItemAttack(item) return getItemAttribute(item.uid, "attack") or getItemInfo(item.itemid).attack end
-
(Resolvido)getItemAttribute retornando null
@Balkalima Tenta assim: function onGetFormulaValues(cid, level, skill, attack, factor) local arma = getPlayerSlotItem(cid, CONST_SLOT_LEFT).uid if arma ~= 0 then if getItemWeaponType(arma) ~= 4 then local arma = getPlayerSlotItem(cid, CONST_SLOT_RIGHT).uid end else local arma = getPlayerSlotItem(cid, CONST_SLOT_RIGHT).uid end local danoArma = getItemAttribute(arma, 'attack') print(type(danoArma)) -- print apenas para ver o que é retornado (null neste caso) min = -(((attack * 5) + (skill * 0.5) + (level * 0.04)) / factor) max = -(((attack * 5) + (skill * 0.8) + (level * 0.06)) / factor) return min, max end
-
(Resolvido)Check party item
@esnio12 Faz mais um for para remover todos os itens, se você não quiser remover na hora da verificação for index, var2 in pairs(party_id) do doPlayerRemoveItem(var2, itemid, count) end
-
(Resolvido)Check party item
@esnio12 Tenta assim: local itemid, count = 2155, 1 local party_id = getPartyMembers(cid) for _, var in pairs(party_id) do if getPlayerItemCount(var, itemid) <= count then doPlayerSendTextMessage(cid, 27, "O jogador ".. getPlayerNameById(var) .." nao tem a quantidade do item suficiente") return true end end
-
Slot System
@bellatrikz Tenta mudando apenas esta parte:
-
(Resolvido)[AJUDA] Alterar Catch System
@betofss Não adianta, não são necessárias apenas mudanças nessa script, e sim também em como o corpse surge nesse servidor. O corpse precisará levar o attributo que vai definir o level e a exp, o sexo, nome e mais algumas coisas. Será necessário mudar também o sistema de como o Nidoram funciona. Mas se quiser tentar usar o que o amigo a cima disse, é só remover o escopo: if not isCreature(item2.uid) then return doPlayerSendCancel(cid, "Voce so pode usar pokebolas em pokemons!") end E é claro, irá surgir outros erros que só serão resolvidos com um novo sistema de corpse.
-
(Resolvido)Preciso de uma script
@Calisto local config = { [1] = {item1 ={2150, 2, {x = 30, y = 30, z = 7, stackpos = 2}}, item2 = {2151, 3, {x = 30, y = 30, z = 7, stackpos = 255}}, chance = 50, result = {2160, 3, {x = 30, y = 30, z = 7, stackpos = 255}}}, [2] = {item1 ={2150, 2, {x = 30, y = 30, z = 7, stackpos = 2}}, item2 = {2151, 3, {x = 30, y = 30, z = 7, stackpos = 255}}, chance = 50, result = {2160, 3, {x = 30, y = 30, z = 7, stackpos = 255}}} } function onUse(cid, item, fromPosition, itemEx, toPosition) for _, var in pairs(config) do local item1 = getThingfromPos(var.item1[3]) local item2 = getThingfromPos(var.item2[3]) if item1.itemid == var.item1[1] and item2.itemid == var.item2[1] then if item1.type >= var.item1[2] and item2.type >= var.item2[2] then doRemoveItem(item1.uid, var.item1[2]) doRemoveItem(item2.uid, var.item2[2]) if math.random(1, 100) <= var.chance then doCreateItem(var.result[1], var.result[2], var.result[3]) doPlayerSendTextMessage(cid, 27, "Parabens! Você obteve sucesso na forja!") doSendAnimatedText(var.result[3], "Forjou!", 36) return true else doPlayerSendTextMessage(cid, 18, "Infelizmente a forja falhou!") return true end else doPlayerSendTextMessage(cid, 19, "Quantidade de itens insuficiente.") return true end end end return true end
-
(Resolvido)Preciso de uma script
@Calisto Como assim só em uma position? Os itens que serão forjados tem que estar na backpack ou em algum tile específico?