Ir para conteúdo

MaXwEllDeN

Barão
  • Total de itens

    246
  • Registro em

  • Última visita

  • Dias Ganhos

    2

Histórico de Reputação

  1. Upvote
    MaXwEllDeN recebeu reputação de caotic em Usar spell só se tiver pisando no sqm (ajuda Vodkart)   
    Nem precisava de tudo isso, só era colocar pra verificar se o tile que o cara tá é de areia, nem precisava criar esse stepin ai mano. Sempre tente fazer o script o mais simples possível.
  2. Upvote
    MaXwEllDeN recebeu reputação de EduziTow em Porta Que So Gm Abre   
    OnlyGM.lua

    local id_aberta = 1950 -- Id da porta aberta local id_fechada = 1951 -- Id da porta fechada local group_id = 6 -- Somente quem tiver no mínimo esse group poderá abrir a porta. local simple = { [id_aberta] = id_fechada, [id_fecahda] = id_aberta } function onUse(cid, item) if getPlayerGroupId(cid) < group_id then doPlayerSendCancel(cid, "Você não tem permissão para abrir esta porta!") return false end return doTransformItem(item.uid, simple[item.itemid]) end
     

    <action actionid = "7953" event = "script" value = "OnlyGM.lua"/>
     
    Depois só é abrir seu Map Editor e colocar na porta a actionoid 7953. Done!
  3. Upvote
    MaXwEllDeN recebeu reputação de LuckOake em Sisteminha De Forja   
    Autor: MaXwEllDeN (Maxwell Denisson) Versão testada: TFS 0.3.6, 8.54  
    #Introdução
     
    Vish, eu tava aqui de boa vasculhando meus scripts e achei esse sistema de Forja, é antigo e pode conter bugs, então quem encontrar por favor reporte (:
     
    #Instalação
     
    @Actions
     
    Na pasta scripts copie qualquer arquivo com a extenção lua, e renomeie ele para Smith, abra, delete tudo que houver dentro dele, copie esse conteúdo e salve:
     

    --[[ ################################################ ## Smith System ## ## Author: Maxwell Denisson(MaXwEllDeN) ## ## Version: 1.0 ## ################################################ ]] function onUse(cid, item, frompos, item2, topos) local tekz, takz, tikz, XTz = {}, {}, {}, {} for _, v in pairs(getAllItemsInPos(topos, {1642, 1643, 1644, 1645, 1617, 1618, 1620, 1621})) do table.insert(takz, v) end for _, v in pairs(takz) do if not isInArray(tikz, v.uid) then if (v.itemid ~= 2555) then table.insert(XTz, v) end table.insert(tikz, v.uid) table.insert(tekz, v.itemid) end end if not (isInArray(tekz, 2555)) then return false end local u, d = _SMITHY_.getRevenue(topos) if (u == 0) then for i, v in pairs(d) do if (math.random(100) > 49) then local tp = (v.type > 0) and v.type or 1 doRemoveItem(v.uid, tp) end end if (#d > 0) then doSendMagicEffect(topos, 3) doPlayerSendTextMessage(cid, 21, "Failure!") end return true end local rec = _SMITHY_.receitas[u] if (math.random(10) + _SMITHY_.getLevel(cid) < rec.dif) then for i, v in pairs(d) do if (math.random(100) > 49) then local tp = (v.type > 0) and v.type or 1 doRemoveItem(v.uid, tp) end end doSendMagicEffect(topos, 3) return doPlayerSendTextMessage(cid, 21, "Failure!") end local xp = math.random(10) + rec.dif doSendAnimatedText(getThingPos(cid), xp, 125) _SMITHY_.addExp(cid, xp) if (_SMITHY_.getExp(cid) >= _SMITHY_.getExpToNextLevel(cid)) then doPlayerSendTextMessage(cid, 22, "You advanced from level ".. _SMITHY_.getLevel(cid) .. " to level ".. _SMITHY_.getLevel(cid) + 1 .. ", in smithy skills.") _SMITHY_.addLevel(cid, 1) end doPlayerSendTextMessage(cid, 27, "Experience: ".. _SMITHY_.getExp(cid) .. "/".. _SMITHY_.getExpLevel(_SMITHY_.getLevel(cid) + 1) ..".") for _, v in pairs(d) do local tp = (v.type > 0) and v.type or 1 doRemoveItem(v.uid, tp) end doSendMagicEffect(topos, 3) doPlayerSendTextMessage(cid, 25, "You've forged a ".. getItemNameById(rec.ma[1]) .. "!") return doCreateItem(rec.ma[1], rec.ma[2], topos) end
     
    TAG:
     

    <action itemid = "2422" event = "script" value = "Smith.lua"/>
     
    @Libs
     
    Na pasta lib copie qualquer arquivo com a extenção lua, e renomeie ele para SmithLib, abra, delete tudo que houver dentro dele, copie esse conteúdo e salve:
     

    --[[ ################################################ ## Smith System ## ## Author: Maxwell Denisson(MaXwEllDeN) ## ## Version: 1.0 ## ################################################ ]] _SMITHY_ = { exp_b = 40, receitas = { --dif = Dificuldade [1] = {dif = 5, -- Staff re = {{5892, 2}, }, ma = {2401, 1} }, [2] = {dif = 10, -- Mercenary Sword re = {{2401, 1}, {9971, 5}, {5887, 3}, {5892, 2}, }, ma = {7386, 1} }, [3] = {dif = 3, -- Huge chuck of crude iron re = {{5880, 20}, }, ma = {5892, 1} }, [4] = {dif = 20, -- Piece of Royal Steel re = {{5880, 10}, {2475, 1}, }, ma = {5887, 3} }, } } _SMITHY_.getRevenue = function (pos) local recs = {} local ipos = {} local posi = {} local block = {1642, 1643, 1644, 1645, 1617, 1618, 1620, 1621, 2555} local IDEx = 0 for i, v in pairs(_SMITHY_.receitas) do recs[i] = {} for _, a in pairs(v.re) do for b = 1, a[2] do table.insert(recs[i], a[1]) end end end local Zk = {} for _, v in pairs(getAllItemsInPos(pos, block)) do if not isInArray(Zk, v.uid) then table.insert(ipos, v) table.insert(Zk, v.uid) end end for _, v in pairs(ipos) do local t = (v.type > 0) and v.type or 1 for te = 1, t do table.insert(posi, v.itemid) end end for _, v in pairs(recs) do local AE = true for x, i in pairs(posi) do if (AE) then if (not isInArray(v, i)) or (#v ~= #posi) then AE = false else IDEx = _ end end end end if (#recs < 1) then return 0, ipos else return IDEx, ipos end end _SMITHY_.getExp = function (uid) if (getPlayerStorageValue(uid, 58913) < 1) then setPlayerStorageValue(uid, 58913, 0) end return getPlayerStorageValue(uid, 58913) end _SMITHY_.getLevel = function (uid) if (getPlayerStorageValue(uid, 58912) < 1) then setPlayerStorageValue(uid, 58912, 1) end return getPlayerStorageValue(uid, 58912) end _SMITHY_.addLevel = function (uid, ammount) local level = _SMITHY_.getLevel(uid) return setPlayerStorageValue(uid, 58912, level + ammount) end _SMITHY_.getExpToNextLevel = function (uid) return _SMITHY_.getExpLevel(_SMITHY_.getLevel(uid) + 1) end _SMITHY_.getExpLevel = function (level) return level * (_SMITHY_.exp_b) + (level - 1* (_SMITHY_.exp_b)) end _SMITHY_.setExp = function (uid, ammount) return setPlayerStorageValue(uid, 58913, ammount) end _SMITHY_.addExp = function (uid, ammount) local xp = _SMITHY_.getExp(uid) return _SMITHY_.setExp(uid, xp + ammount) end function getAllItemsInPos(pos, block) local results = {} for _ = 1, 255 do local findPos = {x = pos.x, y = pos.y, z = pos.z, stackpos = _} local item = getThingFromPos(findPos) if (not isInArray(block, item.itemid)) and (item.uid > 1) then table.insert(results, item) end end return results end
     
    #Configuração
     

    -- Mercenary Sword [2] = {dif = 10, -- Dificuldade para forjar o item(Influencia na experiência ganha) re = { -- RECEITA DO ITEM -- ID, QUANTIDADE {2401, 1}, {9971, 5}, {5887, 3}, {5892, 2}, }, -- RESULTADO DA FORJA -- ID, QUANTIDADE ma = {7386, 1} },
     
    Bye [:
  4. Upvote
    MaXwEllDeN deu reputação a iunix em Aulas Básicas Com O Sr. Iunix: 2# Lógica, Algorítimos E Organização   
    Hoje vamos dar continuidade as aulas. Aprenderemos Lógica, Algorítimos e Organização, que para mim são as coisas básicas que TODO programador deve conhecer.
     
     

    Lógica de Programação






     

     



     
    O que é Lógica de Programação?
     
    é uma sequencia de pensamentos com fim de atingir determinado resultado. E esses pensamentos, podem ser usados para construir uma sequencia lógica, afim de executar uma ação da maneira mais simples o possível. Isso é o conceito básico de lógica de programação.
     
     
     

    Algorítimos






     
    Agora começa a parte divertida. Algorítimo é uma sequencia de comandos(instruções) para executar tal ação, como uma receita que sua mãe usa para fazer bolos.
     
    Quaisquer sequencias de instruções podem ser consideradas algorítimos.
     
    "Algorítimo de Chupar uma bala".

    • Pegar a bala • Retirar o papel • Chupar a bala • Jogar o papel no lixo
     
    Todos algorítimos devem ser simples e objetivos.
     
     

    Organização






     
     
    Essa é uma parte realmente "importante": (O Mock deveria ler isso todo dia, falo mesmo)
     
    Endentação:
    Endentação, identação ou edentação, é o espaçamento no inicio de qualquer paragrafo, afim de diferenciar e melhorar a visualização dos escopos do algorítimo.
     
    Código sem indentação (Na verdade ele tem, mas eu tirei para usar de exemplo)

    function doPlayerAddAchiev(cid, achievid) local pid = getPlayerGUID(cid) local value = tonumber(getPlayerAchievById(cid, achievid)) if value == -1 then return true end if value == 0 then db.executeQuery("INSERT INTO `achievements` (`player_id`, `achievement_id`, `value`) VALUES ('"..pid.."', '"..achievid.."', '1');") end if (tonumber(getPlayerAchievById(cid, achievid)) >= achievs[achievid].qt) then doPlayerSendTextMessage(cid,22, 'Você recebeu a conquista "'..achievs[achievid].name..'"') db.executeQuery("UPDATE `achievements` SET `value` = ".. -1 .." WHERE `player_id`= " .. pid .. " AND `achievement_id`= " .. achievid .. ";") doPlayerAddAchievPoint(cid, achievs[achievid].pt) else db.executeQuery("UPDATE `achievements` SET `value` = ".. (tonumber(getPlayerAchievById(cid, achievid))) + 1 .." WHERE `player_id`= " .. pid .. " AND `achievement_id`= " .. achievid .. ";") end doPlayerSave(cid) return true end
     
     
    Código com identação:

    function doPlayerAddAchiev(cid, achievid) local pid = getPlayerGUID(cid) local value = tonumber(getPlayerAchievById(cid, achievid)) if value == -1 then return true end if value == 0 then db.executeQuery("INSERT INTO `achievements` (`player_id`, `achievement_id`, `value`) VALUES ('"..pid.."', '"..achievid.."', '1');") end if (tonumber(getPlayerAchievById(cid, achievid)) >= achievs[achievid].qt) then doPlayerSendTextMessage(cid,22, 'Você recebeu a conquista "'..achievs[achievid].name..'"') db.executeQuery("UPDATE `achievements` SET `value` = ".. -1 .." WHERE `player_id`= " .. pid .. " AND `achievement_id`= " .. achievid .. ";") doPlayerAddAchievPoint(cid, achievs[achievid].pt) else db.executeQuery("UPDATE `achievements` SET `value` = ".. (tonumber(getPlayerAchievById(cid, achievid))) + 1 .." WHERE `player_id`= " .. pid .. " AND `achievement_id`= " .. achievid .. ";") end doPlayerSave(cid) return true end
     
    Dá para perceber uma diferença bem grande na parte de visualização, certo?
     
     
    Nomenclatura:
     
    Essa é outra parte importante que poucos prestam atenção. Você deve criar os códigos para os OUTROS (mesmo que você não for liberar ele), e você deve imaginar que TODO mundo não entende nada de programação. Por isso, você deve usar nomes simples e sugestivos.
     
     
    Você NUNCA deve usar nomes assim:

    local var_que_solta_raio_lasers_e_panz = 12
     
    Tente sempre ser sugestivo, nomes mais simples:

    local quantidade_de_stones = 12
     
     
    Comentários:
     
    Essa é uma das partes mais importantes, na minha opinião. Sempre que for começar alguma ação ou escopo, comente no final da 1º Linha o que ele faz, como ele faz e por que ele faz. Como eu já disse, você deve pensar que está programando para pessoas leigas.
     
    Sem comentário:

    function doPlayerAddAchiev(cid, achievid) local pid = getPlayerGUID(cid) local value = tonumber(getPlayerAchievById(cid, achievid)) if value == -1 then return true end if value == 0 then db.executeQuery("INSERT INTO `achievements` (`player_id`, `achievement_id`, `value`) VALUES ('"..pid.."', '"..achievid.."', '1');") end if (tonumber(getPlayerAchievById(cid, achievid)) >= achievs[achievid].qt) then doPlayerSendTextMessage(cid,22, 'Você recebeu a conquista "'..achievs[achievid].name..'"') db.executeQuery("UPDATE `achievements` SET `value` = ".. -1 .." WHERE `player_id`= " .. pid .. " AND `achievement_id`= " .. achievid .. ";") doPlayerAddAchievPoint(cid, achievs[achievid].pt) else db.executeQuery("UPDATE `achievements` SET `value` = ".. (tonumber(getPlayerAchievById(cid, achievid))) + 1 .." WHERE `player_id`= " .. pid .. " AND `achievement_id`= " .. achievid .. ";") end doPlayerSave(cid) return true end
     
     
    Com Comentário:

    function doPlayerAddAchiev(cid, achievid) local pid = getPlayerGUID(cid) -- declaração da variavel com GUID do player. local value = tonumber(getPlayerAchievById(cid, achievid)) -- Declaração da váriavel que irá conter o valor do Achiev. if value == -1 then return true end -- Se o valor for 0, então ele irá retornar true e irá parar o código aqui. if value == 0 then db.executeQuery("INSERT INTO `achievements` (`player_id`, `achievement_id`, `value`) VALUES ('"..pid.."', '"..achievid.."', '1');") end -- Se ele for 0, então ele irá mudar o valor para 1. if (tonumber(getPlayerAchievById(cid, achievid)) >= achievs[achievid].qt) then -- Se o valor for maior ou igual ao valor da tabela, então ele irá executar o escopo. doPlayerSendTextMessage(cid,22, 'Você recebeu a conquista "'..achievs[achievid].name..'"') db.executeQuery("UPDATE `achievements` SET `value` = ".. -1 .." WHERE `player_id`= " .. pid .. " AND `achievement_id`= " .. achievid .. ";") doPlayerAddAchievPoint(cid, achievs[achievid].pt) else -- Se não, ele executará esse escopo. db.executeQuery("UPDATE `achievements` SET `value` = ".. (tonumber(getPlayerAchievById(cid, achievid))) + 1 .." WHERE `player_id`= " .. pid .. " AND `achievement_id`= " .. achievid .. ";") end doPlayerSave(cid) return true end
     
     
     
     
     

    Finalização






     
    Espero que tenham gostado dessa aula, tentei ser direto e simplório. Porém eu falei só sobre o básico, só a ponta do iceberg. Quem tiver mais interesse, o google tem milhares de apostilas sobre Algorítimos de Lógica de Programação.
     
     
    Link da primeira aula:
    http://www.xtibia.com/forum/topic/201079-aulas-basicas-com-o-sr-iunix-1-lua-o-que-e
  5. Upvote
    MaXwEllDeN recebeu reputação de caotic em [Mpm] Max's Player Manager   
    Olá galerinha , hoje estou passando aqui para mostrar como está indo um projeto meu o MPM(Max's Player Manager), ele vai servir para gerenciar os personagens do seu servidor, editar nome, conta, outfit, vocação, town, posição e coisas do tipo. Estou fazendo ele mais para estudar uma biblioteca gráfica que C++ possui, a wxWidgets. Aí vão algumas screenshots, está bem no começo ainda.. Futuramente vou atualizando no meu Website(só pra postar algumas bagaças mesmo), que pode ser acessado pelo Banner na minha assinatura. 
    Abraços.
  6. Upvote
    MaXwEllDeN recebeu reputação de Augusto em Existe   
    Não mandei ele se fuder, nem nada do tipo, verdade que eu falei merda e deveria ter aceitado numa boa, o que ele comentou, mas ele veio fazendo pre-suposições, não? Não só ele, mas como quase todos que postaram aqui.
     
    Como ele viu se eu estava me prendendo a uma "ideia errada" se eu nem dei nenhuma ideia? Só vim mostrar meu sistema operacional, e lá vem 78912789 negos falando que me acho hacker, bla bla bla, sou fanatico por uma linguagem de programação, blablabla, bem, acho que todos, inclusive eu deveriam pensar melhor antes de falar algo, não? E você aí que vem chamar os outros merda, blablabla e ainda quer falar dos outros? Por favor né cara, construa seu carácter antes de falar dos outros, ok?
     
  7. Upvote
    MaXwEllDeN recebeu reputação de SkyDangerous em Existe   
    Pois é Augusto ^^
     
     
    Se o cara tem 490374309473897x a mais de conhecimento que eu, parabéns pra ele, que Deus abençoe e que ele tenha muito sucesso na vida, simples, ele expressou a opinião dele e eu a minha.
     
    Mas me responde uma coisa: Você acha que seu pensamento, as merdas que você fala ou pensa me afetam de algum modo? PQP hein, se quer me atingir faz de um jeito que seja efetivo cara, assim você só tá parecendo um idiota, falando 789123789 besteiras e sendo infantil.
     
    Como eu já falei, o cara expressou a opinião dele e eu a minha, simples, não gostou, sai do tópico. FLW!
  8. Upvote
    MaXwEllDeN recebeu reputação de Demonbholder em Soul System   
    Obrigado por avisar! Ajeitei já (:
     
     
     
    Como assim tudo errado? Por que conteúdo inadequado? '-'
  9. Upvote
    MaXwEllDeN recebeu reputação de ScythePhantom em Soul System   
    #Introdução
    O Sistema é basicamente isso:
    Você usa uma pedra de alma em um monstro morto a pouco tempo você aprisiona a alma dele na pedra, e ela pode ser usada para:
    Trazer o monstro a vida novamente;
    Encantar armas com a alma dos monstros para que elas dêem ataque extra à sua arma;
    Usar uma aura que te protege atacando criaturas que te causam perigo!

    #Instalação
     

     
    Primeiro faça o download do sistema e cole na pasta do seu executável.
     
    Pronto, tá instalado.
     
    #Configurações
     

    1. Aura System  

    #1.1 Adicionando Nova Soul  
     
     

    souls = { L_Soul.auras = { ["dark"] = {stones_n = 7, damage = {25, 250}, interval = 1200, duration = 120, raio = 4, speed = 150}, ["flame"] = {stones_n = 5, damage = {250, 650}, interval = 500, duration = 60, raio = 7, speed = 75}, ["frozen"] = {stones_n = 2, damage = {150, 350}, interval = 750, duration = 60, raio = 2, speed = 150}, ["electric"] = {stones_n = 5, damage = {150, 350}, interval = 750, duration = 60, raio = 2, speed = 150}, ["holy"] = {stones_n = 0, damage = {150, 350}, interval = 750, duration = 60, raio = 7, speed = 150}, }
     
     
     
     
     
     

    #1.2 Adicionando Nova Aura  
     

    souls = { L_Soul.auras = { ["dark"] = {stones_n = 7, damage = {25, 250}, interval = 1200, duration = 120, raio = 4, speed = 150}, ["flame"] = {stones_n = 5, damage = {250, 650}, interval = 500, duration = 60, raio = 7, speed = 75}, ["frozen"] = {stones_n = 2, damage = {150, 350}, interval = 750, duration = 60, raio = 2, speed = 150}, ["electric"] = {stones_n = 5, damage = {150, 350}, interval = 750, duration = 60, raio = 2, speed = 150}, ["holy"] = {stones_n = 0, damage = {150, 350}, interval = 750, duration = 60, raio = 7, speed = 150}, }
     
     
     

    #2 Reborn System  

    #2.1 Adicionando nova criatura  
    ["Necromancer"] = {chance = 50, type = "dark", summ = { hp = {hpb = 50, maxb = 700}, needSoulPoints = 50, needMana = 0, needHealth = 20, minP = 50, }, enchant = {charges = 100, min = 10, max = 60, attack_speed = 250}, },  
     
     
     

    #3 Enchanting System  
    #3.1 Adicionando novo item para encantar
     
    #Vídeo de demonstração do sistema de aura
     


    Aos poucos vou adicionando mais informações sobre como se faz para configurar
  10. Upvote
    MaXwEllDeN recebeu reputação de AnneMotta em [Ctf] Capture The Flag   
    #Introdução
     
    Este é um sistema de rouba bandeira, no qual tem dois times, que se enfrentam e tentam se infiltrar na fortaleza do inimigo, roubar a bandeira dele e retornar para sua base com ela.
     
     
     
    #Instalação
     
    Faça o download do sistema e cole na pasta do seu servidor.
     

     
    Após ter instalado os arquivos nas suas respectivas pastas abra a pasta do seu servidor, e em seguida abra a pasta spells/scripts/support, e abra o arquivo invisible.lua com algum editor de texto, depois de
     

    function onCastSpell(cid, var)
     
    cole isso:
     

    if (getPlayerStorageValue(cid, _CTF_LIB.teamssto) > 0) then return doPlayerSendCancel(cid, "Você não pode usar invisible durante o CTF!") and doSendMagicEffect(getThingPos(cid), 2) end
     
    ficando assim:
     

    local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local condition = createConditionObject(CONDITION_INVISIBLE) setConditionParam(condition, CONDITION_PARAM_TICKS, 200000) setCombatCondition(combat, condition) function onCastSpell(cid, var) if (getPlayerStorageValue(cid, _CTF_LIB.teamssto) > 0) then return doPlayerSendCancel(cid, "Você não pode usar invisible durante o CTF!") and doSendMagicEffect(getThingPos(cid), 2) end return doCombat(cid, combat, var) end
     
    #Configuração
    Como na maioria dos meus códigos: as configurações ficam na lib, então:
     

    _CTF_LIB.flags = { [_CTF_LIB.redid] = {pos = {x = 744, y = 638, z = 6}, posEflag = {x = 744, y = 644, z = 6}, id = 1435, color = 180, na = "Vermelho", temple = 3,
     
     

    temple = 3,
    Esse é o id do templo que os players do time vermelho serão teletransportados.
     

    pos = {x = 744, y = 638, z = 6},
     
    Posição de onde a bandeira do time fica
     

    posEflag = {x = 744, y = 644, z = 6},
    Posição de onde os players do time entregam a bandeira.
     

    winp = 2, recompCTF = {{2160, 2}}, nopen = true, -- Precisa usar o comando para abrir? false não true sim TownExit = 1, -- Templo que o player será teletransportado quando acabar o evento ou ele sair dele. price = false, -- Preço para entrar no Evento, caso não precise Digite false.
     

    winp = 2, recompCTF = {{2160, 2}},
    winp : pontos que um time precisará fazer para ganhar o evento.
    recompCTF: recompensa que o time ganhará ao vencer o CTF. para adicionar mais só é você fzer assim:
     

    recompCTF = {{2160, 2}, {7542, 1}},
    2160 é o id do item que vai adicionar, e 2 é a quantidade.
    7542 é o id do item que vai adicionar, e 1, é a quantidade.
     

    nopen = true, -- Precisa usar o comando para abrir? false não true sim
    se precisar usar o comando /ctf open para abrir o evento coloque true, se não precisar coloque false.
     

    TownExit = 1, -- Templo que o player será teletransportado quando acabar o evento ou ele sair dele. price = false, -- Preço para entrar no Evento, caso não precise Digite false.
    TownExit: id do templo que o player será teletransportado quando ele sair do evento ou quando o adm usar /ctf close.
    price: preço para entrar no evento em gold coins, caso não precise deixe false.
     
    Não esqueçam de criar um teleport dentro do evento, com a actionid 47521, caso os players queiram sair do evento
     
    E aqui acabamos mais um código.. '-' Flw ae xD .
    Qualquer bug não se acanhe em falar
     
    Abraço.
  11. Upvote
    MaXwEllDeN recebeu reputação de Demonbholder em Soul System   
    #Introdução
    O Sistema é basicamente isso:
    Você usa uma pedra de alma em um monstro morto a pouco tempo você aprisiona a alma dele na pedra, e ela pode ser usada para:
    Trazer o monstro a vida novamente;
    Encantar armas com a alma dos monstros para que elas dêem ataque extra à sua arma;
    Usar uma aura que te protege atacando criaturas que te causam perigo!

    #Instalação
     

     
    Primeiro faça o download do sistema e cole na pasta do seu executável.
     
    Pronto, tá instalado.
     
    #Configurações
     

    1. Aura System  

    #1.1 Adicionando Nova Soul  
     
     

    souls = { L_Soul.auras = { ["dark"] = {stones_n = 7, damage = {25, 250}, interval = 1200, duration = 120, raio = 4, speed = 150}, ["flame"] = {stones_n = 5, damage = {250, 650}, interval = 500, duration = 60, raio = 7, speed = 75}, ["frozen"] = {stones_n = 2, damage = {150, 350}, interval = 750, duration = 60, raio = 2, speed = 150}, ["electric"] = {stones_n = 5, damage = {150, 350}, interval = 750, duration = 60, raio = 2, speed = 150}, ["holy"] = {stones_n = 0, damage = {150, 350}, interval = 750, duration = 60, raio = 7, speed = 150}, }
     
     
     
     
     
     

    #1.2 Adicionando Nova Aura  
     

    souls = { L_Soul.auras = { ["dark"] = {stones_n = 7, damage = {25, 250}, interval = 1200, duration = 120, raio = 4, speed = 150}, ["flame"] = {stones_n = 5, damage = {250, 650}, interval = 500, duration = 60, raio = 7, speed = 75}, ["frozen"] = {stones_n = 2, damage = {150, 350}, interval = 750, duration = 60, raio = 2, speed = 150}, ["electric"] = {stones_n = 5, damage = {150, 350}, interval = 750, duration = 60, raio = 2, speed = 150}, ["holy"] = {stones_n = 0, damage = {150, 350}, interval = 750, duration = 60, raio = 7, speed = 150}, }
     
     
     

    #2 Reborn System  

    #2.1 Adicionando nova criatura  
    ["Necromancer"] = {chance = 50, type = "dark", summ = { hp = {hpb = 50, maxb = 700}, needSoulPoints = 50, needMana = 0, needHealth = 20, minP = 50, }, enchant = {charges = 100, min = 10, max = 60, attack_speed = 250}, },  
     
     
     

    #3 Enchanting System  
    #3.1 Adicionando novo item para encantar
     
    #Vídeo de demonstração do sistema de aura
     


    Aos poucos vou adicionando mais informações sobre como se faz para configurar
  12. Upvote
    MaXwEllDeN recebeu reputação de Slicer em Soul System   
    #Introdução
    O Sistema é basicamente isso:
    Você usa uma pedra de alma em um monstro morto a pouco tempo você aprisiona a alma dele na pedra, e ela pode ser usada para:
    Trazer o monstro a vida novamente;
    Encantar armas com a alma dos monstros para que elas dêem ataque extra à sua arma;
    Usar uma aura que te protege atacando criaturas que te causam perigo!

    #Instalação
     

     
    Primeiro faça o download do sistema e cole na pasta do seu executável.
     
    Pronto, tá instalado.
     
    #Configurações
     

    1. Aura System  

    #1.1 Adicionando Nova Soul  
     
     

    souls = { L_Soul.auras = { ["dark"] = {stones_n = 7, damage = {25, 250}, interval = 1200, duration = 120, raio = 4, speed = 150}, ["flame"] = {stones_n = 5, damage = {250, 650}, interval = 500, duration = 60, raio = 7, speed = 75}, ["frozen"] = {stones_n = 2, damage = {150, 350}, interval = 750, duration = 60, raio = 2, speed = 150}, ["electric"] = {stones_n = 5, damage = {150, 350}, interval = 750, duration = 60, raio = 2, speed = 150}, ["holy"] = {stones_n = 0, damage = {150, 350}, interval = 750, duration = 60, raio = 7, speed = 150}, }
     
     
     
     
     
     

    #1.2 Adicionando Nova Aura  
     

    souls = { L_Soul.auras = { ["dark"] = {stones_n = 7, damage = {25, 250}, interval = 1200, duration = 120, raio = 4, speed = 150}, ["flame"] = {stones_n = 5, damage = {250, 650}, interval = 500, duration = 60, raio = 7, speed = 75}, ["frozen"] = {stones_n = 2, damage = {150, 350}, interval = 750, duration = 60, raio = 2, speed = 150}, ["electric"] = {stones_n = 5, damage = {150, 350}, interval = 750, duration = 60, raio = 2, speed = 150}, ["holy"] = {stones_n = 0, damage = {150, 350}, interval = 750, duration = 60, raio = 7, speed = 150}, }
     
     
     

    #2 Reborn System  

    #2.1 Adicionando nova criatura  
    ["Necromancer"] = {chance = 50, type = "dark", summ = { hp = {hpb = 50, maxb = 700}, needSoulPoints = 50, needMana = 0, needHealth = 20, minP = 50, }, enchant = {charges = 100, min = 10, max = 60, attack_speed = 250}, },  
     
     
     

    #3 Enchanting System  
    #3.1 Adicionando novo item para encantar
     
    #Vídeo de demonstração do sistema de aura
     


    Aos poucos vou adicionando mais informações sobre como se faz para configurar
  13. Upvote
    MaXwEllDeN recebeu reputação de milbradt em Soul System   
    #Introdução
    O Sistema é basicamente isso:
    Você usa uma pedra de alma em um monstro morto a pouco tempo você aprisiona a alma dele na pedra, e ela pode ser usada para:
    Trazer o monstro a vida novamente;
    Encantar armas com a alma dos monstros para que elas dêem ataque extra à sua arma;
    Usar uma aura que te protege atacando criaturas que te causam perigo!

    #Instalação
     

     
    Primeiro faça o download do sistema e cole na pasta do seu executável.
     
    Pronto, tá instalado.
     
    #Configurações
     

    1. Aura System  

    #1.1 Adicionando Nova Soul  
     
     

    souls = { L_Soul.auras = { ["dark"] = {stones_n = 7, damage = {25, 250}, interval = 1200, duration = 120, raio = 4, speed = 150}, ["flame"] = {stones_n = 5, damage = {250, 650}, interval = 500, duration = 60, raio = 7, speed = 75}, ["frozen"] = {stones_n = 2, damage = {150, 350}, interval = 750, duration = 60, raio = 2, speed = 150}, ["electric"] = {stones_n = 5, damage = {150, 350}, interval = 750, duration = 60, raio = 2, speed = 150}, ["holy"] = {stones_n = 0, damage = {150, 350}, interval = 750, duration = 60, raio = 7, speed = 150}, }
     
     
     
     
     
     

    #1.2 Adicionando Nova Aura  
     

    souls = { L_Soul.auras = { ["dark"] = {stones_n = 7, damage = {25, 250}, interval = 1200, duration = 120, raio = 4, speed = 150}, ["flame"] = {stones_n = 5, damage = {250, 650}, interval = 500, duration = 60, raio = 7, speed = 75}, ["frozen"] = {stones_n = 2, damage = {150, 350}, interval = 750, duration = 60, raio = 2, speed = 150}, ["electric"] = {stones_n = 5, damage = {150, 350}, interval = 750, duration = 60, raio = 2, speed = 150}, ["holy"] = {stones_n = 0, damage = {150, 350}, interval = 750, duration = 60, raio = 7, speed = 150}, }
     
     
     

    #2 Reborn System  

    #2.1 Adicionando nova criatura  
    ["Necromancer"] = {chance = 50, type = "dark", summ = { hp = {hpb = 50, maxb = 700}, needSoulPoints = 50, needMana = 0, needHealth = 20, minP = 50, }, enchant = {charges = 100, min = 10, max = 60, attack_speed = 250}, },  
     
     
     

    #3 Enchanting System  
    #3.1 Adicionando novo item para encantar
     
    #Vídeo de demonstração do sistema de aura
     


    Aos poucos vou adicionando mais informações sobre como se faz para configurar
  14. Upvote
    MaXwEllDeN recebeu reputação de PostadorHunter em Soul System   
    #Introdução
    O Sistema é basicamente isso:
    Você usa uma pedra de alma em um monstro morto a pouco tempo você aprisiona a alma dele na pedra, e ela pode ser usada para:
    Trazer o monstro a vida novamente;
    Encantar armas com a alma dos monstros para que elas dêem ataque extra à sua arma;
    Usar uma aura que te protege atacando criaturas que te causam perigo!

    #Instalação
     

     
    Primeiro faça o download do sistema e cole na pasta do seu executável.
     
    Pronto, tá instalado.
     
    #Configurações
     

    1. Aura System  

    #1.1 Adicionando Nova Soul  
     
     

    souls = { L_Soul.auras = { ["dark"] = {stones_n = 7, damage = {25, 250}, interval = 1200, duration = 120, raio = 4, speed = 150}, ["flame"] = {stones_n = 5, damage = {250, 650}, interval = 500, duration = 60, raio = 7, speed = 75}, ["frozen"] = {stones_n = 2, damage = {150, 350}, interval = 750, duration = 60, raio = 2, speed = 150}, ["electric"] = {stones_n = 5, damage = {150, 350}, interval = 750, duration = 60, raio = 2, speed = 150}, ["holy"] = {stones_n = 0, damage = {150, 350}, interval = 750, duration = 60, raio = 7, speed = 150}, }
     
     
     
     
     
     

    #1.2 Adicionando Nova Aura  
     

    souls = { L_Soul.auras = { ["dark"] = {stones_n = 7, damage = {25, 250}, interval = 1200, duration = 120, raio = 4, speed = 150}, ["flame"] = {stones_n = 5, damage = {250, 650}, interval = 500, duration = 60, raio = 7, speed = 75}, ["frozen"] = {stones_n = 2, damage = {150, 350}, interval = 750, duration = 60, raio = 2, speed = 150}, ["electric"] = {stones_n = 5, damage = {150, 350}, interval = 750, duration = 60, raio = 2, speed = 150}, ["holy"] = {stones_n = 0, damage = {150, 350}, interval = 750, duration = 60, raio = 7, speed = 150}, }
     
     
     

    #2 Reborn System  

    #2.1 Adicionando nova criatura  
    ["Necromancer"] = {chance = 50, type = "dark", summ = { hp = {hpb = 50, maxb = 700}, needSoulPoints = 50, needMana = 0, needHealth = 20, minP = 50, }, enchant = {charges = 100, min = 10, max = 60, attack_speed = 250}, },  
     
     
     

    #3 Enchanting System  
    #3.1 Adicionando novo item para encantar
     
    #Vídeo de demonstração do sistema de aura
     


    Aos poucos vou adicionando mais informações sobre como se faz para configurar
  15. Upvote
    MaXwEllDeN recebeu reputação de rechdanfr em Level Points   
    #Introdução
     
    Este é um sistema muito simples e básico que eu fiz baseando-me no jogo Mu Online, no qual ao avançar de nível você ganha pontos que podem ser distribuídos para aumentar seus "stats".
     
     
    #Instalação
     
     

     
    Faça o download do sistema e cole na pasta do seu servidor.
     
    @Creaturescripts
     
    Depois abra a pasta creaturescripts/scripts que fica dentro da pasta data do seu servidor, abra o arquivo login.lua, com algum editor de texto, e lá no final antes do último return true cole a seguinte linha:
     

    registerCreatureEvent(cid, "PointSystem")
     
    #Configuração
     
    No arquivo PointsSystem.lua da pasta lib
     

    L_LvlPoints = { vocPoints = { -- [skill] = Pontos que ganha, [1] = 3, [2] = 3, [3] = 3, [4] = 5, [5] = 5, [6] = 5, [7] = 5, [8] = 8, },
     
    entre Colchetes fica o id da vocation, e depois do sinal de igualdade a quantidade de pontos que ele ganhará por level que for upado.
     

    attributes = { ["vitalidade"] = {np = 2, vl = 5, nm = "Hit Points"}, -- Precisa usar 2 points para adicionar 10 de hp ["energy"] = {np = 4, vl = 2, nm = "Mana Points"}, ["magic"] = {np = 30, vl = 1, nm = "Magic Level"}, ["shielding"] = {np = 40, vl = 1, nm = "Shielding Skill"}, ["sword"] = {np = 20, vl = 1, nm = "Sword Skill"}, ["axe"] = {np = 20, vl = 1, nm = "Axe Skill"}, ["club"] = {np = 20, vl = 1, nm = "Club Skill"}, ["distance"] = {np = 20, vl = 1, nm = "Distance Skill"}, }
     
    np - quantidade de pontos para adicionar o stat
    vl - quanto vai adicioanar pelo np. Exemplo:
     

    ["vitalidade"] = {np = 2, vl = 5, nm = "Hit Points"}
     
    Com 2 pontos eu compro 5 de HP
     
    É isso ai galera, bye bye
  16. Upvote
    MaXwEllDeN deu reputação a jhon992 em [Pedido] Anti-Bot Diferente   
    faz assim, ajeitei ali em cima o último substitui o anthhab do globalevents pelo último que postei e vê se funciona, se não funcionar me reporta os erros!
  17. Upvote
    MaXwEllDeN recebeu reputação de muriloot1 em Preciso De Uma Alavanca Que Troca Um Item!   
    local config = { pos = {x = 160, y = 54, z =7}, -- Posição do item id_antigo = 2154, -- Item que vai ser transformado id_novo = 2160, -- Item que se tornará } function onUse(cid) local its = {} for a = 1, 255 do local pos = {x = config.pos.x, y = config.pos.y, z = config.pos.z, stackpos = a} if ((getThingFromPos(pos).uid > 0) and (getThingFromPos(pos).itemid == config.id_antigo)) then doTransformItem(getThingFromPos(pos).uid, config.id_novo) end end return true end
  18. Upvote
    MaXwEllDeN deu reputação a SkyDangerous em Pvp System Control   
    Função:
    Você pode alterar o seu tipo de pvp, utilizando o comando !pvp on, para conseguirem te atacar e !pvp off para não te atacarem
     
    SQL QUERY

    ALTER TABLE `players` ADD `pvpmode` BOOL NOT NULL ;
     
     
    em data/lib/function.lua

    function getPlayerPVPMode(uid) local result = db.getResult("SELECT `pvpmode` FROM `players` WHERE `name` = '" .. getPlayerName(uid) .. "' LIMIT 1;") if(result:getID() ~= -1) then local mode = result:getDataInt("pvpmode") return mode else return FALSE end result:free() end function setPlayerPVPMode(uid, value) if (value >= 0 and value <= 1) then if isPlayer(uid) == TRUE then db.executeQuery("UPDATE `players` SET `pvpmode` = " .. value .. " WHERE `name`='" .. getPlayerName(uid) .. "' LIMIT 1;") return TRUE else return FALSE end else return FALSE end end
     
     
    data/talkactions/scripts/pvpmode.lua

    function onSay(cid, words, param) local mode = getPlayerPVPMode(cid) if mode == 1 then setMode = 0 else setMode = 1 end if isPlayerPzLocked(cid) == FALSE and getCreatureSkullType(cid) == SKULL_NONE then setPlayerPVPMode(cid, setMode) if setMode == 1 then doPlayerSendTextMessage(cid, 19, "Now you set pvp mode to on!") else doPlayerSendTextMessage(cid, 19, "Now you set pvp mode to off!") end else doPlayerSendCancel(cid, "You cannot set pvp mode when you are agressive.") end return TRUE end
     
    talkactions.xml

    <talkaction log="no" words="!pvp" access="0" event="script" value="pvpmode.lua">
     
    login.lua

    registerCreatureEvent(cid, "PVPMode")
     
    data/creaturescripts/scripts/pvpProtection.lua

    function onCombat(cid, target) if (getPlayerPVPMode(cid) == 1 and getPlayerPVPMode(target) == 1) or isPlayer(target) == FALSE then return TRUE else doPlayerSendCancel(cid, "You cannot attack players which pvp mode is off.") return FALSE end end
     
    creaturescripts.xml

    <event type="combat" name="PVPMode" event="script" value="pvpProtection.lua"> </event></talkaction>
     

    Credits



    Gevox


  19. Upvote
    MaXwEllDeN recebeu reputação de guaixara em Level Points   
    #Introdução
     
    Este é um sistema muito simples e básico que eu fiz baseando-me no jogo Mu Online, no qual ao avançar de nível você ganha pontos que podem ser distribuídos para aumentar seus "stats".
     
     
    #Instalação
     
     

     
    Faça o download do sistema e cole na pasta do seu servidor.
     
    @Creaturescripts
     
    Depois abra a pasta creaturescripts/scripts que fica dentro da pasta data do seu servidor, abra o arquivo login.lua, com algum editor de texto, e lá no final antes do último return true cole a seguinte linha:
     

    registerCreatureEvent(cid, "PointSystem")
     
    #Configuração
     
    No arquivo PointsSystem.lua da pasta lib
     

    L_LvlPoints = { vocPoints = { -- [skill] = Pontos que ganha, [1] = 3, [2] = 3, [3] = 3, [4] = 5, [5] = 5, [6] = 5, [7] = 5, [8] = 8, },
     
    entre Colchetes fica o id da vocation, e depois do sinal de igualdade a quantidade de pontos que ele ganhará por level que for upado.
     

    attributes = { ["vitalidade"] = {np = 2, vl = 5, nm = "Hit Points"}, -- Precisa usar 2 points para adicionar 10 de hp ["energy"] = {np = 4, vl = 2, nm = "Mana Points"}, ["magic"] = {np = 30, vl = 1, nm = "Magic Level"}, ["shielding"] = {np = 40, vl = 1, nm = "Shielding Skill"}, ["sword"] = {np = 20, vl = 1, nm = "Sword Skill"}, ["axe"] = {np = 20, vl = 1, nm = "Axe Skill"}, ["club"] = {np = 20, vl = 1, nm = "Club Skill"}, ["distance"] = {np = 20, vl = 1, nm = "Distance Skill"}, }
     
    np - quantidade de pontos para adicionar o stat
    vl - quanto vai adicioanar pelo np. Exemplo:
     

    ["vitalidade"] = {np = 2, vl = 5, nm = "Hit Points"}
     
    Com 2 pontos eu compro 5 de HP
     
    É isso ai galera, bye bye
  20. Upvote
    MaXwEllDeN recebeu reputação de caotic em Level Points   
    #Introdução
     
    Este é um sistema muito simples e básico que eu fiz baseando-me no jogo Mu Online, no qual ao avançar de nível você ganha pontos que podem ser distribuídos para aumentar seus "stats".
     
     
    #Instalação
     
     

     
    Faça o download do sistema e cole na pasta do seu servidor.
     
    @Creaturescripts
     
    Depois abra a pasta creaturescripts/scripts que fica dentro da pasta data do seu servidor, abra o arquivo login.lua, com algum editor de texto, e lá no final antes do último return true cole a seguinte linha:
     

    registerCreatureEvent(cid, "PointSystem")
     
    #Configuração
     
    No arquivo PointsSystem.lua da pasta lib
     

    L_LvlPoints = { vocPoints = { -- [skill] = Pontos que ganha, [1] = 3, [2] = 3, [3] = 3, [4] = 5, [5] = 5, [6] = 5, [7] = 5, [8] = 8, },
     
    entre Colchetes fica o id da vocation, e depois do sinal de igualdade a quantidade de pontos que ele ganhará por level que for upado.
     

    attributes = { ["vitalidade"] = {np = 2, vl = 5, nm = "Hit Points"}, -- Precisa usar 2 points para adicionar 10 de hp ["energy"] = {np = 4, vl = 2, nm = "Mana Points"}, ["magic"] = {np = 30, vl = 1, nm = "Magic Level"}, ["shielding"] = {np = 40, vl = 1, nm = "Shielding Skill"}, ["sword"] = {np = 20, vl = 1, nm = "Sword Skill"}, ["axe"] = {np = 20, vl = 1, nm = "Axe Skill"}, ["club"] = {np = 20, vl = 1, nm = "Club Skill"}, ["distance"] = {np = 20, vl = 1, nm = "Distance Skill"}, }
     
    np - quantidade de pontos para adicionar o stat
    vl - quanto vai adicioanar pelo np. Exemplo:
     

    ["vitalidade"] = {np = 2, vl = 5, nm = "Hit Points"}
     
    Com 2 pontos eu compro 5 de HP
     
    É isso ai galera, bye bye
  21. Upvote
    MaXwEllDeN deu reputação a Valentine em [Creaturescripts] Resurrection   
    Explicação:
     
    O Player tem um Item na Bag, que ao ser usado salva como Respawn a posição em que ele se encontra, o Item desaparece.
    Agora, o Player tem outro Item diferente na Bag, este não pode ser usado. Quando o Player morrer, será imediatamente teleportado para a posição de Respawn.
    Caso o Player tenha salvado a posição, e não tenha o segundo Item (que faz renascer), será teleportado para uma posição fixa (o real Templo).
     
     
    O Script:
     
    Será dividido em duas partes, o CreatureScript, que vai verificar se o Player possui o Item, caso verdadeiro, ressucitará:
     

    local item_id = 999 local count = 1 local temple = {x=999, y=999, z=9} function onDeath(cid, corpse, deathList) if isPlayer(cid) then if getPlayerItemCount(cid,item_id) >= 1 then if doPlayerRemoveItem(cid,item_id,count) then doSendMagicEffect(getPlayerPosition(cid), 10) doPlayerSendTextMessage(cid, 23, "Reborn from the ashes.") end else doPlayerSetMasterPos(cid, temple) doTeleportThing(cid,c) doSendMagicEffect(getPlayerPosition(cid), 10) end end end
     
    E a Tag:
     

    <event type="death" name="Resurrection" event="script" value="resurrection.lua">
     
     
    E a segunda parte, Action que salva a posição do Player atravéz de um Item:
     

    function onUse(cid, item, pos) newpos = getPlayerPosition(cid) if doPlayerRemoveItem(cid,8888,1) then doPlayerSetMasterPos(cid, newpos) end end
     
    E sua Tag:
     

    <action itemid="8888" event="script" value="savepos.lua">
     
     
    Sugestão de nomes e IDs:
     
    Position Map - ID 5091 - (Treasure Map)
    Resurrection Heart - ID 2353 - (Burning Heart)
     
     
    Configurando o Script:
     

    local item_id = 999
    ID do Item que será consumido para renascer. Como exemplo, o ID 2353.
     

    local count = 1
    Quantidade do Item que será consumida.
     

    local temple = {x=999, y=999, z=9}
    Aqui deve ser dada a posição do Templo real.
     

    doPlayerSendTextMessage(cid, 23, "Reborn from the ashes.")
    Mensagem para caso o Player renascer.
     

    <event type="death" name="Resurrection" event="script" value="resurrection.lua">
    A Tag pode ter o nome editado e o nome do Script também.
     

    if doPlayerRemoveItem(cid,8888,1) then
    O ID do Item que salva a posição atual do Player, aconselho a não utilizar o mesmo Item que vai ressucitar para evitar erros. Como exemplo, o ID 5091.
     

    <action itemid="8888" event="script" value="savepos.lua">
    Editar na Tag o ID do Item, deve ser o mesmo utilizado na linha acima. O nome do Script também pode ser editado.
     
     
    Obrigado por lerem, o Script ainda não foi testado e está em uma versão "beta", pois ainda pode ser melhorado.
  22. Upvote
    MaXwEllDeN recebeu reputação de guixap em Level Points   
    #Introdução
     
    Este é um sistema muito simples e básico que eu fiz baseando-me no jogo Mu Online, no qual ao avançar de nível você ganha pontos que podem ser distribuídos para aumentar seus "stats".
     
     
    #Instalação
     
     

     
    Faça o download do sistema e cole na pasta do seu servidor.
     
    @Creaturescripts
     
    Depois abra a pasta creaturescripts/scripts que fica dentro da pasta data do seu servidor, abra o arquivo login.lua, com algum editor de texto, e lá no final antes do último return true cole a seguinte linha:
     

    registerCreatureEvent(cid, "PointSystem")
     
    #Configuração
     
    No arquivo PointsSystem.lua da pasta lib
     

    L_LvlPoints = { vocPoints = { -- [skill] = Pontos que ganha, [1] = 3, [2] = 3, [3] = 3, [4] = 5, [5] = 5, [6] = 5, [7] = 5, [8] = 8, },
     
    entre Colchetes fica o id da vocation, e depois do sinal de igualdade a quantidade de pontos que ele ganhará por level que for upado.
     

    attributes = { ["vitalidade"] = {np = 2, vl = 5, nm = "Hit Points"}, -- Precisa usar 2 points para adicionar 10 de hp ["energy"] = {np = 4, vl = 2, nm = "Mana Points"}, ["magic"] = {np = 30, vl = 1, nm = "Magic Level"}, ["shielding"] = {np = 40, vl = 1, nm = "Shielding Skill"}, ["sword"] = {np = 20, vl = 1, nm = "Sword Skill"}, ["axe"] = {np = 20, vl = 1, nm = "Axe Skill"}, ["club"] = {np = 20, vl = 1, nm = "Club Skill"}, ["distance"] = {np = 20, vl = 1, nm = "Distance Skill"}, }
     
    np - quantidade de pontos para adicionar o stat
    vl - quanto vai adicioanar pelo np. Exemplo:
     

    ["vitalidade"] = {np = 2, vl = 5, nm = "Hit Points"}
     
    Com 2 pontos eu compro 5 de HP
     
    É isso ai galera, bye bye
  23. Upvote
    MaXwEllDeN recebeu reputação de Snowsz em Level Points   
    #Introdução
     
    Este é um sistema muito simples e básico que eu fiz baseando-me no jogo Mu Online, no qual ao avançar de nível você ganha pontos que podem ser distribuídos para aumentar seus "stats".
     
     
    #Instalação
     
     

     
    Faça o download do sistema e cole na pasta do seu servidor.
     
    @Creaturescripts
     
    Depois abra a pasta creaturescripts/scripts que fica dentro da pasta data do seu servidor, abra o arquivo login.lua, com algum editor de texto, e lá no final antes do último return true cole a seguinte linha:
     

    registerCreatureEvent(cid, "PointSystem")
     
    #Configuração
     
    No arquivo PointsSystem.lua da pasta lib
     

    L_LvlPoints = { vocPoints = { -- [skill] = Pontos que ganha, [1] = 3, [2] = 3, [3] = 3, [4] = 5, [5] = 5, [6] = 5, [7] = 5, [8] = 8, },
     
    entre Colchetes fica o id da vocation, e depois do sinal de igualdade a quantidade de pontos que ele ganhará por level que for upado.
     

    attributes = { ["vitalidade"] = {np = 2, vl = 5, nm = "Hit Points"}, -- Precisa usar 2 points para adicionar 10 de hp ["energy"] = {np = 4, vl = 2, nm = "Mana Points"}, ["magic"] = {np = 30, vl = 1, nm = "Magic Level"}, ["shielding"] = {np = 40, vl = 1, nm = "Shielding Skill"}, ["sword"] = {np = 20, vl = 1, nm = "Sword Skill"}, ["axe"] = {np = 20, vl = 1, nm = "Axe Skill"}, ["club"] = {np = 20, vl = 1, nm = "Club Skill"}, ["distance"] = {np = 20, vl = 1, nm = "Distance Skill"}, }
     
    np - quantidade de pontos para adicionar o stat
    vl - quanto vai adicioanar pelo np. Exemplo:
     

    ["vitalidade"] = {np = 2, vl = 5, nm = "Hit Points"}
     
    Com 2 pontos eu compro 5 de HP
     
    É isso ai galera, bye bye
  24. Upvote
    MaXwEllDeN recebeu reputação de Gabriel Couto em Boas Práticas Para Programar   
    Olá Galera, hoje vou postar um tutorial que ensina você a deixar seu código mais bonito, legível e organizado. Vamos lá.
     
    Em primeiro lugar vamos aprender oque é indentação ou identação.
     
     
     
    Exemplo de um código com indentação:

    function doPlayerCompleteQuest(uid, quest) doPlayerAddItem(uid, quest[1], quest[2]) setPlayerStorageValue(uid, quest[3], 1) doTeleportThing(uid, getTownPosition(getPlayerTown(uid))) doPlayerSendTextMessage(uid, 27, "Você completou a quest ".. quest[4] ..".") if (getPlayerStorageValue(uid, quest[5]) > 0) then doPlayerSendTextMessage(uid, 27, "E recebeu um bônus por ter completado outra quest.") end return true end
     
    Este mesmo código, mas agora sem indentação:
     

    function doPlayerCompleteQuest(uid,quest) doPlayerAddItem(uid,quest[1],quest[2]) setPlayerStorageValue(uid,quest[3],1) doTeleportThing(uid,getTownPosition(getPlayerTown(uid))) doPlayerSendTextMessage(uid,27,"Você completou a quest "..quest[4]..".") if (getPlayerStorageValue(uid,quest[5])>0) then doPlayerSendTextMessage(uid,27,"E recebeu um bônus por ter completado outra quest.") end return true end
     
    Um código com indentação, a primeira vista pode não ser nada de mais. Porém se você fizer um código grande, com muitas funções, condições e declarações, uma boa indentação deixa seu código muito mais fácil de ser lido por outros programadores e até por você mesmo e ser modificado também.
     
    Enquanto eu lia um livro sobre C++, encontrei uma lista de algumas boas práticas para programar que eu já conhecia e outras que aprendí. Listarei algumas delas aqui.
     
     
     
     
     
  25. Upvote
    MaXwEllDeN recebeu reputação de kpdo em Boas Práticas Para Programar   
    Olá Galera, hoje vou postar um tutorial que ensina você a deixar seu código mais bonito, legível e organizado. Vamos lá.
     
    Em primeiro lugar vamos aprender oque é indentação ou identação.
     
     
     
    Exemplo de um código com indentação:

    function doPlayerCompleteQuest(uid, quest) doPlayerAddItem(uid, quest[1], quest[2]) setPlayerStorageValue(uid, quest[3], 1) doTeleportThing(uid, getTownPosition(getPlayerTown(uid))) doPlayerSendTextMessage(uid, 27, "Você completou a quest ".. quest[4] ..".") if (getPlayerStorageValue(uid, quest[5]) > 0) then doPlayerSendTextMessage(uid, 27, "E recebeu um bônus por ter completado outra quest.") end return true end
     
    Este mesmo código, mas agora sem indentação:
     

    function doPlayerCompleteQuest(uid,quest) doPlayerAddItem(uid,quest[1],quest[2]) setPlayerStorageValue(uid,quest[3],1) doTeleportThing(uid,getTownPosition(getPlayerTown(uid))) doPlayerSendTextMessage(uid,27,"Você completou a quest "..quest[4]..".") if (getPlayerStorageValue(uid,quest[5])>0) then doPlayerSendTextMessage(uid,27,"E recebeu um bônus por ter completado outra quest.") end return true end
     
    Um código com indentação, a primeira vista pode não ser nada de mais. Porém se você fizer um código grande, com muitas funções, condições e declarações, uma boa indentação deixa seu código muito mais fácil de ser lido por outros programadores e até por você mesmo e ser modificado também.
     
    Enquanto eu lia um livro sobre C++, encontrei uma lista de algumas boas práticas para programar que eu já conhecia e outras que aprendí. Listarei algumas delas aqui.
     
     
     
     
     
  • Quem Está Navegando   0 membros estão online

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