Ir para conteúdo

Andreselos1988

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    Andreselos1988 deu reputação a luanluciano93 em Recompensa por Level (Item, Bank, Addon, Mount)   
    Olá pessoal, para quem não sabe esse script dá determinado item, quantidade / bank / addon / mount em determinado level.

    Crie um arquivo com o nome recompensa.lua em creaturescripts/scripts e coloque isso dentro:
    local table = { -- [level] = type = "item", id = {ITEM_ID, QUANTIDADE}, msg = "MENSAGEM"}, -- [level] = type = "bank", id = {QUANTIDADE, 0}, msg = "MENSAGEM"}, -- [level] = type = "addon", id = {ID_ADDON_FEMALE, ID_ADDON_MALE}, msg = "MENSAGEM"}, -- [level] = type = "mount", id = {ID_MOUNT, 0}, msg = "MENSAGEM"}, [20] = {type = "item", id = {2160, 2}, msg = "Voce ganhou 2 crystal coins por alcancar o level 20!"}, [30] = {type = "bank", id = {20000, 0}, msg = "Foi depositado em seu bank 20000 gold coints!"}, [40] = {type = "addon", id = {136, 128}, msg = "Voce ganhou o addon citizen full por alcancar o level 40!"}, [60] = {type = "mount", id = {2, 0}, msg = "Voce ganhou a montaria x!"}, } local storage = 15000 function onAdvance(player, skill, oldLevel, newLevel) if skill ~= SKILL_LEVEL or newLevel <= oldLevel then return true end for level, _ in pairs(table) do if newLevel >= level and player:getStorageValue(storage) < level then if table[level].type == "item" then player:addItem(table[level].id[1], table[level].id[2]) elseif table[level].type == "bank" then player:setBankBalance(player:getBankBalance() + table[level].id[1]) elseif table[level].type == "addon" then player:addOutfitAddon(table[level].id[1], 3) player:addOutfitAddon(table[level].id[2], 3) elseif table[level].type == "mount" then player:addMount(table[level].id[1]) else return false end player:sendTextMessage(MESSAGE_EVENT_ADVANCE, table[level].msg) player:setStorageValue(storage, level) end end player:save() return true end  
    E em creaturescripts.xml adcione a tag: 
    <event type="advance" name="Recompensa" script="recompensa.lua"/> Caso queira colocar outro basta colocar usar os exemplos que coloquei como comentário (--) e adicionar a linha inteira novamente ...

    Dúvidas postem aqui! Abraços
  2. Gostei
    Andreselos1988 deu reputação a Flavio S em (Resolvido)Mudar recompensa evento   
    basta configurar em :
    local reward = {{ITEMID, QUANTIDADE}} -- {ITEMID, QUANTIDADE}, local centeroffight = {x=24553,y=23720,z=7} local waitingplace = {x=24554,y=23720,z=6} local depotcenter = {x=32345,y=32223,z=7} local MinimumPlayers = 2 local reward = {{ITEMID, QUANTIDADE}} -- {ITEMID, QUANTIDADE}, local function lmsclosed1() -- broadcastMessage("Last Man Standing event will start in 1 minutes. Portal is opened in depot", MESSAGE_STATUS_WARNING) end local function lmsclosed() count = 0 local spectators = getSpectators(waitingplace, 10, 10, false) if spectators ~= nil then for _, spectator in ipairs(spectators) do if isPlayer(spectator) then count = count + 1 end end end if (count >= MinimumPlayers) then broadcastMessage("Last Man Standing event portal closed and event started!", MESSAGE_STATUS_WARNING) for _, pid in ipairs(getOnlinePlayers()) do if getPlayerStorageValue(pid, 25001) == 1 then local playerids = getPlayerByName(pid) doTeleportThing(playerids,centeroffight) doSendMagicEffect(center, CONST_ME_TELEPORT) end end else broadcastMessage("Not enough players to start Last man Standing event! Minimum: "..MinimumPlayers.." players. We have "..count.."!", MESSAGE_STATUS_WARNING) setGlobalStorageValue(25002, 0) for _, pid in ipairs(getOnlinePlayers()) do if getPlayerStorageValue(pid, 25001) == 1 then local playerids = getPlayerByName(pid) doTeleportThing(playerids,depotcenter) doSendMagicEffect(depotcenter, CONST_ME_TELEPORT) setPlayerStorageValue(pid, 25001, 0) end end end return true end local function lmscheck() count = 0 local spectators = getSpectators(centeroffight, 500, 500, false) if spectators ~= nil then for _, spectator in ipairs(spectators) do if isPlayer(spectator) then count = count + 1 end end end if count == 1 then for _, pid in ipairs(getOnlinePlayers()) do if getPlayerStorageValue(pid, 25001) == 1 then local playerids = getPlayerByName(pid) setPlayerStorageValue(playerids, 25001, 0) end end local spectators = getSpectators(centeroffight, 10, 10, false) if spectators ~= nil then for _, spectator in ipairs(spectators) do if isPlayer(spectator) then doTeleportThing(spectator,depotcenter) doSendMagicEffect(depotcenter, CONST_ME_TELEPORT) for x = 1, #reward do doPlayerAddItem(spectator, reward[x][1], reward[x][2]) end broadcastMessage("Last Man Standing ended winner is: "..getPlayerName(spectator)..".", MESSAGE_STATUS_WARNING) end end end for _, pid in ipairs(getOnlinePlayers()) do if getPlayerStorageValue(pid, 25001) == 1 then local playerids = getPlayerByName(pid) setPlayerStorageValue(pid, 25001, 0) end end stopEvent(lmscheck) else addEvent(lmscheck, 10*1000) end end local function lms() broadcastMessage("Last Man Standing event will start in 2 minutes. Portal is opened in depot", MESSAGE_STATUS_WARNING) portalwhere = {x= 32349, y=32222, z=7} local portal = doCreateItem(11796,1,portalwhere) doSetItemActionId(portal, 25001) doSendMagicEffect(portalwhere, CONST_ME_TELEPORT) iteminfo = {x= 32348, y=32222, z=7} local item = doCreateItem(1431,1,iteminfo) doSetItemActionId(item, 25002) doSendMagicEffect(iteminfo, CONST_ME_TELEPORT) addEvent(function() doRemoveItem(getTileItemById(portalwhere, 11796).uid) end, 120 * 1000) addEvent(function() doSendMagicEffect(portalwhere, CONST_ME_TELEPORT) end, 120 * 1000) addEvent(function() doRemoveItem(getTileItemById(iteminfo, 1431).uid) end, 120 * 1000) addEvent(function() doSendMagicEffect(iteminfo, CONST_ME_TELEPORT) end, 120 * 1000) addEvent(lmsclosed, 2*60*1000) addEvent(lmsclosed1, 1*60*1000) addEvent(lmscheck, 130*1000) return true end function onThink(interval) broadcastMessage("Last Man Standing event will start in 3 minutes.", MESSAGE_STATUS_WARNING) addEvent(lms, 60*1000) return true end
  3. Gostei
    Andreselos1988 deu reputação a Wise em (Resolvido)NoDamageParty   
    Certo, tente desse modo: function onCombat(cid, target)     if isPlayer(target) and isInParty(cid) and isInParty(target) then         if getPlayerParty(target) == getPlayerParty(cid) or getPartyLeader(target) == cid then return false end     end          return true end
  4. Gostei
    Andreselos1988 deu reputação a Snowsz em Segunda promotion VIP e NPC [TFS 1.0]   
    Sim, eu acho...
  5. Gostei
    Andreselos1988 deu reputação a luanluciano93 em [Java] Programação Orientada a Objetos   
    Seguinte pessoal, estou estudando POO em Java e decidi compartilhar com vocês!     
    1 - Criando uma classe:   Primeiramente definimos qual será a classe que iremos criar, após escolher pense nas possíveis características/atributos e ações/métodos que tal objeto pode ter. Por exemplo, minha classe será uma Conta de Banco ...  Possíveis características/atributos do objeto: • número da conta • dono • saldo Obs: lembrando que quando definimos um atributo precisamos colocar antes o tipo de dados que ele representa, por exemplo: int (de inteiro), double (de um ponto flutuante), String (de conjunto de palavras), boolean (de valor lógico), etc .. 
    Possíveis Ações do objeto/métodos: • sacar um valor • depositar um valor • mostrar o dono da conta • mostrar o saldo atual Agora podemos começar criar nossa classe Conta:  class Conta { // Atributos int numero; String dono; double saldo; // Métodos usuario() saldo() sacar() depositar() } Pronto, inicialmente criamos nossa nova classe Conta.   2 - Definir Métodos Getters e Setters:   Normalmente (não sempre) o método setter irá começar com void e o método getter irá começar com o tipo de dados que vai retornar.
    Os métodos podem receber parâmetro(s) de entrada, definido pelo tipo de dados no começo.  // Getters String usuario() { return dono; } Double saldo() { return saldo; } // Setters void sacar(double valor) { if (saldo >= valor) { saldo = saldo - valor; //ou this saldo -= valor; } else { System.out.println("Seu saldo é insuficiente."); } } void depositar(double valor) { saldo = saldo + valor; //ou this saldo += valor } Obs: Você pode, ou não usar this.atributo para referenciar um atributo da classe, porem ele é mais utilizado quando quando o nome do atributo é o mesmo nome de algum parâmetro de entrada do método. Por exemplo:  void depositar(double saldo) { this.saldo = this.saldo + saldo; //ou this saldo += saldo } 3 - Definindo Encapsulamento da Classe:   Podemos proteger nossa classe, atributos e métodos com o encapsulamento, definindo seu modificador de acesso. Existem 4 tipos de modificadores de acesso: • public: Deixa o atributo, método ou classe acessível por qualquer um em todo o projeto. • private: Deixa o atributo ou método acessível apenas dentro da classe à qual pertence. • protected: Deixa o atributo ou método acessível dentro de todo o pacote e também nas subclasses da classe ao qual pertence, podendo ser estas subclasses de outros pacotes do projeto. • default (sem modificador): todas as classes do mesmo pacote tem acesso ao atributo, construtor, método ou classe. - Uma regra básica de proteção é definir a classe como public, seus atributos como private e determinados métodos como public e outros como private (dependendo do grau de segurança de determinado método).   Ficando assim:  public class Conta { // Atributos private int numero; private String dono; private double saldo; // Métodos Getters public String usuario() { return dono; } public Double saldo() { return saldo; } // Métodos Setters public void sacar(double valor) { if (saldo >= valor) { saldo -= valor; } else { System.out.println("Seu saldo é insuficiente."); } } public void depositar(double valor) { saldo += valor; } }   4 - Método construtor:   O método construtor é o responsável por criar um objeto da classe, podendo criar-los com parâmetros iniciais ou não, Caso não tenha parâmetros não precisa declara-lo no código, pois ele funcionará como default (criando um objeto sem parâmetros de entrada). Cada construtor deve ser escrito de acordo com a necessidade de cada classe.
    Crie seu método construtor com o mesmo nome da classe (o método construtor não precisa da palavra reservada void, apenas do encapsulamento).   Por exemplo:  // Método construtor sem parâmetros (ele é um padrão, não é necessário cria-lo) public Conta() {} // Método construtor com parâmetros public Conta(int numero, String dono, double saldo) { this.numero = numero; this.dono = dono; this.saldo = saldo; }   5 - Instanciando um objeto:   Cria o arquivo principal de seu projeto (normalmente Class Main ou Class Principal), e defina o método public static void main(String[] args) nela, e dentro dele iremos instanciar o objeto que você criou anteriormente.   Defina assim: Classe_Nome Objeto_Especifico = new Classe_Nome(parametros)   No exemplo da classe Conta, ficaria assim: Conta conta1 = new Conta(1, "Luan", 1000.0); // ou seja, defini os parametro numero = 1, dono = "Luan" e saldo = 1000.0 Agora para usar os métodos da classe ficaria assim: conta1:depositar(100.0) // do saldo de 1000.0 irá adicionar 100.0 ficando 1100.0 conta1:usuario() // irá retornar o dono da conta, no caso: "Luan" conta1:sacar(1099.0) // do saldo de 1100.0 irá retirar 1099.0 ficando 1.0 conta1:saldo // irá retornar o saldo atual da conta, no caso: 1.0
    Irá fica assim a classe principal:  public class AulaJava { public static void main(String[] args) { Conta conta1 = new Conta(1, "Luan", 1000.0); // ou seja, defini os parametro numero = 1, dono = "Luan" e saldo = 1000.0 conta1:depositar(100.0) // do saldo de 1000.0 irá adicionar 100.0 ficando 1100.0 conta1:usuario() // irá retonar o dono da conta, no caso: "Luan" conta1:sacar(1099.0) // do saldo de 1100.0 irá retirar 1099.0 ficando 1.0 conta1:saldo // irá retonar o saldo atual da conta, no caso: 1.0 } } 6 - Herança (também conhecida como especialização ou generalização):
     
    • A Herança é uma ótimo ferramenta de reuso para POO. • Na herança temos a classe pai (super classe, classe generalizada), e as classes filhas (subclasses, classes especializadas). • As classes filhas herdam os atributos e métodos da classe pai (quando o modificador de acesso é protected, public ou default), exceto as privadas.   É necessário indicar a classe qual ele herdará, definindo no cabeçalho da classe: class Subsclasse_Name extendes Classe_Super {}   Outra mudança é no método construtor da classe filha, que além de definido os atributos especificos, pode usar um método particular para definir os atributos da classe Pai: SUPER.   Por exemplo, imaginemos que os parametros 1 e 2 definem atributos já existentes na classe Pai, e o parametro 3 defini um atributo da class filha, ficará assim:  Contrutor (parametro1, parametro2, parametro3) { super(parametro1, parametro2); this.atributo = parametro3; }
    Como estou estudando, quero aprender CORRETAMENTE, portanto, quem ver algo errado, por favor diga e me ajude, criticas construtivas são sempre bem-vindas!
  6. Gostei
    Andreselos1988 deu reputação a Snowsz em Segunda promotion VIP e NPC [TFS 1.0]   
    Tenta isso:

    local money = xxxx -- Quanto vai custar local storage = 14542 -- Não mexer local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end local function creatureSayCallback(cid, type, msg) if not npcHandler:isFocused(cid) then return false end local player = Player(cid) if player:getStorageValue(storage) == 1 then npcHandler:say("You have already received the promotion.", cid) return true end if msgcontains(msg:lower(), "promotion") then npcHandler:say("You are sure?", cid) npcHandler.topic[cid] = 1 end if msgcontains(msg:lower(), "yes") and npcHandler.topic[cid] == 1 then if player:getVocation():getPromotion() then if player:getVipDays() >= 1 then if player:removeMoney(money) then npcHandler:say("You just received a new promotion.", cid) player:setVocation(player:getVocation():getPromotion()) player:setStorageValue(storage, 1) npcHandler.topic[cid] = 0 else npcHandler:say("You don't have money.", cid) npcHandler.topic[cid] = 0 end else npcHandler:say("You don't have any vip days.", cid) npcHandler.topic[cid] = 0 end else npcHandler:say("You don't have the first promotion.", cid) npcHandler.topic[cid] = 0 end elseif msgcontains(msg:lower(), "no") and npcHandler.topic[cid] == 1 then npcHandler:say('Bye!', cid) npcHandler.topic[cid] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  7. Gostei
    Andreselos1988 deu reputação a Summ em Segunda promotion VIP e NPC [TFS 1.0]   
    local money = xxxx -- Quanto vai custar local storage = 14542 -- Não mexer local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end local function creatureSayCallback(cid, type, msg) if not npcHandler:isFocused(cid) then return false end player = Player(cid) if player:getStorageValue(storage) == 1 then npcHandler:say('you have already received the promotion', cid) return true end if msgcontains(msg:lower(), 'promotion') then npcHandler:say('you are sure?', cid) npcHandler.topic[cid] = 1 end if msgcontains(msg:lower(), 'yes') and npcHandler.topic[cid] == 1 then if isInArray({5, 6, 7, 8}, player:getVocation()) then if player:getVipDays() >= 1 then if player:removeMoney(money) then npcHandler:say('you just received a new promotion', cid) player:setVocation(player:getVocation() + 4) player:setStorageValue(storage, 1) npcHandler.topic[cid] = 0 else npcHandler:say('you no have money', cid) npcHandler.topic[cid] = 0 end else npcHandler:say('You do not have any vip days.', cid) npcHandler.topic[cid] = 0 end else npcHandler:say('you no have first promotion', cid) npcHandler.topic[cid] = 0 end elseif msgcontains(msg:lower(), 'no') and npcHandler.topic[cid] == 1 then NpcHandler:say('Bye!!', cid) npcHandler.topic[cid] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  8. Gostei
    Andreselos1988 deu reputação a Summ em Segunda promotion VIP e NPC [TFS 1.0]   
    local money = xxxx -- Quanto vai custar local storage = 14542 -- Não mexer local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end local function creatureSayCallback(cid, type, msg) if not npcHandler:isFocused(cid) then return false end player = Player(cid) if player:getStorageValue(storage) == 1 then npcHandler:say('you have already received the promotion', cid) return true end if msgcontains(msg:lower(), 'promotion') then npcHandler:say('you are sure?', cid) npcHandler.topic[cid] = 1 end if msgcontains(msg:lower, 'yes') and npcHandler.topic[cid] == 1 then if isInArray({5, 6, 7, 8}, player:getVocation()) then if player:getVipDays() >= 1 then if player:removeMoney(money) then npcHandler:say('you just received a new promotion', cid) player:setVocation(player:getVocation() + 4) player:setStorageValue(storage, 1) npcHandler.topic[cid] = 0 else npcHandler:say('you no have money', cid) npcHandler.topic[cid] = 0 end else npcHandler:say('You do not have any vip days.', cid) npcHandler.topic[cid] = 0 end else npcHandler:say('you no have first promotion', cid) npcHandler.topic[cid] = 0 end elseif msgcontains(msg:lower(), 'no') and npcHandler.topic[cid] == 1 then NpcHandler:say('Bye!!', cid) npcHandler.topic[cid] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) em creaturescripts :
     
    function onLogin(cid) local storage = 14542; player = Player(cid); if player:getVipDays() == 0 and player:getStorageValue(storage) == 1 then player:setVocation(player:getVocation() - 4) player:setStorageValue(storage, - 1) end return true end
  9. Gostei
    Troque seu inServiceOfYalaharQuestReward.lua
     
    Por esse:
    function onUse(cid, item, fromPosition, itemEx, toPosition) if(getPlayerStorageValue(cid, 10012) < 1) then doPlayerAddItem(cid, 9776, 1) doPlayerAddItem(cid, 9778, 1) doPlayerAddItem(cid, 9777, 1) doPlayerAddExp(cid, 250000, true, true) setPlayerStorageValue(cid, 10012, 1) end if(item.uid == 3088) then if(getPlayerStorageValue(cid, 30) == 53) then setPlayerStorageValue(cid, 30, 54) Player(cid):setStorageValue(12021, 5) -- StorageValue for Questlog "Mission 10: The Final Battle" doPlayerAddItem(cid, 9776, 1) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You've found a yalahari armor.") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "The chest is empty.") end elseif(item.uid == 3089) then if(getPlayerStorageValue(cid, 30) == 53) then setPlayerStorageValue(cid, 30, 54) Player(cid):setStorageValue(12021, 5) -- StorageValue for Questlog "Mission 10: The Final Battle" doPlayerAddItem(cid, 9778, 1) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You've found a yalahari mask.") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "The chest is empty.") end elseif(item.uid == 3090) then if(getPlayerStorageValue(cid, 30) == 53) then setPlayerStorageValue(cid, 30, 54) Player(cid):setStorageValue(12021, 5) -- StorageValue for Questlog "Mission 10: The Final Battle" doPlayerAddItem(cid, 9777, 1) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You've found a yalahari leg piece.") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "The chest is empty.") end end return true end
  10. Gostei
    disponha tamo ae pra ajudar.
  11. Gostei
    não tem la actions, uniqued id e doors id quando você clica na porta, se não tiver aparecendo isso pega os items.otb e items.xml da pasta do ot e troca no rme que vai aparecer doors id.
  12. Gostei
    e so por doors id 1 em cada posta de entrada da casa que arruma.
  13. Gostei
    AVISO
     
    O Servidor aparenta ainda conter o bug no loot do monstro chamado Enraged Crystal Golem
    Onde o mesmo Dropa com muita facilidade o item Crystalline Axe Item de Boss Da Warzone.
    Para corrigir o mesmo abra o arquivo do monstro.

    Procure por : <item id="18451" countmax="5" chance="5008"/><!-- crystalline arrows --> 
     
    Mude para: <item id="18304" countmax="5" chance="5008"/><!-- crystalline arrows --> 
     
      Espero ter ajudado.
     
     
    Estou avisando novamente porque a pouco entrei em um servidor que o dono baixou daqui da versão atual

    10.76 e o bug permanecia no mesmo.  
  14. Gostei
  15. Gostei
    V10 disponível para download, se encontrar bugs reporte.
  16. Gostei
    atualização com os debug corrigido sera feita ainda hoje, só aguardem.
  17. Gostei
    Andreselos1988 deu reputação a Summ em Rathleton doors bugadas   
    Pra não deixar tu no vácuo dando up eternamente ehuehue, se eu sou você desmanchava todas as casas com problemas e refazia ... vai ser trabalhoso ? sim porque nada é fácil na vida, mas se é a unica forma de chegar no objetivo é o que tem que ser feito. Porque a não ser que alguém tenha tido o mesmo problema e tu esperar esse ser aparecer com a solução, vai demorar ahsuahsuh, quando eu não sei resolver algum problema e não encontro a solução começo do 0 é o que sobra pra resolver.
     
     
     
    abrçs
     
    Ps: 99% de ctz que não haver com scripts, desmanche uma casa e refaça e veja que vai funcionar normalmente.
  18. Gostei
    so é vc abrir o player.lua e procurar por "0then" ai qnd achar so e vc da espaço ficando assin "0 then"
     
     
    estou com uma duvida como q desativa missao para a wote?
  19. Gostei
    Andreselos1988 deu reputação a Tibia2015br em Bonus de exp, não funciona!   
    ai tem esse aki fera esse não tem erro
     
     
     
  20. Gostei
    Andreselos1988 deu reputação a wandersonnc em Problema com IP Fixo   
    A Area de WEB MASTER e a mais precaria do tibia king ta faltando atençao pra estas areas ...

Informação Importante

Confirmação de Termo