Ir para conteúdo

El Rusher

Cavaleiro
  • Total de itens

    164
  • Registro em

  • Última visita

  • Dias Ganhos

    20

Tudo que El Rusher postou

  1. Parece que o problema está relacionado ao fato de que o OTX não está reconhecendo a função doPushCreature no script. Vou modificar o script para incluir a definição da função doPushCreature dentro do próprio script, o que deve ajudar a resolver o problema. Aqui está o script modificado: local spell = {} spell.config = { [3] = { damageType = 1, areaEffect = 2, area = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0}, {0, 0, 1, 0, 0, 2, 0, 0, 1, 0, 0}, {0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } }, [2] = { damageType = 1, areaEffect = 2, area = { {0, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 1, 0, 0, 0, 1, 0}, {0, 1, 0, 2, 0, 1, 0}, {0, 1, 0, 0, 0, 1, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0} } }, [1] = { damageType = 1, areaEffect = 2, area = { {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 0, 1, 2, 1, 0, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0} } } } -- Função para empurrar uma criatura local function doPushCreature(target, cid) if target > 0 then if not isNpc(target) then local position = getThingPosition(cid) local fromPosition = getThingPosition(target) local x = ((fromPosition.x - position.x) < 0 and -1 or ((fromPosition.x - position.x) == 0 and 0 or 1)) local y = ((fromPosition.y - position.y) < 0 and -1 or ((fromPosition.y - position.y) == 0 and 0 or 1)) local toPosition = {x = fromPosition.x + x, y = fromPosition.y + y, z = fromPosition.z} if doTileQueryAdd(target, toPosition) == 1 and not getTileInfo(toPosition).house then doTeleportThing(target, toPosition, true) end end end end spell.combats = {} for _, config in ipairs(spell.config) do local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, config.damageType) setCombatParam(combat, COMBAT_PARAM_EFFECT, config.areaEffect) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -4, 0, -4.7, 0) function onTargetCreature(cid, target) doPushCreature(target, cid) end setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature") setCombatArea(combat, createCombatArea(config.area)) table.insert(spell.combats, combat) end function onCastSpell(cid, var) for n = 1, #spell.combats do addEvent(doCombat, (n * 120), cid, spell.combats[n], var) end return true end
  2. Parece que o problema está relacionado ao fato de que os carpets estão sendo tratados como uma alteração no mapa em vez de decoração sobre o piso existente. Para corrigir isso, você pode modificar o script para garantir que os carpets sejam criados como decoração sobre o piso existente. Aqui está uma versão modificada do seu script que deve resolver o problema: local object_itemid = { -- Defina os IDs dos itens e suas transformações correspondentes aqui } function onUse(cid, item, frompos, item2, topos) local storage = 789561 local time = 1 local sendEffect = true -- true ou false local EffectId = 1 local item_from_table = object_itemid[item.itemid] if exhaustion.check(cid, storage) then return false end if item_from_table then if getPlayerGroupId(cid) == 1 then if item_from_table.premium and not isPremium(cid) then return true and doPlayerSendCancel(cid, "Voce nao e vip.") end end -- Verifica se o carpet será criado no local do player (useWith = true) ou na posição do item (useWith = false) local position = item_from_table.useWith and topos or frompos -- Cria o carpet como decoração sobre o piso existente local carpet = doCreateItem(item_from_table.transform_to, 1, position) -- Verifica se o efeito deve ser enviado if sendEffect then doSendMagicEffect(position, EffectId) end -- Remove o item usado para criar o carpet doRemoveItem(item.uid, 1) end return true and exhaustion.set(cid, storage, time) end Nesta versão modificada, o carpet é criado na posição do jogador se useWith for verdadeiro e na posição do item se for falso. Isso deve garantir que os carpets sejam tratados como decoração sobre o piso existente, em vez de uma alteração no mapa, e devem persistir após o reinício do servidor.
  3. function onLogin(cid) if isPlayer(cid) and isInArea({x = 100, y = 100, z = 7}, {x = 150, y = 150, z = 7}) then setGlobalStorageValue(1000, true) -- Marca que o jogador está na área de não-PvP end return true end function onLogout(cid) if isPlayer(cid) then setGlobalStorageValue(1000, false) -- Remove a marcação da área de não-PvP ao sair end return true end function onPvpAttack(cid, target) if getGlobalStorageValue(1000) then -- Verifica se o jogador está na área de não-PvP return false -- Impede o ataque PvP end return true end O evento onLogin é usado para marcar os jogadores que entraram na área de não-PvP. O evento onLogout é usado para remover a marcação quando o jogador sai da área. O evento onPvpAttack é acionado quando um jogador tenta atacar outro jogador. Ele verifica se o jogador está na área de não-PvP e, se estiver, impede o ataque PvP retornando false. Certifique-se de ajustar as coordenadas ({x = 100, y = 100, z = 7} e {x = 150, y = 150, z = 7}) para corresponder à área específica onde você deseja desativar o PvP. Além disso, o valor de 1000 na função setGlobalStorageValue é apenas um exemplo; você pode escolher qualquer valor que não esteja em uso em seu servidor.
  4. O erro que você está enfrentando indica que está tentando chamar uma função chamada getPlayerPremDays, mas ela não está definida em lugar nenhum do seu script. Isso está ocorrendo porque você está tentando verificar a quantidade de dias de premium de um jogador, mas o nome da função correta é getPlayerPremiumDays. Para corrigir isso, você só precisa corrigir o nome da função para getPlayerPremiumDays. Aqui está a correção: local vip = getPlayerPremiumDays(cid)
  5. O erro que você está vendo acontece porque o sistema não está encontrando um combate (ou seja, a variável combat) quando a função doCombat() é chamada dentro do evento temporizado. Isso ocorre porque o evento temporizado é executado após o término do efeito da guarda, e nesse momento, o combate associado à habilidade pode ter sido encerrado. Para corrigir isso, você pode verificar se o jogador ainda está sob o efeito da habilidade antes de executar o combate dentro do evento temporizado. Aqui está como você pode fazer isso: function onCastSpell(cid, var) local waittime = 20 -- Tempo de exhaustion local storage = 696002 if exhaustion.check(cid, storage) then local remainingTime = exhaustion.get(cid, storage) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) -- Efeito visual quando o jogador está cansado doPlayerSendTextMessage(cid, 20, "Voce esta cansado. Tempo restante: " .. remainingTime .. " segundos.") return false end exhaustion.set(cid, storage, waittime) local condition = createConditionObject(CONDITION_MANASHIELD) setConditionParam(condition, CONDITION_PARAM_TICKS, 10000) doAddCondition(cid, condition) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_BLUE) -- Efeito visual quando a guarda está alta doPlayerSendTextMessage(cid, 20, "Guarda alta!") addEvent(function() if isCreature(cid) then if getCreatureCondition(cid, CONDITION_MANASHIELD) then -- Verifica se a condição ainda está ativa local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, 12) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) doCombat(cid, combat, var) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) -- Efeito visual quando a guarda está aberta doPlayerSendTextMessage(cid, 20, "Sua guarda esta aberta") end end end, 10000) -- Este valor deve ser igual ao valor definido em setConditionParam para a duração do efeito return true end Com esta modificação, a função doCombat() só será chamada se o jogador ainda estiver sob o efeito da habilidade. Isso deve resolver o erro que você está enfrentando.
  6. El Rusher

    Jump Spell

    O seu script está no caminho certo, mas alguns ajustes são necessários para alcançar o comportamento desejado. Vou ajudá-lo a modificar o código para atingir o objetivo: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, true) function onGetFormulaValues(cid, level, skill, attack, factor) local skillTotal, levelTotal = skill + attack, level / 5 return -(skillTotal / 3 + levelTotal), -(skillTotal + levelTotal) end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") function attackCreature(cid, target, var) if not isCreature(cid) or not isCreature(target) then return false end local playerPos = getCreaturePosition(cid) local targetPos = getCreaturePosition(target) if doCombat(cid, combat, var) == LUA_NO_ERROR then doTeleportThing(cid, targetPos) doSendMagicEffect(targetPos, 61) end return true end function onCastSpell(cid, var) local playerPos = getCreaturePosition(cid) local creatures = getSpectators(playerPos, 3, 3, false) if not creatures or #creatures == 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Nenhum alvo válido encontrado.") return false end for _, target in ipairs(creatures) do if isCreature(target) and (isPlayer(target) or isMonster(target)) then addEvent(attackCreature, 100, cid, target, var) end end addEvent(doTeleportThing, 100 * #creatures, cid, playerPos) return true end Renomeei a função attack para attackCreature para refletir melhor sua função. Removi a variável validTargets, pois agora estamos atacando um alvo por vez e não armazenando múltiplos alvos. Adicionei um evento para teleportar o jogador de volta para a posição inicial após atacar todos os alvos. Corrigi o loop for em onCastSpell para chamar attackCreature para cada alvo, em vez de chamar attack diretamente. Adicionei uma verificação para garantir que apenas alvos válidos (jogadores ou monstros) sejam atacados. Adicionei uma verificação para garantir que pelo menos um alvo válido seja encontrado antes de prosseguir com a magia.
  7. Você pode implementar essa funcionalidade com o auxílio de armazenamento de valores de jogadores em Lua, usando a função os.time() para registrar o momento em que o comando foi usado e verificar se o período de "exaustão" passou. Aqui está um exemplo de como você pode fazer isso: function onSay(cid, words, param) if param == "!mudarpvp" then local timeLastChanged = getPlayerStorageValue(cid, 99999) or 0 -- Verifica quando foi a última mudança local currentTime = os.time() -- Obtém o tempo atual em segundos if currentTime - timeLastChanged < 86400 then -- Verifica se não passou 1 dia desde a última mudança doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você ainda está em modo no-PvP. Aguarde mais um tempo para mudar novamente.") return true end if getPlayerStorageValue(cid, 100000) == 1 then -- Verifica se o jogador está atualmente em modo no-PvP doPlayerSetStorageValue(cid, 100000, 0) -- Modo PvP ativado doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você agora está em modo PvP. Outros jogadores podem atacá-lo.") else doPlayerSetStorageValue(cid, 100000, 1) -- Modo no-PvP ativado doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você agora está em modo no-PvP. Você está livre de ataques de outros jogadores.") end setPlayerStorageValue(cid, 99999, currentTime) -- Registra o momento da última mudança end return true end Neste exemplo: O jogador digita "!mudarpvp". O sistema verifica quanto tempo passou desde a última mudança de estado usando a diferença entre o tempo atual (os.time()) e o tempo registrado na última mudança. Se não passou 1 dia desde a última mudança, o jogador recebe uma mensagem indicando que ele deve esperar mais um tempo. Se passou 1 dia, o sistema muda o estado do jogador de PvP para no-PvP ou vice-versa, dependendo do estado atual. O sistema registra o tempo da última mudança para garantir que o jogador não possa mudar novamente até que tenha passado um dia desde a última mudança.
  8. function onUse(cid, item, fromPosition, itemEx, toPosition) local manaToRestore = 150 + (getPlayerMagLevel(cid) * 2) -- Calcula a quantidade de mana a ser restaurada doCreatureAddMana(cid, manaToRestore) -- Restaura a mana do jogador doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_BLUE) -- Efeito visual para indicar a restauração de mana doRemoveItem(item.uid, 1) -- Remove a mana rune do inventário do jogador return true end e nao menos importante: newItem = { itemid = 1234, -- ID da mana rune manaToRestore = 150, -- Quantidade fixa de mana a ser restaurada script = "rune_mana.lua" -- Nome do script que você criou }
  9. function onCreatureSay(cid, type, msg) if not isPlayer(cid) then return true end local npcPos = {x = 100, y = 50, z = 7} -- Altere para a posição do NPC if msg:lower() == "hi" then doCreatureSay(cid, "O que você quer aqui? 'permission' or 'items for permission'", TALKTYPE_SAY) setPlayerStorageValue(cid, 99999, 1) -- Marca que o jogador iniciou a interação com o NPC elseif getPlayerStorageValue(cid, 99999) == 1 then if msg:lower() == "permission" then doCreatureSay(cid, "Para te dar a permissão de entrar no castelo do Rei, preciso de alguns items. Se conseguir pegar para mim, te darei minha permissão de entrar no castelo do Rei. 'yes' or 'no'", TALKTYPE_SAY) setPlayerStorageValue(cid, 99999, 2) -- Marca que o jogador escolheu "permission" elseif msg:lower() == "items for permission" then doCreatureSay(cid, "Eu preciso dos seguintes itens para te dar permissão: [Item 1] (quantidade), [Item 2] (quantidade)", TALKTYPE_SAY) setPlayerStorageValue(cid, 99999, 3) -- Marca que o jogador escolheu "items for permission" end elseif getPlayerStorageValue(cid, 99999) == 2 then -- Se jogador escolheu "permission" if msg:lower() == "yes" then if getPlayerItemCount(cid, item1) >= quantidade1 and getPlayerItemCount(cid, item2) >= quantidade2 then -- Verifica se o jogador tem os itens necessários doPlayerRemoveItem(cid, item1, quantidade1) -- Remove os itens do jogador doPlayerRemoveItem(cid, item2, quantidade2) setPlayerStorageValue(cid, 13544, 1) -- Dá a storage de missão doCreatureSay(cid, "Boa sorte!", TALKTYPE_SAY) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você recebeu a permissão para entrar no castelo do Rei.") setPlayerStorageValue(cid, 99999, 0) -- Reinicia a conversa else doCreatureSay(cid, "Você não possui todos os itens necessários. Continue sua busca.", TALKTYPE_SAY) setPlayerStorageValue(cid, 99999, 2) -- Permite ao jogador tentar novamente end elseif msg:lower() == "no" then doCreatureSay(cid, "Continue sua busca.", TALKTYPE_SAY) setPlayerStorageValue(cid, 99999, 2) -- Permite ao jogador tentar novamente end elseif getPlayerStorageValue(cid, 99999) == 3 then -- Se jogador escolheu "items for permission" -- Insira aqui a lógica para informar ao jogador os itens e quantidades necessárias -- Exemplo: doCreatureSay(cid, "Você precisa de 10 itens X e 5 itens Y.", TALKTYPE_SAY) setPlayerStorageValue(cid, 99999, 0) -- Reinicia a conversa end end Este script assume que você tem uma variável item1, quantidade1, item2 e quantidade2 definidas anteriormente no script com os IDs dos itens necessários e suas quantidades. Certifique-se de substituir [Item 1], [Item 2], quantidade1 e quantidade2 pelos nomes dos itens e quantidades reais que você deseja. Lembre-se de substituir {x = 100, y = 50, z = 7} pela posição real do NPC em seu mapa. Além disso, adapte o código para o seu servidor, conforme necessário.
  10. Para fazer a sprite do seu personagem sumir ao teleportar em cima do alvo para atacar, você pode usar a função doCreatureSetOutfit para definir a aparência do seu personagem como "invisible" (invisível). Aqui está como você pode modificar sua função spell.start para implementar isso: spell = { start = function (cid, target, markpos, hits) if not isCreature(cid) then return true end if not isCreature(target) or hits < 1 then doTeleportThing(cid, markpos) doSendMagicEffect(getThingPos(cid), config.efeitoTele) -- Definir aparência do jogador como normal após o teleport doCreatureSetOutfit(cid, getPlayerSex(cid) == PLAYERSEX_FEMALE and 128 or 136, -1) return true end posAv = validPos(getThingPos(target)) rand = #posAv == 1 and 1 or #posAv - 1 doSendMagicEffect(getThingPos(cid), config.efeitoTele) doTeleportThing(cid, posAv[math.random(1, rand)]) -- Definir aparência do jogador como invisível após o teleport doCreatureSetOutfit(cid, 0, 0) doAreaCombatHealth(cid, config.damage, getThingPos(target), 0, -config.min, -config.max, config.efeitoDamage) addEvent(spell.start, config.delay, cid, target, markpos, hits - 1) end } Aqui está o que foi adicionado: 1.Após o teleport, antes de retornar, usamos doCreatureSetOutfit para definir a aparência do jogador como normal novamente. Isso garante que, depois de teleportar, o jogador reaparecerá normalmente. 2.Dentro do bloco else (quando o alvo existe e há hits restantes), logo após o teleport, definimos a aparência do jogador como invisível com doCreatureSetOutfit(cid, 0, 0). Isso fará com que a sprite do jogador desapareça.
  11. Pelo que vejo, o código tem uma seção que lida com a configuração do Mercado Pago, mas não há uma lógica para processar os pagamentos recebidos e atualizar as contas dos jogadores.
  12. El Rusher

    problema site nto

    ta faltando a tabela nto.guilds_ggn, criar ela é facil, agora saber a estrutura que era pra ela ter nem tanto ex: CREATE TABLE nto.guilds_ggn ( id INT AUTO_INCREMENT PRIMARY KEY, nome VARCHAR(255), descricao TEXT, data_criacao TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
  13. resolvido por conta propria
  14. XML <globalevent name="UpdateOfert" time="18:54" event="script" value="atualizaShop.lua"/> LUA function onTimer() db.executeQuery('DELETE FROM shop_offer WHERE id = 1') db.executeQuery('INSERT INTO shop_offer (`id`, `points`, `category`, `type`, `item`, `count`, `description`, `name`) VALUES (1, 299, 2, 8, 19244, 1, "Ao abrir o Addon Box, voce encontrara um Addon eleatorio", "Addon Box"') return true end db.executeQuery("INSERT INTO shop_offer (`id`, `points`, `category`, `type`, `item`, `count`, `description`, `name`) VALUES (1, 299, 2, 8, 19244, 1, 'Ao abrir o Addon Box, voce encontrara um Addon eleatorio', 'Addon Box'") db.executeQuery("UPDATE `shop_offer` SET `id` = 1, `points` = 399, `category` = 2, `type` = 8, `item` = 12345, `count` = 1, `description` = 'teste', `name` = 'teste'") Tentei de varias maneiras, mas nada..
  15. Boa tarde, experimente fazer dowload de uma versao mais antiga do Xampp, ex: https://sourceforge.net/projects/xampp/files/XAMPP Windows/1.7.3/
  16. Boa tarde @HUNT1 varia muito de site pra site, se ja tem um sistema de compra/pagamento instalado, ai seria o caso de somente fazer uma edição, acaso não tenha, teria que fazer a instalação de um do zero, pra isso era interessante vc ter em mente que tipo de metodos de pagamento vc aceitaria, vai de vc estudar juros x serviços oferecidos por exemplo pelo Mercado Pago, PagSeguro, PIX, etc quanto a questao de mecher no shop, geralmente nos scripts da maioria das bases pra colocar mais itens vc precisa de acesso ADM, pra isso basta vc fazer login na sua conta com poder administrativo ( a mesma que vc usa no game), acaso nao tenha, procura sua conta na DataBase (localizada na aba 'accounts' edite ela, e procure por 'Page_Acess' (ou algo do tipo) e poe em 7 ou 15, ao entrar novamente no shop, tera a opçao de ediçoes
  17. $Sortear = rand(0, 1); $TabelaShop = array (0 => $SQL->query('INSERT INTO shop_offer (`id`, `points`, `category`, `type`, `item`, `count`, `description`, `name`) VALUES (103, 1000, 2, 8, 18840, 1, "Teste1", "Teste1")'), 1 => $SQL->query('INSERT INTO shop_offer (`id`, `points`, `category`, `type`, `item`, `count`, `description`, `name`) VALUES (104, 1000, 2, 8, 18840, 1, "Teste2", "Teste2")') ); if ($Sortear == 0) { $TabelaShop[0]; } else if($Sortear == 1){ $TabelaShop[1]; } Aonde estou errando? sempre que seto isso, ele joga tanto duas informaçoes pra Database, como se a variavel 'Sortear', fosse 0 e 1, ou acusando o if em positivo e o else if em positivo tbm.. algo do tipo
  18. Pra quem teve erro, só copia o .lua do dowload e cola esse codigo no .otui NextOutfitButton < NextButton PrevOutfitButton < PreviousButton NextMountButton < NextButton PrevMountButton < PreviousButton botaobolado < UIButton MainWindow size: 437 428 image-source: /images/game/Module/outfit/window @onEnter: modules.game_outfit.accept() @onEscape: modules.game_outfit.destroy() // Creature Boxes Creature image-source: /images/game/Module/outfit/box id: outfitCreatureBox anchors.top: parent.top anchors.left: parent.left margin-top: 50 margin-left: 150 padding: 4 4 4 4 fixed-creature-size: true Label id: outfitName !text: tr('No Outfit') width: 115 anchors.bottom: prev.top anchors.left: prev.left margin-bottom: -5000 NextOutfitButton id: outfitNextButton anchors.left: outfitCreatureBox.right anchors.verticalCenter: outfitCreatureBox.verticalCenter margin-left: 5 enabled: true @onClick: modules.game_outfit.nextOutfitType() PrevOutfitButton id: outfitPrevButton anchors.right: outfitCreatureBox.left anchors.verticalCenter: outfitCreatureBox.verticalCenter margin-right: -5 enabled: true @onClick: modules.game_outfit.previousOutfitType() Creature id: mountCreatureBox anchors.top: parent.top anchors.right: parent.right margin-top: 50 margin-right: 35 padding: 4 4 4 4 fixed-creature-size: true Label id: mountName !text: tr('No Mount') width: 115 anchors.bottom: prev.top anchors.left: prev.left margin-bottom: 2 NextMountButton id: mountNextButton anchors.left: mountCreatureBox.right anchors.verticalCenter: mountCreatureBox.verticalCenter margin-left: 3 enabled: true @onClick: modules.game_outfit.nextMountType() PrevMountButton id: mountPrevButton anchors.right: mountCreatureBox.left anchors.verticalCenter: mountCreatureBox.verticalCenter margin-right: 3 enabled: true @onClick: modules.game_outfit.previousMountType() // Body Selection Buttons ButtonBox id: head !text: tr('Head') color: #ffffff anchors.top: outfitCreatureBox.bottom anchors.left: parent.left margin-top: 21 margin-left: 58 checked: true width: 76 ButtonBox id: primary color: #ffffff !text: tr('Primary') anchors.top: prev.top anchors.left: prev.right width: 76 ButtonBox id: secondary color: #ffffff !text: tr('Secondary') anchors.top: prev.top anchors.left: prev.right width: 76 ButtonBox id: detail color: #ffffff !text: tr('Detail') anchors.top: prev.top anchors.left: prev.right width: 76 // Color Panel Panel id: colorBoxPanel anchors.top: head.bottom anchors.left: head.left margin-top: 15 margin-left: 1 width: 302 height: 119 layout: type: grid cell-size: 14 14 cell-spacing: 2 num-columns: 19 num-lines: 7 // Action Button Section botaobolado id: randomizeButton image-source: /images/game/Module/outfit/embaralhar size: 112 38 anchors.top: parent.top anchors.left: parent.left image-clip: 0 0 112 38 margin-top: 334 margin-left: 15 @onClick: modules.game_outfit.randomize() $hover: image-clip: 0 38 112 38 $pressed: image-clip: 0 76 112 38 botaobolado id: outfitOkButton image-source: /images/game/Module/outfit/escolher size: 112 38 anchors.top: parent.top anchors.left: parent.left image-clip: 0 0 112 38 margin-top: 334 margin-left: 280 @onClick: modules.game_outfit.accept() $hover: image-clip: 0 38 112 38 $pressed: image-clip: 0 76 112 38 botaobolado id: outfitCancelButton image-source: /images/game/Module/outfit/fechar size: 34 34 anchors.top: parent.top anchors.left: parent.left image-clip: 0 0 34 34 margin-top: -7 margin-left: 368 @onClick: modules.game_outfit.destroy() $hover: image-clip: 0 34 34 34 $pressed: image-clip: 0 68 34 34
  19. if isNpc(target) == true then return doCreatureSay(cid, "hi", 10) and doCreatureSay(cid, "trade", 10) end
  20. Olá, fiz uma quest que o player ganha um key (acompanhada de uma storage) e queria que essa storage sumisse depois de certo tempo, e consequentemente a Key que estava com o player junto Obter a key: Linhas para deletar item quando não tiver a storage:
  21. Eu não entendi muito bem pq, mas no outro dia quando liguei o pc ele tava normal, funcionando normalmente sendo que não mechi em nada, mas agradeço pela resposta dos slots em branco ❤️
  22. Resolvido por conta propria, podem fechar o tópico, aos interessados só usei um plugin de timer <div class="123" id="123"></div><script src="seuplugin.com"></script>
  23. Ao Criar o item ele fica invisivel ao tentar spawnar ele no jogo ( nao aparece a imagem) OBS: Eu peguei uma imagem que ja estava invisivel e substitui pela minha imagem ( que era pra ser da outfit do terno) sera que pode ter afetado? Pergunta 2: Se eu deletar esses itens que estao todos transparentes, pra liberar mais limite de sprite, vai afetar algo no jogo?
  24. Na real a posiçao iniciau do player eu joguei em uma sala de tutorial, no caso a do (config.php) porém não creio que afeta o spaw do player né? até testei colocar as coordenadas de saffron mesmo, mas continuou na mesma
  25. sim, ja tentei lá, ontem a noite eu tinha resolvido, mas acabou acarretando em uns problemas no site devido ao tanto de arquivo que eu mechi kk, ai usei meu backupp do htdocs e resultado: o bug do jogo voltou e o bug do site nao saiu uheuheue, triste mano
  • Quem Está Navegando   0 membros estão online

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