Ir para conteúdo

[Pokemon] Mapa Stigal 2.0 {Pda}


Stigal

Posts Recomendados

@stigal

muito bom trabalho ms ^^ vo por na proxima atualizaçao do meu serv blz?

e so uma coisa... achu q tu esqueceu da pos de backup em {x= 1, y = 1, z = 10}... ;p

 

edit

outra coisa, vc fez alguma area tpw o trade center da pxg? '-' soh pra saber ms... vlw

 

Não fiz, esse mapa foi correndo msm brother... Mas ficou bom msm que corrido ;3

Ficaria mt feliz se vc usace na sua proxima atualização <3

 

@Rafaaw

tenho mts problemas nos meus servidores para me preocupar com minha vulgaridade!

estou aki para AJUDAR e tirar duvidas dos meus trabalhos, não me peça coisas que não sao relacionadas a esse topico!

 

 

Abraço.

Link para o comentário
Compartilhar em outros sites

@Stigal e Slicer@.

 

Vi teu comentario sobre o tradeCenter, Fiz um rapidim aki pra voces ;)

Dowload.

 

 

Stigal e Slicer e All.@

Fiz uma area de clan como exemplo, irei postar, cada um usa tua criatividade néeah..

Dowload.

 

 

 

 

Espero ter ajudado vocês.

Abraço.

Editado por StyloMaldoso
Link para o comentário
Compartilhar em outros sites

Vlws, entao fiz a area equipe rocket, quem kiser adicionar:

http://www.xtibia.co...-rocket-10-pda/

 

Abraço.

 

 

Tai o npc q me pedirao:

Giovanni (Boss Equipe Rocket Quest)

 

Va na pasta NPC e crie o "giovannnirocket.xml" e adicione isso dentro:

 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="[Lider] Giovanni" script="giovannirocket.lua" walkinterval="350000" floorchange="0" speed="0" lookdir="2">
<health now="150" max="150"/>
<look type="603" head="91" body="114" legs="86" feet="0"/>
<parameters>

</parameters>
</npc>

 

 

 

agora va na pasta NPC > Scripts e crie o "giovannirocket.lua" e adicione isso dentro:

 

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 masterpos = {}
local time_to_fight_again = 15 -- seconds, not ms (so 30 * 60 means 30 minutes)
local can_walk = true  -- true to make this npc walks randomly
local max_distance = 5  -- maximum distance this npc can get far (sqms)
local walk_delay = 5  -- every seconds make this npc walk
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 = 11640, count = 1}, {itemid = 2160, count = 10}},
local pokemons = {
{name = "Snorlax", level = 100, extralevel = 50, sex = SEX_MALE, nick = "Snorlax", ball = "super"},
{name = "Wigglytuff", level = 100, extralevel = 55, sex = SEX_FEMALE, nick = "Wigg", ball = "normal"},
{name = "Clefable", level = 95, extralevel = 40, sex = SEX_MALE, nick = "Clefa", ball = "great"},
{name = "Chansey", level = 100, extralevel = 50, sex = SEX_MALE, nick = "Chan", ball = "normal"},
{name = "Jigglypuff", level = 100, extralevel = 37, sex = SEX_FEMALE, nick = "Jigg", ball = "ultra"},
{name = "Blissey", level = 100, extralevel = 80, sex = SEX_FEMALE, nick = "Blissey", ball = "ultra"},
}

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, "Parabéns! Você ganhou, aqui é o seu prêmio.", 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("Olá "..getCreatureName(cid)..", Você Quer Batalhar? Vamos Ver Quem é o Melhor, fale Duel para batalha")
  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("Acabamos de lutar! Espere um tempo para me recuperar da última batalha!")
  focus = 0
 return true
 end
 if not hasPokemon(cid) then
  selfSay("Você precisa pokemons para a batalha!")
 return true
 end
 selfSay("Ok, me diga com quantos pokemons voçê vai lutar.")
 conv = 2
return true
end
if conv == 2 and focus == cid then
 if not tonumber(msg) then
  selfSay("Diga-me o número de pokemons que que nós vamos batalhar.")
  return true
 elseif tonumber(msg) > #pokemons then
  selfSay("Só tenho "..#pokemons..",de modo que o máximo é de "..#pokemons.."!")
  return true
 elseif tonumber(msg) < min_pokemons_to_battle or tonumber(msg) < 1 then
  selfSay("Tem que ser mais do que "..min_pokemons_to_battle..".")
  return true
 else
  number_of_pokemons = tonumber(msg)
  selfSay("Ok, o primeiro que vencer "..number_of_pokemons.." leva-rá a vitória, vamos começar!")
  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("É melhor para você recusar uma batalha contra mim!")
return true
end
if msgcontains(msg, 'bye') and focus == cid then
 selfSay('Ja Vai?! Vamos Lutar!')
 setPlayerStorageValue(focus, 990, -1)
 focus = 0
return true
end
end
local afk_warning = false
local change = false
local walkdelay = 0
function onThink()
if not masterpos.x then
 masterpos = getThingPos(getThis())
end
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
 walkdelay = walkdelay - 0.5
 if walkdelay <= 0 then
  walkdelay = walk_delay
  local pos = getThingPos(getThis())
  local npos = {}
  for a = 0, 3 do
if getDistanceBetween(getPosByDir(pos, a), masterpos) <= max_distance and canWalkOnPos(getPosByDir(pos, a), true, false, true, true, false) then
table.insert(npos, getPosByDir(pos, a))
end
  end
  if npos and #npos > 0 then
doTeleportThing(getThis(), npos[math.random(#npos)])
  end
 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("Estava Esperando Você, Volte Quando Estiver Pronto Para Perder!")
 return true
 end
 if not afk_warning and afk_time > afk_limit_time / 2 then
  selfSay("Onde está seu pokemon? Vamos lutar!")
  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("Você perdeu! Você Nunka Irá me Derrotar.")
  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("Corra Quanto Quiser, Você Nunka Vencera.")
 return true
 end
 if (os.clock() - talk_start) > 30 then
  selfSay("...!")
  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

 

Editado por Stigal
Link para o comentário
Compartilhar em outros sites

Testado e aprovado, vlws ae pelo empenho, e tempo gasto em tudo isso Abraço!

Obrigado e estou feliz que tenha gostado...

Que faça bom uso e que te traga muitos players ;3

 

Abraço.

Link para o comentário
Compartilhar em outros sites

Teria como vc passar um tutorial pra fazer quest de pokemons ???? se tiver passa ai !!!

Usuario, veja : http://www.xtibia.com/forum/topic/184739-dvidas-frequentes-sobre-mappingremeres/

Lá atendera suas duvidas e ajudara na questao de "oque fazer" e "como resolver"...

 

Abraço.

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...

gostaria de saber como funciona essa golden arena? pois no meu servidor ela não está puxando os players

Eles tem que ter 8 coins e se inscrever.. vai da um aviso de quando começar e eles vao pra la :)

Link para o comentário
Compartilhar em outros sites

gostaria de saber como funciona essa golden arena? pois no meu servidor ela não está puxando os players

Isso e um script nao tem nada haver com o mapa.

Na versão 1.7 slicer estao usando meu mapa melhorado e com sistemas 100%

Link para o comentário
Compartilhar em outros sites

Mapa 100%.Vei muito bom.Posta mais vc e muito bom msm =D.+Rep

Obrigado, caso queira um mais completo baixe o pda 1.7

nele contem meu mapa melhorado e com servidor quase 100%

 

Abraço.

Link para o comentário
Compartilhar em outros sites

  • 3 months later...
×
×
  • Criar Novo...