Jump to content

All Activity

This stream auto-updates

  1. Today
  2. Olá! No vídeo discuti os aspectos do novo evento e sugestões de próximos eventos!! Qual sua opinião sobre o evento? Deixe sua sugestão dos próximos eventos!!!
  3. Yesterday
  4. function sendMsgCountToItens(cid) local item1 = getPlayerStorageValue(cid, 251461):explode("|") -- Verificar se todos os itens foram entregues local allItemsDelivered = getPlayerItemCount(cid, item1[1]) >= tonumber(item1[3]) and getPlayerItemCount(cid, item1[2]) >= tonumber(item1[4]) and getPlayerItemCount(cid, item1[5]) >= tonumber(item1[7]) and getPlayerItemCount(cid, item1[6]) >= tonumber(item1[8]) -- Se todos os itens foram entregues, definir a mensagem como vazia e remover o valor de armazenamento if allItemsDelivered then setPlayerStorageValue(cid, 251461, -1) return false end -- Caso contrário, calcular os valores de contagem dos itens local valor1 = math.max(0, tonumber(item1[3]) - getPlayerItemCount(cid, item1[1])) local valor2 = math.max(0, tonumber(item1[4]) - getPlayerItemCount(cid, item1[2])) local valor3 = math.max(0, tonumber(item1[7]) - getPlayerItemCount(cid, item1[5])) local valor4 = math.max(0, tonumber(item1[8]) - getPlayerItemCount(cid, item1[6])) -- Enviar mensagem com a contagem dos itens que faltam selfSay("Ainda falta você me trazer os seguintes itens ["..valor1.."] "..getItemNameById(item1[1])..", ["..valor2.."] "..getItemNameById(item1[2])..", ["..valor3.."] "..getItemNameById(item1[5])..", ["..valor4.."] "..getItemNameById(item1[6])..".", cid) return true end
  5. Identifique o código responsável pelo efeito de Hypnosis ou Sleep e poste aqui pra correção
  6. -- Função para exibir o nome do local function displayLocationName(player, locationName) player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Você entrou em: " .. locationName) end -- Função para verificar a entrada em um local específico function checkLocationEntry(player) local playerPosition = player:getPosition() local locationName = getTileInfo(playerPosition.x, playerPosition.y, playerPosition.z).name displayLocationName(player, locationName) end -- Função para verificar a saída de um local específico function checkLocationExit(player) player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Você saiu do local.") end -- Evento de movimento do jogador function onPlayerMove(player, fromPosition, toPosition) local fromTile = Tile(fromPosition) local toTile = Tile(toPosition) if fromTile and toTile then local fromLocation = fromTile:getPosition() local toLocation = toTile:getPosition() -- Verifica se o jogador entrou em uma nova posição if fromLocation ~= toLocation then checkLocationEntry(player) end end end -- Registra o evento de movimento do jogador function onPlayerMoveEvent(event, player, fromPosition, toPosition) onPlayerMove(player, fromPosition, toPosition) end -- Registra o evento de movimento do jogador registerCreatureEvent(cid, "PlayerMove", "onPlayerMoveEvent") Neste exemplo: A função displayLocationName é responsável por exibir o nome do local para o jogador. Aqui, estamos enviando uma mensagem azul para o console do jogador informando o nome do local em que ele entrou. A função checkLocationEntry verifica se o jogador entrou em um local específico e chama a função displayLocationName para exibir o nome desse local. A função checkLocationExit pode ser usada para realizar ações quando o jogador sai de um local específico. O evento onPlayerMove é acionado sempre que o jogador se move de uma posição para outra. Aqui, verificamos se o jogador entrou em um novo local e chamamos a função checkLocationEntry para exibir o nome do local.
  7. O erro indica que está tentando criar uma textura com dimensões de 2158x1080, enquanto o tamanho máximo permitido para uma textura é 2048x2048. Redimensione a textura para que suas dimensões não excedam o limite máximo de 2048x2048. Você pode usar ferramentas de edição de imagem como o Photoshop, GIMP ou qualquer outra ferramenta de sua preferência para fazer isso.
  8. o erro está relacionado a uma tabela chamada 'nto.guilds_ggn' que não está sendo encontrada no banco de dados. CREATE TABLE nto.guilds_ggn ( id INT AUTO_INCREMENT PRIMARY KEY, nome VARCHAR(255), descricao TEXT, criado_em TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
  9. ok, vamos lá 1.Erro no script youdead.lua: [16/04/2024 03:41:17] [Error - CreatureScript Interface] [16/04/2024 03:41:17] data/creaturescripts/scripts/youdead.lua:onPrepareDeath [16/04/2024 03:41:17] Description: [16/04/2024 03:41:18] (luaGetCreatureMaster) Creature not found [16/04/2024 03:41:18] [Error - CreatureScript Interface] [16/04/2024 03:41:18] data/creaturescripts/scripts/youdead.lua:onPrepareDeath [16/04/2024 03:41:19] Description: [16/04/2024 03:41:19] (luaGetCreatureName) Creature not found [16/04/2024 03:41:19] > Broadcasted message: "O Jogador Fogao [level: 699553] Acaba de Morrer Para false.". Parece que há uma tentativa de obter o nome da criatura que matou o jogador (lastHitKiller). No entanto, o sistema não conseguiu encontrar essa criatura. Isso pode acontecer se o jogador for morto por um evento ou condição do jogo em vez de uma criatura específica. Você pode precisar adicionar verificações adicionais para garantir que lastHitKiller seja uma criatura válida antes de tentar obter seu nome e mestre. 2.Erro no script deathchannel.lua: [16/04/2024 03:41:23] [Error - CreatureScript Interface] [16/04/2024 03:41:23] data/creaturescripts/scripts/deathchannel.lua:onDeath [16/04/2024 03:41:23] Description: [16/04/2024 03:41:24] data/creaturescripts/scripts/deathchannel.lua:7: attempt to perform arithmetic on a boolean value [16/04/2024 03:41:24] stack traceback: [16/04/2024 03:41:24] data/creaturescripts/scripts/deathchannel.lua:7: in function <data/creaturescripts/scripts/deathchannel.lua:5> Parece que há um erro na linha 7 do script deathchannel.lua, onde uma operação aritmética está sendo tentada em um valor booleano. Isso geralmente ocorre quando você tenta realizar uma operação matemática em uma variável que não contém um valor numérico. Você precisará verificar o código na linha 7 do deathchannel.lua e garantir que todas as variáveis estejam definidas corretamente antes de tentar realizar operações matemáticas. 3.Erro XML: XML: [16/04/2024 06:52:01] [Error - CreatureEvent::executeCombat] Call stack overflow. Parece que houve um estouro de pilha (stack overflow) em um evento de combate. Isso geralmente acontece quando há muitas chamadas recursivas ou aninhadas que excedem a capacidade da pilha de execução. Você precisará investigar o evento de combate especificado e verificar se há alguma lógica recursiva ou aninhada que precisa ser otimizada para evitar estouro de pilha. 1. Para o script youdead.lua, vamos adicionar verificações adicionais para garantir que lastHitKiller seja uma criatura válida antes de tentar obter seu nome e mestre. Também vamos corrigir a mensagem de broadcast para exibir o nome do jogador que matou corretamente. function onPrepareDeath(cid, lastHitKiller, mostDamageKiller) if isPlayer(cid) then if lastHitKiller and isCreature(lastHitKiller) then local killerName = getCreatureName(lastHitKiller) if not isPlayer(lastHitKiller) and not isPlayer(getCreatureMaster(lastHitKiller)) then doBroadcastMessage("O jogador " .. getCreatureName(cid) .. " [level: " .. getPlayerLevel(cid) .. "] acabou de morrer para " .. tostring(killerName) .. ".", MESSAGE_STATUS_CONSOLE_RED) end end end return true end 2.Para o script deathchannel.lua, vamos corrigir a operação aritmética na linha 7 para garantir que todas as variáveis estejam definidas corretamente antes de tentar realizar operações matemáticas. function onDeath(cid, corpse, deathList) local target = deathList[1] if target and isCreature(target) then local targetStorage = getCreatureStorage(target, storage) if targetStorage then doCreatureSetStorage(target, storage, targetStorage + 1) for _, pid in ipairs(getPlayersOnline()) do doPlayerSendChannelMessage(pid, '', info:format(getCreatureName(cid), getPlayerLevel(cid), getCreatureStorage(cid, storage), getPlayerSex(cid) == 1 and "o" or "a", isPlayer(target) and "player" or "monstro", getCreatureName(target), isPlayer(target) and " [Level: "..getPlayerLevel(target).."]." or "."), TALKTYPE_CHANNEL_O, 0xF) for _, frag in ipairs(frags) do if targetStorage == frag then doPlayerSendChannelMessage(pid, '', win:format(getCreatureName(target), frag, getCreatureName(cid)), TALKTYPE_CHANNEL_W, 0xF) end local cidStorage = getCreatureStorage(cid, storage) if cidStorage and cidStorage >= frag then doPlayerSendChannelMessage(pid, '', lose:format(getCreatureName(target), getCreatureName(cid), cidStorage + 1), TALKTYPE_CHANNEL_RN, 0xF) end end end doCreatureSetStorage(cid, storage, 0) return true end end return false end
  10. <?xml version="1.0" encoding="ISO-8859-1"?> <mod name="Characters Market System" version="1.0" author="LuckOake" contact="none" enabled="yes"> ------------------------------------------------------------------------------------ <config name="market"><![CDATA[ price = 27112 owner = 27113 level = 30 -- Level min of character.-- min_price = 100 -- Price min of character-- max_price = 1000000 -- Price maximum of character-- function doTransferCharacter(cid, accId) return db.executeQuery("UPDATE `players` SET `account_id` = "..accId.." WHERE `id` = "..getPlayerGUIDByName(cid).."") end function doOfflinePlayerAddMoney(guid, money) return db.executeQuery("UPDATE `players` SET `balance` = `balance` + '"..money.."' WHERE `id` = '"..getPlayerGUIDByName(guid).."';") end function setOfflinePlayerStorageValue(name, key, value) local result = db.getResult("SELECT * FROM `player_storage` WHERE `player_id` = ".. getPlayerGUIDByName(name) .." AND `key` = ".. key ..";") if result:getID() == -1 then return db.executeQuery("INSERT INTO `player_storage` (`player_id`, `key`, `value`) VALUES (".. getPlayerGUIDByName(name) ..", ".. key ..", ".. value ..");") else result:free() return db.executeQuery("UPDATE `player_storage` SET `value` = ".. value .." WHERE `player_id` = ".. getPlayerGUIDByName(name) .." AND `key` = ".. key ..";") end end function getOfflinePlayerStorageValue(name, key) local result, ret = db.getResult("SELECT `value` FROM `player_storage` WHERE `player_id` = '".. getPlayerGUIDByName(name) .."' AND `key` = ".. key ..";") if result:getID() == -1 then return nil end ret = result:getDataInt("value") result:free() return ret end function getOfflinePlayerValue(name, value) local result, ret = db.getResult("SELECT `"..value.."` FROM `players` WHERE `id` = "..getPlayerGUIDByName(name)..";") ret = result:getDataInt(value) result:free() return ret end function isCharacterForSale(name) if not getOfflinePlayerStorageValue(name, "price") or getOfflinePlayerStorageValue(name, "price") < 1 then return false else return true end end ]]></config> ------------------------------------------------------------------------------------ <talkaction words="!character" event="buffer"><![CDATA[ domodlib('market') local t = string.explode(param, ",") if t[1] == "sell" then if not t[3] or not tonumber(t[3]) or t[4] or tonumber(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Incorrect Params. Specify the character name and the price.") return true elseif getPlayerAccountId(cid) ~= getAccountIdByName(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "This is not your character.") return true elseif isCharacterForSale(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "This character is already for sale.") return true elseif getPlayerGUIDByName(t[2]) == getPlayerGUID(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You cannot sell yourself.") return true elseif getPlayerByName(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "The character must be offline to be sold.") return true elseif getOfflinePlayerValue(t[2], "level") < level then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Your character can't be sold until it has level "..level..".") return true elseif tonumber(t[3]) < min_price then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Sorry, but the minimum price for selling a character is "..min_price..".") return true elseif tonumber(t[3]) > max_price then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Sorry, but the maximum price for selling a character is "..max_price..".") return true end setOfflinePlayerStorageValue(t[2], "price", t[3]) setOfflinePlayerStorageValue(t[2], "owner", getPlayerGUID(cid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Your character "'..t[2]..'" is now for sale for the price of "'..t[3]..'" gold coins.') elseif t[1] == "buy" then if not t[2] then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Incorrect Params. Specify the character name.") return true elseif not playerExists(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "This character doesn't exist.") return true elseif getPlayerAccountId(cid) == getAccountIdByName(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You can't buy your own character.") return true elseif not isCharacterForSale(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "This character is not for sale.") return true elseif not doPlayerRemoveMoney(cid, getOfflinePlayerStorageValue(t[2], "price")) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Not enough money. This character's price is "..getOfflinePlayerStorageValue(t[2], "price").." gold coins.") return true end if not getPlayerByGUID(getOfflinePlayerStorageValue(t[2], "owner")) then doOfflinePlayerAddMoney(getPlayerNameByGUID(getOfflinePlayerStorageValue(t[2], "owner")), getOfflinePlayerStorageValue(t[2], "price")) setOfflinePlayerStorageValue(getPlayerNameByGUID(getOfflinePlayerStorageValue(t[2], "owner")), 41792, getPlayerGUIDByName(t[2])) else doPlayerAddMoney(getPlayerByGUID(getOfflinePlayerStorageValue(t[2], "owner")), getOfflinePlayerStorageValue(t[2], "price")) doPlayerSendTextMessage(getPlayerByGUID(getOfflinePlayerStorageValue(t[2], "owner")), MESSAGE_STATUS_CONSOLE_BLUE, 'Your character "'..t[2]..'" has been sold for the price of '..getOfflinePlayerStorageValue(t[2], "price")..' gold coins.') end doTransferCharacter(t[2], getPlayerAccountId(cid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'You bought the character "'..t[2]..'" for the price of '..getOfflinePlayerStorageValue(t[2], "price")..' gold coins.') setOfflinePlayerStorageValue(t[2], "owner", -1) setOfflinePlayerStorageValue(t[2], "price", -1) return true elseif t[1] == "remove" then if not t[2] then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Incorrect Params. Specify the character name.") return true elseif getPlayerAccountId(cid) ~= getAccountIdByName(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "This is not your character.") return true elseif not isCharacterForSale(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "This character is not for sale.") return true end setOfflinePlayerStorageValue(t[2], "price", -1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'You removed the character "'..t[2]..'" from the Characters Market.') return true elseif t[1] == "list" then local result = db.getResult("SELECT `name` FROM `players`") if result:getID() == -1 then return true end local msg = "Characters for Sale:\n\n" while true do local name = result:getDataString("name") if isCharacterForSale(name) then local sex = getOfflinePlayerValue(name, "sex") == 1 and "Male" or "Female" msg = ""..msg.." - ".. name .." (Level: "..getOfflinePlayerValue(name, "level").." / Vocation: "..getVocationInfo(getOfflinePlayerValue(name, "vocation")).name.." / Sex: "..sex.." / Owner: "..getPlayerNameByGUID(getOfflinePlayerStorageValue(name, "owner"))..") [Price: "..getOfflinePlayerStorageValue(name, "price").."] \n" end if not result:next() then break end end doPlayerPopupFYI(cid, msg) return true elseif not t[1] or t[1] ~= "buy" or t[1] ~= "sell" or t[1] ~= "remove" or t[1] ~= "list" then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Incorrect params. You can only 'buy' or 'sell' a character, 'remove' it from the Characters Market or see the 'list' of characters for sale.") return true end return true ]]></talkaction> ------------------------------------------------------------------------------------ <event type="login" name="MarketLogin" event="script"><![CDATA[ function onLogin(cid) domodlib('market') if getPlayerStorageValue(cid, "price") > 0 then return false elseif getPlayerStorageValue(cid, 41792) ~= -1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You sold the character "..getPlayerNameByGUID(getPlayerStorageValue(cid, 41792))..". The money is in your bank account.") setPlayerStorageValue(cid, 41792, -1) end return true end ]]></event> </mod> Nesta correção, eu substituí os valores de price e owner nas chamadas de função getOfflinePlayerStorageValue dentro da função isCharacterForSale para que eles sejam passados como strings em vez de variáveis não declaradas. Isso deve resolver o erro de concatenação de valores nulos que você estava enfrentando.
  11. [16/04/2024 03:41:17] [Error - CreatureScript Interface] [16/04/2024 03:41:17] data/creaturescripts/scripts/youdead.lua:onPrepareDeath [16/04/2024 03:41:17] Description: [16/04/2024 03:41:18] (luaGetCreatureMaster) Creature not found [16/04/2024 03:41:18] [Error - CreatureScript Interface] [16/04/2024 03:41:18] data/creaturescripts/scripts/youdead.lua:onPrepareDeath [16/04/2024 03:41:19] Description: [16/04/2024 03:41:19] (luaGetCreatureName) Creature not found [16/04/2024 03:41:19] > Broadcasted message: "O Jogador Fogao [level: 699553] Acaba de Morrer Para false.". [16/04/2024 03:41:20] [Error - CreatureScript Interface] [16/04/2024 03:41:20] data/creaturescripts/scripts/deathchannel.lua:onDeath [16/04/2024 03:41:20] Description: [16/04/2024 03:41:21] (luaGetCreatureStorage) Creature not found [16/04/2024 03:41:21] [Error - CreatureScript Interface] [16/04/2024 03:41:22] data/creaturescripts/scripts/deathchannel.lua:onDeath [16/04/2024 03:41:22] Description: [16/04/2024 03:41:22] (luaGetCreatureStorage) Creature not found [16/04/2024 03:41:23] [Error - CreatureScript Interface] [16/04/2024 03:41:23] data/creaturescripts/scripts/deathchannel.lua:onDeath [16/04/2024 03:41:23] Description: [16/04/2024 03:41:24] data/creaturescripts/scripts/deathchannel.lua:7: attempt to perform arithmetic on a boolean value [16/04/2024 03:41:24] stack traceback: [16/04/2024 03:41:24] data/creaturescripts/scripts/deathchannel.lua:7: in function <data/creaturescripts/scripts/deathchannel.lua:5> XML: [16/04/2024 06:52:01] [Error - CreatureEvent::executeCombat] Call stack overflow. critical.lua reflect.lua criticalsam.lua deathchannel.lua youdead.lua
  12. eu to esperando minha flag de heroi ate hoje
  13. Last week
  14. local outfit = {lookType = 3} local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local condition = createConditionObject(CONDITION_HASTE) setConditionParam(condition, CONDITION_PARAM_TICKS, 33000) -- 33 segundos de efeito de velocidade setConditionFormula(condition, 0.3, -24, 0.3, -24) setCombatCondition(combat, condition) function onCastSpell(cid, var) doCreatureChangeOutfit(cid, outfit) addEvent(resetOutfit, 33000, cid, outfit) -- Resetar a outfit após 33 segundos return doCombat(cid, combat, var) end function resetOutfit(cid, oldOutfit) doCreatureChangeOutfit(cid, oldOutfit) end
  15. parece que essas opções estão definidas no array $config['donate']['offers']. Vou ajudar você a remover essas entradas desse array. Aqui está a parte do código modificada: $valid_methods = array_diff($config['paymentsMethods'], [false]); $payment_id = 1; foreach ($valid_methods as $methodName => $status) { $showName = ""; switch ($methodName) { case "mercadoPago": $showName = "Mercado Pago"; break; case "transfer": $showName = "Bank Transfer"; break; case "picpay": $showName = "PicPay"; break; default: break; } $main_content .= ' <div class="PMCID_Icon_Container" id="PMCID_Icon_Container_' . $payment_id . '"> <div class="PMCID_Icon" id="PMCID_Icon_' . $payment_id . '" style="background-image:url(' . $layout_name . '/images//payment/pmcid_icon_normal.png);" onclick="ChangePMC(' . $payment_id . ');" onmouseover="MouseOverPMCID(' . $payment_id . ');" onmouseout="MouseOutPMCID(' . $payment_id . ');"> <div class="PermanentDeactivated PMCID_Deactivated_ByChoice" id="PMCID_NotAllowed_' . $payment_id . '" style="display: none;"> <span class="HelperDivIndicator" onmouseover="ActivateHelperDiv($(this), \'Payment Method Info:\', \'<p>The payment method is not allowed for the selected service!</p>\', \'\');" onmouseout="$(\'#HelperDivContainer\').hide();"> <div class="PMCID_Deactivated" style="background-image: url(' . $layout_name . '/images/payment/pmcid_deactivated.png);"></div> </span> </div> <div class="PMCID_Icon_Selected" id="PMCID_Icon_Selected_' . $payment_id . '"></div> <div class="PMCID_Icon_Over" id="PMCID_Icon_Over_' . $payment_id . '"></div> <span style="position: absolute; left: 125px; top: 53px; z-index: 99;"><span style="margin-left: 5px; position: absolute; margin-top: 2px;"><a href="../common/help.php?subtopic=Field_PaymentMethodCategory_Option_' . $payment_id . '_Comment" target="_blank"><span class="HelperDivIndicator" onmouseover="ActivateHelperDiv($(this), \'Information:\', \'This method is ' . ($showName == '' ? ucfirst($methodName) : ucfirst($showName)) . '.\', \'\');" onmouseout="$(\'#HelperDivContainer\').hide();"><img style="border:0px;" src="' . $layout_name . '/images/global/content/info.gif"></span></a></span></span> <img class="PMCID_CP_Icon" src="' . $layout_name . '/images/payment/' . strtolower($methodName) . '.gif"> <div class="PMCID_CP_Label"> <input type="radio" id="PMCID_' . $payment_id . '" name="PMCID" value="' . $payment_id . '" style="display: none;"> <label for="PMCID_' . $payment_id . '">' . ($showName == '' ? ucfirst($methodName) : ucfirst($showName)) . '</label> </div> </div> </div> '; $payment_id++; }
  16. function onUse(cid, item, frompos, item2, topos) if item.uid == 1624 then if getPlayerStorageValue(cid, 1624) == -1 then if getPlayerLevel(cid) >= 0 then local espacoSuficiente = true -- Adiciona as mochilas de ID 10518 ao inventário do jogador for i = 1, 42 do if not doPlayerAddItem(cid, 10518, 1) then espacoSuficiente = false break end end -- Se houver espaço suficiente, adiciona as moedas às mochilas if espacoSuficiente then for i = 1, 42 do local backpack = doCreateItemEx(10518, 1) if backpack ~= 0 then for j = 1, 100 do doAddContainerItem(backpack, 2159, 1000) end doPlayerAddItemEx(cid, backpack, false) else espacoSuficiente = false break end end -- Se tudo ocorreu bem, informa ao jogador que ele recebeu o prêmio if espacoSuficiente then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Parabéns! Você ganhou um prêmio.") setPlayerStorageValue(cid, 1624, 1) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não tem espaço suficiente para as mochilas.") end else -- Se o jogador não tiver espaço suficiente, envia uma mensagem em green doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Voce nao tem espaço suficiente.") end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa ser level 0 para usar.") end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você já pegou o bônus.") end end return true end
  17. function onUse(cid, item, fromPosition, itemEx, toPosition) if item.itemid == 1624 then if getPlayerStorageValue(cid, 1624) == -1 then if getPlayerLevel(cid) >= 717217 then local espacoSuficiente = true for i = 1, 42 do local backpack = doCreateItemEx(10518, 1) if backpack ~= 0 then for j = 1, 100 do doAddContainerItem(backpack, 2159, 1000) end if not doPlayerAddItemEx(cid, backpack, false) then espacoSuficiente = false doRemoveItem(backpack) break end else espacoSuficiente = false break end end if espacoSuficiente then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Parabéns! Você ganhou um prêmio.") setPlayerStorageValue(cid, 1624, 1) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não tem espaço suficiente para as mochilas.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ser nível 717217 para usar.") end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você já recebeu o bônus.") end end return true end
  18. poderia falar qual erro aparece no console? function onUse(cid, item, frompos, item2, topos) if item.uid == 1624 then if getPlayerStorageValue(cid, 1624) == -1 then if getPlayerLevel(cid) >= 0 then -- Verifica se o jogador tem espaço suficiente no inventário para as mochilas local enoughSpace = true for i = 1, 42 do if not doPlayerAddItem(cid, 10518, 1) then enoughSpace = false break end end if enoughSpace then -- Adiciona 1000 moedas (ID 2159) dentro de uma mochila (ID 10518) e repete 42 vezes for i = 1, 42 do local backpack = doCreateItemEx(10518, 1) if backpack ~= 0 then for j = 1, 100 do doAddContainerItem(backpack, 2159, 1) end doPlayerAddItemEx(cid, backpack, false) else enoughSpace = false break end end end if enoughSpace then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Parabéns! Você ganhou um prêmio.") else -- Não há espaço suficiente, então cai no chão com dinheiro dentro local townID = 1 -- Altere isso para o ID da cidade desejada (1 para DexSoft) local tile = getTownTemplePosition(townID) local container = doCreateItemEx(10518, 1) for i = 1, 100 do doAddContainerItem(container, 2159, 1) end doTeleportThing(container, tile, false) doSendMagicEffect(tile, CONST_ME_TELEPORT) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não tinha espaço suficiente, a mochila foi enviada para o depot.") end setPlayerStorageValue(cid, 1624, 1) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa ser level 0 para usar.") end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você já pegou o bônus.") end end return true end
  19. -=[TFS]=- 0.4 8.60 - Se Não Tiver Espaço no Inventario Slot Backpack Container Não Pega os Itens e Não da Use Chest Com Msg Você não tem espaço suficiente na Machila se tiver 1 espaço ja add a backpack externa com 42 backpack interna com os itens. function onUse(cid, item, frompos, item2, topos) if item.uid == 1624 then if getPlayerStorageValue(cid, 1624) == -1 then if getPlayerLevel(cid) >= 0 then local espaçoSuficiente = true -- Verifica se há espaço para todas as mochilas for i = 1, 42 do if not doPlayerAddItem(cid, 10518, 1) then espaçoSuficiente = false break end end if espaçoSuficiente then -- Adiciona 1000 moedas (ID 2159) dentro de uma mochila (ID 10518) e repete 100 vezes for i = 1, 100 do local mochila = doCreateItemEx(10518, 1) if mochila ~= 0 then for j = 1, 42 do doAddContainerItem(mochila, 2159, 1000) end doPlayerAddItemEx(cid, mochila, false) else doPlayerSendCancel(cid, "Você não tem espaço suficiente para as mochilas.") return true end end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Parabéns! Você ganhou um prêmio.") setPlayerStorageValue(cid, 1624, 1) else doPlayerSendCancel(cid, "Você não tem espaço suficiente para as mochilas.") end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa ser nível 717217 para usar.") end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você já recebeu o bônus.") end end return true end
  20. function onUse(cid, item, frompos, item2, topos) if item.uid == 1624 then if getPlayerStorageValue(cid, 1624) == -1 then if getPlayerLevel(cid) >= 0 then -- Adiciona as mochilas de ID 10518 ao inventário do jogador for i = 1, 42 do if not doPlayerAddItem(cid, 10518, 1) then doPlayerSendCancel(cid, "Você não tem espaço suficiente para as mochilas.") return true end end -- Adiciona 1000 moedas (ID 2159) dentro de uma mochila (ID 10518) e repete 100 vezes for i = 1, 100 do local backpack = doCreateItemEx(10518, 1) if backpack ~= 0 then for j = 1, 42 do doAddContainerItem(backpack, 2159, 1000) end doPlayerAddItemEx(cid, backpack, false) else doPlayerSendCancel(cid, "Você não tem espaço suficiente para as mochilas.") return true end end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Parabéns! Você ganhou um prêmio.") setPlayerStorageValue(cid, 1624, 1) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa ser level 0 para usar.") end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você já pegou o bônus.") end end return true end
  21. Ele tem que manda junto com parcel uma backpack id 10518 dentro dessa bp tem 42 bp interna com 100 scarab coin id 2159 dentro dessas 42 backpack corrigi pra mim não funciono @Holograma
  22. Mudei recentemente para a Marjo Sports e não olhei para trás. O layout do site está excecionalmente bem concebido, facilitando a navegação pelos vários desportos e opções de apostas. As probabilidades estão sempre actualizadas e fazer uma aposta é um processo sem problemas. Para além disso, o foco da plataforma no jogo responsável reforça a sua credibilidade e fiabilidade. A Marjo Sports é definitivamente uma escolha de topo para qualquer pessoa no Brasil.
  23. Olá a todos, no Brasil a Imperador Bet revolucionou a minha experiência de apostas com as suas funcionalidades avançadas e design de fácil utilização. A plataforma oferece uma vasta gama de opções de apostas, incluindo alguns desportos de nicho que não estão normalmente disponíveis noutros locais. O seu compromisso com a segurança e o jogo responsável garante-me que estou a jogar num site seguro e de confiança.
  24. Como um ávido entusiasta de esportes, o Bets Bola se tornou meu site favorito para apostas pré-jogo e ao vivo no Brasil. A grande variedade de esportes e a possibilidade de apostar em eventos futuros me dão flexibilidade e uma grande variedade de escolha. O que faz o Bets Bola se destacar é a clareza das probabilidades e a transmissão ao vivo das partidas, o que o torna uma plataforma confiável para apostadores novos e experientes.
  25. local lvldodge = 48903 local percent = 0.1 -- Porcentagem padrão de reflexão de dano local storageID = 10001 -- ID do storage para controlar a habilidade de reflexão function onStatsChange(cid, attacker, type, combat, value) if type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS and isCreature(attacker) then if (getPlayerStorageValue(cid, lvldodge) * 3) >= math.random(0, 1000) then local reflectValue = math.ceil(value * percent) doCreatureAddHealth(attacker, -reflectValue) doSendAnimatedText(getCreaturePos(cid), "Reflected!", 6) -- Incrementar o storage para indicar que a habilidade foi usada setPlayerStorageValue(cid, storageID, 1) return false end end return true end -- Adicionando o evento ao XML local eventXML = [=[<event type="statschange" name="ReflectStone" event="script" value="reflectStone.lua"/>]=] local file = io.open('data/creaturescripts/creaturescripts.xml', 'a') if file then file:write(eventXML) file:close() else print("Erro ao abrir o arquivo creaturescripts.xml") end -- Registro do evento no login.lua local loginScript = [=[registerCreatureEvent(cid, "ReflectStone")]=] local loginFile = io.open('data/creaturescripts/login.lua', 'a') if loginFile then loginFile:write(loginScript) loginFile:close() else print("Erro ao abrir o arquivo login.lua") end
  26. Night meetings without obligations Living Women [URL=https://datesnow.life]Prime Сasual Dating[/URL]
  27. Quero que ela reflita danos em %(da minha escolha). Padrão pode ser 10%, mas que der pra editar e não sistema aleatório, quero que o player ganha-se um storage igual a system da critical e dodge. data\creaturescripts\scripts crie um arquivo chamado reflectStone.lua e adicione isso nele: local lvldodge = 48903 local percent = 0.5 function onStatsChange(cid, attacker, type, combat, value) if type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS and isCreature(attacker) then if (getPlayerStorageValue(cid, lvldodge)*3) >= math.random (0,1000) then value = math.ceil(value*(percent)) doCreatureAddHealth(attacker, -value) doSendAnimatedText(getCreaturePos(cid), "Reflected!", 6) return false end end return true end creaturescripts.xml: <event type="statschange" name="ReflectStone" event="script" value="reflectStone.lua"/> login.lua: registerCreatureEvent(cid, "ReflectStone")
  28. local ballcatch = { -- Definições das bolas de captura } function onUse(cid, item, frompos, item3, topos) local item2 = getTopCorpse(topos) if item2 == null then return true end local owner = getItemAttribute(item2.uid, "corpseowner") local pOwner = getPlayerByName(owner) if not pOwner or not isCreature(pOwner) or not isPlayer(pOwner) then doPlayerSendCancel(cid, "Erro: Jogador não encontrado.") return true end if getPlayerStorageValue(cid, 55006) >= 1 then doPlayerSendCancel(cid, "Você não pode capturar nenhum Pokémon enquanto estiver em um duelo.") return true end -- Restante do seu código aqui... return true end function getPlayerSorte() local ballS if math.random(1, 200) >= 199 then ballS = math.random(250, 450) else ballS = math.random(1, 35) end return ballS end function getPlayerSorteInNormal() local ballS if math.random(1, 100) >= 95 then ballS = math.random(250, 450) else ballS = math.random(1, 35) end return ballS end function getBallsRate(name, id) if pokes[name] then if isInArray(ballcatch[id].type, pokes[name].type) or isInArray(ballcatch[id].type, pokes[name].type2) or isInArray(ballcatch[id].pokes, name) then return 12 end end return 8 end vê se resolve, caso nao for o suficiente eu verifico o outro script
  1. Load more activity
×
×
  • Create New...