Ir para conteúdo

[Encerrado] [Pokemon] Dúvidas? - Pda


lucashgas

Posts Recomendados

SoulOroshie

 

Conseguir colocar um passive mais so funciona quando eu ataco... ja mudei ele para defense e nao funcionou como faz nesse ot que so tem .xml dos pokemons selvagens ?

jeffe000

 

Realmente nese OT so tem a pasta de pokemon selvagens nao tem as de pokemon sem ataca como seria o caso para por o movie

=/

Ferrou ={

Link para o comentário
Compartilhar em outros sites

alguem poderia me dizer que erro e esse os pokemons shiny nao estão perdendo life quando sao atacados

[31/01/2012 01:38:18] [Error - CreatureScript Interface]

[31/01/2012 01:38:18] data/creaturescripts/scripts/exp.lua:onStatsChange

[31/01/2012 01:38:18] Description:

[31/01/2012 01:38:18] data/creaturescripts/scripts/exp.lua:315: attempt to index field '?' (a nil value)

[31/01/2012 01:38:18] stack traceback:

[31/01/2012 01:38:18] data/creaturescripts/scripts/exp.lua:315: in function <data/creaturescripts/scripts/exp.lua:129>

Link para o comentário
Compartilhar em outros sites

 

local scyther = {lookType = 496}

local shinyscyther = {lookType = 849}

local scythe1 = createCombatArea{

{0, 0, 0},

{0, 0, 0},

{0, 2, 0},

{1, 0, 0},

}

local scythe2 = createCombatArea{

{1, 0, 0},

{0, 0, 0},

{0, 2, 0},

}

local scythe3 = createCombatArea{

{1, 0, 0, 0},

{0, 0, 2, 0},

{0, 0, 0, 0},

}

local scythe4 = createCombatArea{

{0, 0, 0, 1},

{0, 0, 2, 0},

{0, 0, 0, 0},

}

local rollarea = createCombatArea{

{1, 1, 1},

{1, 2, 1},

{1, 1, 1},

}

function onCastSpell(cid, var)

if getCreatureCondition(getCreatureMaster(cid), CONDITION_INFIGHT) == FALSE then

return true

end

if getCreatureCondition(cid, CONDITION_OUTFIT) == true then

return true

end

doCreatureSay(cid, "Counter Helix", TALKTYPE_MONSTER)

if getCreatureOutfit(cid).lookType == 366 then

doSetCreatureOutfit(cid, scyther, -1)

doChangeSpeed(cid, -1000)

damage = 1500

elseif getCreatureOutfit(cid).lookType == 1317 then

doSetCreatureOutfit(cid, shinyscyther, -1)

doChangeSpeed(cid, -1000)

damage = 2500

end

local dmg = damage

local function damage(params)

if isCreature(params.cid) then

doAreaCombatHealth(params.cid, FLYDAMAGE, getThingPos(params.cid), rollarea, -(params.dmg), -(params.dmg), 255)

doAreaCombatHealth(params.cid, element, getThingPos(params.cid), scythe1, 0, 0, 128)

doAreaCombatHealth(params.cid, element, getThingPos(params.cid), scythe2, 0, 0, 131)

doAreaCombatHealth(params.cid, element, getThingPos(params.cid), scythe3, 0, 0, 129)

doAreaCombatHealth(params.cid, element, getThingPos(params.cid), scythe4, 0, 0, 130)

end

end

local function voltar(params)

if isCreature(params.cid) then

doRemoveCondition(params.cid, CONDITION_OUTFIT)

doChangeSpeed(cid, 1000)

doRemoveCondition(getCreatureMaster(cid),CONDITION_INFIGHT)

end

end

local vezes = 2

local delay = 600 -- não mexe

for i = 1, vezes do

addEvent(damage, delay*i, {cid = cid, dmg = dmg})

end

addEvent(voltar, 800*vezes, {cid = cid})

end

 

 

 

pode chekar spell? counter helix passive

Link para o comentário
Compartilhar em outros sites

onde fica os scripts das spells pois eu não estou axando aki...tava qrendo dar uma olhada no sleep e no hypnose mais n axo o script deles na pasta x.x

help?

Link para o comentário
Compartilhar em outros sites

@All

estou precisando de uma ajuda

criei uns npc novos com sprite nova pra fazer ele como npc duel

espalhado pelo mapa

 

wty6ht.jpg

 

Estou precisando de script de npc duelo tipo quando vencer ganha

um item [qualquer tipo de item que seja configuravel] se alguem puder me

ajudar fico no aguardo.

Link para o comentário
Compartilhar em outros sites

@Nibelins

 

 

te ajudo nisso

 

Bem no servidor já vem um npc com nome "ExemploNPCDuel"

 

Ao vencer-lo se ganha ultra ball e super ball

 

basta voce pega-lo como base e configura os npc ...look type e editar o premio

 

 

E se ainda não conseguir fazer so me dizer o look type de cada um que eu crio e posto pra voce

 

 

Aqui esta o script

 

 

 

 

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 = 7 -- 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 = 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}}}

 

local pokemons = {

{name = "Cloyster", level = 40, extralevel = 30, 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"},

}

 

 

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

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("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

 

 

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

Gente to precisando pakas dos corpoise jhoto

se alguem puder disponibilizar para mim eu fico muito grato

e tambem a pagina que ensina a mudar o corpoise dos shiy pq abra ta como dark abra

e eu queria colocar ao inves de shiny hitmonlee verde akele com a capa preta

@nibelis

depois que fica pronto passa pra noix awe

usa esse npc aki

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 = 4-- change to whatever you want

local number_of_pokemons = 0 -- don't change

 

local prizes = {

 

[4] = {{itemid = 2152, count = 15}, {itemid = 11453, count = 1}}}

 

local pokemons = {

{name = "Geodude", level = 28, extralevel = 2.5, sex = SEX_MALE, nick = "", ball = "super"},

{name = "Kingler", level = 32, extralevel = 5, sex = SEX_FEMALE, nick = "", ball = "normal"},

{name = "Electrode", level = 35, extralevel = 10, sex = SEX_MALE, nick = "", ball = "great"},

{name = "Gloom", level = 40, extralevel = 15, sex = SEX_MALE, nick = "", ball = "normal"}

}

 

 

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

setPlayerStorageValue(cid, 6278462, 1)

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 getPlayerStorageValue(cid, 6278462) > 0 then

selfSay("You have defeated me!")

focus = 0

return true

end

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

 

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

ja tentei coloca esse script mais aqui não funcionou

sempre que falo com npc

hi

duel

yes

ele não faz nada so fala isso

 

Tell me the number of pokemons that will battle.

 

arrumando tem que fala o numero de pokemon que vai participar do duelo

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

@Nibelins

 

Tipo o npc ped epra dize rum numero aleatorio de 1 a 5 q no caso serão a quantidade pokemons usados.

 

Como eu já dice, se quizer crio para você, basta me dizer o look type de cad aum deles...

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

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...