
Tudo que Rusherzin postou
-
ERRO: attempt to index local 'monster' (a nil value)
function onKill(cid, target) local config = { ['troll'] = {amount = 10, storage = 21900, startstorage = 45553, startvalue = 1, tit = "Criaturas Humanoides"}, ['rotworm'] = {amount = 26, storage = 21901, startstorage = 45551, startvalue = 2}, ['dragon lord'] = {amount = 25, storage = 21902, startstorage = 45551, startvalue = 4} } if isPlayer(target) and isMonster(target) then return true end if not config[getCreatureName(target):lower()] then return true end local monster = config[getCreatureName(target):lower()] if (getPlayerStorageValue(cid, monster.storage)+1) < monster.amount and getPlayerStorageValue(cid, monster.startstorage) >= monster.startvalue then setPlayerStorageValue(cid, monster.storage, getPlayerStorageValue(cid, monster.storage) + 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, '[Sistema de Sincronização]: '..(getPlayerStorageValue(cid, monster.storage)+1)..' de '..monster.amount..' '..getCreatureName(target)..'s mortos.') end if (getPlayerStorageValue(cid, monster.storage)+1) == monster.amount then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Concluido ! Você matou '..(getPlayerStorageValue(cid, monster.storage)+1)..' '..getCreatureName(target)..'s e completou a missão '..tit..'.') setPlayerStorageValue(cid, monster.storage, getPlayerStorageValue(cid, monster.storage) + 1) end return true end
-
Object Builder
Pode encontrar todas as versões publicadas aqui: https://github.com/ottools/ObjectBuilder/releases
-
Últimos tópicos que você participou
Não sei se eu entendi errado ou é um bug mesmo, mas ali na parte direita do site, onde diz "últimos tópicos que você participou", fica mostrando os tópicos de outros usuários. Igual na imagem abaixo:
-
CHARACTER INFOS
function onSay(cid, words, param, channel) local reset = 2321 -- id da storage do reset local mining = 2113 -- id da storage do mining local dodge = 1234 -- storage da dodge local critc = 4321 -- storage da critical doPlayerSendTextMessage(cid, 23, " # Character Info # \n -Level: ".. getPlayerLevel(cid) .."\n -Resets: ".. getPlayerStorageValue(cid, reset) .."\n -Life: [".. getCreatureHealth(cid) .."/".. getCreatureMaxHealth(cid) .."]\n -Mana: [".. getCreatureMana(cid) .."/".. getCreatureMaxMana(cid) .."]\n -Mining: ".. getPlayerStorageValue(cid, mining).."\n -Critical: "..getPlayerStorageValue(cid, critc).."\n Dodge: "..getPlayerStorageValue(cid, dodge)) return true end
-
CHARACTER INFOS
Vou dar rep para o cara ali que fez, mas tenta assim: function onSay(cid, words, param, channel) local reset = 2321 -- id da storage do reset local mining = 2113 -- id da storage do mining doPlayerSendTextMessage(cid, 23, " # Character Info # \n -Level: ".. getPlayerLevel(cid) .."\n -Resets: ".. getPlayerStorageValue(cid, reset) .."\n -Life: [".. getCreatureHealth(cid) .."/".. getCreatureMaxHealth(cid) .."]\n -Mana: [".. getCreatureMana(cid) .."/".. getCreatureMaxMana(cid) .."]\n -Mining: ".. getPlayerStorageValue(cid, mining)) return true end
-
(Resolvido)2 modificações em script
Não testei nenhum deles, mas.. function onUse(cid, item, frompos, item2, topos) local needPos = {x=1011, y=1025, z=7} -- pos que precisa está para usar o item local myPos = getPlayerPosition(cid) if myPos.x == needPos.x and myPos.y == needPos.y and myPos.z == needPos.z then if getHouseByPlayerGUID(getPlayerGUID(cid)) then doTeleportThing(cid, getHouseEntry(getHouseByPlayerGUID(getPlayerGUID(cid)))) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) doPlayerSendTextMessage(cid,22,"Voce foi teleportado até sua house!") else doPlayerSendTextMessage(cid,22,"Você ainda não tem uma house, compre uma falando '!buyhouse' em frente a porta dela.") end doPlayerSendTextMessage(cid,22,"Você precisa estár em cima do trono para usar a alavanca.") end return true end --[[Script By Vodkart]]-- function onSay(cid, words, param) local config = { pz = true, -- players precisam estar em protection zone para usar? (true or false) battle = true, -- players deve estar sem battle (true or false) custo = true, -- se os teleport irão custa (true or false) need_level = true, -- se os teleport irão precisar de level (true or false) premium = true -- se precisa ser premium account (true or false) } --[[ Config lugares]]-- local lugar = { ["depot"] = { -- nome do lugar pos = {x=937, y=1002, z=7},level = 8,price = 10000}, ["templo"] = { -- nome do lugar pos = {x=969, y=1003, z=7},level = 8, price = 10000}, ["arena"] = { -- nome do lugar pos = {x=932, y=983, z=9},level = 8,price = 10000}, ["bau"] = { -- nome do lugar pos = {x=965, y=929, z=7},level = 8,price = 10000}, ["trainers"] = { -- nome do lugar pos = {x=977, y=1003, z=9},level = 8,price = 10000}, ["equip"] = { -- nome do lugar pos = {x=977, y=1003, z=8},level = 8,price = 10000}, ["hunts"] = { -- nome do lugar pos = {x=1000, y=929, z=7},level = 8,price = 10000}, ["cassino"] = { -- nome do lugar pos = {x=986, y=1003, z=7},level = 8,price = 10000}, ["exclusiva"] = { -- nome do lugar pos = {x=1226, y=926, z=7},level = 8,price = 10000}, ["marvel"] = { -- nome do lugar pos = {x=1120, y=921, z=7},level = 8,price = 10000}, ["donate"] = { -- nome do lugar pos = {x=1410, y=914, z=7},level = 8,price = 10000}, ["quests"] = { -- nome do lugar pos = {x=849, y=922, z=7},level = 8,price = 10000} } --[[ Lista de Viagem (Não mexa) ]]-- if (param == "lista") then local str = "" str = str .. "lista de viagem :\n\n" for name, pos in pairs(lugar) do str = str..name.."\n" end str = str .. "" doShowTextDialog(cid, 6579, str) return TRUE end local a = lugar[param] if not(a) then local txt = "" for v,k in pairs(lugar) do txt = (txt == "") and "Os lugares são: "..v..", " or txt..v..", " end doPlayerPopupFYI(cid, txt) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return TRUE elseif config.pz == true and getTilePzInfo(getCreaturePosition(cid)) == FALSE then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"você precisa estar em protection zone pra poder teleportar.") return TRUE elseif config.premium == true and not isPremium(cid) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Apenas players com premium account podem se teleportar.") return TRUE elseif config.battle == true and getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você precisa estar sem battler para poder se teleportar.") return TRUE elseif config.need_level == true and getPlayerLevel(cid) < a.level then doPlayerSendTextMessage(cid, 22, "Desculpe, você não tem level. voce precisa "..a.level.." level ou mais para ser teleportado.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return TRUE elseif config.custo == true and doPlayerRemoveMoney(cid, a.price) == FALSE then doPlayerSendTextMessage(cid, 22, "Desculpe, você nao tem dinheiro suficiente. Voce precisa "..a.price.." gp para ser teleportado.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return TRUE end doTeleportThing(cid, a.pos) doSendMagicEffect(a.pos, CONST_ME_TELEPORT) doPlayerSendTextMessage(cid, 22, "" .. getPlayerName(cid) .. " foi teleportado para: \n " .. param .. ".") return TRUE end
-
string.explode
Ele separa uma string de acordo com um determinado delimitador. Por exemplo, se tu usar essa função na seguinte string: local text = "oi, hi, privet" Dessa maneira: local text = "oi, hi, privet" local result = string.explode(text, ",") Dentro da variável result ficará uma tabela com os seguintes valores: result[1] = "oi" result[2] = "hi" result[3] = "privet" Enfim, a função tem dois parâmetros, o primeiro é uma string, que no exemplo acima era "oi, hi, privet" e o outro parâmetro é o delimitador, que nesse caso foi a vírgula.
-
[RESOLVIDO][HELP-ME] Dat Editor não responde!!
Funciona sim. Não entendi a pergunta, como faz o que com os itens?
-
[RESOLVIDO][HELP-ME] Dat Editor não responde!!
Já tentou usar o Object Builder? Nunca tive problemas com ele. https://github.com/ottools/ObjectBuilder/releases/download/v0.4.3/ObjectBuilder_0_4_3.zip
-
config.lua
houseRentPeriod pode ser "daily", "weekly", "monthly" e "annual". houseCleanOld limpa a casa se o cara não logar em X segundos. Botando 0 fica desabilitado, se tu botar 86400 é igual a 24 horas, ou seja, se o jogador ficar 24 horas sem logar, ele vai perder a casa.
-
(Resolvido)Background Bugado !
Tentei arrumar, testa com esse arquivo. (botei em anexo porque ele tem 900+ linhas e fica difícil de copiar) layout.php
-
Problemas com IMG do site
Pode trocar essa parte: <img src="images/items/1968.gif"> Por isso: <img src="images/items/'.$item['item_id'].'.gif"> Se os ids dos itens estiverem certos na pasta images/items, isso deve funcionar.
-
(Resolvido)Background Bugado !
Geralmente fica nesse arquivo, mas não achei nada a respeito do background. Tenta encontrar em qual arquivo ele puxa essa imagem que está no background.
-
(Resolvido)Background Bugado !
Não lembro ao certo, mas é em layouts/tibiacom, o nome é basic.css.
-
(Resolvido)Background Bugado !
Editou alguma coisa no css? Manda a parte do body {}.
-
Clicar na arvore e sai mostros(Só isso)
Okay, tinha mais coisas. Arrumei várias agora: local config = { Monsters = {"Rat", "Bug", "Spider"}, -- Monstros que podem ser encontrados Exhausted = 120, -- Tempo em segundos TimeStorage = 4640, Level = 20 -- Level Minimo } function onUse(cid, item, frompos, item2, topos) local player = Player(cid) local position = player:getPosition() if player:getStorageValue(config.TimeStorage) >= os.time() then player:sendCancel(cid, 'You can only look for monster again after '.. exhaustion.get(cid, 4640) .. ' seconds.') return true end if player:getLevel() >= config.Level then local randmonster = config.Monsters[math.random(1, #config.Monsters)] player:setStorageValue(config.TimeStorage, os.time() + config.Exhausted) player:SendTextMessage(MESSAGE_EVENT_ADVANCE, "You found a "..randmonster..".") Game.createMonster(randmonster, position) else player:sendCancel('You are too weak to look for monsters here, come back when you get level '.. level .. '.') end return true end
-
(Resolvido)[HELP-ME] Criar conta nos sites gera senha errada
Sem problemas. Para tirar o Account Manager, vá até o config.lua e mude accountManager de true para false. E ah, esqueci de dizer, se já tiver contas criadas que tu editou para "plain text", tem que criptografar elas novamente.
-
Duvida.
Tenta botar o teu items.xml e o items.otb dentro da pasta da versão que está usando do Remere's. Remere's Map Editor\data\860\
-
Clicar na arvore e sai mostros(Só isso)
Okay, não tinha visto o outro. Agora acho que vai: local config = { Monsters = {"Rat", "Bug", "Spider"}, -- Monstros que podem ser encontrados Exhausted = 120, -- Tempo em segundos TimeStorage = 4640, Level = 20 -- Level Minimo } function onUse(cid, item, frompos, item2, topos) local player = Player(cid) local position = player:getPosition() if player:getStorageValue(TimeStorage) >= os.time() then player:sendCancel(cid, 'You can only look for monster again after '.. exhaustion.get(cid, 4640) .. ' seconds.') return true end if player:getLevel() >= config.Level then player:setStorageValue(TimeStorage, os.time() + Exhausted) player:SendTextMessage(MESSAGE_EVENT_ADVANCE, "You found a ".. Monsters[math.random(1, #Monsters)] ..".") Game.createMonster(Monsters[math.random(1, #Monsters)], position) else player:sendCancel('You are too weak to look for monsters here, come back when you get level '.. level .. '.') end return true end
-
(Resolvido)[HELP-ME] Criar conta nos sites gera senha errada
Isso é criptografia, serve para proteger as senhas. Se agora tu não usa mais Account Manager, aconselho que vá até o config.lua e coloque encryptionType de "plain" pra "sha1".
-
Clicar na arvore e sai mostros(Só isso)
local config = { Monsters = {"Rat", "Bug", "Spider"}, -- Monstros que podem ser encontrados Exhausted = 120, -- Tempo em segundos TimeStorage = 4640, Level = 20 -- Level Minimo } function onUse(cid, item, frompos, item2, topos) local player = Player(cid) local position = player:getPosition() if player:getStorageValue(TimeStorage) >= os.time() then player:sendCancel(cid, 'You can only look for monster again after '.. exhaustion.get(cid, 4640) .. ' seconds.') return true end if player:getLevel() >= config.Level then player:setStorageValue(TimeStorage, os.time + Exhausted) player:SendTextMessage(MESSAGE_EVENT_ADVANCE, "You found a ".. Monsters[math.random(1, #Monsters)] ..".") Game.createMonster(Monsters[math.random(1, #Monsters)], position) else player:sendCancel('You are too weak to look for monsters here, come back when you get level '.. level .. '.') end return true end
-
Dead Error
Vai nos corpos que estão registrados no items.xml e veja em qual deles tem o id do livro nessa parte: <attribute key="decayTo" value="ID" /> Após isso, é só trocar o id do livro por 0.
-
(Resolvido)!Monster Info
É só usar o item no monstro que o código vai pegar todas as informações usando o nome do monstro.
-
(Resolvido)!Monster Info
Tirando a parte de dizer onde eles ficam, o resto eu sei fazer sem dar muito trabalho. <action itemid="IDITEM" event="script" value="monsterinfo.lua"/> function onUse(cid, item, fromPosition, itemEx, toPosition) if not isMonster(itemEx.uid) then return false end local races = {[1] = "venom", [2] = "blood", [3] = "undead", [4] = "fire", [5] = "energy"} local name = getCreatureName(itemEx.uid) local monsterinfo = getMonsterInfo(name) local lootarray = monsterinfo['loot'] local mname = "Name: "..name.."\n" local loot = (#lootarray >= 1) and "Loot:" or "Loot: \n - Empty \n" local health = "Health: "..monsterinfo['health'].."/"..monsterinfo['healthMax'].."\n" local experience = "Experience: "..monsterinfo['experience'].."\n" local race = "Race: "..races[monsterinfo['race']].."\n" local attackable = (monsterinfo['attackable'] == true) and "Attackable: Yes \n" or "Attackable: No \n" local summonable = (monsterinfo['summonable'] == true) and "Summonable: Yes \n" or "Summonable: No \n" local hostile = (monsterinfo['hostile'] == true) and "Hostile: Yes \n" or "Hostile: No \n" local illusionable = (monsterinfo['illusionable'] == true) and "Illusionable: Yes \n" or "Illusionable: No \n" for i=1, #lootarray do local lchance = ((lootarray[i]['chance'] * getConfigValue('rateLoot')) / 1000).."%" local litem = getItemNameById(lootarray[i]['id']) loot = loot.."\n - "..litem.." ["..lchance.."]" or litem.." - ["..lchance.."]" end local output = mname..health..experience..race..hostile..attackable..summonable..illusionable..loot doShowTextDialog(cid, item.itemid, output) return true end Esse código retorna as seguintes informações: Nome Vida / Vida Máxima Experiência Raça Hostil (sim/não) Atacável (sim/não) Sumonável (sim/não) Ilusionável (sim/não) Lista de loot (com a chance de drop levando em conta o rateLoot do servidor)
- Help me with my ot please