Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 12/07/15 em todas áreas

  1. zipter98

    Deposit

    function onSay(cid, words, param) local t = param:explode(",") local pid, amount = getPlayerByName(t[1]), tonumber(t[2]) if not pid or not amount then doPlayerSendCancel(cid, "/command player_name,amount") end doPlayerSendTextMessage(cid, 27, "You deposited "..amount.." gold in "..t[1].."'s bank.") doPlayerSendTextMessage(pid, 27, "You received "..amount.." gold from "..getCreatureName(cid)..". It was deposited in your bank.") doPlayerSetBalance(pid, getPlayerBalance(pid) + amount) return true end
    1 ponto
  2. zipter98

    Deposit

    function onSay(cid, words, param) local t = param:explode(",") local pid, amount = getPlayerByName(t[1]), tonumber(t[2]) if not pid or not amount then doPlayerSendCancel(cid, "/command player_name,amount") end doPlayerSendTextMessage(cid, 27, "You deposited "..amount.." gold in "..t[1].."'s bank.") doPlayerSetBalance(pid, getPlayerBalance(pid) + amount) return true end
    1 ponto
  3. Marco Oliveira

    Agrupar

    No ItemEditor 1° abra o item editor e clique em ctrl+p 2° marque a caixinha extender (só se seu client esstiver extendido) 3° clique em browse e indique o caminho para seu client 4° vá em file e depois em open e indique o caminho do seu items.otb que está na pasta data/items do seu servidor depois que abrir aperte ctrl+f e procure pelo ID do item que você quer deixa agrupavel, pronto quando achar vai ter uma caixinha para você marcar com o nome Stackaple como na imagem: No object builder 1° abra e clique ctrl+o , abrindo a nova janela clique em browse e indique o caminho onde está localizado o dat e spr do seu client depois só clicar em load procure pelo item que vai se torna agrupavel e aperte duas vezes em cima dele , irar abrir uma aba no meio do programa ai você clica em propertiers desça ate no final e procure pela opção Stackaple e marque ela. Quando marcar a opção desejada só clicar em save logo abaixo um pouquinho pra salvar as edições e depois aperta ctrl+s pra salva as alterações no dar e spr do client Peguei o tutorial de outro forum, espero que não tenha problema!
    1 ponto
  4. Troque: doTeleportThing(cid, tpsaida) por: doTeleportThing(cid, kickposs)
    1 ponto
  5. MatheusGlad

    Monsters Default Events

    FAÇA BACKUP DA PASTA MONSTERS E CREATURESCRIPTS ANTES DE UTILIZAR! Funciona para todas as versões TFS 0.3.6+ ate TFS 1.2 (Provavelmente funciona para outras tambem mas não me dei o trabalho de testar) Introdução: Bem, como o titulo mesmo diz, o script vai criar e modificar todos os monstros para terem scripts default (Caso o monstro não tenha script) e tambem pode adicionar creaturescripts default, exemplo o onDeath. Code: monsterevent.lua local dir = "./data/monster/" local csdir = "./data/creaturescripts/" local monstersXML = "monsters.xml" local csXML = "creaturescripts.xml" local csTag = '\n <event type="%t" name="%n" script="%s"/>' -- Tag format on creaturescripts.xml (%t = type, %n = name, %s = script) local defaultText = [[function onCreatureAppear(self, creature) return false end function onCreatureDisappear(self, creature) return false end function onCreatureMove(self, creature, oldPosition, newPosition) return false end function onCreatureSay(self, creature, type, message) return false end function onThink(self, interval) return false end]] local events = { ["monsterdeath"] = {type = "death", file="monsterdeath.lua", defaultText=[[ function onDeath(cid, corpse, lasthitkiller, mostdamagekiller, lasthitunjustified, mostdamageunjustified) return true end]]}, } ------- Não edite a partir dessa linha se nao souber o que esta fazendo. function parseXML(file) local ret = {["monster"] = {}, ["event"] = {}} local data = "" for line in file:lines() do data = data .. line .. "\n" line = line:match("<(.-)/>") if line then local element = line:match("^%s*(.-)%s") if element == "monster" or element == "event" then local t = {} for i, x in line:gmatch('%s+(.-)="(.-)"') do t[i] = x end table.insert(ret[element], t) end end end return ret, data:sub(1, #data-1) end function init() ----- Parsing monsters.xml ----- local monstersfile = io.open(dir .. monstersXML, "r") print("Parsing XML " .. dir .. monstersXML .. "...") local xmltable = parseXML(monstersfile) monstersfile:close() -------------------------------- -- Creating scripts directory -- local testfile = io.open(dir .. "scripts/test", "w") if not testfile then os.execute("mkdir data\\monster\\scripts") print("Directory " .. dir .. "scripts has been created.") else testfile:close() end os.remove(dir .. "scripts/test") --------------------------------- ------ Creating default.lua ------- local defaultlua = io.open(dir .. "scripts/default.lua", "w") defaultlua:write(defaultText) defaultlua:close() print("File " .. dir .. "scripts/default.lua has been created.") --------------------------------- ---- Modify all monsters XML! ---- local modified = 0 for i, contents in ipairs(xmltable["monster"]) do local monsterxml = io.open(dir .. contents.file, "r") if monsterxml then local xmldata = monsterxml:read("*a") local _mod = false local s, f, content = xmldata:find("<monster%s(.-)>") local r, p, cs = content:find('script="(.-)"') monsterxml:close() newc = content if not cs then xmldata = xmldata:gsub(content, newc .. ' script="default.lua"') _mod = true elseif cs ~= "default.lua" then print('Warning: The file "' .. contents.file .. '" already has a script.') end local s, f, content = xmldata:find("<monster%s(.-)>") local x, q, scriptcontent = xmldata:find("<script>(.-)</script>") local readyevents = {} local addevents = "" if scriptcontent then for line in scriptcontent:gmatch("(.-)\n") do local event = line:match('<event%s-name="(.-)"') if event then readyevents[event] = true end end end for event, _c in pairs(events) do if not readyevents[event] then addevents = addevents .. '<event name="' .. event .. '"/>\n' end end if addevents ~= "" then _mod = true if scriptcontent and scriptcontent:find("event") then xmldata = xmldata:gsub(scriptcontent, scriptcontent .. addevents) elseif x and q then xmldata = xmldata:sub(1, x-1) .. xmldata:sub(q+1) xmldata = xmldata:sub(1, f) .. "\n<script>\n" .. addevents .. "\n</script>" .. xmldata:sub(f+1) else xmldata = xmldata:sub(1, f) .. "\n<script>\n" .. addevents .. "\n</script>" .. xmldata:sub(f+1) end end if xmldata then if _mod then modified = modified+1 end local monsterxmlwrite = io.open(dir .. contents.file, "w") monsterxmlwrite:write(xmldata) monsterxmlwrite:close() else print("Error in: " .. contents.name) end else print("Warning: Error opening file " .. contents.file) end end print("Total monsters XML modified: " .. modified) ---------------------------------- --- Parsing creaturescripts.xml -- local csfile = io.open(csdir .. csXML, "r") print("Parsing XML " .. csdir .. csXML .. "...") local csxmltable, xmldata = parseXML(csfile) csfile:close() ---------------------------------- --- Modify creaturescripts.xml --- local _mod = false local readytags = {} for i, contents in ipairs(csxmltable["event"]) do if events[contents.name] then readytags[contents.name] = true end end for event, contents in pairs(events) do if not readytags[event] then _mod = true local currenttag = csTag currenttag = currenttag:gsub("%%t", contents.type) currenttag = currenttag:gsub("%%n", event) currenttag = currenttag:gsub("%%s", contents.file) local r, w = xmldata:find("<creaturescripts>") xmldata = xmldata:sub(1, w) .. currenttag .. xmldata:sub(w+1) end end if _mod then local csfilewrite = io.open(csdir .. csXML, "w") csfilewrite:write(xmldata) csfilewrite:close() print("Modified " .. csdir .. csXML) end ---------------------------------- ----- Creating event scripts ----- print("Creating lua creaturescripts...") for event, contents in pairs(events) do local luafile = io.open(csdir .. "scripts/" .. contents.file, "w") luafile:write(contents.defaultText) luafile:close() end ---------------------------------- print("All the modifications were done.") return true end local check = io.open("meventsinstall.lua", "r") if not check then local ret = init() if ret then local file = io.open("meventsinstall.lua", "w") file:write("true") file:close() end else check:close() end Explicando o que o code realmente faz: O code vai ser executado somente uma vez e vai editar todos os monstros do seu OTServer presentes no monsters.xml adicionando um script default, que seria o defaultText presente no inicio do code (So funciona em TFS 1.0+) e tambem ira adicionar eventos ao XML do monstro sem remover os que ja existem (se existirem). Depois disso ele ira editar o creaturescripts.xml para criar a tag do evento e tambem criar o script que esta na tabela events. Como instalar: TFS 0.3.6: Só botar ele na pasta lib do seu OT que ele ja vai executar quando voce abrir o executavel. TFS 1.x: Bote o code na pasta "lib\core" e edite o core.lua nessa pasta adicionando essa linha: dofile('data/lib/core/monstersevent.lua') Se voce fizer tudo certo deve aparecer isso quando voce abrir o server: Você pode rodar o script novamente deletando o arquivo "meventsinstall.lua" que sera criado na pasta do server, ele soh ira adicionar algo se voce mudar alguma coisa no code. Porque usar esse code: Não usar funçoes como onAttack, onSpawn entre outras para registrar eventos em monstros. Usar as funçoes onCreatureAppear, onCreatureDisappear, onCreatureMove, onCreatureSay e onThink em todos os monstros do server (TFS 1.0+)
    1 ponto
  6. Kydrai

    [c++] Mudando as cores

    Nesse caso acho que seria melhor fazer por lua. Só ir no modules\game_things\things.lua e dentro do load() colocar: if version >= 840 then g_game.enableFeature(GameBlueNpcNameColor) end
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...