Ir para conteúdo

RigBy

Visconde
  • Total de itens

    411
  • Registro em

  • Última visita

  • Dias Ganhos

    10

Tudo que RigBy postou

  1. Creaturescript: .lua local config = { --[level] == {storage, valor} [5] = {40957, 1} [39] = {40958, 5} } function onAdvance(cid, skill, oldlevel, newlevel) for level, storage in pairs(config) do if isInArray(level, getPlayerLevel(cid)) then setPlayerStorageValue(cid, storage[1], storage[2]) end end return true end .xml, tag <event type="advance" name="LevelStorage" event="script" value="Nomedoscript.lua"/> Login.lua antes do ultimo "return true registerCreatureEvent(cid, "LevelStorage")
  2. Substitiu ai: local str = 2215 -- storage local valor = 1 -- valor da storage function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerStorageValue(cid, str) == valor then doTeleportThing(cid, toPosition) doTransformItem(item.uid, item.itemid+1) else doPlayerSendCancel(cid, "Voce precisa terminar anihilator quest!!") end return true end
  3. Eu não quero desenvolver um servidor igual ao outros que so querem criar um servidor igual ao da PxG ou OTpokemon, eu quero fazer coisas novas, por isso pensei em fazer do 0 so hoje de madrugada eu ja conseguir desenvolver, catch system e go/back system. Tava pensando em desenvolver usando a TFS 1.0 mas eu não consigo compilar as source e to com um certo problema para abrir um site, por isso preferir usar como base a TFS 0.4
  4. A ultima vez que eu joguei poketibia foi em 2012 onde o poketibia tava começando a cresce (acho que era versão 8.1) depois disso nunca mais joguei, até que um dia desse cara min chamo para joga um poketibia ai eu entrei e gostei. Ai me bateu a vontade de desenvolve um poketibia do 0 usando uma versão maior como (9.6,10.10 ou 10.31) usando como base a TFS 0.4. Vale apena ou devo usar algum como base.
  5. -.-" min add no skype vá para eu resolve logo tudo de vez. jv.alves97 ele ja vai cria o item com o actionid 5555, você falo que ja tem a script de clicar no action.
  6. Mano, como é que alguém vai te ajuda com um tópico assim? organize o topico melhor, não da para entender nada. #tópico, não intendi direito mas você que saber onde edita o dano? é nessa parte setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0, -0, -0, 0) exemplo setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -60, -1, -60, 5, 5, 4, 7)
  7. Desculpa foi burrice minha usar esse com aquela tag de la de cima local item = 14708 -- item que sera criadolocal tempo = 5 -- quanto tempo o item vai fica até desaparecer local positions = { -- posições que sera criado {x = 1017, y = 1030, z = 7}, {x = 1018, y = 1030, z = 7}, {x = 1019, y = 1030, z = 7}, } function onThink(interval) local pos = positions[math.random(1, #positions)] local teleport = doCreateItem(item, 1, pos) doItemSetAttribute(teleport, "aid", 5555) -- actionid addEvent(function() doRemoveItem(getItemStack(pos, item).uid, 1) end, tempo*60) return true end function getItemStack(pos, iid) for i = 1, 255 do posa = getThingFromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=i}) if posa.itemid == iid then return posa end end return nil end
  8. Pronto ai <?xml version="1.0" encoding="UTF-8"?> <monster name="King minotaur" nameDescription="a king minotaur" race="blood" experience="60000" speed="2000" manacost="330"> <health now="200000" max="200000"/> <look type="25" head="20" body="30" legs="40" feet="50" corpse="5969"/> <targetchange interval="2000" chance="0"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="0"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="0"/> <flag pushable="0"/> <flag canpushitems="0"/> <flag canpushcreatures="0"/> <flag targetdistance="1"/> <flag staticattack="90"/> <flag runonhealth="0"/> </flags> <attacks> <attack name="melee" interval="2000" skill="330" attack="300"/> <attack name="manadrain" interval="3000" chance="18" radius="12" target="0" min="-1000" max="-1800"/> <attribute key="areaEffect" value="bluebubble"/> <attack name="physical" interval="6000" chance="100" range="4" target="1" radius="4" min="-800" max="-1030"/> <attribute key="areaEffect" value="teleport"/> </attacks> <defenses armor="50" defense="50"/> <elements> <element icePercent="20"/> <element holyPercent="20"/> <element deathPercent="30"/> </elements> <immunities> <immunity physical="0"/> <immunity energy="0"/> <immunity fire="0"/> <immunity poison="0"/> <immunity lifedrain="0"/> <immunity paralyze="0"/> <immunity outfit="0"/> <immunity drunk="0"/> <immunity invisible="0"/> </immunities> <voices interval="4000" chance="10"> <voice sentence="I am the king"/> <voice sentence="MUAHAHAHA!"/> <voice sentence="You'll die!!"/> <voice sentence="kaplar!"/> </voices> <loot> <item id="2160" countmax="30" chance="23000"/><!-- gold coin --> <item id="5878" countmax="3" chance="3000"/><!-- minoleath --> <item id="5804" chance="1600"/><!-- ring --> <item id="11238" chance="7000"><!-- bag --> <inside> </inside> </item> </loot> </monster>
  9. RigBy

    Spell que Muda alvo

    Ai. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED) local area = createCombatArea(AREA_SQUARE3X3) setCombatArea(combat, area) function onTargetCreature(cid, target) return doChallengeCreature(cid, target) end setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature") function onCastSpell(cid, var) return doCombat(cid, combat, var) end
  10. RigBy

    comando all temple

    Claro que não vai puxar ninguem, você não leu? "teleportara quem ta com storage 31231 no valor de 1" Mano quando for fazer um pedido explica logo tudo de vez. Os dois são talkactions 1 - Esse é para se registrar no torneio, fiz rapido mas ta funcionando .lua local storage = 31231 function onSay(cid, words, param) if getPlayerStorageValue(cid, storage) == -1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você acabo de se escrever no torneio!") setPlayerStorageValue(cid, storage, 1) else setPlayerStorageValue(cid, storage, -1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você acabo de se desescrever no torneio!") end return true end 2 - E esse e para o god teleporta quem se escreveu no torneio local items = {2461, 2450, 2650} -- items que não poderão usar local pos = {x=1049, y=1045, z=7} -- posição do lugar onde todos vao local storage = 31231 -- teleportara quem ta com storage 31231 no valor de 1 function onSay(cid, words, param) local players = getPlayersOnline() for i = 1, #players do for a = 1, #items do if getPlayerStorageValue(players[i], storage) == 1 then if getPlayerItemCount(players[i], items[a]) >= 1 then doPlayerSendCancel(players[i], "Você não pode ser teleportado com esse item.") break else doTeleportThing(players[i], pos) end end end end db.executeQuery("UPDATE `players` SET `posx` = '"..pos.x.."', `posy` = '"..pos.y.."', `posz` = '"..pos.z.."';") return true end As tag's são essa: .xml <talkaction words="!subscribe" script="nome_do_primeiro_script.lua" /> <talkaction words="/torneio" script="nome_do_segundo_script.lua" />
  11. testei aqui e ta funcionando perfeitamente. qual a versão do seu servidor? Acho que seu distro não tem suporte para milesegundos, so basta altera isso no caso ficara 60s*30m = 1800segundos == 30minutos. .xml, tag <globalevent name="Teleports" interval="1800" script="nomedoscript.lua" /> e troca o script por esse, ja configurei do jeito que você pediu pelo PV, vai criar um item com o actionid 5555 local item = 14708 -- item que sera criado local tempo = 5 -- quanto tempo o item vai fica até desaparecer local positions = { -- posições que sera criado {x = 1017, y = 1030, z = 7}, {x = 1018, y = 1030, z = 7}, {x = 1019, y = 1030, z = 7}, } function onThink(interval) local pos = positions[math.random(1, #positions)] local teleport = doCreateItem(item, 1, pos) doItemSetAttribute(teleport, "aid", 5555) -- actionid addEvent(function() doRemoveItem(getItemStack(pos, item).uid, 1) end, tempo*60) return true end function getItemStack(pos, iid) for i = 1, 255 do posa = getThingFromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=i}) if posa.itemid == iid then return posa end end return nil end 
  12. RigBy

    comando all temple

    So basta configura. local items = {2461, 2450, 2650} -- items que não poderão usar local pos = {x=1049, y=1045, z=7} -- posição do lugar onde todos vao local storage = 31231 -- teleportara quem ta com storage 31231 no valor de 1 function onSay(cid, words, param) local players = getPlayersOnline() for i = 1, #players do for a = 1, #items do if getPlayerStorageValue(players[i], storage) == 1 then if getPlayerItemCount(players[i], items[a]) >= 1 then doPlayerSendCancel(players[i], "Você não pode ser teleportado com esse item.") break else doTeleportThing(players[i], pos) end end end end db.executeQuery("UPDATE `players` SET `posx` = '"..pos.x.."', `posy` = '"..pos.y.."', `posz` = '"..pos.z.."';") return true end
  13. mano faça um pedido por tópico. Não fique fazendo vários pedidos no mesmo tópico. Se o tópico tiver mas de um pedido, ajudarei apenas em 1. isso facilita quem ta procurando pela mesma coisa. seja direto no pedido e coloque até o mínimos detalhe. Se esse tópico já foi resolvido marque como melhor resposta para que fechem e crie um tópico para cada pedido. PS. tô no celular então desculpa por qualquer erro de português
  14. RigBy

    Summon spell

    mermão você que ta usando errado para summona é assim: utore rat acho que você ta usando assim: utore "rat assim não vai funciona pq não existe nenhum monstro chamado "rat. e troca isso: if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invocou") return true end por isso: if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Se usa assim: utore nome do mostro , EX: utore rat") return true end essa parte é tipo um exemplo caso o player fale apenas utore. para que apareça no spellbook cria uma magia com o mesmo nome do utore mas vazia, apenas com o efeito e pronto. problema resolvido.
  15. RigBy

    Porta Addon ?

    Fiz de duas maneira 1-Tem que ta usando o outfit com o addon na hora local outfit = 132 -- looktype local addon = 3 -- addon function onUse(cid, item, fromPosition, itemEx, toPosition) local outfits = getCreatureOutfit(cid) if outfits.lookType == outfit and outfits.lookAddons == addon then doTeleportThing(cid, toPosition) doTransformItem(item.uid,item.itemid+1) else doPlayerSendCancel(cid, "Você precisa ta usando a roupa!") end return true end 2-So basta ter feito o addon, não precisa ta usando na hora local outfit = 132 -- looktype local addon = 3 -- addon function onUse(cid, item, fromPosition, itemEx, toPosition) if canPlayerWearOutfit(cid, outfit, addon) then doTeleportThing(cid, toPosition) doTransformItem(item.uid,item.itemid+1) else doPlayerSendCancel(cid, "Você precisa te a roupa!") end return true end .xml, tag <action actionid="76556" event="script" value="nomedoscript.lua"/> so basta coloca o actionid 76556 na porta pelo mapa editor
  16. Creaturescript/script .lua function onKill(cid, target) if isPlayer(cid) and isPlayer(target) then doCreatureSay(cid, "!!KILL!!", TALKTYPE_ORANGE_1) end return true end Creaturescript/creaturescript.xml .xml <event type="kill" name="matar" event="script" value="nomedoscript.lua"/> Creaturescript/script/Login.lua adiciona antes do ultimo return true registerCreatureEvent(cid, "matar")
  17. RigBy

    Ao dar look

    para fica mas simples, cada valor da 19896 fala uma guild. local t = { [-1] = "Indifinido", [0] = "Elf", [1] = "Orc", [2] = "Human", storage = 19896 -- storage } function onLook(cid, thing, position, lookDistance) function getDeathsAndKills(cid, type) -- by vodka local query,d = db.getResult("SELECT `player_id` FROM "..(tostring(type) == "kill" and "`player_killers`" or "`player_deaths`").." WHERE `player_id` = "..getPlayerGUID(cid)),0 if (query:getID() ~= -1) then repeat d = d+1 until not query:next() query:free() end return d end if isPlayer(thing.uid) then doPlayerSetSpecialDescription(thing.uid, "\n"..(getPlayerSex(thing.uid) == 0 and "She" or "He").." has Killed: ["..getDeathsAndKills(thing.uid, "kill").."] Players.\n"..(getPlayerSex(thing.uid) == 0 and "She" or "He").." has Died: ["..getDeathsAndKills(thing.uid, "death").."] Times \n Guild: ["..t[getPlayerStorageValue(cid, t.storage)].."]") end return true end
  18. Adiciona essa função na lib/050-function, antes do ultimo end function getPlayerReset(cid) local qr = db.getResult("SELECT `reset` FROM `players` WHERE `id`= "..getPlayerGUID(cid)..";") rss = qr:getDataInt("reset", getPlayerGUID(cid)) if rss < 0 then rss = 0 end return rss end
  19. RigBy

    Summon spell

    ta ligado que isso é um talk né aqui ta funcionando certo http://prntscr.com/7o615g manda o script do jeito que você configuro para eu ver. se você fez oque eu falei la em cima, não.
  20. Você tem que remove: setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 6, 12) e adiciona oque eu falei ficando assim: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ICETORNADO) local area = createCombatArea(AREA_CROSS5X5) setCombatArea(combat, area) function onGetFormulaValues(cid, level, skill, attack, factor) local reset = getPlayerReset(cid) -- variavel local skillTotal, levelTotal = skill + attack, level / 5 return -(skillTotal * 1.5 + levelTotal)*(reset*0.1), -(skillTotal * 2.5 + levelTotal)*(reset*0.1) -- dano end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") function onCastSpell(cid, var) return doCombat(cid, combat, var) end
  21. #CORPO A CORPO Para combate corpo a corpo "DO JEITO QUE EU TO PENSANDO", amenos que funcione apenas para player vai da um trabalho bem grande porque vai ter que registrar o evento em todos os monstro. #SPELL Nesse sistema a função que ver é quantidade de reset do player é essa: getPlayerReset(cid) Você teraque troca todas essas linhas de spells (pelomenos das magias que você quer que aumente). function onGetFormulaValues(cid, level, skill, attack, factor) local skillTotal, levelTotal = skill + attack, level / 5 return -(skillTotal * 1.5 + levelTotal), -(skillTotal * 2.5 + levelTotal) end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") por essa function onGetFormulaValues(cid, level, skill, attack, factor) local reset = getPlayerReset(cid) local skillTotal, levelTotal = skill + attack, level / 5 return -(skillTotal * 1.5 + levelTotal)*(reset*0.1), -(skillTotal * 2.5 + levelTotal)*(reset*0.1) end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") Eu so adicionei isso "local reset = getPlayerReset(cid)" "(reset*0.1)" só basta você alterar em "(reset*0.1)" o quanto você quer que aumente por reset.
  22. RigBy

    Summon spell

    Eu não sabia como fazer isso por spell então fiz por talkaction. Esse é meu primeiro talk que eu fiz na vida .lua local limite = 2 -- limite de summons local vocation = {1, 2, 3} -- Vocações que poderão usar a magia local config = { --[Nome do monstro] = {level, mana}, ["rat"] = {level = 25, mana = 300}, ["orc"] = {level = 50, mana = 2000}, ["demon"] = {level = 50, mana = 7000}, } function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Exemplo: Test orc") return true end if isInArray(vocation, getPlayerVocation(cid)) then if #getCreatureSummons(cid) < limite then local t = config[param] if t then if getPlayerLevel(cid) >= t.level then if getCreatureMaxMana(cid) >= t.mana then doConvinceCreature(cid, doSummonCreature(param, getCreaturePosition(cid))) doCreatureAddMana(cid, - t.mana) else doPlayerSendCancel(cid, "é necessário "..t.mana.." para summonar!") end else doPlayerSendCancel(cid, "Você não tem level necessário para summonar ele!") end else doPlayerSendCancel(cid, "Esse monstro não esta na lista!") end else doPlayerSendCancel(cid, "Você ja atingiu o limite de "..limite.." summons!") end else doPlayerSendCancel(cid, "Sua vocação não permite usar essa magia!") end return true end .xml, tag <talkaction words="test" script="nomedoscript.lua" />
  23. http://www.xtibia.com/forum/topic/235235-fruit-picking-colheita-de-fruta/
  24. Fruit Picking Introdução: é um sistema simples, consiste em você pode colher a fruta da arvore e ela crescer depois de um tempo de novo. Instalar o script: em action/script crie: FruitHarvesting.lua adicione: -- Do not remove the credits -- -- [ACTION] Fruit Harvesting -- -- Developed by Rigby -- -- Especially for the Xtibia.com -- local config = { -- [ID_DA_ARVORE] = {FRUTA, QUANTIDADE{minimo, maximo}, ID_DA_ARVORE_SEM_FRUTO, TEMPO_PARA_ÀRVORE_FICA_COM_FRUTO} [5157] = {fruit = 5097, quantity = {0,1}, treeWithoutFruit = 5156, timeToGrow = 5}, [4006] = {fruit = 2675, quantity = {0,3}, treeWithoutFruit = 4008, timeToGrow = 20}, [5094] = {fruit = 2676, quantity = {3,6}, treeWithoutFruit = 5092, timeToGrow = 30}, [5096] = {fruit = 2678, quantity = {2,7}, treeWithoutFruit = 2726, timeToGrow = 70}, } function onUse(cid, item, fromPosition, itemEx, toPosition) for i, k in pairs(config) do if (isInArray(i, item.itemid) == true) then random = math.random(k.quantity[1],k.quantity[2]) doTransformItem(item.uid, k.treeWithoutFruit, 1) doPlayerAddItem(cid,k.fruit,random) addEvent(function() doTransformItem(getThingFromPos(toPosition).uid, i) end, k.timeToGrow * 1000) if random > 0 then doPlayerSendTextMessage(cid,27,"Você pego "..random.." "..getItemNameById(k.fruit).."!") else doPlayerSendTextMessage(cid,27,"Àrvore não deu nenhum fruto!") end end end return true end em action/action.xml adicione a tag: <action itemid="5157;4006;5094;5096" event="script" value="FruitHarvesting.lua"/> Se você adicionar mais arvore não esqueça de adiciona o id na tag também.
  • Quem Está Navegando   0 membros estão online

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