Ir para conteúdo

GiovaniRodrigo

Membro
  • Registro em

  • Última visita

Tudo que GiovaniRodrigo postou

  1. Mande a linha dos dois spells que esta na spell.xml
  2. Crie um arquivo chamado Jax.lua na pasta data/npc/scripts e cole isso local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end local items = { item1 = {2346, 2349}, -- item1 item que será pedido e que será dado na primeira troca item2 = {2033, 15515} -- item2 item que será pedido e que será dado na segunda troca } local counts = { count1 = {1, 1}, -- count1 quantidade que será pedido e que será dado na primeira troca count2 = {10, 1} -- count2 quantidade que será pedido e que será dado na segunda troca } function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'blue note') then if getPlayerItemCount(cid, items.item1[1]) >= counts.count1[1] then doPlayerRemoveItem(cid, items.item1[1], counts.count1[1]) doPlayerAddItem(cid, items.item1[2], counts.count1[2]) selfSay('You just swap '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..' for '.. counts.count1[2] ..' '.. getItemNameById(items.item1[2]) ..'.', cid) else selfSay('You need '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..'.', cid) end elseif msgcontains(msg, 'bar of gold') then if getPlayerItemCount(cid, items.item2[1]) >= counts.count2[1] then doPlayerRemoveItem(cid, items.item2[1], counts.count2[1]) doPlayerAddItem(cid, items.item2[2], counts.count2[2]) selfSay('You just swap '.. counts.count2[1] ..' '.. getItemNameById(items.item2[1]) ..' for '.. counts.count2[2] ..' '.. getItemNameById(items.item2[2]) ..'.', cid) else selfSay('You need '.. counts.count2[1] ..' '.. getItemNameById(items.item2[1]) ..'.', cid) end end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Crie um arquivo chamado Jax.xml na pasta data/npc e cole isso <?xml version="1.0" encoding="UTF-8"?> <npc name="Jax" script="Jax.lua" walkinterval="2000" floorchange="0"> <health now="150" max="150" /> <look type="134" head="57" body="59" legs="40" feet="76" corpse="2212" /> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|. Do not want to make an exchange? I have {blue note} and {bar of gold}." /> <parameter key="message_farewell" value="Bye bye!" /> </parameters> </npc> Testado e está 100% funcional Att. Giovani Rodrigo
  3. Que isso cara, sempre que posso eu ajudo.
  4. Crie um arquivo chamado book.lua na pasta data/actions/scripts e cole isso function onUse(cid, item, frompos, item2, topos) doPlayerPopupFYI(cid, 'Aqui voce coloca\nAs informaçoes.') -- O \n significa quebra de linha (pular linha) return TRUE end Adicione a seguinte linha no arquivo actions.xml que se encontra na pasta data/actions <action itemid="1950" event="script" value="book.lua"/> <!-- itemid="1950" é o id do livro --> Att. Giovani Rodrigo
  5. GiovaniRodrigo postou uma resposta no tópico em Playground (Off-topic)
    Eu editei umas músicas deles para guitar hero 3. Ficou bem legal.
  6. Uma coisa que todos tem que ter em mente, se você quer algo de ótima qualidade não adianta querer economizar. Quero dizer um VPS com um bom CPU, uma boa Memória RAM, uma boa Conexão. Existem empresas de ótimos sistemas de VPS, unica coisa que diferencia as empresas de VPS e o sistemas delas, já ouvi falar de empresas que pega um dedicado e faz vários VPS com ele, isso é muito errado. Isso é o que diferencia uma empresa boa de uma empresa ruim. Existem pessoas que alugam VPS que suporta um Baiak com 100 jogadores e quer colocar um Global Full com 200 jogadores. É só ter bom senso. Att. Giovani Rodrigo
  7. GiovaniRodrigo postou uma resposta no tópico em Playground (Off-topic)
    Sua foto é do Bullet for My Valentine né?
  8. Diga o erro que está dando que poderei dar suporte. Att. Giovani Rodrigo
  9. Cara se eu for te explicar cada função de uma spell tudo certinho levaria muito tempo. Estude isso. Aulas de Scripting Lua E aqui está quase todas as funções LUA pra te ajudar. Lista de Funções LUA
  10. Olá colega, Evite criar tópicos que já tenho a solução aqui no TK. Por exemplo a sua dúvida já foi respondida para outro usuário Clique aqui para ir ao tópico. Att. Giovani Rodrigo
  11. Essa página fake seria para hackiar jogadores?
  12. GiovaniRodrigo postou uma resposta no tópico em Playground (Off-topic)
    Eu ouvi falar dessa banda em 2008 quando morava em Bauru, um colega meu cantava uma música deles que nem lembro mais. Curti os guitarristas, mas usam o dom pras coisas erradas rsrs. O vocal me fez lembrar o Iron Maiden rsrs.
  13. Crie um arquivo chamado gemskill.lua na pasta data/actions/scripts e cole isso function onUse(cid, item, frompos, item2, topos) -- SORCERER E DRUID consult = getPlayerMagLevel(cid) calc = consult*12/100 duration = 180 -- Em minutos local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, duration*60*1000) setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, calc) setConditionParam(condition, CONDITION_PARAM_SPEED, 40) if item.itemid == 2156 then if getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 5 and getPlayerVocation(cid) == 2 or getPlayerVocation(cid) == 6 then doSendMagicEffect(getCreaturePosition(cid), 14) doPlayerSendTextMessage(cid, 22, 'You gained +40 speed and 12% more magic level.') doPlayerRemoveItem(cid, 2156, 1) return doAddCondition(cid, condition) else doPlayerSendTextMessage(cid, 21, 'You\'re not a sorcerer') doSendMagicEffect(getCreaturePosition(cid), 2) end -- PALADIN elseif item.itemid == 2154 then consult = getPlayerSkillLevel(cid, 4) calc = consult*15/100 duration = 180 -- Em minutos local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, duration*60*1000) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, calc) setConditionParam(condition, CONDITION_PARAM_SPEED, 40) if getPlayerVocation(cid) == 3 or getPlayerVocation(cid) == 7 then doSendMagicEffect(getCreaturePosition(cid), 14) doPlayerSendTextMessage(cid, 22, 'You gained +40 speed and 15% more distance fight.') doPlayerRemoveItem(cid, 2154, 1) return doAddCondition(cid, condition) else doPlayerSendTextMessage(cid, 21, 'You\'re not a paladin') doSendMagicEffect(getCreaturePosition(cid), 2) end -- KNIGHT elseif item.itemid == 2153 then consult = {getPlayerSkillLevel(cid, 1), getPlayerSkillLevel(cid, 2), getPlayerSkillLevel(cid, 3)} calc = {consult[1]*12/100, consult[2]*12/100, consult[3]*12/100} duration = 180 -- Em minutos local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, duration*60*1000) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, calc[1]) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, calc[2]) setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, calc[3]) setConditionParam(condition, CONDITION_PARAM_SPEED, 40) if getPlayerVocation(cid) == 4 or getPlayerVocation(cid) == 8 then doSendMagicEffect(getCreaturePosition(cid), 14) doPlayerSendTextMessage(cid, 22, 'You gained +40 speed and 12% more club fight, sword fight and axe fight.') doPlayerRemoveItem(cid, 2153, 1) return doAddCondition(cid, condition) else doPlayerSendTextMessage(cid, 21, 'You\'re not a knight') doSendMagicEffect(getCreaturePosition(cid), 2) end end end Adicione a seguinte linha no arquivo actions.xml que se encontra na pasta data/actions <action itemid="2156;2158;2154;2153" event="script" value="gemskill.lua"/> Testado e esta 100% funcional Dúvidas? Me avise. Att. Giovani Rodrigo
  14. GiovaniRodrigo postou uma resposta no tópico em Suporte Tibia OTServer
    Vamos começar pelo NPC Crie um arquivo chamado Fred.lua na pasta data/npc/scripts e cole isso local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end local cfg = { item = {1111, 1112, 1113}, -- ID dos itens count = 1 -- Quantidade dos itens } function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'task') then if getPlayerStorageValue(cid, 40000) == -1 then selfSay('I need you to catch {'.. cfg.count ..' '.. getItemNameById(cfg.item[1]) ..', '.. cfg.count ..' '.. getItemNameById(cfg.item[2]) ..' and '.. cfg.count ..' '.. getItemNameById(cfg.item[3]) ..'}, you\'d get?', cid) talkState[talkUser] = 1 else selfSay('You have made ​​this task.', cid) end elseif talkState[talkUser] == 1 then if msgcontains(msg, 'yes') then selfSay('Oh! Thank you, come back here when you catch all the {items}.', cid) talkState[talkUser] = 2 elseif msgcontains(msg, 'no') then selfSay('So, GET OUT HERE!', cid) end elseif talkState[talkUser] == 2 then if msgcontains(msg, 'items') then if doPlayerRemoveItem(cid, cfg.item[1], cfg.count) and doPlayerRemoveItem(cid, cfg.item[2], cfg.count) and doPlayerRemoveItem(cid, cfg.item[3], cfg.count) then selfSay('Good! I see you managed, you now have permission to go through the door.', cid) setPlayerStorageValue(cid, 40000, 1) talkState[talkUser] = 0 else selfSay('You didn\'t picked all the items I ordered.', cid) end end end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Configurando Crie um arquivo chamado Fred.xml na pasta data/npc e cole isso <?xml version="1.0" encoding="UTF-8"?> <npc name="Fred" script="Fred.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="128" head="17" body="54" legs="114" feet="0" addons="2"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|, Could do a {task} for me?"/> </parameters> </npc> Agora vamos criar o script da PORTA Actions Crie um arquivo chamado doorstorage.lua na pasta data/actions/scripts e cole isso function onUse(cid, item, frompos, item2, topos) if getPlayerStorageValue(cid, 40000) >= 1 then doTransformItem(item.uid,item.itemid+1) doTeleportThing(cid,topos) else doPlayerSendTextMessage(cid, 22, 'You don\'t have access') return TRUE end end Movements Adicione a seguinte linha no arquivo actions.xml que se encontra na pasta data/actions <action actionid="6587" event="script" value="doorstorage.lua"/> Crie um arquivo chamado doorstorage.lua na pasta data/movements/scripts function onStepOut(cid, item, position, fromPosition) doTransformItem(item.uid, item.itemid-1) end Adicione a seguinte linha no arquivo movements.xml que se encontra na pasta data/movements <movevent type="StepOut" actionid="6587" event="script" value="doorstorage.lua"/> Não testado. Dúvidas? Me avise. Att. Giovani Rodrigo
  15. GiovaniRodrigo postou uma resposta no tópico em Playground (Off-topic)
    Nossa Metallica destrói, eu toco no violão Nothing Else Matters, The Unforgiven, Enter SandMan...
  16. GiovaniRodrigo postou uma resposta no tópico em Playground (Off-topic)
    Sou eclético, não tendo muita besteira na música.
  17. GiovaniRodrigo postou uma resposta no tópico em Playground (Off-topic)
    Toma na sua cara logo um Full Concert Slipknot - Desasterpiece (Londres 2002) http://www.youtube.com/watch?v=8y_lBVz5DF8
  18. Nossa bem complexo
  19. Se for possível compartilhar a solução. Poderá ajudar futuros usuários que estejam a procura do mesmo. Att. Giovani Rodrigo
  20. Eu vi esse seu post, vou dar uma estudada mais tarde, porque agora vou sair. Quando chegar eu vejo isso.
  21. Pronto, agora as pérolas somem e o jogador é teletransportado para o local desejado.
  22. Inteiro, refaça do zero, apague tudo que você fez do script antigo e faça de novo.
  23. Crie um arquivo chamado multicon.lua na pasta data/spells/scripts/attack e cole isso local effectSpell = CONST_ANI_ONYXARROW -- Efeito da spell local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, true) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, effectSpell) setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 4, 6) function onCastSpell1(parameters) doCombat(parameters.cid, combat, parameters.var) end function onCastSpell(cid, var) local parameters = {cid = cid, var = var} addEvent(onCastSpell1, 100, parameters) return addEvent(onCastSpell1, 300, parameters) end end Adicione a seguinte linha no arquivo spells.xml que se encontra na pasta data/spells <instant name="Divine Arrow" words="exori multi con" lvl="30" mana="40" prem="0" range="7" needtarget="1" exhaustion="4000" groups="1,2000" icon="57" blockwalls="1" needlearn="0" event="script" value="attack/multicon.lua"> <vocation id="3"/> <vocation id="7"/> </instant> Não testado Dúvidas? Me avise. Att. Giovani Rodrigo

Informação Importante

Confirmação de Termo