Ir para conteúdo

Leoxtibia

Visconde
  • Total de itens

    489
  • Registro em

  • Última visita

  • Dias Ganhos

    15

Tudo que Leoxtibia postou

  1. Leoxtibia

    Fly System

    @Luminous O sistema do Mock não é por storage, acho que só funcionaria por vip.hasVip(cid). Aqui está o script:
  2. Em data>actions> scripts crie um arquivo.lua e cole isto dentro: function onUse(cid, item, fromPosition, itemEx, toPosition) local days = 15 -- dias que serão adicionados local daysvalue = days * 24 * 60 * 60 local storageplayer = getPlayerStorageValue(cid, 13701) local timenow = os.time() if getPlayerStorageValue(cid, 13701) - os.time() <= 0 then time = timenow + daysvalue else time = storageplayer + daysvalue end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.") setPlayerStorageValue(cid, 13701, time) local quantity = math.floor((getPlayerStorageValue(cid, 13701) - timenow)/(24 * 60 * 60)) doSendMagicEffect(getPlayerPosition(cid), math.random(28,30)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.") return TRUE end Em actions.xml cole a tag: <action actionid="XXXX" event="script" value="NOMEDOSEUARQUIVO.lua"/> Em XXXX você substitui pelo actionid que você colocou na estátua pelo map editor. Vlw, espero ter ajudado.
  3. Leoxtibia

    Npc De Quest.

    Se não era assim que você queria, faltou você me falar algo kk. Você não disse que era para removar a bota, falou que era só para checkar se ele tinha... Mas mesmo assim, você edita a seu gosto ^^. Quanto a dar o item novamente, aqui está o certo: Vlw, espero ter ajudado.
  4. Leoxtibia

    Npc De Quest.

    Em data>npcs crie um arquivo.xml e cole isto dentro: <?xml version="1.0" encoding="UTF-8"?> <npc name="NOMEDOSEUNPC" script="data/npc/scripts/NOMEDOARQUIVO.lua" walkinterval="5000" floorchange="0"> <health now="100" max="100"/> <look type="128" head="20" body="100" legs="50" feet="99" corpse="2212"/> <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME|. Bem vindo a minha casa. Em que posso ajudar?"/> <parameter key="message_farewell" value="Volte quando quiser, |PLAYERNAME|!"/> <parameter key="module_keywords" value="1" /> </parameters> </npc> Em data>npcs>scripts crie um arquivo.lua e cole isto dentro: 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 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, 'kevnan')) and getPlayerStorageValue(cid, 3987) >= 1 then selfSay('Voc\ê j\á vingou a morte de meu filho.', cid) talkState[talkUser] = 0 end if(msgcontains(msg, 'kevnan')) and getPlayerStorageValue(cid, 3987) <= 0 then selfSay('Ah você conhece meu filho Kevnan? Que ótimo conhecer você. A vários dias ele saiu em uma jornada perigosa e até então não tenho notícias dele, você sabe algo a respeito?', cid) elseif(msgcontains(msg, 'botas')) then selfSay('Voc\ê falou botas? Diga {yes} ou {no}', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'mais')) then selfSay('Acredito que quem matou meu filho foi um poderoso monstro que anda aterrorizando a região, há boatos que é um dragão jamais visto antes, se você vingar a morte do meu filho vou te dar algo que pertencia a Kevnan, algo que ele gostava muito, volte aqui quando cumprir sua {missao}.', cid) talkState[talkUser] = 2 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if (getPlayerItemCount(cid, 6530) >= 1) then selfSay('Ma.. Mas que triste notícia..... Meu filho querido, mamãe também te ama, que esteja bem onde quer que esteja..Quer saber {mais}?', cid) talkState[talkUser] = 0 else selfSay('De quais botas você está falando?', cid) talkState[talkUser] = 0 end elseif(msgcontains(msg, 'missao') and talkState[talkUser] == 2) then if(getPlayerItemCount(cid, 11366) >= 1) then selfSay('Muito obrigado por ter vingado a morte de meu filho Kevnan. Como prometido aqui está a sua recompensa.', cid) doPlayerRemoveItem(cid, 11366, 1) doPlayerAddItem(cid, 15407, 1) setPlayerStorageValue(cid, 3987, 1) talkState[talkUser] = 0 else selfSay('Ainda n\ão vingou a morte do meu filho Kevnan? Lembre-se que eh um dragão jamais visto antes que esta pelas regioes geladas. Voc\ê precisa trazer algo que prove que foi este monstro que matou meu filho', cid) talkState[talkUser] = 0 end end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  5. Editei uma coisa, tenta lá agora. Se não funcionar tenta assim: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 36) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 7, 14) local area = createCombatArea(AREA_BEAM7, AREADIAGONAL_BEAM7) setCombatArea(combat, area) function onCastSpell(cid, var) local parameters = { cid = cid, var = var} addEvent(onCastSpell, 600, parameters) doSendMagicEffect(getPlayerPosition(cid),5) doSendAnimatedText(getPlayerPosition(cid), '500', 3) return doCombat(cid, combat, var) end
  6. Vê assim então: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 36) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 7, 14) local area = createCombatArea(AREA_BEAM7, AREADIAGONAL_BEAM7) setCombatArea(combat, area) local function onCastSpell(parameters) doCombat(parameters.cid, combat, parameters.var) end function onCastSpell(cid, var) local parameters = { cid = cid, var = var} addEvent(onCastSpell, 600, parameters) doSendMagicEffect(getPlayerPosition(cid),5) doSendAnimatedText(getPlayerPosition(cid), '500', 3) return doCombat(cid, combat, var) end
  7. Não tenho muita certeza, mas acho que o Addevent pode ser usado assim, testa aí: function onCastSpell(cid, var) local parameters = { cid = cid, var = var} doSendMagicEffect(getPlayerPosition(cid),5) doSendAnimatedText(getPlayerPosition(cid), '500', 3) addEvent(onCastSpell, 600, parameters) return doCombat(cid, combat, var) end
  8. Falou falou e disse a mesma coisa que eu disse, assim como vc já tinha feito lá emcima. Não discordei de você, até porque era a mesma coisa que eu tinha falado. Quanto a analogia da polícia... a polícia é usada pra que a liberdade de um não seja invadida por outra pessoa, e é isso que ocorre com os botters, ao ter mais vantagens sobre uns, acabam estragando o jogo de outros. Enfim, estamos concordando na mesma coisa então não é necessário falar a mesma coisa duas vezes.
  9. Você pode proteger, criar novos tipos de proteções, atualizar semanalmente... Mas nunca vai conseguir impedir o jogo de ser hackeado ou ser robotizado. Você só pode fazer ser mais dificil. A questão vai ser sempre os jogadores, que optam ou não por usar alguma vantagem "ilegal" dentro do jogo. A questão vai ser sempre a vontade das pessoas. E isso sempre depende de cada um. Então, como eu disse, a cipsoft tem que criar modos de INIBIR e você mesmo falou que só pode fazer ser mais difícil. E isso é claro, não tem como acabar com os botters. Quanto ao que você disse de a questão ser sempre os jogadores, isso é fato. Porém, se a CIP ficar esperando que os players tenham consciência de que estão estragando o jogo com bot - sendo que tibia virou um comércio, e para esses vendedores o bot é imprescindível - a questão de bot nunca vai ser resolvida. Na vida real, seria como tirar toda a polícia, esperando que os ladrões tomassem consciência de que é errado roubar, sendo que roubo, muitas vezes é pra comércio, assim como os bots são.
  10. É indiscutível que estraga o jogo e não podemos discordar quanto a isso. A CipSoft deveria criar um sistema mais forte para inibir os botters, como sempre fazer atualizações entre período curtos de tempos para fazer com que os criadores dos botters percebam que não é mais vantajoso fazer um bot se daqui uma semana o tibia vai mudar de versão e levar à falência dos mesmos. A CipSoft até tentou fazer isso e ao que eu sei só teve efeito em cima de um bot, o BlackD que o próprio dono falou que não estava sendo mais vantajoso. Porém, depois a CIP afrouxou e aí eles voltaram, coisa que não deveria ter deixado acontecer.
  11. Discordo plenamente de quem diz que para gerenciar o xtibia é preciso que os administradores sejam excelentes scripters, mappers absurdos, spriters otimos. Para ser presidente de um clube de futebol, não é preciso ter sido jogador de futebol, basta saber ADMINISTRAR e isso foge da noção de que é preciso ter um conhecimento específico absurdo, apesar de achar que os que administram o xtibia entendem bastante do assunto. Apesar do pouco tempo de xtibia, quando eu era ot-admin, nunca fiquei com um pedido sem ser respondido devido aos ótimos scripters que existem aqui (citando alguns que me ajudaram antigamente, Jhon, Vodkart..). Enfim, não acho que esteja em crise e entendo que é só uma fase, mas é preciso que o xtibia consiga modos de capacitar novas pessoas com vontade de aprender, para que essa crise de que falam, não chegue.
  12. Você mexeu nessa linha? Se sim, deixe como ela estava: doPlayerSetExperienceRate(cid, 1.0)
  13. Então o erro deve ser no script, eu não olhei o script.. só resolvi os erros que tinha de escrita.
  14. Substitua por esse: -- annihilator lever function onUse(cid, item, frompos, item2, topos) if item.uid == 7004 and item.itemid == 1945 then player1pos = {x=1194, y=991, z=7, stackpos=253} player1 = getThingfromPos(player1pos) player2pos = {x=1193, y=991, z=7, stackpos=253} player2 = getThingfromPos(player2pos) player3pos = {x=1192, y=991, z=7, stackpos=253} player3 = getThingfromPos(player3pos) player4pos = {x=1191, y=991, z=7, stackpos=253} player4 = getThingfromPos(player4pos) if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then queststatus1 = getPlayerStorageValue(player1.uid,7004) queststatus2 = getPlayerStorageValue(player2.uid,7004) queststatus3 = getPlayerStorageValue(player3.uid,7004) queststatus4 = getPlayerStorageValue(player4.uid,7004) if queststatus1 == -1 and queststatus2 == -1 and queststatus3 == -1 and queststatus4 == -1 then nplayer1pos = {x=1194, y=991, z=8} nplayer2pos = {x=1193, y=991, z=8} nplayer3pos = {x=1192, y=991, z=8} nplayer4pos = {x=1191, y=991, z=8} doSendMagicEffect(player1pos,2) doSendMagicEffect(player2pos,2) doSendMagicEffect(player3pos,2) doSendMagicEffect(player4pos,2) doTeleportThing(player1.uid,nplayer1pos) doTeleportThing(player2.uid,nplayer2pos) doTeleportThing(player3.uid,nplayer3pos) doTeleportThing(player4.uid,nplayer4pos) doSendMagicEffect(nplayer1pos,10) doSendMagicEffect(nplayer2pos,10) doSendMagicEffect(nplayer3pos,10) doSendMagicEffect(nplayer4pos,10) doTransformItem(item.uid,item.itemid+1) else doPlayerSendCancel(cid,"Somebody in your team has already done this quest.") end else doPlayerSendCancel(cid,"You need four players for this quest.") end elseif item.uid ==7004 and item.itemid == 1946 then if getPlayerAccess(cid) > 0 then doTransformItem(item.uid,item.itemid-1) else doPlayerSendCancel(cid,"Sorry, not possible.") end else return 0 end return 1 end
  15. Crie um arquivo.xml na pasta data>npcs com o nome do seu Npc e coloque isto dentro: <?xml version="1.0" encoding="UTF-8"?> <npc name="Premium Acess Seller" script="data/npc/scripts/premium.lua" walkinterval="5000" floorchange="0"> <health now="100" max="100"/> <look type="153" head="58" body="58" legs="76" feet="76" addons="3"/> <parameters> <parameter key="message_greet" value="Ola jovem |PLAYERNAME|! Eu vendo {premium}."/> <parameter key="message_farewell" value="Ate logo, |PLAYERNAME|!"/> <parameter key="module_keywords" value="1" /> <parameter key="keywords" value="hi;" /> <parameter key="keyword_reply1" value="Ola jovem |PLAYERNAME|! Eu vendo {premium}." /> </parameters> </npc> Agora em data>npcs>scripts, copie qualquer arquivo, apague tudo que estiver dentro, renomeie para premium.lua e cole isto dentro: 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 function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid local dias = 7 --- dias que sera vendido if(msgcontains(msg, 'hi')) then selfSay('Ol\á. Eu vendo 7 dias de premium por 5kk. Se quiser comprar fale {premium}.', cid) elseif(msgcontains(msg, 'premium')) then selfSay('Voc\ê quer comprar 7 dias de premium por 5kk?', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then local price = 5000000 --- preco que sera cobrado if (doPlayerRemoveMoney(cid, price)) == TRUE then selfSay('Aqui est\á..', cid) doPlayerRemoveMoney(cid, price) doPlayerAddPremiumDays(cid, dias) talkState[talkUser] = 0 else selfSay('Voc\ê n\ão tem 5kk.', cid) talkState[talkUser] = 0 end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Vlw, espero que isso te ajude, abraço.
  16. Substitua ser arquivo startskill por esse: function onLogin(cid) local playerVoc = getPlayerVocation(cid) local skillStor = 56364 local gotSkills = getPlayerStorageValue(cid, 56364) if playerVoc == 5 and gotSkills == -1 then doPlayerAddSpentMana(cid, (getPlayerRequiredMana(cid,65))) setPlayerStorageValue(cid, skillStor, 1) elseif playerVoc == 6 and gotSkills == -1 then doPlayerAddSpentMana(cid, (getPlayerRequiredMana(cid,65))) setPlayerStorageValue(cid, skillStor, 1) elseif playerVoc == 7 and gotSkills == -1 then doPlayerSetSkill(cid, SKILL_DISTANCE, 70) doPlayerSetSkill(cid, SKILL_SHIELDING, 60) doPlayerAddSpentMana(cid, (getPlayerRequiredMana(cid,10))) setPlayerStorageValue(cid, skillStor, 1) elseif playerVoc == 8 and gotSkills == -1 then doPlayerSetSkill(cid, SKILL_SWORD, 70) doPlayerSetSkill(cid, SKILL_SHIELDING, 65) doPlayerSetSkill(cid, SKILL_AXE, 70) doPlayerSetSkill(cid, SKILL_CLUB, 70) doPlayerSetMagic(cid, 8) setPlayerStorageValue(cid, skillStor, 1) end return TRUE end E em lib>050-function.lua adicione isso lá no final: function doPlayerSetSkill(cid, skill, amount) local pid = getPlayerGUID(cid) doRemoveCreature(cid,true) db.executeQuery("UPDATE `player_skills` SET `value` = ".. amount .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. skill ..";") return TRUE end function doPlayerSetMagic(cid, amount) local pid = getPlayerGUID(cid) doRemoveCreature(cid,true) db.executeQuery("UPDATE `players` SET `maglevel` = " .. amount .. " WHERE `id` = "..pid) return TRUE end
  17. Não sei oq pode tá acontecendo, talvez seja algum bug do servidor. O script está normal. Tenta fazer com esse: Crie dois arquivos em movements>scripts e cole isto dentro expring.lua local rate = 2.0 function onEquip(cid, item, slot) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Sua experiência aumentou em + "..((rate - 1)*100).."%.") doPlayerSetExperienceRate(cid, rate) return true end expring2.lua function onDeEquip(cid, item, slot) doPlayerSetExperienceRate(cid, 1.0) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Sua taxa de experiência extra terminou.") return true end Agora em movements.xml adicione as tags: <movevent type="Equip" itemid="7708" slot="ring" event="script" value="expring.lua"/> <movevent type="DeEquip" itemid="7708" slot="ring" event="script" value="expring2.lua"/> Em 7708, você troca pelo id do ring que dará exp. Vlw, espero ter ajudado.
  18. Com certeza prejudica, se você partir do pressuposto de que bot é ilegal porque facilita para uns, isso também se aplica à GamerChants. É verdade que há muito tempo o tibia se tornou negócio, mas para aqueles que ainda resistem em jogar legalmente e com base no roleplay, isso é um prejuízo.
  19. Aparece algum erro no distro? Não sei oq pode tá acontecendo, tenta assim dessa vez, e se apareceu erro, posta ele aí: if getPlayerStorageValue(cid, 4596) == -1 then if not isInArray({1,2,3,4},getPlayerVocation(cid)) then for _, v in ipairs(commonItems) do doPlayerAddItem(cid, v.itemid, v.count or 1) setPlayerStorageValue(cid, 4596) end end end
  20. Você testou com um novo char com vocação diferente de 1,2,3,4?
  21. É, tinha esquecido de uma coisa, testa agora.
  22. Tenta colocar assim: if not isInArray({1,2,3,4},getPlayerVocation(cid)) then if getPlayerStorageValue(cid, 4596) == FALSE then for _, v in ipairs(commonItems) do doPlayerAddItem(cid, v.itemid, v.count or 1) setPlayerStorageValue(cid, 4596) end end end
  23. A árvore tá com os actionid certo? Que erro que dá no servidor?
  24. Em actions>scripts crie um arquivo.lua e cole isto dentro: local items = {1234,1235,1236} -- items que aparecerão local posicao = {x=1, y=1, z=1} -- onde os items aparecerão function onUse(cid, item) if item.itemid == 1945 or item.itemid == 1946 then local randomChance = math.random(1, #items) doCreateItem(items[randomChance],1 , posicao) doSendMagicEffect(posicao, 30) end end Agora em actions.xml cole a tag: <action actionid="XXXX" event="script" value="nomedoseuarquivo.lua"/> Em XXXX coloca o actionid da alavanca. Vlw, espero ter ajudado. Abraço! OPS: Ixi, nem vi queo caotic tinha postado, a página tava aberto a tempos, só vi agora ^^ Mas se não funcionar, usa aí.
  • Quem Está Navegando   0 membros estão online

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