Ir para conteúdo

RigBy

Visconde
  • Total de itens

    411
  • Registro em

  • Última visita

  • Dias Ganhos

    10

Tudo que RigBy postou

  1. Mano isso é um action, acho que você deve ta querendo a tag <action actionid="ACTIONID" script="nome do script.lua"/> ps: to no celular mas eu acho que a tag é assim mesmo.
  2. Blz, vou da inicio hoje quando chegar do pre-vestibular, se eu tiver alguma duvida eu posto aqui. :hi:
  3. Acho que ninguém deve ta fazendo então, vou tentar fazer e daqui para amanha, domingo, segunda... eu posto aqui caso eu tenha conseguido fazer. instale o getCreaturePathTo, acho que eu vou utilizar ele. :hi:
  4. function onUse(cid, item, fromPosition, itemEx, toPosition) local tpos = { [1025] = 24, -- [action id da porta] = level para passar na porta, [1026] = 26, [1027] = 27, } if tpos[item.actionid] then if getPlayerLevel(cid) >= tpos[item.actionid] then doTeleportThing(cid, fromPosition) else doPlayerSendTextMessage(cid, 22, "Voce precisa ser level "..tpos[item.actionid].." para passar pela porta") end end return true end
  5. Dei uma pesquisada achei um que funciona com storage feito pelo Doggynub. procure por: void Monster::doAttacking(uint32_t interval) { if(!attackedCreature || (isSummon() && attackedCreature == this)) return; logo abaixo adicione: Player* player = attackedCreature->getPlayer(); std::string value; std::string check = "15"; if (getName() == "Rat" && player && ( !(player->getStorage(8000,value)) || check != value ) ) { setFollowCreature(NULL); setAttackedCreature(NULL); searchTarget(TARGETSEARCH_NEAREST); } procure por: bool Monster::selectTarget(Creature* creature) { #ifdef __DEBUG__ std::cout << "Selecting target... " << std::endl; #endif if(!isTarget(creature)) return false; CreatureList::iterator it = std::find(targetList.begin(), targetList.end(), creature); if(it == targetList.end()) { //Target not found in our target list. #ifdef __DEBUG__ std::cout << "Target not found in targetList." << std::endl; #endif return false; } logo abaixo adicione: Player* player = creature->getPlayer(); std::string value; std::string check = "15"; if (getName() == "Rat" && player && ( !(player->getStorage(8000,value)) || check != value ) ) return false; onde tam "Rat" é o nome do Mob que você que. em 8000 é o id da storage em 15 é o valor da storage Agora so basta fazer um onLogin para que quando o player logue é for de tal vocação ele ganhe a storage local voc = 1 function onLogin(cid) if getPlayerVocation(cid) == voc then setPlayerStorageValue(cid, 8000, 15) end return true end
  6. Você pode converte o script para ASNI pelo notepad++ ou bloco de nota que vai fazer com que aceite também.
  7. qual source você ta usando? Assim da para fazer mas da maneira mais facil o mob vai continuar seguindo o player podendo causa traps. Como eu disse la em cima a melhor maneira sem bug é fazendo um npc que simule um mob mas isso vai da um trabalho. Posso tentar fazer amanha. To indo pro pre-vestibular, xau
  8. Sim registrei, to usando a TFS 0.4 rev 3777, acho que deve ser algum problema na minha source. Qual você ta usando?
  9. pronto agora esta para quando loga, ainda não entendi o primeiro script, então explica melhor ai Creaturescript: .lua function onLogin(cid) local item = getPlayerSlotItem(cid, 2) -- slot if item.uid > 0 then if item.itemid == 2580 then -- item que tem que ter doTransformItem(item.uid, 7573) -- item que vai ganha end end return true end .xml <event type="login" name="Loga" event="script" value="script.lua"/>
  10. ammo = CONST_SLOT_AMMO = 10
  11. Segundo script, não entendi direito quando ele ia checar então fiz para ele checar quando clicar no item. é um Action .lua local item = 7573 function onUse(cid, item, fromPosition, itemEx, toPosition) doTransformItem(item.uid, item) end .xml, tag <action itemid="2580" event="script" value="local.lua"/> Explica melhor o primeiro script não entendi direito
  12. kkkkkkkk, já tava sentindo o clima fica pesadão aqui já testei todos onAttack, onCombat, onTarget e até onFollow para usar com onstatusChange para que pare de seguir mas nenhum funciono do jeito que o cara que, o unico jeito que eu penso que pode da certo é o npc mas vai da um trabalhinho grande para min hehehehehe
  13. acho que você não leu o topico todo Bom galera, eu queria saber se é póssivel um script que só permita X vocation id atacar esse X monstro (configurado) e o monstro também só podendo atacar essa X vocation. pelo oque eu entendi ele pediu para que o mostro não possa ataca outras vocações alem dessa, então...
  14. Eu ja tentei fazer um onCombat e coloca um return false mas o Mob continua atacando, vo testar agora onAttack nunca usei
  15. Vey onCombat, onTarget não tem suporte para Mob, então da apenas para fazer para que tal player não ataque tal mostro mas o mostro vai continuar atacando o player, para funciona você terá que fazer modificação na source(eu não tenho a menor ideia de como fazer isso, ja tentei, no TFS 0.4 não sei se os novos já tem suporte ). As duas unica maneira que eu pensei é usando onStatsChange mas o bicho continuara seguindo o player mas sem tirar dano. ou fazendo um npc que simule um mostro, acredito que este topico possa te ajuda: http://www.xtibia.com/forum/topic/222197-bruce-the-fighter-o-npc-lutador/
  16. function onUse(cid, item, fromPosition, itemEx, toPosition) local itens = { [17101] = {id = 11447, qnt = 1, nome = "Fire Stone"}, -- id = (ID do item do do bau 1), qnt = (Quantidade do item do bau 1) FIre [17102] = {id = 11441, qnt = 1, nome = "Grass Stone"}, -- id = (ID do item do do bau 2), qnt = (Quantidade do item do bau 2) Leaf [17103] = {id = 11442, qnt = 1, nome = "Water Stone"}, -- id = (ID do item do do bau 3), qnt = (Quantidade do item do bau 3) Water } if getPlayerStorageValue(cid, 13471) == -1 then if itens[item.actionid] then doPlayerAddItem(cid, itens[item.actionid].id, itens[item.actionid].qnt) doPlayerSendTextMessage(cid,22,"[Quest]Você Ganhou Uma "..itens[item.actionid].nome..", Por Completar a Elementar Stone Quest!") setPlayerStorageValue(cid, 13471, 1) end else doPlayerSendTextMessage(cid,22,"[Quest]Você Já Fez Está Quest!") end return true end
  17. function onUse(cid, item, fromPosition, itemEx, toPosition) local itens = { [17101] = {id = 11447, qnt = 1}, -- id = (ID do item do do bau 1), qnt = (Quantidade do item do bau 1) FIre [17102] = {id = 11441, qnt = 1}, -- id = (ID do item do do bau 2), qnt = (Quantidade do item do bau 2) Leaf [17103] = {id = 11442, qnt = 1}, -- id = (ID do item do do bau 3), qnt = (Quantidade do item do bau 3) Water } if getPlayerStorageValue(cid, 13471) == -1 then if itens[item.actionid] then doPlayerAddItem(cid, itens[item.actionid].id, itens[item.actionid].qnt) doPlayerSendTextMessage(cid,22,"[Quest]Você Ganhou Uma "..itens[item.actionid].qnt.." "..itens[item.actionid].id..", Por Completar a Elementar Stone Quest!") setPlayerStorageValue(cid, 13471, 1) end else doPlayerSendTextMessage(cid,22,"[Quest]Você Já Fez Está Quest!") end return true end
  18. RigBy

    Gordin Mizeravi

    Lembrei disso quando entrei nesse tópico
  19. Você pode fazer um onCombat que veja se você ta com tal item e coloca um return false.
  20. RigBy

    Gordin Mizeravi

    Isso que da mexer com quem ta queto.
  21. Pensando seriamente em fazer um CS-Tibia para o xtibia. :D
  22. Mano faz por etapa 1 - tenta troca de TFS para ver ser é o distro. 2 - caso o primeiro não va tente troca a db para ver se o erro esta nele (caso seja ele, não sei como te ajuda amenos que você queira fica com ele mesmo) 3 - Se nenhum dos 2 tiver ajudado procura algum script no creaturescript que teja limitando que upe a skill (principalmente um onAdvance) ps. Claro que não vai aparecer porque não tem nada de errado em nenhum script.
  23. Dodge System por item V2 http://prntscr.com/7f2vl9 Para quem não sabe eu ja tinha feito um Dodge System ano passado, na época que eu não sabia nada, embora eu ainda não saiba nada to melhorando , eu tava sem nada para fazer ai decidir refazer, o script não tem nada de novo só foi modificado e melhorado algumas coisa. Para que não sabe dodge é um sistema que faz com que o player tenha uma certa porcentagem de esquiva de um ataque( por ele te esquivado ele não vai toma nenhum ataque e não apenas 50%) Então vamos la: Em creaturescript: Dodge System.lua function onStatsChange(cid, attacker, type, combat, value) local getStorage = getPlayerStorageValue(cid, 123455678) if (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS) then local chance = math.random (0,100) if chance <= getStorage then doSendAnimatedText(getCreaturePos(cid), "MISS!", 214) doSendMagicEffect(getCreaturePosition(cid), 30) return false end end return true end Creaturescript.xml <event type="StatsChange" name="DodgeSystem" event="script" value="Dodge System.lua"/> Login.lua antes do ultimo return true registerCreatureEvent(cid, "DodgeSystem") if getPlayerStorageValue(cid, 123455678) == -1 then setPlayerStorageValue(cid, 123455678, 0) end em action: dodgestone.lua function onUse(cid, item, fromPosition, itemEx, toPosition) local max = 50 -- limite de dodge local storagedodge = 123455678 -- storage do dodge if getPlayerStorageValue(cid, storagedodge) >= max then return doPlayerSendTextMessage(cid,22,"Você ja chego no limite de Dodge.") else doPlayerSetStorageValue(cid, storagedodge, (getPlayerStorageValue(cid, storagedodge)) + 1) doPlayerSendTextMessage(cid,22, "DodgeSKILL:["..getPlayerStorageValue(cid, storagedodge).."/"..max.."].") doRemoveItem(item.uid, 1) end return true end action.xml tag <action itemid="Id do item" event="script" value="dodgestone.lua"/> Se tiver algum bug ou dica de como melhorar pode comentar ai nos cometários Ps. com base nesse da para fazer Critical System, Reflect System e da para usar como magia de esquiva, se precisar é so fala
  24. Ninguém não nasce sabendo, então min deixa tenta.
  • Quem Está Navegando   0 membros estão online

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