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:
Por DevilMoon, 05 de mai. de 2010 em Actions e Talkactions
info
Grupo: Conde
Registrado: 31/10/08
Posts: 871
Reputação: +199
Char no Tibia: Luis Felipe Knight

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:
info
Grupo: Visconde
Registrado: 16/12/07
Posts: 481
Reputação: +10
Char no Tibia: Emotiicon

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 por Evil01
info
Grupo: Cavaleiro
Registrado: 27/02/10
Posts: 159
Reputação: +14
Char no Tibia: Natsu McDonald

Explica ai a primeira parte, voce fala que tem que bota no global? Que porra de global? Qual arquivo. Explica melhor o topico pow
info
Grupo: Visconde
Registrado: 05/10/06
Posts: 381
Reputação: +7

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!
info
Grupo: Conde
Registrado: 30/01/10
Posts: 706
Reputação: +125
Gênero: Masculino
Char no Tibia: Bakwin

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 por DevilMoon
info
Grupo: Cavaleiro
Registrado: 27/02/10
Posts: 159
Reputação: +14
Char no Tibia: Natsu McDonald

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...
info
Grupo: Campones
Registrado: 11/05/10
Posts: 28
Reputação: +11
Char no Tibia: Deadlock

Funfanfo 100% muito obrigado por postar aqui no Xtibia eu procuraa e nunca achava um que prestasse
info
Grupo: Artesão
Registrado: 13/05/10
Posts: 114
Reputação: +11

Estou com uma dúvida:
Onde eh global functions? (desculpe a pergunta de noob)
Ótimo script, está de parabens!
info
Grupo: Campones
Registrado: 29/09/08
Posts: 1
Reputação: 0

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! ²
info
Grupo: Campones
Registrado: 24/05/10
Posts: 31
Reputação: +11
Char no Tibia: Omega Snap

Aki Dah Creature not found
info
Grupo: Conde
Registrado: 30/01/10
Posts: 706
Reputação: +125
Gênero: Masculino
Char no Tibia: Bakwin

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!
info
Grupo: Artesão
Registrado: 13/05/10
Posts: 114
Reputação: +11

Consigui ;D.
Muito bom²
+REP
info
Grupo: Campones
Registrado: 24/05/10
Posts: 31
Reputação: +11
Char no Tibia: Omega Snap

[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
info
Grupo: Conde
Registrado: 30/01/10
Posts: 706
Reputação: +125
Gênero: Masculino
Char no Tibia: Bakwin
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 endE 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 endAgora 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 endpara 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 endAgora Vamos Adicionar as Tags, vá em Data>Actions.xml e Adicione as Tags Corretas´
[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
Abraços..
Editado Outubro 11 por DevilMoon