DevilMoon 125 Postado Maio 6, 2010 Share Postado Maio 6, 2010 (editado) PokeBall System! Ola Xtibianos, Vim hoje postar um Famoso Script de Pokeball System feito pelo Genioso Nahruto, claro pedi a autorização dele para postar. A Todos que forem pegar Scripts de outras Pessoas, lembre-se de sempre pedir autorização e claro colocar os creditos. Para Tfs: 0.34 , 0.35 e 0.36 Essas Forao Testadas E Funfo. Versoes: 8.42 - 8.50 - 8.52 - 8.54 - 8.6. Ots Testados: Snowz Yurots - Alissow Server - Styller Yurots Primeiramente Vamos Fuçar em Function.lua, se voce nao Sabe onde fica vá em: Data>Lib>Function.lua Abra e Coloque Isto: _warpzone = 2147483648 -- start storing strings here (THIS IS THE ABSOLUTE MAXIMUM VALUE FOR THIS) _maxlength = 1024 -- multiply by 3 to get the true length. setPlayerStorageInteger = setPlayerStorageValue getPlayerStorageInteger = getPlayerStorageValue function setPlayerStorageString(cid, key, value) if #value > (_maxlength-1) * 3 - 1 then -- Last word is reserved for 0 termination of the string. error("Storage string is too long") end if key > _warpzone / _maxlength then error("Storage string key is too large (" .. key .. ")") end key = _warpzone + key * _maxlength local word = 0 local wordwrap = 0 local wordcount = 0 local i = 1 while i <= #value do local byte = string.byte(string.sub(value, i, i)) word = bit.bor(word, bit.lshift(byte, wordwrap)) wordwrap = wordwrap + 8 if wordwrap == 24 then --[[ In the ideal world we would be able to store 4 characters per word, however, as the default return value for getPlayerStorageValue is -1, we cant use the last bit. ]]-- setPlayerStorageInteger(cid, key + wordcount, word) word = 0 wordwrap = 0 wordcount = wordcount + 1 end i = i + 1 end -- store the last word setPlayerStorageInteger(cid, key + wordcount, word) end function getPlayerStorageString(cid, key) if key > _warpzone / _maxlength then error("Storage string key is too large (" .. key .. ")") end key = _warpzone + key * _maxlength local wordcount = 0 local str = "" while true do if wordcount >= _maxlength then break end local word = getPlayerStorageInteger(cid, key + wordcount) if word == -1 then -- end of string break else -- Extract the 3 characters from the value byte = bit.band(word, 255) if byte == 0 then break else str = str .. string.char(byte) end byte = bit.rshift(bit.band(word, 65280), 8) if byte == 0 then break else str = str .. string.char(byte) end byte = bit.rshift(bit.band(word, 16711680), 16) if byte == 0 then break else str = str .. string.char(byte) end end wordcount = wordcount + 1 end return str end E Isso! function doConvinceSummon(cid, creature, amount, pos) summonplayerpos = {x=pos.x, y=pos.y, z=pos.z, stackpos=253} summonplayer = getThingfromPos(summonplayerpos) if(summonplayer ~= nil and summonplayer.itemid > 0) then doPlayerSendCancel(cid,"There is not enough room to summon here.") ret = 0 else convince = doSummonCreature(creature, pos) doConvinceCreature(cid, convince) ret = 1 end return ret end Agora Vamos Fazer o Script Vá em Pasta do Seu Ot > Data > Actions > Scripts Crie uma Pasta chamada pokeball.lua e bote isso dentro local notAllowed = {"Ferumbras", "Demon"} local storage = { status = 25650, pokeName = 25651 } local actionid_used = 7510 function onUse(cid, item, fromPos, item2, toPos) local pokeballStatus = getPlayerStorageValue(cid, storage.status) local pokeName = getPlayerStorageString(cid, storage.pokeName) pos = getPlayerPosition(cid) pos.stackpos = 0 if pokeballStatus == -1 then toPos.stackpos = 253 local pokeThing = getThingfromPos(toPos) if isCreature(pokeThing.uid) == TRUE then if isPlayer(pokeThing.uid) == FALSE then local pokename_ = getCreatureName(pokeThing.uid) if item.actionid ~= actionid_used then -- local maxHealth = 400 -- local creatureHealth = getCreatureHealth(pokeThing.uid) -- local divNum = (string.len(maxHealth)-1)^2 -- local result = math.floor((creatureHealth/divNum)/10) -- local chance = math.random(1, math.random(4, math.random(7, math.max(result, 7)))) -- if chance == result then if isInTable(notAllowed, pokename_) == TRUE then doPlayerSendCancel(cid, "You cannot catch this creature") else setPlayerStorageString(cid, storage.pokeName, pokename_) doRemoveCreature(pokeThing.uid) doSendDistanceShoot(fromPos, toPos, 37) setPlayerStorageValue(cid, storage.status, 1) doSetItemSpecialDescription(item.uid, "it contains a " .. pokename_ .. ".") doSetItemActionId(item.uid, actionid_used) end -- else -- doSendMagicEffect(fromPos, 2) -- doPlayerSendCancel(cid, "The Pokemom Escaped") -- end elseif item.actionid == actionid_used and pokename_ == pokeName then doPlayerSay(cid, pokeName .. " Back!!", TALKTYPE_SAY) doRemoveCreature(pokeThing.uid) doSetItemSpecialDescription(item.uid, "it contains a " .. pokename_ .. ".") setPlayerStorageValue(cid, storage.status, 1) doSendDistanceShoot(fromPos, toPos, 37) else doSendMagicEffect(fromPos, 2) doPlayerSendCancel(cid, "This pokeball is already used") end else doPlayerSendCancel(cid, "You cannot catch this creature") end else doPlayerSendCancel(cid, "Creature not found") end elseif pokeballStatus == 1 then summons = getCreatureSummons(cid) -- if #summons >= 2 then -- doPlayerSendCancel(cid, "You cannot call more pokemons") -- else doConvinceSummon(cid, pokeName, 0, toPos) doSendDistanceShoot(fromPos, toPos, 37) doPlayerSay(cid, pokeName .. " Go!!", TALKTYPE_SAY) setPlayerStorageValue(cid, storage.status, -1) doSetItemSpecialDescription(item.uid, "it is empty.") -- end end else return 1 end function isInTable(t, val) for _, v in pairs(t) do if v == val then return TRUE end end return LUA_ERROR end para TFS local notAllowed = {"Ferumbras", "Demon"} local storage = { status = 15244, pokeName = 15212 } local actionid_used = 7510 function onUse(cid, item, fromPos, item2, toPos) local pokeballStatus = getPlayerStorageValue(cid, storage.status) local pokeName = getPlayerStorageString(cid, storage.pokeName) pos = getPlayerPosition(cid) pos.stackpos = 0 if pokeballStatus <= 0 then toPos.stackpos = 253 local pokeThing = getThingfromPos(toPos) if isCreature(pokeThing.uid) == TRUE then if isPlayer(pokeThing.uid) == FALSE then local pokename_ = getCreatureName(pokeThing.uid) if item.actionid ~= actionid_used then -- local maxHealth = 400 -- local creatureHealth = getCreatureHealth(pokeThing.uid) -- local divNum = (string.len(maxHealth)-1)^2 -- local result = math.floor((creatureHealth/divNum)/10) -- local chance = math.random(1, math.random(4, math.random(7, math.max(result, 7)))) -- if chance == result then if isInTable(notAllowed, pokename_) == TRUE then doPlayerSendCancel(cid, "You cannot catch this creature") else setPlayerStorageString(cid, storage.pokeName, pokename_) doRemoveCreature(pokeThing.uid) doSendDistanceShoot(fromPos, toPos, 37) setPlayerStorageValue(cid, storage.status, 1) doSetItemSpecialDescription(item.uid, "it contains a " .. pokename_ .. ".") doSetItemActionId(item.uid, actionid_used) end -- else -- doSendMagicEffect(fromPos, 2) -- doPlayerSendCancel(cid, "The Pokemom Escaped") -- end elseif item.actionid == actionid_used and pokename_ == pokeName then doCreatureSay(cid, pokeName .. " Back!!", TALKTYPE_SAY) doRemoveCreature(pokeThing.uid) doSetItemSpecialDescription(item.uid, "it contains a " .. pokename_ .. ".") setPlayerStorageValue(cid, storage.status, 1) doSendDistanceShoot(fromPos, toPos, 37) else doSendMagicEffect(fromPos, 2) doPlayerSendCancel(cid, "This pokeball is already used") end else doPlayerSendCancel(cid, "You cannot catch this creature") end else doPlayerSendCancel(cid, "Creature not found") end elseif pokeballStatus == 1 then -- summons = doCreatureSummons(cid) -- if #summons >= 2 then -- doPlayerSendCancel(cid, "You cannot call more pokemons") -- else doConvinceSummon(cid, pokeName, 0, toPos) doSendDistanceShoot(fromPos, toPos, 37) doCreatureSay(cid, pokeName .. " Go!!", TALKTYPE_SAY) setPlayerStorageValue(cid, storage.status, 0) doSetItemSpecialDescription(item.uid, "it is empty.") -- end end return 1 end function isInTable(t, val) for _, v in pairs(t) do if v == val then return TRUE end end return LUA_ERROR end Agora Vamos Adicionar as Tags, vá em Data>Actions.xml e Adicione as Tags Corretas´ <action itemid="xxxx" script="pokeball.lua" allowfaruse="1" blockwalls="1" /> [font-"Georgia"]em <action itemid="xxxx" nos 4 X voce coloca o Number Id Do seu Item que Será como uma "Pokeball"[/font] Oque o Script Faz Realmente: - Guarda monstros dentro de objetos e salva seu status, você pode colocar pra salvar em qlqr objeto.. seria ótimo para projetos pokemons.. Creditos: Nahruto Print Screen's: Snorlax Saindo da Pokeball: Snorlax Voltando para a Pokeball Look da Pokeball ( o Player so Ve assim You See a Pokeball , Have Snorlax )] Lembrando que eu nao Adicionei o Efeito da Pokeball Abrindo e Jogando o Monstro. Para fazer este Tipo de efeito voce vai ter que saber direitinho o LookType da Pokeball Fechando e Saindo, e transformar para um efeito e depois modificar no Script, aqui no xtibia Existe varios Tutoriais explicando isto, é so procurar! Gostou? Clica no Ali em Baicho para me Ajudar! Abraços.. Editado Outubro 11, 2010 por DevilMoon Link para o comentário https://xtibia.com/forum/topic/132061-action-pokeball-system/ Compartilhar em outros sites More sharing options...
luisfe23 199 Postado Maio 6, 2010 Share Postado Maio 6, 2010 Nossa cara, parabens ótimo script, ah muitos ots qe vao ser de pokemon e vai ajudar muito esse script, se eu fosse criar um ot eu usaria. Parabens a vc e ao criador! Rep+ :button_ok: Link para o comentário https://xtibia.com/forum/topic/132061-action-pokeball-system/#findComment-870876 Compartilhar em outros sites More sharing options...
Evil7 10 Postado Maio 7, 2010 Share Postado Maio 7, 2010 (editado) cara estava precisando, quero fazer um server estilo pokemon, estou decidido, mas essa parte de scripts tá osso =x Ajudou muito, e gostei da humildade e ética :] vou testar script! EDIT: pro TFS não precisa dos três primeiros? ou precisa dos 3 e mais os dois últimos? xD Att. Evil Editado Maio 7, 2010 por Evil01 Link para o comentário https://xtibia.com/forum/topic/132061-action-pokeball-system/#findComment-871737 Compartilhar em outros sites More sharing options...
NatsuMcDonald 14 Postado Maio 8, 2010 Share Postado Maio 8, 2010 Explica ai a primeira parte, voce fala que tem que bota no global? Que porra de global? Qual arquivo. Explica melhor o topico pow Link para o comentário https://xtibia.com/forum/topic/132061-action-pokeball-system/#findComment-871870 Compartilhar em outros sites More sharing options...
PedrinhuHenrique 7 Postado Maio 8, 2010 Share Postado Maio 8, 2010 Caramba meu, parabéns ao Narutoh por disponibilizar esse sistema para nós do Xtibia e por fazer também né? Pois sei que não é fácil. Ótimo script! Link para o comentário https://xtibia.com/forum/topic/132061-action-pokeball-system/#findComment-871954 Compartilhar em outros sites More sharing options...
DevilMoon 125 Postado Maio 8, 2010 Autor Share Postado Maio 8, 2010 (editado) Vlw Luisfe +Rep Para Ti Tambem @Evil Sim Bota Tudu! @Natsu Todo Mundo Consiguiu Uns no Pvt me perguntarao e ta funfando eles intederao a maioria tbm nao sabe onde fika Global Functions? @Pedrinho Vlw Ae Meo! Editado Maio 8, 2010 por DevilMoon Link para o comentário https://xtibia.com/forum/topic/132061-action-pokeball-system/#findComment-872305 Compartilhar em outros sites More sharing options...
NatsuMcDonald 14 Postado Maio 8, 2010 Share Postado Maio 8, 2010 DevilMoon, se eu soubesse não teria perguntando, e mesmo assim voce não sanou minha pergunta... E todo mundo quem? Ninguem disse que conseguil, eles disseram que o script esta otimo e que vão usar... Link para o comentário https://xtibia.com/forum/topic/132061-action-pokeball-system/#findComment-872318 Compartilhar em outros sites More sharing options...
Deadlock 11 Postado Maio 12, 2010 Share Postado Maio 12, 2010 Funfanfo 100% muito obrigado por postar aqui no Xtibia eu procuraa e nunca achava um que prestasse Link para o comentário https://xtibia.com/forum/topic/132061-action-pokeball-system/#findComment-873865 Compartilhar em outros sites More sharing options...
matheus1000 11 Postado Maio 14, 2010 Share Postado Maio 14, 2010 Estou com uma dúvida: Onde eh global functions? (desculpe a pergunta de noob) Ótimo script, está de parabens! Link para o comentário https://xtibia.com/forum/topic/132061-action-pokeball-system/#findComment-874459 Compartilhar em outros sites More sharing options...
valdemirot 0 Postado Maio 24, 2010 Share Postado Maio 24, 2010 Postou 14 maio 2010 - 12:44 Estou com uma dúvida: Onde eh global functions? (desculpe a pergunta de noob) Ótimo script, está de parabens! ² Link para o comentário https://xtibia.com/forum/topic/132061-action-pokeball-system/#findComment-879852 Compartilhar em outros sites More sharing options...
M4TH3U5 11 Postado Maio 25, 2010 Share Postado Maio 25, 2010 Aki Dah Creature not found Link para o comentário https://xtibia.com/forum/topic/132061-action-pokeball-system/#findComment-880403 Compartilhar em outros sites More sharing options...
DevilMoon 125 Postado Maio 25, 2010 Autor Share Postado Maio 25, 2010 Ops Desculpa Galera :PPPP Nao Tinha Visto o Topico Ok Pera! @All Que Elogirao! Muintu Obrigado Ok Vlw ae Galera! @Valdemiroth e Natsu Se Seu Ot Nao Tem a Pasta GlobalFunctions Cria uma Pasta Chamada GlobalFunctions.xml na pasta Mods e coloka akilo dentro se teu ot tiver a pasta mods se nao nao precisa ok eu fis isso aki em casa e funfo! Obs Natsu Desculpe ! @R1B31R0 Ve Corretamente se Botou Tudu Direitinho! Link para o comentário https://xtibia.com/forum/topic/132061-action-pokeball-system/#findComment-880517 Compartilhar em outros sites More sharing options...
matheus1000 11 Postado Maio 26, 2010 Share Postado Maio 26, 2010 Consigui ;D. Muito bom² +REP Link para o comentário https://xtibia.com/forum/topic/132061-action-pokeball-system/#findComment-880615 Compartilhar em outros sites More sharing options...
M4TH3U5 11 Postado Maio 28, 2010 Share Postado Maio 28, 2010 [28/05/2010 15:05:16] [Error - LuaScriptInterface::loadFile] data/actions/scripts/pokeball.lua:67: 'end' expected (to close 'function' at line 8) near 'else' [28/05/2010 15:05:16] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/pokeball.lua) [28/05/2010 15:05:16] data/actions/scripts/pokeball.lua:67: 'end' expected (to close 'function' at line 8) near 'else' [28/05/2010 15:05:16] [Warning - Actions::registerEvent] Duplicate registered item id: 5791 [28/05/2010 15:05:16] >> Loading chat channels =/ Sabe Oq E Isso? OBG Link para o comentário https://xtibia.com/forum/topic/132061-action-pokeball-system/#findComment-881810 Compartilhar em outros sites More sharing options...
brunin86 15 Postado Maio 30, 2010 Share Postado Maio 30, 2010 (editado) Onde fica o Global Functions? E tipo, esse Global Functions só tem em mapa 8.3 ? Se tiver em outros 8.4 + me passa o nome de um ? Por acaso é o " Global Events ? " Editado Maio 30, 2010 por brunin86 Link para o comentário https://xtibia.com/forum/topic/132061-action-pokeball-system/#findComment-882680 Compartilhar em outros sites More sharing options...
Posts Recomendados