Ir para conteúdo

Eskylo

Visconde
  • Total de itens

    477
  • Registro em

  • Última visita

  • Dias Ganhos

    5

Tudo que Eskylo postou

  1. function onUse(cid, item, frompos, item2, topos) -- Eskylo -- local ml = 10 --Magic level necessário pra usar a mana rune local level = 20 --level necessário pra usar a mana rune local vocs = {1, 2, 5, 6} --Vocações que podem usar a rune local formula = math.random(((getPlayerLevel(cid)+getPlayerMagLevel(cid))*2)-(getPlayerLevel(cid)-getPlayerMagLevel(cid))) if getPlayerLevel(cid) < level then doSendMagicEffect(frompos, 2) return doPlayerSendCancel(cid "Sorry, you need level "..level.." to use this mana rune.") elseif getPlayerMagLevel(cid) < ml then doSendMagicEffect(frompos, 2) return doPlayerSendCancel(cid "Sorry, you need magic level "..ml.." to use this mana rune.") elseif not isPlayer(item2.uid) then doSendMagicEffect(frompos, 2) return doPlayerSendCancel(cid "Sorry, you can only use this mana rune in players.") elseif not isInArray(vocs, getPlayerVocation(cid) then doSendMagicEffect(frompos, 2) return doPlayerSendCancel(cid "Sorry, your vocation cant use this mana rune.") end doSendMagicEffect(getThingPos(item.uid),1) doCreatureAddMana(item2.uid, formula) doCreatureSay(cid, "Yeah mana for me!", 2) doRemoveItem(item.uid, 1) return true end
  2. <?xml version="1.0" encoding="UTF-8"?> <npc name="NOME DO NPC" script="default.lua" walkinterval="2000" floorchange="0"> <health now="150" max="150"/> <look type="142" head="114" body="0" legs="95" feet="114" corpse="2212"/> <parameters> <parameter key="module_shop" value="1"/> <parameter key="message_greet" value="Hello |PLAYERNAME|, I buy any items, say {trade} to see the offers."/> <parameter key="shop_sellable" value="NOME_DO_ITEM_UM,ID _DO_ITEM 1,PREÇO_DO_ITEM_1;Fire Stone,5907,500;" /> </parameters> </npc> Para add um novo item coloque depois do ; e antes do " Nome,0000,000; Você pode usar isso se o npc não fizer nada além de vender itens.
  3. Em data/movements/scripts criei um arquivo no formato lua e adicione: function onStepIn(cid, item, position, fromPosition) if isPlayer(cid) == TRUE then if isPremium(cid) == FALSE then doTeleportThing(cid, fromPosition, TRUE) doSendMagicEffect(position, 12) end end return TRUE end Agora na pasta data/movements abra o movements.xml com o bloco de notas e embaixo de: <movements> Coloque: <movevent type="StepIn" actionid="0000" event="script" value="xxxx.lua"/> Onde está 0000 coloque um action id qualquer que não esteja em uso. Onde está xxxx bote o nome do arquivo lua que você colocou o script. Para usar basta abrir seu map e adicionar o action id que você escolheu nos tiles que quiser. @edit Poste na seção correta da próxima vez, que é "Pedidos de Scripting"
  4. Script da chest que dá a outfit: function onUse(cid, item, pos, item2, topos) if getPlayerStorageValue(cid, 1009) == -1 then setPlayerStorageValue(cid, 1009, 1) end return true end em data/xml abra o outfitis.xml no bloco de notas embaixo do ultimo q tem la poe <outfit id="iddoultimo+1" storage="1009"> <list gender="0-3" lookType="Poeaki" name="Nome"/> </outfit> se n funcionar poe <outfit id="iddoultimo+1" default="0" storage="1009"> <list gender="0-3" lookType="Poeaki" name="Nome"/> </outfit>
  5. Eskylo

    [Problema] Movement

    function onStepIn(cid, item, position, fromPosition) if not isPlayer(cid) == true then return true end local c = { rand = math.random(1, 50), pos = getThingPos(cid), monster = "Ghost", msg = "What the hell is that!?", } if (c.rand == 1) then doSummonCreature(c.monster, c.pos) doCreatureSay(cid, c.msg, 1) end end <movevent type="StepIn" actionid="XXXX" event="script" value="xxxx.lua"/>
  6. @DrakyLucas é só usar storage e os.time
  7. Bom cara! Mas dá pra melhorar bastante o script!
  8. function onUse(cid, item, fromPosition, itemEx, toPosition) local a = 60000 -- level do jogador pra poder usar o bau local tabela = { [6] = {1}, } -- config reset local RemainingLvl = 8 local pid = getPlayerGUID(cid) function addReset(cid) resets = getResets(cid) setPlayerStorageValue(cid,1020,resets+1) return TRUE end function getResets(cid) resets = getPlayerStorageValue(cid,1020) if resets < 0 then resets = 0 end return resets end -- end config reset -- if getPlayerLevel(cid) < a then return doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você deve ter level "..a.. " level ou mais para poder abrir este bau.") end if not tabela[getPlayerVocation(cid)] then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você não tem vocação necessária para fazer está quest.") end addReset(cid) doPlayerSetVocation(cid, tabela[getPlayerVocation(cid)][1]) setPlayerStorageValue(cid, 1020, 1) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = "..RemainingLvl..", `experience` = 0 WHERE `id` = "..pid) return TRUE end Voce pode agora fazer com q outras vocs possam fazer a quest, é só add aki: local tabela = { [6] = {1}, AKI } Exemplo [iD da vocação] = {ID da nova vocação}, Não esqueça da vírgula ali. Flw
  9. Putz, eu n pensei em usar o isInRange, acho q nunca ia pensar, '-', preciso treinar mais... Oneshot, muito obrigado, vc é genial !
  10. Pior q n é esse script ai n cara, esse ai, se vc colocar q quer ativar deathlist no config.lua , esse script vai marcar a morte na database sql do seu servidor, quando o player morrer
  11. Oneshot desossa!
  12. A idéia não é tao ruim, eu achei ruim, o player poder usar em qualquer ocasião. Tipo da pra colocar pra funcionar só se o player estiver em tal coordenada, e fazer o item n ser infinito, ai ficaria mais legal, pq ai pra fazer uma certa quest ele precisa desse item pra passar sobre uma mesa, sei lá, como ja disseram, "dá pra aprimorar"
  13. Pra arrumar o negócio de mandar 10x como DrakyLucas falou, é só mudar essa parte Está assim doSendAnimatedText(getPlayerPosition(cid), "GREAT POT!", TEXTCOLOR_LIGHTGREEN) i = i + 600 end Mude o "doSendAni..." para depois desse "end" aí, ficando: i = i + 600 end doSendAnimatedText(getPlayerPosition(cid), "GREAT POT!", TEXTCOLOR_LIGHTGREEN)
  14. ela funciona normal cara, só q pra funcionar, voce deve usar o regiterCreatureEvent(cid, "nome q vc pois no creature.xml") Exemplo criei o script coloquei na pasta data/creaturescripts/scripts ai no creaturescripts.xml eu vou ter q botar la <event type="preparedeath" name="Name" event="script" value="script.lua"/> muito bem, mas só feito isso n vai funcionar, vc tem q mostrar pro distro em qm q vc quer q funcione isso, se for em tds players, vc vai colocar no login.lua abaixo do function onLogin(cid) registerCreatureEvent(cid, "Name") Tipo se for pra funcionar em monstro q o player sumona, no script q faz o player sumonar vc vai ter q fazer o seguint local summon = doSummonCreature("Demon", pos) doConvinceCreature(cid, summon) registerCreatureEvent(summon, "Name") Espero ter ajudado, qualquer coisa entre em contato ^^
  15. Abra o creaturescripts.xml, vai ver que tem algum script type"death" ou "preparedeath" ai vc vai ver qual script.lua ta fazendo o player voltar pro lv 150, se vc n souber editar esse script posta aki no xtibia, que ajudo vc.
  16. Tipo do script: function Protocolo: 8.54 Servidor utilizado: The Forgotten Server 0.3.6pl1 Nível de experiência: Bom (mas não consegui fazer ><) O que o script deve fazer: Checar se o a creatura("target") que o player("cid") está atacando, está em volta do player(Nos 8 squares[quadradinhos] em volta). Valeu PS. a que eu tentei fazer é a seguinte: function isAround(cid, target) local p = getCreaturePosition(cid) n = {x=p.x, y=p.y-1, z=p.z} ne = {x=p.x+1, y=p.y-1, z=p.z} e = {x=p.x+1, y=p.y, z=p.z} se = {x=p.x+1, y=p.y+1, z=p.z} s = {x=p.x, y=p.y+1, z=p.z} sw = {x=p.x-1, y=p.y+1, z=p.z} w = {x=p.x-1, y=p.y, z=p.z} nw = {x=p.x-1, y=p.y-1, z=p.z} local i = getCreaturePosition(target) if i == n or i == ne or i == e or i == se or i == s or i == sw or i == w or i == nw then return 1 else return 0 end end
  17. :button_ok:Aprovado, criativo, tópico e script bem organizado.
  18. Vou tentar dar uma explicada do meu jeito, cid É a creatura(monstro ou player) que faz executar o script. Tipo: function onUse(cid, item, fromPosition, itemEx, toPosition) local level = getPlayerLevel(cid) doPlayerSendTextMessage(cid, 27, "Seu level é "..level) end Esse script acima quando o player da use(em algo q vc escolhe depois) o script verifica o level dele getPlayerLevel(cid) ,pro script saber de qm é pra verificar o lvl devemos colocar algo entre parenteses ali, entao colocamos cid, que em um script é quem executa a ação, nesse caso citado foi qm deu use. Ficou um pouco confuso, mas espero q entenda. [/color][/color][color="#000000"]item esse item q fica ali no script é o item usado na ação. Em function onUse(... ele é o item usado. function onEquip(... é o item equipado. pra q q serv isso? pra quando agnt quer se referir a ele no script. exemplo [/color]function onUse(cid, item, fromPosition, itemEx, toPosition) [tem umas linhas aki q eu esqueci q vai encher o player em termos de fome] doRemoveItem(item.uid) end observe aki q pro script saber q item tem q remover agnt tem q falar pra ele, entao agnt poe ali "item" q ai se refere ao item usado. assim, acho q da pra vc ter uma base melhor, sobre esse parametros, flws
  19. Meu Deus cara, vc deve saber bem pouco sobre scripts. local portrait = { ['Bulbasaur'] = {portrait = "8423"}, ['Ivysaur'] = {portrait = "8424"}, ['Venusaur'] = {portrait = "8425"}, } Certo, vc colocou os pokes numa tabela, mas isso n adianta muito, os distros n sao advinhos, vc deve colocar algo pedindo a informaçao da tabela. Outra coisa vc precisa fazer o q script verificar o pokemon, q no caso do script do Matheus fica na description. local msgunica = false Isso é uma variavel local que vc nominou msgunica, variaveis guardam valores para porteriormente serem usados, vc n usou a variavel depois.
  20. Eskylo

    Potion Igual Ao Po

    function onUse(cid, item, frompos, item2, topos) if (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then doPlayerSendCancel(cid,"Desculpe, nao pode estar em battle") return TRUE end if not isCreature(item2.uid) and not isPlayer(item2.uid) then return doPlayerSendCancel(cid,"Please use on you or in you summon.") end doRemoveItem(item.uid, 1) local minheal = 1000 --minimo q a pot vai curar a cada intervalo local maxheal = 1500 --maximo q a pot vai curar a cada intervalo local heal = math.random(minheal, maxheal) --n mexa local intervalo = 2 --tempo entre intervalos em segundos local intervalo2 = intervalo*1000 --n mexa local tempo = 10 --tempo total local tempo2 = tempo*1000 --n mexa while intervalo2 <= tempo2 do addEvent(doCreatureAddHealth, intervalo2, item2.uid, heal) intervalo2 = intervalo2 + 2000 end fiz uma gambiarra '-' tentai
  21. Eskylo

    Potion Igual Ao Po

    function onUse(cid, item, frompos, item2, topos) if (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then doPlayerSendCancel(cid,"Desculpe, nao pode estar em battle") return TRUE end if not isCreature(item2.uid) and not isPlayer(item2.uid) then return doPlayerSendCancel(cid,"Please use on you or in you summon.") end doRemoveItem(item.uid, 1) local minheal = 100 --minimo q vai healar local maxheal = 200 --maximo q pode healar doCreatureAddHealth(item2.uid, math.random(minheal, maxheal)) end
  22. function onSay(cid) if (getCreatureCondition(cid, CONDITION_INFIGHT) == true) then doPlayerSendCancel(cid, "Sorry, you are in battle") return TRUE end local config = { tp1 = {x=180, y=352, z=7}, tp2 = {x=129, y=388, z=7}, tp3 = {x=135, y=339 z=7}, sorte = math.random(1, 3) } if config.sorte == 1 then doTeleportThing(cid, tp1) else if config.sorte == 2 then doTeleportThing(cid, tp2) else doTeleportThing(cid, tp3) end return true end
  23. local MIN = 20000 local MAX = 100000 local EMPTY_POTION = 2281 local exhaust = createConditionObject(CONDITION_EXHAUST) setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 200)) function onUse(cid, item, fromPosition, itemEx, toPosition) if isPlayer(itemEx.uid) == FALSE then return FALSE end if getPlayerAccess(itemEx.uid) > 2 then return doPlayerSendDefaultCancel(cid, "Only can be used on tutors.") end if hasCondition(cid, CONDITION_EXHAUST_HEAL) == true then doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED) return TRUE end if doPlayerAddMana(itemEx.uid, math.random(MIN, MAX)) == LUA_ERROR then return FALSE end doAddCondition(cid, exhaust) doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE) doCreatureSay(itemEx.uid, "manavip", TALKTYPE_ORANGE_1) return TRUE end Assim, só pode usar em tutores a mana rune. Não tenho certeza, mas caso o scrip do Henrique não funcionar, troque msgWelcome = "Seja bem-vindo, Tutor ..getCreatureName(cid).." por msgWelcome = "Seja bem-vindo, Tutor ""..getCreatureName(cid)..""
  24. Mesma coisa que o portrait do Poke da Svke.
  25. Eskylo

    [Help] Itens.xml

    Sim, da pra edita pelo bloco de notas, normalmente aqui, se ta dando erro pra carregar meu items.xml eu abro pelo internet explorers, usualmente aparece onde eu errei na edição. as vezes a falta de um fexamento assim </item> buga td.
  • Quem Está Navegando   0 membros estão online

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