Ir para conteúdo

joadson

Membro
  • Registro em

Tudo que joadson postou

  1. joadson postou uma resposta no tópico em Formação de Equipe
    Vai depender do tipo, se for erro "besta" de scripts, posso te ajudar sem problemas... Agora se for algo pra refazer o scripts ou modificar na sourcer eu aceito uma gratificação.
  2. joadson postou uma resposta no tópico em Formação de Equipe
    Isso é fácil, entra em contato comigo via-MP que acertamos os detalhes.
  3. joadson postou uma resposta no tópico em Formação de Equipe
    Olá, sou um antigo membro do fórum e já fui OTAdmin, porém devido a correria(trampo, trampo e mais trampo), tive que encerrar tudo. Hoje estou procurando alguém pra ajudar com meus conhecimentos(não são muitos, mas garanto-lhe que irá te ajudar). Só tenho disponibilidade pela manha, já que trampo a tarde/noite, chegando apenas 22:50 em casa todos os dias. Posso te auxiliar com scripts, correções(distro, scripts e website) Faço criação de sistemas(se for complexo e que envolva muito tempo, pode demorar, devido a falta de tempo) Caso tenha interesse entre em contato comigo para acertarmos os detalhes. PS: Não mexo com TFS 1.0+
  4. Tente esse aqui, não pude testar pois não tenho nenhum servidor. function onUse(cid, item, fromPosition, itemEx, toPosition) local storage = 18597 if getPlayerStorageValue(cid, storage) <= 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabens, voce se tornou um Modd Player") setPlayerStorageValue(cid, storage, 2) doRemoveItem(item.uid, 1) else doSendPlayerCancel(cid, "Voce ja e um Modd Player.") end return true end
  5. local config = { storage = 19400, -- storage em que será salvo o tempo cor = "advance", -- de acordo com o constant.lua da lib tempo = 2, -- em minutos itemid = 2160, --- id do item que vai ser cobrado price = 1, -- preço pra usar o broadcast level = 30 -- level pra poder utilizar o broadcast } function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end if getPlayerLevel(cid) >= config.level then if getPlayerStorageValue(cid, config.storage) - os.time() <= 0 then if doPlayerRemoveItem(cid, config.itemid, config.price) then setPlayerStorageValue(cid, config.storage, os.time() + (config.tempo*60)) doBroadcastMessage("[BROADCAST] "..getCreatureName(cid)..": "..param.."", config.cor) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You have successfully sent a broadcast, now you'll have to wait " ..config.tempo.. " minute(s) until you broadcast again.") return false else doPlayerSendCancel(cid, "You don't have " ..config.price.. " gp's for broadcasting.") return false end else doPlayerSendCancel(cid, "You have to wait " ..(getPlayerStorageValue(cid, config.storage) - os.time()).. " seconds until you can broadcast again.") return false end else doPlayerSendCancel(cid, "You have to be level " ..config.level.. " or more in order to use broadcast.") end end Faltava uma ,(virgula) depois do 2160...
  6. local config = { daily = "no", -- só pode fazer a quest 1 vez por dia level = 100, storage = 30015, entry = { {x = 247, y = 659, z = 13}, -- posição inicial do 1 até o 6 {x = 247, y = 660, z = 13}, {x = 247, y = 661, z = 13}, {x = 247, y = 662, z = 13}, {x = 247, y = 662, z = 13}, {x = 247, y = 662, z = 13} }, destination = { {x = 189, y = 650, z = 13}, -- local onde será teleportado do 1 ao 6 {x = 189, y = 651, z = 13}, {x = 189, y = 652, z = 13}, {x = 189, y = 653, z = 13}, {x = 247, y = 662, z = 13}, {x = 247, y = 662, z = 13} } } config.daily = getBooleanFromString(config.daily) function onUse(cid, item, fromPosition, itemEx, toPosition) if(item.itemid == 1946) then if(config.daily) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) else doTransformItem(item.uid, item.itemid - 1) end return true end if(item.itemid ~= 1945) then return true end local players = {} for _, position in ipairs(config.entry) do local pid = getTopCreature(position).uid if(pid == 0 or not isPlayer(pid) or getCreatureStorage(pid, config.storage) > 0 or getPlayerLevel(pid) < config.level) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) return true end table.insert(players, pid) end for i, pid in ipairs(players) do doSendMagicEffect(config.entry[i], CONST_ME_POFF) doTeleportThing(pid, config.destination[i], false) doSendMagicEffect(config.destination[i], CONST_ME_ENERGYAREA) end doTransformItem(item.uid, item.itemid + 1) return true end Tente esse
  7. Mude db.executeQuery para db.query
  8. joadson postou uma resposta no tópico em Suporte Tibia OTServer
    vá em data/NPC e crie um arquivo chamado Celest.xml e cole isso dentro <?xml version="1.0"?> <npc name="Celest" script="data/npc/scripts/marriagesystem.lua" walkinterval="50000" floorchange="0"> <health now="1000" max="1000"/> <look type="130" head="0" body="114" legs="114" feet="0" addons="0"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|. You can {marriage} or may {divorce}."/> </parameters> </npc> E depois entre na pasta script e crie marriagesystem.lua e adicione o spoiler abaixo.
  9. Mude isso if getRepPoints(cid) >= config.repNeeded then pra isso if getPoints(cid) >= config.repNeeded then Ou mude o nome da função no MOD. Caso não funcione, adicione isso em lib/0-50function.lua function getRepPoints(cid) -- Rep System local Info = db.getResult("SELECT `rep` FROM `players` WHERE `id` = " .. getPlayerGUID(cid) .. " LIMIT 1") local p = Info:getDataInt("rep") Info:free() return p end
  10. Obrigado a todos pelo apoio, fico feliz Aos poucos vou dando release em outros sistemas. é "simples", mas da uma diferenciada
  11. Editei e coloquei a informação complementar
  12. Olá, não sou muito de criar tópicos, porém, acho que isso será util para alguém. Estava precisando de um sistema "diferente" de heal e decidir criar essa spells. Mas o que ela faz? Simples, ela vai healar de acordo com o MAX que o player tiver, tudo configurável e em porcetagem. EX: Tenho 1000 de mana e configurei pra healar 25%, ao usar essa spells, irei curar 250 e assim sucessivamente. Testado no TFS 0.4 e OTX, creio que funcione em outras versôes. Sem mais delongas, vamos ao script. Vá em data/spells/script e crie um arquivo chamado heal.lua e cole o código abaixo. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) local config = { stage1 = 1000, --Quantidade de life no stage1 stage2 = 2000, --Quantidade de life no stage2 stage3 = 3000, --Quantidade de life no stage3 stage4 = 6000, --Quantidade de life no stage4 stage5 = 10000, --Quantidade de life no stage5 stage6 = 20000, --Quantidade de life no stage6 stage7 = 30000, --Quantidade de life no stage7 ------Porcetagem dos stages------- percent1 = 6.0, --60% percent2 = 5.0, --50% percent3 = 4.0, --40% percent4 = 3.0, --30% percent5 = 1.5, --15% percent6 = 1.0, --10% percent7 = 0.7 --7% } function onCastSpell(cid, var) if getCreatureMaxHealth(cid) <= config.stage1 then doCreatureAddHealth(cid, getCreatureMaxHealth(cid) * config.percent1 / 100) elseif getCreatureMaxHealth(cid) >= config.stage2 then doCreatureAddHealth(cid, getCreatureMaxHealth(cid) * config.percent2 / 100) elseif getCreatureMaxHealth(cid) >= config.stage3 then doCreatureAddHealth(cid, getCreatureMaxHealth(cid) * config.percent3 / 100) elseif getCreatureMaxHealth(cid) >= config.stage4 then doCreatureAddHealth(cid, getCreatureMaxHealth(cid) * config.percent4 / 100) elseif getCreatureMaxHealth(cid) >= config.stage5 then doCreatureAddHealth(cid, getCreatureMaxHealth(cid) * config.percent5 / 100) elseif getCreatureMaxHealth(cid) >= config.stage6 then doCreatureAddHealth(cid, getCreatureMaxHealth(cid) * config.percent6 / 100) elseif getCreatureMaxHealth(cid) >= config.stage7 then doCreatureAddHealth(cid, getCreatureMaxHealth(cid) * config.percent7 / 100) end return doCombat(cid, combat, var) end Depois abra o spells.xml e coloque o codigo abaixo, lembre-se de configurar do seu jeito. <instant name="MUDE AQUI" words="MUDE AQUI" lvl="MUDE AQUI" mana="MUDE AQUI" prem="1" exhaustion="5000" needlearn="0" script="heal.lua"> <vocation id="1"/> <vocation id="2"/> <vocation id="3"/> <vocation id="4"/> </instant> Agora é só abrir o server e testar. OBS: Caso queira usar esse script como mana rune mude o getCreatureMaxHealth por getCreatureMaxMana e doCreatureAddHealth por doPlayerAddMana
  13. Tente assim...
  14. joadson postou uma resposta no tópico em Suporte Tibia OTServer
    Mude isso WHERE `group_id` <= 2 para isso WHERE `group_id` <= 1 e teste
  15. Olá, venho fazer um pedido, é "simples" para quem tem conhecimento... Gostaria que colocassem apenas um nome na imagem em anexo. Texto: 4Fun Server é para meu cliente próprio, editei uma imagem mas não ficou muito "bom". Olhem como ficou, é algo mais ou menos assim, porém com mais "efeitos" na letras e algo combinando com o bg.
  16. joadson postou uma resposta no tópico em Suporte Tibia OTServer
    Se usa o !reset, deve ficar em talkaction.xml, caso não esteja ai, deve haver algum MOD com essa talkaction.
  17. Adicione isso também. ALTER TABLE `players` ADD `castViewers` INT(11) NOT NULL DEFAULT '0'
  18. joadson postou uma resposta no tópico em Suporte Tibia OTServer
    Execute isso no phpmyadmin CREATE TABLE `player_statements` ( `id` int(11) NOT NULL AUTO_INCREMENT, `player_id` int(11) NOT NULL, `channel_id` int(11) NOT NULL DEFAULT '0', `text` varchar(255) NOT NULL, `date` bigint(20) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `player_id` (`player_id`), KEY `channel_id` (`channel_id`), CONSTRAINT `player_statements_ibfk_1` FOREIGN KEY (`player_id`) REFERENCES `players` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  19. as sourcers foram modificadas. antes era /attr set attack, 20, hoje é /attr set number attack 20 foi acrescentado int, number, text etc antes da função.
  20. joadson postou uma resposta no tópico em Suporte Tibia OTServer
    Mude tempo = 60, -- Tempo em minutos para isso tempo = 42 * 60 * 1000, -- Tempo em minutos esse é a contagem de stamina full.
  21. Como assim talkaction? isso é um creaturevents.
  22. Ahhh, você quer paralyse? pensei que fosse para travar, porque é isso que tá fazendo... Irei editar tudo aqui e depois posto.
  23. Vá em movements/script e crie um arquivo chamado piso.lua e coloque isso dentro function onStepIn(cid, item, position, fromPosition) local pos = {x = 160, y = 54, z = 7} -- posição que o player será teleportado local chance = math.random(1, 100) local valor = 50 -- um valor para o player teleportar, quanto menor o numero, maior a chance dele ser teleportado local velocidade = 1500 -- 1,5 segundos local function loop(valores) doCreatureSetNoMove(cid, true) addEvent(loop, velocidade, valores) -- Não remova isso end local function loop2(valores2) doCreatureSetNoMove(cid, false) addEvent(loop2, velocidade, valores) -- Não remova isso end if isPlayer(cid) then addEvent(loop, velocidade, valores) addEvent(loop2, velocidade, valores2) if chance >= valor then doTeleportThing(cid, pos) end end return true end depois abra o movements.xml e coloque <movevent type="StepIn" uniqueid="29221" event="script" value="piso.lua"/> Feito isso, abra o RME e coloque UNIQUEID 29221 nos pisos onde o player ficará andando. Não sei se foi isso que você queria, mas só vai saber testando :X
  24. Aqui, modificado para 1 item... Para adicionar mais algum, é só seguir a lógica. function onUse(cid, item, frompos, item2, topos) local config = { quant = 10, -- quantidade de pontos para abrir o bau item1 = 2160 -- item1 do bau } if getPoints(cid) >= config.quant then doPlayerAddItem(cid, config.item1, 1) -- modifique apenas a quantidade, no casso esse 1 no final doPlayerRemovePoints(cid, config.quant) else doPlayerSendTextMessage(cid,22 ,"Você precisa de ".. config.quant .." Pontos para poder abrir esse báu.") -- se quiser mude essa mensagem end return true end E você pode sim trocar por actionid e o numero de acordo com sua preferência..
  25. Vá em action/scripts e crie um arquivo chamados pontos.lua e coloque isso dentro function onUse(cid, item, frompos, item2, topos) local config = { quant = 10, -- quantidade de pontos para abrir o bau item1 = 2160, -- item1 do bau item2 = 2148, --item2 item3 = 2149 --item3, se quiser mais é só ir modificando. } if getPoints(cid) >= config.quant then doPlayerAddItem(cid, config.item1, 1) -- modifique apenas a quantidade, no casso esse 1 no final doPlayerAddItem(cid, config.item2, 1) doPlayerAddItem(cid, config.item3, 1) doPlayerRemovePoints(cid, config.quant) else doPlayerSendTextMessage(cid,22 ,"Você precisa de ".. config.quant .." Pontos para poder abrir esse báu.") -- se quiser mude essa mensagem end return true end depois abra o action.xml e adicione. <action uniqueid="2331" script="pontos.lua" /> Depois é só abrir o RME, colocar um báu em algum local e colocar UNIQUEID 2331 e seja feliz =D

Informação Importante

Confirmação de Termo