Ir para conteúdo

Jepart

Membro
  • Registro em

  • Última visita

  1. So volto tarde reagiu a uma resposta no tópico: Characters Market System
  2. <?xml version="1.0" encoding="UTF-8"?> <mod name="Characters Market System" version="1.0" author="LuckOake" contact="none" enabled="yes"> ------------------------------------------------------------------------------------ <config name="market"><![CDATA[ price = 27112 owner = 27113 level = 30 -- Level mínimo que o character deve ter para ser vendido min_price = 100 -- Preço mínimo de um character max_price = 1000000 -- Preço máximo de um character function doTransferCharacter(cid, accId) return db.executeQuery("UPDATE `players` SET `account_id` = "..accId.." WHERE `id` = "..getPlayerGUIDByName(cid).."") end function doOfflinePlayerAddMoney(guid, money) return db.executeQuery("UPDATE `players` SET `balance` = `balance` + '"..money.."' WHERE `id` = '"..getPlayerGUIDByName(guid).."';") end function setOfflinePlayerStorageValue(name, key, value) local result = db.getResult("SELECT * FROM `player_storage` WHERE `player_id` = ".. getPlayerGUIDByName(name) .." AND `key` = ".. key ..";") if result:getID() == -1 then return db.executeQuery("INSERT INTO `player_storage` (`player_id`, `key`, `value`) VALUES (".. getPlayerGUIDByName(name) ..", ".. key ..", ".. value ..");") else result:free() return db.executeQuery("UPDATE `player_storage` SET `value` = ".. value .." WHERE `player_id` = ".. getPlayerGUIDByName(name) .." AND `key` = ".. key ..";") end end function getOfflinePlayerStorageValue(name, key) local result, ret = db.getResult("SELECT `value` FROM `player_storage` WHERE `player_id` = '".. getPlayerGUIDByName(name) .."' AND `key` = ".. key ..";") if result:getID() == -1 then return nil end ret = result:getDataInt("value") result:free() return ret end function getOfflinePlayerValue(name, value) local result, ret = db.getResult("SELECT `"..value.."` FROM `players` WHERE `id` = "..getPlayerGUIDByName(name)..";") ret = result:getDataInt(value) result:free() return ret end function isCharacterForSale(name) if not getOfflinePlayerStorageValue(name, price) or getOfflinePlayerStorageValue(name, price) < 1 then return false else return true end end ]]></config> ------------------------------------------------------------------------------------ <talkaction words="!character" event="buffer"><![CDATA[ domodlib('market') local t = string.explode(param, ",") if t[1] == "sell" then if not t[3] or not tonumber(t[3]) or t[4] or tonumber(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Incorrect Params. Specify the character name and the price.") return true elseif getPlayerAccountId(cid) ~= getAccountIdByName(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "This is not your character.") return true elseif isCharacterForSale(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "This character is already for sale.") return true elseif getPlayerGUIDByName(t[2]) == getPlayerGUID(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You cannot sell yourself.") return true elseif getPlayerByName(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "The character must be offline to be sold.") return true elseif getOfflinePlayerValue(t[2], "level") < level then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Your character can't be sold until it has level "..level..".") return true elseif tonumber(t[3]) < min_price then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Sorry, but the minimum price for selling a character is "..min_price..".") return true elseif tonumber(t[3]) > max_price then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Sorry, but the maximum price for selling a character is "..max_price..".") return true end setOfflinePlayerStorageValue(t[2], price, t[3]) setOfflinePlayerStorageValue(t[2], owner, getPlayerGUID(cid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Your character "'..t[2]..'" is now for sale for the price of "'..t[3]..'" gold coins.') elseif t[1] == "buy" then if not t[2] then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Incorrect Params. Specify the character name.") return true elseif not playerExists(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "This character doesn't exist.") return true elseif getPlayerAccountId(cid) == getAccountIdByName(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You can't buy your own character.") return true elseif not isCharacterForSale(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "This character is not for sale.") return true elseif not doPlayerRemoveMoney(cid, getOfflinePlayerStorageValue(t[2], price)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Not enough money. This character's price is "..getOfflinePlayerStorageValue(t[2], price).." gold coins.") return true end if not getPlayerByGUID(getOfflinePlayerStorageValue(t[2], owner)) then doOfflinePlayerAddMoney(getPlayerNameByGUID(getOfflinePlayerStorageValue(t[2], owner)), getOfflinePlayerStorageValue(t[2], price)) setOfflinePlayerStorageValue(getPlayerNameByGUID(getOfflinePlayerStorageValue(t[2], owner)), 41792, getPlayerGUIDByName(t[2])) else doPlayerAddMoney(getPlayerByGUID(getOfflinePlayerStorageValue(t[2], owner)), getOfflinePlayerStorageValue(t[2], price)) doPlayerSendTextMessage(getPlayerByGUID(getOfflinePlayerStorageValue(t[2], owner)), MESSAGE_STATUS_CONSOLE_BLUE, 'Your character "'..t[2]..'" has been sold for the price of '..getOfflinePlayerStorageValue(t[2], price)..' gold coins.') end doTransferCharacter(t[2], getPlayerAccountId(cid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'You bought the character "'..t[2]..'" for the price of '..getOfflinePlayerStorageValue(t[2], price)..' gold coins.') setOfflinePlayerStorageValue(t[2], owner, -1) setOfflinePlayerStorageValue(t[2], price, -1) return true elseif t[1] == "remove" then if not t[2] then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Incorrect Params. Specify the character name.") return true elseif getPlayerAccountId(cid) ~= getAccountIdByName(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "This is not your character.") return true elseif not isCharacterForSale(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "This character is not for sale.") return true end setOfflinePlayerStorageValue(t[2], price, -1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'You removed the character "'..t[2]..'" from the Characters Market.') return true elseif t[1] == "list" then local result = db.getResult("SELECT `name` FROM `players`") if result:getID() == -1 then return true end local msg = "Characters for Sale:\n\n" while true do local name = result:getDataString("name") if isCharacterForSale(name) then local sex = getOfflinePlayerValue(name, "sex") == 1 and "Male" or "Female" msg = ""..msg.." - ".. name .." (Level: "..getOfflinePlayerValue(name, "level").." / Vocation: "..getVocationInfo(getOfflinePlayerValue(name, "vocation")).name.." / Sex: "..sex.." / Reset: "..getOfflinePlayerStorageValue(name,2310).." / Owner: "..getPlayerNameByGUID(getOfflinePlayerStorageValue(name, owner))..") [Price: "..getOfflinePlayerStorageValue(name, price).."] \n" end if not result:next() then break end end doPlayerPopupFYI(cid, msg) return true elseif not t[1] or t[1] ~= "buy" or t[1] ~= "sell" or t[1] ~= "remove" or t[1] ~= "list" then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Incorrect params. You can only 'buy' or 'sell' a character, 'remove' it from the Characters Market or see the 'list' of characters for sale.") return true end return true ]]></talkaction> ------------------------------------------------------------------------------------ <event type="login" name="MarketLogin" event="script"><![CDATA[ function onLogin(cid) domodlib('market') if getPlayerStorageValue(cid, price) > 0 then return false elseif getPlayerStorageValue(cid, 41792) ~= -1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You sold the character "..getPlayerNameByGUID(getPlayerStorageValue(cid, 41792))..". The money is in your bank account.") setPlayerStorageValue(cid, 41792, -1) end return true end ]]></event> </mod> Alteração foi na linha 126 na variável msg
  3. Acredito que se por essa modificação na linha do doPlayerPopupFYI ja aparecerá os resets msg = ""..msg.." - ".. name .." (Level: "..getOfflinePlayerValue(name, "level").." / Vocation: "..getVocationInfo(getOfflinePlayerValue(name, "vocation")).name.." / Sex: "..sex.." / Reset: "..getOfflinePlayerStorageValue(name,2310).." / Owner: "..getPlayerNameByGUID(getOfflinePlayerStorageValue(name, owner))..") [Price: "..getOfflinePlayerStorageValue(name, price).."] \n"
  4. Essas skin não apareceria no Set Outfit? Qual Tfs que está usando?
  5. Sistema de profissão e crafting https://www.instagram.com/p/CKnZON6DOT0/?igshid=mv1aen100xwd
  6. Jepart alterou sua foto pessoal
  7. Jepart reagiu a uma resposta no tópico: SHOW OFF - Launcher 'Kamity'
  8. .Qual servidor ou website você utiliza como base? Tfs 1.3 10.98 Qual o motivo deste tópico? Ele está funcionando perfeitamente ao identificar as pedras porem se usar a picareta sem ser nas pedras da esse error Está surgindo algum erro? Se sim coloque-o aqui. Você tem o código disponível? Se tiver publique-o aqui: local base = 300 -- Expericia Base local mode = 3 -- Dificuldade local config ={ storageSkill = 21001, storageSkillXp = 21009, skillName = "Gathering", skillChance = 20 } local pickaxe ={ [27397]={id = 27397, bonusitem = 0, bonusChance = 5}, [27398]={id = 27398, bonusitem = 1, bonusChance = 10}, [27399]={id = 27399, bonusitem = 2, bonusChance = 15}, [27400]={id = 27400, bonusitem = 3, bonusChance = 20} } local stone = { [27401]={id=27401,tranform=3652, basic = false, xp = 50, drop = 27462, count = 2}, [27402]={id=27402,tranform=3652, basic = false, xp = 50, drop = 27462, count = 2}, [27403]={id=27403,tranform=3652, basic = false, xp = 50, drop = 27462, count = 2}, [27406]={id=27401,tranform=3652, basic = false, xp = 50, drop = 27464, count = 2}, [27407]={id=27407,tranform=3652, basic = false, xp = 50, drop = 27464, count = 2}, [27412]={id=27412,tranform=3652, basic = false, xp = 50, drop = 27464, count = 2}, [27413]={id=27413,tranform=3652, basic = false, xp = 50, drop = 27465, count = 2}, [27414]={id=27414,tranform=3652, basic = false, xp = 50, drop = 27465, count = 2}, [27415]={id=27415,tranform=3652, basic = false, xp = 50, drop = 27465, count = 2}, [27418]={id=27418,tranform=3652, basic = false, xp = 50, drop = 27466, count = 2}, [27419]={id=27419,tranform=3652, basic = false, xp = 50, drop = 27466, count = 2}, [27420]={id=27420,tranform=3652, basic = false, xp = 50, drop = 27466, count = 2}, [27425]={id=27425,tranform=3652, basic = false, xp = 50, drop = 27470, count = 2}, [27426]={id=27426,tranform=3652, basic = false, xp = 50, drop = 27470, count = 2}, [27427]={id=27427,tranform=3652, basic = false, xp = 50, drop = 27470, count = 2}, [27430]={id=27430,tranform=3652, basic = false, xp = 50, drop = 27468, count = 2}, [27431]={id=27431,tranform=3652, basic = false, xp = 50, drop = 27468, count = 2}, [27432]={id=27432,tranform=3652, basic = false, xp = 50, drop = 27468, count = 2}, [27435]={id=27435,tranform=3652, basic = false, xp = 50, drop = 27467, count = 2}, [27436]={id=27436,tranform=3652, basic = false, xp = 50, drop = 27467, count = 2}, [27437]={id=27437,tranform=3652, basic = false, xp = 50, drop = 27467, count = 2}, [27440]={id=27440,tranform=3652, basic = false, xp = 50, drop = 27469, count = 2}, [27441]={id=27441,tranform=3652, basic = false, xp = 50, drop = 27469, count = 2}, [27442]={id=27442,tranform=3652, basic = false, xp = 50, drop = 27469, count = 2}, [27447]={id=27447,tranform=3652, basic = false, xp = 50, drop = 27471, count = 2}, [27448]={id=27448,tranform=3652, basic = false, xp = 50, drop = 27471, count = 2}, [27449]={id=27449,tranform=3652, basic = false, xp = 50, drop = 27471, count = 2}, [27457]={id=27457,tranform=3652, basic = false, xp = 50, drop = 27463, count = 2}, [27458]={id=27458,tranform=3652, basic = false, xp = 50, drop = 27463, count = 2}, [27459]={id=27459,tranform=3652, basic = false, xp = 50, drop = 27463, count = 2}, [1285]={id=1285,tranform=3652, basic = true}, [1304]={id=1304,tranform=1285, basic = true} } local basicReward = { [1]={xp = 1, drop = 0,quant = 0}, [2]={xp = 5, drop = 2145,quant = 2}, [3]={xp = 10, drop = 2160,quant = 2} } function onUse(player, item, fromPosition, target, toPosition, isHotkey) function giveItemPlayer(item,count,bonus) if item == 0 then player:sendTextMessage(MESSAGE_EVENT_DEFAULT, "You did not find anything.") else itemrandom = math.random(1,count+bonus) doPlayerAddItem(player,item,itemrandom) itemname = getItemName(item) player:sendTextMessage(MESSAGE_EVENT_DEFAULT, "You've found " .. itemrandom .." " ..itemname..".") end end function LevelUpLS(storagelevel,storagexp,gainxp,name) level = player:getStorageValue(storagelevel) xp = player:getStorageValue(storagexp) local xptotal = level*base+(level*base)/100*mode+base xpResult = xp+gainxp local baseLevelUp = (level+1)*base+((level+1)*base)/100*mode+base if level <= 9 then skilllevel="Beginner "..level+1 elseif level <= 19 then skilllevel="Apprentice "..level+1-10 elseif level <= 39 then skilllevel="Skillful "..level+1-20 elseif level <= 59 then skilllevel="Qualified "..level+1-40 elseif level <= 89 then skilllevel="Professional "..level+1-60 elseif level <= 139 then skilllevel="Master "..level+1-90 elseif level <= 199 then skilllevel="Epic "..level+1-140 end if xpResult >= xptotal then player:setStorageValue(storagexp, xp-xptotal+gainxp) doCreatureSay(player, name.."+", TALKTYPE_ORANGE_1) player:getPosition():sendMagicEffect(29) player:sendTextMessage(MESSAGE_EVENT_DEFAULT,"You have risen in level in ".. name.. ". ["..skilllevel.."]") player:setStorageValue(storagelevel, level+1) player:sendTextMessage(MESSAGE_EVENT_DEFAULT, "Current Experience: "..xp+gainxp-xptotal.. "/"..baseLevelUp ) else player:setStorageValue(storagexp, xp+gainxp) player:sendTextMessage(MESSAGE_EVENT_DEFAULT, "Current Experience: "..xp+gainxp.. "/"..xptotal ) end end if target.itemid == stone[target.itemid].id then r = math.random(1,100) i = math.random(2, #basicReward) doSendMagicEffect(toPosition, 35) if stone[target.itemid].basic == true then if r >= (100-config.skillChance-pickaxe[item.itemid].bonusChance) then giveItemPlayer(basicReward[i].drop,basicReward[i].quant,pickaxe[item.itemid].bonusitem) LevelUpLS(config.storageSkill,config.storageSkillXp,basicReward[i].xp,config.skillName) else giveItemPlayer(basicReward[1].drop , basicReward[1].quant) LevelUpLS(config.storageSkill,config.storageSkillXp,basicReward[1].xp,config.skillName) end else giveItemPlayer(stone[target.itemid].drop,stone[target.itemid].count,pickaxe[item.itemid].bonusitem) LevelUpLS(config.storageSkill,config.storageSkillXp,stone[target.itemid].xp,config.skillName) end else player:sendTextMessage(MESSAGE_EVENT_DEFAULT, 'You can not mine it.') end end Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.
  9. Jepart reagiu a uma resposta no tópico: [PROJETO]: JSPokémon - O Retorno
  10. Jepart reagiu a uma resposta no tópico: [MOD] Pokedex Window para base PDA
  11. Agaka reagiu a uma resposta no tópico: Formação de Equipe - Kirion Online
  12. Cat reagiu a uma resposta no tópico: Formação de Equipe - Kirion Online
  13. Sistemas Habilidades de Vida - No mundo de Kirion você poderá de especializar em diversas áreas e pode fazer riquezas sem sair da cidade! Essas habilidades são : Minerador, pescador, artesão, caçador, cozinheiro, alquimista, fazendeiro e mercador. Cada habilidade terá sua própria experiencia e níveis para poder usar novos equipamentos, alem de ter uma classificação global para que exista uma competitividade entre jogadores! Voar - Permite que o jogador viaje mais facilmente pelo mundo de Kirion Navegar - Em Kirion Online terá diversos barcos que vai de uma pequena balsa até uma grande caravela, os barcos terão uma forte posição no comercio de kirion pois a pesca e o transporte de itens virá deles. Montaria - A montaria ajudará os jogadores a chegar a seus destinos mais rápido. Critical System - Sistema de critical é um sistema de combate que causará buff ao seu usuário de debuff ao seus adversário, teremos vários tipos de debuffs para os inimigos War System - Será um sistema de guerra por zonas para serem tomadas pelo time vencedor, essas zonas são áreas do mapa dominas semanalmente por uma Guild e semanalmente essa Guild ganhará uma recompensa por ter dominado. Race System - É o sistema que cada raça tem determinada característica, como assim? Todos sabemos que anões não se dão muito bem com Elfos então sempre que um elfo estiver em uma área de anão ele será hostilizado, a hostilização será feita por meio de preços mais elevados para raças diferente, tambem temos os humanos que não são fãs de Demi-humanos e hostilizam eles e até proíbem eles de entrarem em certas áreas da cidades. Mas nem tudo é de ruim nesse sistema, o sistema da vantagens para cada raça sendo elas : Humanos tem todas habilidade de vidas impulsionadas (um taxa menor que as demais raças), Elfos tem mais habilidades com magias e agricultura,Anões são ótimos artesões e mineradores, suas habilidade de combate com martelo são evoluídas mais rapidamente, os Gnomos são hábil e sua habilidade no comercio são enormes e por fim a raça Ogros que são verdadeiros guerreiros e caçadores. Nation War - O mundo de kirion será divido em 3 nações Barnun , Arkemus e Aspheria. As 3 nações vivem em constante guerra e por isso é extremamente perigoso viajar para outras nações você precisará de um passe de aventureiro Class S ou Comerciante nível Platina para viajar para essas nações sem sofre qualquer dano. Quando algum aventureiro ousar ir para outra nação ele poderá ser morto e perde sua mercadoria e itens. Teremos outros sistemas essa só uma palhinha. Vocações Formação de equipe Mapper, Scripter, Spriter, Programador, Cliente Maker Curriculum : Name/Nick : Idade (Opcional) : Cargo : Tempo que atua nesse cargo : Contato: Adicional : (Conte porque está afim de participar do Kirion Online) OBS: Esse tópico ainda sofrerá mudanças e ainda será criado uma area para o show-off do desenvolvimento do servidor!
  14. Synboz reagiu a uma resposta no tópico: Achievements & Reward Chest
  15. Jepart postou uma resposta no tópico em Outros Jogos
    E ae galera tudo bem? Não sei se está na area certa mas vamos la... Estou convidando hoje vocês para jogar D6Craft. O que é D6Craft? D6craft é um servidor de minecraft 1.8.x que usa o plugin Towny como foco principal. O que é Towny? Towny é um plugin muito Fod*, os servidores normais fazem você comprar um terreno e fica só aquilo, mas o towny não! Para você ter um terreno você precisa vira um prefeito(Isso mesmo prefeito) e para conseguir mais terreno vc tem que chamar mais pessoas para sua "Cidade" e com isso você vai criando um "Reino" Caso tenha interesse você pode ja entrar em uma cidade a minha hahahahha É só entrar e chegar falar ou Com o Jepart (eu) Ukakaru Hiper02 TGhoul Andre_ito a cidade é Kirion a maior cidade do servidor :D Facebook https://www.facebook.com/d6craft Site http://d6craft.com/ (Ainda construindo) ps: O server não é meu :S eu jogo nele e gosto muito dele!
  16. Sempre que eu matar uma galinha ganha tipo +10 na storage 10000 e um porco +20 Não é sistema de task só preciso que conte a storage
  17. Jepart respondeu ao post em um tópico de Kewen Batista em Formação de Equipe
    Só acho que essa ideia de profissões não vem só do seu projeto .... Existe varios jogos que tem essa ideia...
  18. Jepart respondeu ao post em um tópico de Kewen Batista em Formação de Equipe
    Me adiciona ae para conversar
  19. Jepart respondeu ao post em um tópico de Kewen Batista em Formação de Equipe
    Nome:Jean Carlos (Jepart) Idade:19 Skype/Facebook/Whats APP: facebook.com/jepartJ / 021 979073922 Porque você quer fazer parte do projeto?: To com a mesma ideia de você de fazer um server assim e seria otimo em vez de fazer só um server só com minhas ideias fazer um com alguem Quanto tempo de experiência você tem com OT Servers? faço server desda 7.92
  20. Como seria o server de inicio de conversa
  21. Jepart respondeu ao post em um tópico de Andreselos1988 em Suporte Tibia OTServer
    Edita o arquivo que está dentro da pasta plugin e poem o codigo do dat e spr
  22. Jepart respondeu ao post em um tópico de Andreselos1988 em Suporte Tibia OTServer
    To usando a 10.51 coisa que a outra versão do ot item editor queria abrir basta você abrir o OtItemEditor ae em file vai ter a opçãode escolher o cliente e depois de escolher você abre o OTB

Informação Importante

Confirmação de Termo