Ir para conteúdo

Vodkart

Herói
  • Total de itens

    3406
  • Registro em

  • Última visita

  • Dias Ganhos

    113

Tudo que Vodkart postou

  1. local config = { ["citizen"] = { Male_Female = {128,136}, -- O Looktype Male, Female que vai ser vendida itemid_count = {2160,5}, -- id do item, quantidade do item que sera removido storage = 30190 -- uma storage não utilizada }, ["barbarian"] = { Male_Female = {143,147}, itemid_count = {2160,5}, storage = 30191 } } function onSay(cid, words, param) if param == "" then doPlayerSendTextMessage(cid, 22, "Digite o nome do outfit a ser comprado.") return true end local param = param:lower() if not outfit[param] then doPlayerSendTextMessage(cid, 22, "Outfit nao encontrado.") return true end local t = outfit[param] if getPlayerStorageValue(cid, t.storage) > 0 then doPlayerSendTextMessage(cid, 22, "Desculpe voce ja comprou esse outift.") return true elseif not doPlayerRemoveItem(cid, t.itemid_count[1], t.itemid_count[2]) then doPlayerSendTextMessage(cid, 22, "Voce nao tem dinheiro suficiente.") return true end doPlayerAddOutfit(cid, getPlayerSex(cid) == 1 and t.Male_Female[1] or t.Male_Female[2], 1) setPlayerStorageValue(cid, t.storage, 1) doPlayerSendTextMessage(cid, 22, "Voce comprou a outfit "..param) return true end
  2. Precisamos de mapper experiente e um WEB MASTER Introdução em pdf do projeto: https://drive.google.com/file/d/0B_EVTnZYHOnjdEFJc1d1OUdkaFU/view?usp=sharing
  3. Conforme o andamento do projeto eu vou dando noticias! @UP já mandei o convite pelo skype
  4. Introdução ao Projeto em pdf: https://drive.google.com/file/d/0B_EVTnZYHOnjdEFJc1d1OUdkaFU/view?usp=sharing Fala pessoal, estamos desenvolvendo um novo projeto de OTServe na versão 10.77 voltado ao RPG onde diversão é indispensável. Criaremos diversos eventos e sistemas únicos para que seja um servidor dinâmico em que os players sintam aquela vontade de jogar cada vez mais, não a mesmice de todo serve, que só se upa e upa e não tem mais graça. Estamos abrindo Vagas para: [*1*] Mapper [*1*] Web Master *Caso deseje se candidatar para a equipe, favor preencher o seguinte formulário abaixo: Nome: Idade: Função pretendida: Formas de contato - Facebook/Skype: Porque você quer fazer parte do projeto?: Quanto tempo de experiência você tem no seu ramo?: Caso tenha algum trabalho feito/postado favor anexar o link ou imagem.
  5. entendi, bem bonitos mesmo, não sabia que vc mexia com esse tipo de coisa, leva bastante jeito '-' parabéns! mas não teria como fazer em outro designer? por exemplo um desse: ou com logo do xtibia é claro
  6. não tem como fazer um designer diferente para a separação?? em uma cor azul ou verde por exemplo.
  7. não sei porque criar em mods se é apenas um código, geralmente só se usa MODS para abrigar e compactar mais de um código para o mesmo script
  8. não vai funcionar, falta o onLogin para checar a condition... falando nisso os créditos não são dele, são de outra pessoa, até porque essa mesma talk já existe no fórum.
  9. achei bem interessante esse sistema de evolução! parabéns só não achei muito bonito a imagem da separação de tópicos, mas é uma opinião minha :3
  10. adc na sua lib function getRankStorage(cid, value, max, RankName) -- by vodka local str ="" str = "--[".. (RankName == nil and "RANK STORAGE" or ""..RankName.."") .."]--\n\n" local query = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = "..value.." ORDER BY cast(value as INTEGER) DESC;") if (query:getID() ~= -1) then k = 1 repeat if k > max then break end str = str .. "\n " .. k .. ". "..getPlayerNameByGUID(query:getDataString("player_id")).." - [" .. query:getDataInt("value") .. "]" k = k + 1 until not query:next() end return doShowTextDialog(cid, 2529, str) end dps só usar assim em uma talk: getRankStorage(cid, 543995, 10, "Rank Boss")
  11. obrigado por postar o conteúdo, acho que ele ainda não existia aqui...
  12. beleza, obrigado por criar esse tópico com todos os requisitos que pedi. o código é simples e está 90% pronto, assim que eu testar vou postar ok? estou fazendo para servidores 8.6 tfs normal postarei amanha talvez, pois estou de saída e só volto amanha de manha/tarde,
  13. passa o teu pq vc n pode receber mais msgs
  14. tb já fiz um parecido uma vez, era mais ou menos assim: function traduzir(text, traduz) return string.gsub(text, "%a", traduz) end local words = { ["o"] = "a", ["m"] = "n", } local x = traduzir("é um menino", words) print(x) --> retorna 'é un nenina' -------------- outro exemplo útil City_Name = "City is: <nome>" local x = City_Name:gsub("<nome>","Venore") print(x)
  15. Vodkart

    IceWars Baiak

    está bem bonito o mapa, adoro baiak... vou baixar! obrigado por disponibilizar
  16. Ok... então refaça seu pedido novamente e especifique TODO o evento, começando pela torre, horario de funcionamento do sistema, se o monstro vai morrer por quem da mais dmg ou pelo last hit... ou até msm da pra fazer somando qual guild tirou mais dano do boss, etc... TUDO! pense e dps peça o seu sistema... pode ser?
  17. ah entendi mais facil ainda
  18. ah ta são por city?? digamos que ganha a city quem mais mais torres?? é isso?? ou cada torre é uma city?? e como vc vai adc storage pra guild?? quem deu o last hit ou quem tirou mais dano?? sistema envolve bastante coisa
  19. só colocar uma globalstorage para guildID ou guildName function setRateGuildExp(GuildID, rate) return setGlobalStorageValue(GuildID, rate) end function getRateGuildExp(GuildID) return getGlobalStorageValue(GuildID) <= 0 and 0 or getGlobalStorageValue(GuildID) end local MyGuild = getPlayerGuildId(cid) -- pega o id da guild cid setRateGuildExp(MyGuild, getRateGuildExp(MyGuild)+1) -- qndo vc matar um monstro soma 1+ getRateGuildExp(MyGuild) -- pega o rate e adc o rate essa function * 5 ---------------------------- mas só ganha exp adicional quem matar mais torre?? ou se minha guild matar 5 e a outra matar 3 a minha ganha 25% e a outra ganha 15%?
  20. é simples, põe para cada monstro q matar a guild ganhar uma storage... por exemplo eu da guild "Hunter" matei 4 torre... então 4*5 = 20%
  21. fiz um movements para mudar a direção dos monstro de acordo com o item.actionid do piso onde eles estão... já que era uma área pré programada para treiners...
  22. q erro q da? e vc n pode mudar a função...
  23. claro vc duplico as chance de porcentagem... vc quer colocar mais de um item pra vir entre 10 e 30 porcento de chance é isso? vo fazer pra vc e dps vc edita, mas n pode duplicar as chances --------------------- local query = db.query or db.executeQuery local premios = { -- -- [chance] -- itemid,amount [{1, 5}] = {{2493}, {2494}}, -- por exmeplo de 1 a 3 porcento de vim 1 item com id 2390 ou 2494 [{6, 30}] = {{2646}, {2471}, {2466}, {2130}}, [{31, 50}] = {{2191}, {2201}}, [{51, 80}] = {{2339}, {2342}}, [{81, 100}] = {{6500,100}, {6500,50}} } local function getGuildNameById(id) local name = "" local query = db.getResult('SELECT `name` FROM `guilds` WHERE `id` = "'.. id ..'"') if query:getID() == -1 then return true end name = query:getDataString("name") query:free() return name end function pointNumber(number) if not tonumber(number) then return false end local str = "" number = tostring(number):reverse() local count = 0 for i = 1, number:len() do count = count + 1 if count <= 3 then if str == "" then str = number:sub(i, i) else str = str..number:sub(i, i) end else count = 1 str = str.."."..number:sub(i, i) end end return str:reverse() end function onStatsChange(cid, attacker, type, combat, value) if isMonster(cid) and isPlayer(attacker) and type == STATSCHANGE_HEALTHLOSS then if isInArray({"Castle Guardian I", "Castle Guardian II", "Castle Guardian III", "Castle Guardian IV", "Castle Generator", "Ice Crystal"}, getCreatureName(cid)) then doPlayerSetStorageValue(attacker, 1827311, getPlayerStorageValue(attacker, 1827311) + value) local quant = guild_hit_count[getPlayerGuildId(attacker)] and guild_hit_count[getPlayerGuildId(attacker)] or 0 guild_hit_count[getPlayerGuildId(attacker)] = quant + value end end return true end function onDeath(cid, corpse, deathList) local gid = 0 local winner = 0 if isMonster(cid) and getCreatureName(cid) == "Ice Crystal" then if not getPlayingGuilds() then return true end local guilds = getPlayingGuilds() local max = 0 for index, var in pairs(guild_hit_count) do if var > max then max = var gid = index end end setGlobalStorageValue(1823999, gid) query("UPDATE `castle_dono` SET `guild_id` = '"..gid.."' WHERE `guild_id` > 0") doBroadcastMessage("{Castle War} O evento acabou, a guild com maior desempenho foi "..getGuildNameById(gid)..", com "..pointNumber(max).." pontos sobre o castelo.") updateCastleData() setGlobalStorageValue(18219113, -1) if gid > 0 then local mx = 0 for _, pid in pairs(getPlayersOnline()) do if getPlayerGuildId(pid) == gid then local st = getPlayerStorageValue(pid, 1827311) if st > mx then mx = st winner = pid end end end if isPlayer(winner) then local r = math.random(1,100) for v, k in pairs(premios) do if r >= v[1] and r <= v[2] then local rand = k[math.random(#k)] itemr, amountr = rand[1], (not rand[2] and 1 or isItemStackable(rand[1]) and rand[2] or 1) end end local recompensa = doPlayerAddItem(winner, itemr, amountr) doBroadcastMessage("{Castle War} O jogador com maior desempenho foi "..getCreatureName(winner)..", com "..pointNumber(mx).." pontos sobre o castelo. Ele recebeu "..amountr.."x "..getItemNameById(itemr).." como premio.") doItemSetAttribute(recompensa, 'description', "Premio do jogador "..getCreatureName(winner).." ganho no evento castle war do dia "..os.date("%d/%m/%y")..".") local medal = doPlayerAddItem(winner, 10127, 1) doItemSetAttribute(medal, 'description', "Trofeu ganho pelo jogador "..getCreatureName(winner).." no evento castle war do dia "..os.date("%d/%m/%y")..".") end end for _, pid in pairs(getPlayersOnline()) do if isInArea(getThingPos(pid), {x = 500, y = 574, z = 6}, {x = 575, y = 620, z = 6}) or isInArea(getThingPos(pid), {x = 511, y = 588, z = 5}, {x = 556, y = 607, z = 5}) or isInArea(getThingPos(pid), {x = 511, y = 588, z = 4}, {x = 556, y = 607, z = 4}) or isInArea(getThingPos(pid), {x = 511, y = 588, z = 3}, {x = 556, y = 607, z = 3}) or isInArea(getThingPos(pid), {x = 481, y = 580, z = 7}, {x = 683, y = 798, z = 7}) then doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid))) end end guild_hit_count = {} end return true end ------------------------- explicação local premios = { -- -- [chance] -- itemid,amount [{1, 5}] = {{2493}, {2494}}, -- por exmeplo de 1 a 3 porcento de vim 1 item com id 2390 ou 2494 [{6, 30}] = {{2646}, {2471}, {2466}, {2130}}, [{31, 50}] = {{2191}, {2201}}, [{51, 80}] = {{2339}, {2342}}, [{81, vc pode editar na tabela por exmeplo na chance de 1 a 5 porcento: [{1, 5}] = {{2493}, {2494}}, poderá vir um 2493 ou um 2494... se vc quiser editar para colocar mais itens poderia ser assim: [{1, 5}] = {{2493}, {2494}, {2492}}, e se vc quiser colocar item empilhavem como crystal coin só colocar assim: [{1, 5}] = {{2493}, {2494}, {2160,100}}, se n entendeu me adc skype thiago.vodkart
  24. resolvido via PM.
  • Quem Está Navegando   0 membros estão online

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