Ir para conteúdo

Lucas CP

Campones
  • Total de itens

    54
  • Registro em

  • Última visita

Tudo que Lucas CP postou

  1. Se o problema é que o script nao para quando entra na condição, coloca um "return true" nela
  2. Muda isso: doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getCreatureName(pid) .. " foi banido.") para isso doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, param .. " foi banido.")
  3. Lucas CP

    Erro no script

    https://uploaddeimagens.com.br/imagens/erro-png--386 Em config.lua mude isso allowClones = "yes" ou allowClones = true para isso allowClones = "no" ou allowClones = false
  4. Mude seu login.lua para esse: -- ordered as in creaturescripts.xml local events = { 'pythiusDead', 'bossesGrayIsland', 'ElementalSpheres', 'ElementalSpheresKill', 'ElementalSpheresLogin', 'WarzoneThree', 'WarzoneTwo', 'bossesWarzone', 'SvargrondArenaKill', 'PharaoKillPortal', 'inServiceOfYalaharQuestsDiseased', 'inServiceOfYalaharQuestsMorik', 'inServiceOfYalaharQuestsQuara', 'inquisitionQuestBosses', 'inquisitionQuestUngreez', 'killingInTheNameOfQuestKills', 'TaskCustom', 'Yielothax', 'Energized', 'Raging', 'MastersVoiceServants', 'wrathBoss', 'wrathZalamon', 'PlayerDeath', 'ThievesGuildNomad', 'AdvanceSave', 'SpikeDrillworm', 'SecretServiceBlackKnight', 'TaskMulti' } function onLogin(cid) local player = Player(cid) local loginStr = 'Bem-vindo ao ' .. configManager.getString(configKeys.SERVER_NAME) .. ' Tibia Server!' if player:getLastLoginSaved() <= 0 then loginStr = loginStr .. ' Por favor, escolha a sua roupa.' player:sendTutorial(1) else if loginStr ~= '' then player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr) end loginStr = string.format('Sua última visita foi em %s.', os.date('%a %b %d %X %Y', player:getLastLoginSaved())) db.query("UPDATE `players` SET `cast` = 0 WHERE `id` = " .. getPlayerGUID(cid) .. ";") end player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr) for i = 1, #events do player:registerEvent(events[i]) end return true end
  5. isso não muda em nada, passa essas etapa: - creaturescripts.xml - login.lua
  6. deixa com onKill na script e no xml deixa assim: <event type="kill" name="gold" script="gold.lua"/>
  7. tenta assim: local tabela = { {de = 700, ate = 799,coin = 10*10000}, {de = 800, ate = 899,coin = 20*10000}, {de = 900, ate = 999,coin = 30*10000}, } function onKill(cid, target) if Player(cid) and Player(target) then for i= 1, #tabela do if getPlayerLevel(target) >= tabela[i].de and getPlayerLevel(target) <= tabela[i].ate then broadcastMessage(getCreatureName(target).."["..getPlayerLevel(target).."] acabou de ser morto pelo jogador "..getCreatureName(cid).."["..getPlayerLevel(cid).."].", MESSAGE_EVENT_ADVANCE) Player(cid):addMoney(tabela[i].coin) Player(cid):sendTextMessage(MESSAGE_STATUS_DEFAULT, string.format('Você ganhou %d golds por matar o jogador %s.',tabela[i].coin, getCreatureName(target))) return true end end end return true end esta com onKill
  8. registerCreatureEvent(cid, "Gold") muda para registerCreatureEvent(cid, gold")
  9. muda o callback para onKill e add esse codigo: local task = { ['multi'] = {total = 600, stoTime = 96586, stoKill = 96587, amount = 1} } function onKill(cid, target) local player = Player(cid) local monstro = Monster(target) if not monstro then return true end if monstro:getMaster() then return true end local multi = task[monstro:getName():lower()] if player:getStorageValue(multi.stoTime) >= os.time() then if player:getStorageValue(multi.stoKill) < 0 then player:setStorageValue(multi.stoKill,0) end player:setStorageValue(multi.stoKill, player:getStorageValue(multi.stoKill) + multi.amount) if player:getStorageValue(multi.stoKill) >= multi.total then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, string.format('[%s Task Finalizada] (%d/%d)',monstro:getName(),multi.total,multi.total)) else player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, string.format('[%s Task] (%d/%d)',monstro:getName(),player:getStorageValue(multi.stoKill),multi.total)) end end return true end
  10. A função onDeath no tfs 1.x não é mais assim: onDeath(cid, corpse, deathList) vc terá que adaptar para esse formato: onDeath(cid, corpse, lasthitkiller, mostdamagekiller, lasthitunjustified, mostdamageunjustified)
  11. tenta assim: local config = { level = 700, -- level que ganha o dinheiro coin = 10000 -- coin é em gold coin, ou seja, 1 é 1 gold coin, 100 é 1 platinum coin, 10000 é 1 crystal coin } function onPrepareDeath(cid, killer) if isPlayer(killer) then if getPlayerLevel(cid) >= config.level then broadcastMessage(getCreatureName(cid).."["..getPlayerLevel(cid).."] acabou de ser morto pelo jogador "..getCreatureName(killer).."["..getPlayerLevel(killer).."].", MESSAGE_EVENT_ADVANCE) Player(killer):addMoney(config.coin) Player(killer):sendTextMessage(MESSAGE_STATUS_DEFAULT, string.format('Você ganhou %d golds por matar o jogador %s.',config.coin, getCreatureName(cid))) end end return true end e em creaturescript.xml vc muda type="kill" para type="preparedeath"
  12. tente assim: function onSay(cid, words, param) if(param == "") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Hunted [BOUNTY HUNTERS] Use: \"!hunted kks,nick\".") return TRUE end local t = string.split(param, ",") if(not t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Hunted [BOUNTY HUNTERS] Use: \"!hunted kks,nick\".") return TRUE end local sp_id = getPlayerGUIDByName(t[2]) if sp_id == nil then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Hunted [BOUNTY HUNTERS] Esse player nao existe.") return TRUE end local result_plr = db.storeQuery("SELECT * FROM `bounty_hunters` WHERE `sp_id` = "..sp_id.." AND `killed` = 0;") if(result_plr ~= false) then is = tonumber(result.getDataInt(result_plr, "sp_id")) result.free(result_plr) else is = 0 end prize = tonumber(t[1]) if(prize == nil or prize < 1) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Hunted [BOUNTY HUNTERS] Use: \"!hunted kks,nick\".") return TRUE end if(prize >= 100000000000000000000) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Hunted [BOUNTY HUNTERS] Desculpe,numero muito grande!") return TRUE end if is ~= 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Hunted [BOUNTY HUNTERS] Este player ja esta hunted, confira em nosso site a lista.") return TRUE end if doPlayerRemoveMoney(cid, prize*1000000) == TRUE then db.query("INSERT INTO `bounty_hunters` VALUES (NULL,"..getPlayerGUID(cid)..","..sp_id..",0," .. os.time() .. ","..prize..",0,0);") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Hunted [BOUNTY HUNTERS] Hunted adicionado com sucesso!") for _, pid in pairs(Game.getPlayers()) do local player = Player(pid) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, string.format("Hunted Update:\n %s deu hunted em %s e esta pagando por sua cabeça: %d kks!", Player(cid):getName(), t[2], prize)) end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Hunted [BOUNTY HUNTERS] Você não tem dinheiro!") end return 1 end
  13. Tente assim: local config = { level = 700, -- level que ganha o dinheiro coin = 10000 -- coin é em gold coin, ou seja, 1 é 1 gold coin, 100 é 1 platinum coin, 10000 é 1 crystal coin } function onKill(cid, target) if isPlayer(cid) and isPlayer(target) then if getPlayerLevel(target) >= config.level then broadcastMessage(getCreatureName(target).."["..getPlayerLevel(target).."] acabou de ser morto pelo jogador "..getCreatureName(cid).."["..getPlayerLevel(cid).."].", MESSAGE_EVENT_ADVANCE) Player(cid):addMoney(config.coin) Player(cid):sendTextMessage(MESSAGE_STATUS_DEFAULT, string.format('Você ganhou %d golds por matar o jogador %s.',config.coin, getCreatureName(target))) end end return true end
  14. Antes do if not target:isPlayer() then return true end coloque isso: local creature, target = Creature(creature), Creature(target)
  15. Caso for TFS 1.2 você pode usar essa funcao: creature:moveTo(pos) tem que colocar isso no seu código: https://otland.net/threads/creature-moveto-position.237960/ ou http://www.xtibia.com/forum/topic/234384-getcreaturepathtocid-position-maxsearchdist/ getCreaturePathTo(cid, pos, maxSearchDist) para TFS 0.4/0.3.6 (da para fazer em lua, só que vai dar um pouquinho de trabalho)
  16. Só mudar essa linha: local min = (level + 2) + (magic * 3) / 2 local max = (level + 2) + (magic * 6) / 2 pode colocar assim tambem, exemplo: local min = (level + 2) + (magic * 13) / 2 local max = (level + 2) + (magic * 16) / 2
  17. Se realmente vingar eu entro
  18. Tenta assim: local function verDano(level, magic) local min = (level + 2) + (magic * 3) / 2 local max = (level + 2) + (magic * 6) / 2 return min, max end local function executar(player, uid) local target = Creature(uid) local level = player:getLevel() local magic = player:getMagicLevel() local manaAlvo = target:getMana() local dano = math.floor(math.random(verDano(level, magic))) doTargetCombatMana(player, target, 0, 0, CONST_ME_PURPLEENERGY) if manaAlvo >= dano then target:addMana(-dano, true) elseif dano > manaAlvo then target:addMana(-manaAlvo, true) end player:addHealth(dano, true) player:getPosition():sendMagicEffect(CONST_ME_MAGIC_GREEN) end function onCastSpell(cid, var) local player = Player(cid) local uid = player:getTarget() if uid == nil then position = player:getPosition() position:getNextPosition(player:getDirection(), 1) uid = Creature(getTopCreature(position).uid) else position = uid:getPosition() end local pos = Tile(position) if pos:hasFlag(TILESTATE_PROTECTIONZONE) then player:sendCancelMessage('O alvo não pode estar em pz') player:getPosition():sendMagicEffect(CONST_ME_POFF) return false end if not uid then player:sendCancelMessage('Você só pode usar essa magia em criaturas.') player:getPosition():sendMagicEffect(CONST_ME_POFF) return false end if uid:isPlayer() then if uid:getGroup():getId() > 1 then player:getPosition():sendMagicEffect(CONST_ME_POFF) return false end if uid:getLevel() <= configManager.getNumber(configKeys.PROTECTION_LEVEL) then player:getPosition():sendMagicEffect(CONST_ME_POFF) return false end end executar(player, uid) return true end
  19. O target tem que estar na sua frente ou não precisa? Para atacar tem que ter target?
  20. Vi o erro, chegando em casa eu arrumo vou colocar para atacar só um sqm a frente e também os monstros. Pdc?
  21. Tenta essa: Versão 1.x local function verDano(level, magic) local min = (level + 2) + (magic * 3) / 2 local max = (level + 2) + (magic * 6) / 2 return min, max end local function executar(player,target) if target:getGroup():getId() > 1 then return true end if target:getLevel() <= configManager.getNumber(configKeys.PROTECTION_LEVEL) then return true end local level = player:getLevel() local magic = player:getMagicLevel() local healtPlayer = player:getHealth() local manaAlvo = target:getMana() local dano = math.random(verDano(level, magic)) print(dano) if manaAlvo >= dano then target:addMana(-dano) elseif dano > manaAlvo then target:addMana(-manaAlvo) end if healtPlayer < dano then player:addHealth(dano) player:getPosition():sendMagicEffect(CONST_ME_MAGIC_GREEN) end end local function encontrarAlvo(player, position) if player:getTarget() == nil then local c = Player(getTopCreature(position).uid) if not c then return true end target = c else if Player(player:getTarget()) then target = player:getTarget() else return true end end return target end function onCastSpell(cid, var) local player = Player(cid) local position = player:getPosition() position:getNextPosition(player:getDirection(), 1) local target = Player(encontrarAlvo(player, position)) if not target then player:sendCancelMessage('Você só pode usar essa magia em jogadores.') return true end position:sendMagicEffect(CONST_ME_PURPLEENERGY) executar(player,target) return true end
  22. Lucas CP

    Aprender Scripting

    Opa, também quero entrar nesse grupo: lucascp49
  • Quem Está Navegando   0 membros estão online

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