tou querendo npc duel,uma base pelo menus para eu criar os meus aki ; +REP
- Fórum
- OTServ
- Suporte
- Tópicos Sem Resposta
- [Encerrado] [Pokemon] Dúvidas? - Pda
[Encerrado] [Pokemon] Dúvidas? - Pda
Por lucashgas, 10 de jan. de 2012 em Tópicos Sem Resposta
info
Grupo: Infante
Registrado: 28/01/12
Posts: 1.6k
Reputação: +262
Gênero: Masculino

como faço para colocar novas boxes para ganhar pokemon?
info
Grupo: Visconde
Registrado: 07/01/12
Posts: 495
Reputação: +48
Gênero: Masculino
Char no Tibia: Nem Tenho

@Jan Well
duel.xml
[/b] [b]<?xml version="1.0" encoding="UTF-8"?>[/b] [b]<npc name="Duel Example" script="duel.lua" walkinterval="350000" floorchange="0" speed="0" lookdir="2">[/b] [b]<health now="150" max="150"/>[/b] [b]<look type="529" head="91" body="114" legs="86" feet="0"/>[/b] [b]<parameters>[/b] [b]</parameters>[/b] [b]</npc>[/b] [b]
duel.lua
local focus = 0
local max_distance = 8
local talk_start = 0
local conv = 0
local fighting = false
local challenger = 0
local afk_limit_time = 30 -- seconds
local afk_time = 0 -- don't change
local battle_turn = 1 -- don't change
local challenger_turn = 0 -- don't change
local time_to_fight_again = 15 -- seconds, not ms (so 30 * 60 means 30 minutes)
local cooldown_table = {}
local min_pokemons_to_battle = 1-- change to whatever you want
local number_of_pokemons = 0 -- don't change
local prizes = {
[1] = {{itemid = 2393, count = 30}, {itemid = 2392, count = 20}},
[2] = {{itemid = 2393, count = 40}, {itemid = 2392, count = 30}},
[3] = {{itemid = 2393, count = 50}, {itemid = 2392, count = 40}},
[4] = {{itemid = 2393, count = 60}, {itemid = 2392, count = 50}},
[5] = {{itemid = 2393, count = 70}, {itemid = 2392, count = 60}},
[6] = {{itemid = 2393, count = 80}, {itemid = 2392, count = 70}}} --Item que ganha quando vc ganha o duel do npc, se nao quiser retire--
local pokemons = {
{name = "Cloyster", level = 45, extralevel = 15, sex = SEX_MALE, nick = "Crusher", ball = "super"},
{name = "Lapras", level = 49, extralevel = 15, sex = SEX_FEMALE, nick = "Laura", ball = "normal"},
{name = "Electabuzz", level = 43, extralevel = 20, sex = SEX_MALE, nick = "Eletron", ball = "great"},
{name = "Pinsir", level = 48, extralevel = 30, sex = SEX_MALE, nick = "Headcutter", ball = "normal"},
{name = "Dragonair", level = 39, extralevel = 37, sex = SEX_FEMALE, nick = "Dragonix", ball = "ultra"}, --Pokemons que o npc vai usar assim : Nome do poke level extralevel (como se fosse um boost) sexo do pokemon nick do pokemon pokebola
}
local function doSummonGymPokemon(npc)
local this = npc
if not isCreature(this) then return true end
if #getCreatureSummons(this) >= 1 or focus == 0 then return true end
local it = pokemons[battle_turn]
doSummonMonster(this, it.name)
local summon = getCreatureSummons(this)[1]
local balleffect = pokeballs["normal"].effect
if it.ball and pokeballs[it.ball] then
balleffect = pokeballs[it.ball].effect
end
doSendMagicEffect(getThingPos(summon), balleffect)
setPlayerStorageValue(summon, 10000, balleffect)
setPlayerStorageValue(summon, 10001, gobackmsgs[math.random(#gobackmsgs)].back:gsub("doka", it.nick ~= "" and it.nick or it.name))
setPlayerStorageValue(summon, 1007, it.nick ~= "" and it.nick or it.name)
doSetMonsterGym(summon, focus)
local name = it.nick ~= "" and it.nick or getCreatureName(this).."s "..it.name
setWildPokemonLevel(summon, it.level, getPokemonStatus(it.name, (it.extralevel + it.level)), name, 1.5)
doCreatureSay(this, gobackmsgs[math.random(#gobackmsgs)].go:gsub("doka", getPlayerStorageValue(summon, 1007)), 1)
fighting = true
battle_turn = battle_turn + 1
end
local function doWinDuel(cid, npc)
if not isCreature(cid) then return true end
local this = npc
local x = prizes[number_of_pokemons]
for n = 1, #x do
doPlayerAddItem(cid, x[n].itemid, x[n].count)
end
doCreatureSay(npc, "Congratulations! You won, here is your prize.", 1)
cooldown_table[getCreatureName(cid)] = os.clock() + time_to_fight_again
return true
end
function onCreatureSay(cid, type, msg)
local msg = string.lower(msg)
if focus == cid then
talk_start = os.clock()
end
if msgcontains(msg, 'hi') and focus == 0 and getDistanceToCreature(cid) <= 4 then
if cooldown_table[getCreatureName(cid)] and cooldown_table[getCreatureName(cid)] - os.clock() > 0 then
selfSay("Hello "..getCreatureName(cid)..", I really enjoyed our last battle!")
conv = 10
else
selfSay("Hello "..getCreatureName(cid)..", are you up to a duel? I can give prizes if you win!")
conv = 1
end
focus = cid
talk_start = os.clock()
return true
end
if (isDuelMsg(msg) or isConfirmMsg(msg)) and (conv == 1 or conv == 10) and focus == cid then
if conv == 10 then
selfSay("We have just battled! Please wait for me to recover from out last battle!")
focus = 0
return true
end
if not hasPokemon(cid) then
selfSay("You need pokemons to battle!")
return true
end
selfSay("Ok, tell me how many pokemons will fight.")
conv = 2
return true
end
if conv == 2 and focus == cid then
if not tonumber(msg) then
selfSay("Tell me the number of pokemons that will battle.")
return true
elseif tonumber(msg) > #pokemons then
selfSay("I have only "..#pokemons..", so the maximum is "..#pokemons.."!")
return true
elseif tonumber(msg) < min_pokemons_to_battle or tonumber(msg) < 1 then
selfSay("It has to be more than "..min_pokemons_to_battle..".")
return true
else
number_of_pokemons = tonumber(msg)
selfSay("Ok, the first that defeats "..number_of_pokemons.." wins, let's start!")
challenger = focus
setPlayerStorageValue(cid, 990, 1)
addEvent(doSummonGymPokemon, 850, getThis())
conv = 3
return true
end
return true
end
if isNegMsg(msg) and conv == 1 and focus == cid then
focus = 0
selfSay("It is better for you to refuse a battle against me!")
return true
end
if msgcontains(msg, 'bye') and focus == cid then
selfSay('Bye and do your best trainer!')
setPlayerStorageValue(focus, 990, -1)
focus = 0
return true
end
end
local afk_warning = false
local change = false
function onThink()
if focus == 0 then
selfTurn(2)
fighting = false
challenger = 0
change = false
challenger_turn = 0
battle_turn = 1
afk_time = 0
afk_warning = false
if #getCreatureSummons(getThis()) >= 1 then
setPlayerStorageValue(getCreatureSummons(getThis())[1], 1006, 0)
doCreatureAddHealth(getCreatureSummons(getThis())[1], -getCreatureMaxHealth(getCreatureSummons(getThis())[1]))
end
return true
else
if not isCreature(focus) then
focus = 0
return true
end
if fighting then
talk_start = os.clock()
if not isCreature(getCreatureTarget(getThis())) then
if #getCreatureSummons(challenger) >= 1 then
selfAttackCreature(getCreatureSummons(challenger)[1])
change = true
afk_time = 0
else
afk_time = afk_time + 0.5
if change then
change = false
challenger_turn = challenger_turn + 1
end
end
end
if afk_time > afk_limit_time then
setPlayerStorageValue(focus, 990, -1)
focus = 0
selfSay("I have waited too long, come back when you are ready!")
return true
end
if not afk_warning and afk_time > afk_limit_time / 2 then
selfSay("Where's your pokemon? Let's fight!")
afk_warning = true
end
if #getCreatureSummons(getThis()) == 0 then
if battle_turn > number_of_pokemons then
addEvent(doWinDuel, 1000, focus, getThis())
setPlayerStorageValue(focus, 990, -1)
focus = 0
return true
end
addEvent(doSummonGymPokemon, 1000, getThis())
end
if not hasPokemon(challenger) or challenger_turn > 6 or challenger_turn >= number_of_pokemons then
selfSay("You lost our duel! Maybe some other time you'll defeat me.")
setPlayerStorageValue(focus, 990, -1)
focus = 0
return true
end
end
local npcpos = getThingPos(getThis())
local focpos = getThingPos(focus)
if npcpos.z ~= focpos.z then
setPlayerStorageValue(focus, 990, -1)
focus = 0
selfSay("Bye then.")
return true
end
if (os.clock() - talk_start) > 30 then
selfSay("Good bye and keep training!")
setPlayerStorageValue(focus, 990, -1)
focus = 0
end
if getDistanceToCreature(focus) > max_distance then
setPlayerStorageValue(focus, 990, -1)
focus = 0
return true
end
local dir = doRedirectDirection(getDirectionTo(npcpos, focpos))
selfTurn(dir)
end
return true
end
rep+ e.e
Editado Maio 2 por Pokemonultimatetwo
Onde edita a xp que os player ganha dos poke ?
eu editei a lib\configuration e nos poke.xml, mas os pokes ainda dao muito xp
Obrigado Slicer suas edições estão de ótimas + o trabalho do do pach do Nibelis ficaram show de bola!
Parabens para todos da comunidade queestao sempre ajudando ![]()
Editado Maio 2 por Aluc4rd
info
Grupo: Campones
Registrado: 19/10/11
Posts: 90
Reputação: +6
Char no Tibia: Não Tenho Oficialmente

@All
Bom galera, eu coloqei saffari ball no meu serv, existe um pequeno erro q nao consigo acha a causa, quando dou cath no poke vem a ball "used", mas o id no cath ta certo, quando eu coloco o id da "used" vem "dicharched"...
a sequencia de id é a seguinte:
id1 = ball on -> quando o poke ta vivo dentro da ball
id2 = ball used -> quando vc sumana o poke
id3 = ball off -> ou dicharched, quando o poke morre
eu coloquei o id1 no script, e quando dou cath vem o id2, quando eu coloco 1 id a menos pra ver se minha linha de raciocínio tava certa, mas vem o item certo do id... isso eu nem ligo, deixei pra vim dicharched msm... mas o q eu nao consegui acha é pra dar boost com a saffari...
Quando eu pego um poke com a saffari e vou tenta dar boost, fala que tem que colocar a ball certa no slot, queria saber onde eu arrumo isso, ou mais simples, onde eu add mais ball pra mim boosta... Como eu add ball na boost machine???
Quem me ajuda REP+ ![]()
Editado Maio 2 por ZeSy
@Pokemonultimatetwo obrigadao amanha tem seu rep hj ja dei... @Zesy passa ae seu email para nos falarmos por msn queria que me ajudase como colocar balls no server... se poder meu email e ricardao-nice@hotmail.com se quizer add ae ;D
Editado Maio 2 por jan well
info
Grupo: Infante
Registrado: 25/01/12
Posts: 1.6k
Reputação: +330

Queria saber como que eu faço para abrir o servidor somente para min , fala que está faltando uma coisa se alguem me ajudar do rep +e o cliente se algeum pode me ajuda eu agradeço
info
Grupo: Infante
Registrado: 27/08/11
Posts: 1.9k
Reputação: +85
Gênero: Masculino
Char no Tibia: Bruno Maciel

@StyloMaldoso
So vc entra com o god e fala >> /closeserver
se ajudei rep ++ nao cai dedo ^^
info
Grupo: Infante
Registrado: 25/01/12
Posts: 1.6k
Reputação: +330

#Bruno
não é isso , Eu queru abrir o servidor.. (PBA) Mais quando coloko para abrir fala que esta falando alguma coisa dentro do OT!
e o cliente preciso de ajuda se alguem ajuda repe + !
info
Grupo: Infante
Registrado: 27/08/11
Posts: 1.9k
Reputação: +85
Gênero: Masculino
Char no Tibia: Bruno Maciel

@StyloMaldoso
Fala oque se vc puder tira um print ajudaria mais pra saber o erro =S
info
Grupo: Infante
Registrado: 25/01/12
Posts: 1.6k
Reputação: +330

ALGUEM PODE ME AJUDA como eu consigo abri o servidor ? quando vo abri não dá e nao tem cliente na pasta :@!
info
Grupo: Infante
Registrado: 28/01/12
Posts: 1.6k
Reputação: +262
Gênero: Masculino

#Bruno
não é isso , Eu queru abrir o servidor.. (PBA) Mais quando coloko para abrir fala que esta falando alguma coisa dentro do OT!
e o cliente preciso de ajuda se alguem ajuda repe + !
baixa as .dlls e cole dentro da pasta do servidor
Onde edita a xp que os player ganha dos poke ?
eu editei a lib\configuration e nos poke.xml, mas os pokes ainda dao muito xp
Obrigado Slicer suas edições estão de ótimas + o trabalho do do pach do Nibelis ficaram show de bola!
Parabens para todos da comunidade queestao sempre ajudando
exp do player:
playerExperienceRate = 3
exp do pokemon:
pokemonExpPerLevelRate = 25
Editado Maio 2 por FlamesAdmin
info
Grupo: Infante
Registrado: 25/01/12
Posts: 1.6k
Reputação: +330

flame#
Pode me passa um link de 1 cliente completo do (PDA) certin tudo pra min ? do repe + xd
info
Grupo: Infante
Registrado: 28/01/12
Posts: 1.6k
Reputação: +262
Gênero: Masculino

flame#
Pode me passa um link de 1 cliente completo do (PDA) certin tudo pra min ? do repe + xd
tipo, baixa esse client ai acima, pegue os arquivos doq vc baixou da atualizaçao do Slicer e coloca na pasta desse client acima
entendeu? ajudei? rep+ plx




info
Grupo: Visconde
Registrado: 07/01/12
Posts: 495
Reputação: +48
Gênero: Masculino
Char no Tibia: Nem Tenho
@Slicer @All
Uma bom script pra galera fazer éra o sistema de Headbutt (sim o mesmo nome do ataque) igual da PxG, que funciona assim
Headbutt é uma abilidade que, se seu pokemon tiver você da order em cima de um giant tree, e quando mais alto o level do player melhor vem o pokemon.
é como se fosse um sistema de fishing, só que em abilidade para pokemon
detalhe: quando vc usa headbutt, a arvore muda de sprite e fica "quebrada" ai tem que esperar em torno de 5 a 10 min pra poder usar dnv, mais uma boa ideia seria usar uma "semente" na arvore pra ela creser mais rapido. ^^