Ir para conteúdo

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


lucashgas

Posts Recomendados

@zeref

soh tem q pensa uma coisa.. o player pode colocar tpw.. 50 stones mas em 2 'packs' de 25 cada.. ;x entao ainda precisa do 'for'... ;/ vo ve oq consigo fazer aki...

e sobre 'isStone' logo depois q eu postei o script me veio essa function na cabeça uahuah

 

edit...

impaquei aki..

for b = 1, 10000 do
if removeStones == 0 then break end
local slotItem = getContainerItem(stone_slot.uid, 0)
local count = removeStones - slotItem.type
doRemoveItem(slotItem.uid, removeStones)
removeStones = count <= 0 and 0 or count
end

ele reconhece as stones stackbles, remove elas, na conta certa, soh q na hora q tem q remover stones de 2 'packs' diferentes ele n faz isso --' por exemplo.. tenhu 1 'pack' com 1 stone e outro com 25, o script tem q retirar 4 stones, ele tira o 'pack' de 1 e deixa 25 stones ainda no 'pack' de 25 ;/ na logica o script ae emcima era pra remover do 2* 'pack' tb mas neh.... logica nem sempre se encaixa nos scripts kkk

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

@Yan18

na verdade todos os pokes tem 10% chance de dar evasion... eu nem lembrei de por o evasion saparado para cada poke.. ;/ anyway, os scripts sao..

lib/pokemon moves.lua e move1.lua

procura por..

isInArray(specialabilities["evasion"], ...)

Link para o comentário
Compartilhar em outros sites

@All

 

Alguem pode mi posta di novo ou fala que pagina ta !!

 

aquela %% de nacer shinys tipo 0,1% quando era ou 0.01% quando era ??

 

Eque esqueçi e precisava saber pra ver um negocio aqui ^^

 

E queria saber tbem quento e se eu deixa 1% ^^

Link para o comentário
Compartilhar em outros sites

@Brunnoo

oq eu vi aqui é em

data\creaturescripts\scripts\spawn.lua

procura por

if isInArray(shinys, getCreatureName(cid)) then
  transform = math.random(1, 1000)    --0.1% chance	   
elseif isInArray(raros, getCreatureName(cid)) then
  transform = math.random(1, 1000)   --0.1% chance

 

deixa 1 por 100 fica 1%

ou 1 por 1000 fica 0.1%

ou 1 por 10000 fica 00.1

transform = math.random(1, 100) 

Link para o comentário
Compartilhar em outros sites

[12/09/2012 12:53:36] [Warning - BaseEvents::loadFromXml] Cannot open actions.xml file.

[12/09/2012 12:53:36] Line: 231, Info: Extra content at the end of the document

 

o.O erro novo ... deu isso quando peguei alguns scripts do ot extreme ... e adicionei no xml tbm ... o.O dai deu isso

se souberem porque deu isso fala ae ^^ se nao souberem ... sem problema ...

Link para o comentário
Compartilhar em outros sites

@Slicer

 

Gostaria de tirar uma dúvida, e se tiver como resolver, porfavor, me de a solução. darei REP ++

Vamos lá, gostaria de saber como faço pro pokemon Selvagem ficar mais agressivo com o Player quando há a perda de pokemon.

 

Exemplo : Estou num respawn de Electabuzz, usando um Pokemon Crystal Onix.. e Meu Crystal Onix morre pro Electabuzz, e o Electabuzz ao invés de chegar atacando o player violentamente ele demora um pouco no melee e depois de um determinado tempo ele usa o Attack no Player.

Gostaria que quando o player já perdesse o pokemon o Selvagem já apelasse rapidamente. Obrigado dês de já.

Link para o comentário
Compartilhar em outros sites

@Wiisht

sei la mano...

a % de sair atks dos pokes selvagens eh determinada no .xml deles... ;x n sei se tem como fazer ele soltar mais skills de uma hora pra outra... ;x

 

@zeref

tem nenhuma outra function q preste pra remover item? ;x a doRemoveItem(item, n) ta me trolando... na 1* passada do 'for' ela n retira a qntdade de 'type' do item o.O ele soh tira na 2* passada do 'for'.. ;/

Link para o comentário
Compartilhar em outros sites

Boost System with Stones Agrupaveis

 

local ballslot =12355
local ballslot_run = 12352
local stoneslot = 12354
local stoneslot_run = 12353
local button = 12356
local button_run = 12357
function isRunning(id)
if isInArray({button_run, stoneslot_run, ballslot_run}, id) then
return true
end
return false
end
boost_stones = {
["Bulbasaur"] = {leaf},
["Ivysaur"] = {leaf},
["Venusaur"] = {leaf},
["Charmander"] = {fire},
["Charmeleon"] = {fire},
["Charizard"] = {fire},
["Squirtle"] = {water},
["Wartortle"] = {water},
["Blastoise"] = {water},
["Caterpie"] = {coccon},
["Metapod"] = {coccon},
["Butterfree"] = {coccon},
["Weedle"] = {coccon},
["Kakuna"] = {coccon},
["Beedrill"] = {coccon},
["Pidgey"] = {heart},
["Pidgeotto"] = {heart},
["Pidgeot"] = {heart},
["Rattata"] = {heart},
["Raticate"] = {heart},
["Spearow"] = {heart},
["Fearow"] = {heart},
["Ekans"] = {venom},
["Arbok"] = {venom},
["Pikachu"] = {thunder},
["Raichu"] = {thunder},
["Sandshrew"] = {earth},
["Sandslash"] = {earth},
["Nidoran Female"] = {venom},
["Nidorina"] = {venom},
["Nidoqueen"] = {venom, earth},
["Nidoran Male"] = {venom},
["Nidorino"] = {venom},
["Nidoking"] = {venom, earth},
["Clefairy"] = {heart},
["Clefable"] = {heart},
["Vulpix"] = {fire},
["Ninetales"] = {fire},
["Jigglypuff"] = {heart},
["Wigglytuff"] = {heart},
["Zubat"] = {venom},
["Golbat"] = {venom},
["Oddish"] = {leaf, venom},
["Gloom"] = {leaf, venom},
["Vileplume"] = {leaf, venom},
["Paras"] = {coccon, leaf},
["Parasect"] = {coccon, leaf},
["Venonat"] = {coccon, venom},
["Venomoth"] = {coccon, venom},
["Diglett"] = {earth},
["Dugtrio"] = {earth},
["Meowth"] = {heart},
["Persian"] = {heart},
["Psyduck"] = {water},
["Golduck"] = {water, enigma},
["Mankey"] = {punch},
["Primeape"] = {punch},
["Growlithe"] = {fire},
["Arcanine"] = {fire},
["Poliwag"] = {water},
["Poliwhirl"] = {water},
["Poliwrath"] = {water, punch},
["Abra"] = {enigma},
["Kadabra"] = {enigma},
["Alakazam"] = {enigma},
["Machop"] = {punch},
["Machoke"] = {punch},
["Machamp"] = {punch},
["Bellsprout"] = {leaf, venom},
["Weepinbell"] = {leaf, venom},
["Victreebel"] = {leaf, venom},
["Tentacool"] = {water, venom},
["Tentacruel"] = {water, venom},
["Geodude"] = {earth, rock},
["Graveler"] = {earth, rock},
["Golem"] = {earth,, rock},
["Ponyta"] = {fire}
["Rapidash"] = {fire},
["Slowpoke"] = {water, enigma},
["Slowbro"] = {water, enigma},
["Magnemite"] = {thunder, metal},
["Magneton"] = {thunder, metal},
["Farfetch'd"] = {heart},
["Doduo"] = {heart},
["Dodrio"] = {heart},
["Seel"] = {water, ice},
["Dewgong"] = {water, ice},
["Grimer"] = {venom},
["Muk"] = {venom},
["Shellder"] = {water, ice},
["Cloyster"] = {water, ice},
["Gastly"] = {dark},
["Haunter"] = {dark},
["Gengar"] = {dark},
["Onix"] = {rock, earth},
["Drowzee"] = {enigma},
["Hypno"] = {enigma},
["Krabby"] = {water},
["Kingler"] = {water},
["Voltorb"] = {thunder},
["Electrode"] = {thunder},
["Exeggcute"] = {enigma, leaf},
["Exeggutor"] = {enigma, leaf},
["Cubone"] = {earth},
["Marowak"] = {earth},
["Hitmonlee"] = {punch},
["Hitmonchan"] = {punch},
["Lickitung"] = {heart},
["Koffing"] = {venom},
["Weezing"] = {venom},
["Rhyhorn"] = {earth, rock},
["Rhydon"] = {earth, rock},
["Chansey"] = {heart},
["Tangela"] = {leaf},
["Kangaskhan"] = {heart},
["Horsea"] = {water},
["Seadra"] = {water},
["Goldeen"] = {water},
["Seaking"] = {water},
["Staryu"] = {water},
["Starmie"] = {water},
["Mr. Mime"] = {enigma},
["Scyther"] = {coccon},
["Jynx"] = {enigma, ice},
["Electabuzz"] = {thunder},
["Magmar"] = {fire},
["Pinsir"] = {coccon},
["Tauros"] = {heart},
["Magikarp"] = {water},
["Gyarados"] = {water, crystal},
["Lapras"] = {water, ice},
["Ditto"] = {heart},
["Eevee"] = {heart},
["Vaporeon"] = {water},
["Jolteon"] = {thunder},
["Flareon"] = {fire},
["Porygon"] = {heart, enigma},
["Omanyte"] = {rock, water},
["Omastar"] = {rock, water},
["Kabuto"] = {rock, water},
["Kabutops"] = {rock, water},
["Aerodactyl"] = {rock},
["Snorlax"] = {heart},
["Articuno"] = {ice},
["Zapdos"] = {thunder},
["Moltres"] = {fire},
["Dratini"] = {crystal},
["Dragonair"] = {crystal},
["Dragonite"] = {crystal},
["Mewtwo"] = {enigma},
["Mew"] = {enigma}}
function doRestoreBoostMachine(cid, b_pos, p_pos, s_pos, msg, msg2)
doSendAnimatedText(b_pos, "DONE.", 215)
if isCreature(cid) then
	doCreatureSetNoMove(cid, false)
	doPlayerSendTextMessage(cid, 27, msg)
	doPlayerSendTextMessage(cid, 27, msg2)
end
local ball_s = getTileItemById(p_pos, ballslot_run)
doTransformItem(ball_s.uid, ballslot)
local stne_s = getTileItemById(s_pos, stoneslot_run)
doTransformItem(stne_s.uid, stoneslot)
local butn_s = getTileItemById(b_pos, button_run)
doTransformItem(butn_s.uid, button)
end
local stones_required = {	-- custo base de stones para boostar
[heart] = 1,
[leaf] = 1,
[water] = 1,
[venom] = 1,
[thunder] = 1,
[rock] = 1,
[punch] = 1,
[fire] = 1,
[coccon] = 1,
[crystal] = 1,
[dark] = 1,
[earth] = 1,
[enigma] = 1,
[ice] = 1,
}
local stone_increase = {	-- a cada quantos boosts irá aumentar o custo de stones
[heart] = 3,
[leaf] = 3,
[water] = 3,
[venom] = 4,
[thunder] = 4,
[rock] = 3,
[punch] = 4,
[fire] = 3,
[coccon] = 2,
[crystal] = 15,
[dark] = 4,
[earth] = 4,
[enigma] = 4,
[ice] = 4,
}
function onUse(cid, item, topos, item2, frompos)
if isRunning(item.itemid) then
	doPlayerSendCancel(cid, "Wait until boosting finishes.")
return true
end
if item.itemid == button then
	local pbpos = topos
	   pbpos.x = pbpos.x + 1
	local ball_slot = getTileItemById(pbpos, ballslot)
	local myball = getContainerItem(ball_slot.uid, 0)
	if myball.uid <= 0 or getItemWeight(myball.uid) == 0 then
		doPlayerSendCancel(cid, "You need to put a pokeball in the ball slot.")
	return true
	end
	local pokemon = getItemAttribute(myball.uid, "poke")
	local boost = getItemAttribute(myball.uid, "boost") or 0
	if boost >= 50 then
		doPlayerSendCancel(cid, "Your pokemon is already at maximum boost.")
	return true
	end
	local stnpos = pbpos
	   stnpos.x = stnpos.x - 2
	local stone_slot = getTileItemById(stnpos, stoneslot)
	local stone = getContainerItem(stone_slot.uid, 0)
	if stone.uid <= 0 then
		doPlayerSendCancel(cid, "You need to put a stone in the stone slot.")
	return true
	end
	if not isStone(stone.itemid) then
		doPlayerSendCancel(cid, "Please, put only stones in the stone slot.")
	return true
	end
	if not isInArray(boost_stones[pokemon], stone.itemid) then
		local cancelstr = "Sorry, you are not using the correct stone."
		if #boost_stones[pokemon] > 1 then
			local stonesused = ""
			cancelstr = cancelstr.." This pokemon needs "
			for su = 1, #boost_stones[pokemon] do
				local n = doCorrectString(getItemNameById(boost_stones[pokemon][su]))
				if su == #boost_stones[pokemon] then
					stonesused = stonesused.." or "..getArticle(n).." "..n..""
				elseif su == 1 then
					stonesused = stonesused..""..getArticle(n).." "..n..""
				else
					stonesused = stonesused..", "..n..""
				end
			end
			cancelstr = cancelstr..""..stonesused.." to be boosted."
		else
			cancelstr = cancelstr.." This pokemon needs a "..doCorrectString(getItemNameById(boost_stones[pokemon][1])).." to be boosted."
		end
		doPlayerSendCancel(cid, cancelstr)
	return true
	end
	local removeStones = 0
	local extraStones = math.floor(boost / stone_increase[stone.itemid])
	local required_stones = stones_required[stone.itemid] + extraStones
	local boosts = 0
	local availableStones = 0
	for a = 0, getContainerSize(stone_slot.uid) - 1 do
		local it = getContainerItem(stone_slot.uid, a)
		if it.uid > 0 then
			if not isStone(it.itemid) then
				doPlayerSendCancel(cid, "Please, put only stones in the stone slot.")
			return true
			end
			if it.itemid ~= stone.itemid then
				doPlayerSendCancel(cid, "Please, put only one type of stone in the stone slot.")
			return true
			end
			availableStones = availableStones + it.type
		end
	end

	for a = 1, availableStones do
		if required_stones > 0 then
			required_stones = required_stones - 1
			if required_stones <= 0 then
				boosts = boosts + 1
				removeStones = removeStones + stones_required[stone.itemid] + extraStones
				if boost + boosts <= 49 then
					extraStones = math.floor((boost + boosts) / stone_increase[stone.itemid])
					required_stones = stones_required[stone.itemid] + extraStones
				end
			end
		end
	end

	if required_stones > 0 and boosts == 0 then
		doPlayerSendCancel(cid, "You need more stones to boost this pokemon.")
	return true
	end
	for b = 1, removeStones do
		local i = getContainerItem(stone_slot.uid, 0)
		doChangeTypeItem(i.uid, i.type - 1)
	end
	local off = pokes[pokemon].offense * boost_rate * boosts
	local def = pokes[pokemon].defense * boost_rate * boosts
	local agi = pokes[pokemon].agility * boosts
	local spatk = pokes[pokemon].specialattack * boost_rate * boosts
	local vit = pokes[pokemon].vitality * boost_rate * boosts
	doSetItemAttribute(myball.uid, "boost", boost + boosts)
	doItemSetAttribute(myball.uid, "offense", getItemAttribute(myball.uid, "offense") + off)
	doItemSetAttribute(myball.uid, "defense", getItemAttribute(myball.uid, "defense") + def)
	doItemSetAttribute(myball.uid, "speed", getItemAttribute(myball.uid, "speed") + agi)
	doItemSetAttribute(myball.uid, "specialattack", getItemAttribute(myball.uid, "specialattack") + spatk)
	doItemSetAttribute(myball.uid, "vitality", getItemAttribute(myball.uid, "vitality") + vit)
	local msg = "Your "..getPokeballName(myball.uid).." ["..getItemAttribute(myball.uid, "level").."] has been boosted!"
	local msg2 = "• Boost: "..(boost + boosts).." (+"..boosts..")  • Offense: +"..doMathDecimal(off).."  • Defense: +"..doMathDecimal(def).."  • Spc. Atk: +"..doMathDecimal(spatk).."  • Agility: +"..doMathDecimal(agi).."  • Vitality: +"..doMathDecimal(vit)..""
	local downpos = getThingPos(cid)
	downpos.y = downpos.y + 1
	local mypos = getThingPos(cid)
	doTeleportThing(cid, downpos, false)
	doTeleportThing(cid, mypos, false)
	doTransformItem(ball_slot.uid, ballslot_run)
	doTransformItem(stone_slot.uid, stoneslot_run)
	doTransformItem(item.uid, button_run)
	doCreatureSetNoMove(cid, true)
	doCreatureAddCondition(cid, boostcondition)
	addEvent(doRestoreBoostMachine, 3000, cid, getThingPos(item.uid), getThingPos(ball_slot.uid), getThingPos(stone_slot.uid), msg, msg2)
return true
end
end

 

Creditos: brun123

Link para o comentário
Compartilhar em outros sites

@ZerefShirou

Ficou perfeito! Valeu por trazer para o forum esse script. Muito bom mesmo. Sendo que está incompleto em pequenos fatores, mas isso é fácil de resolver. Os slot não fecham na hora do boost e nem exibe a animação, mas só adicionar as funções. Valeu ai.

 

 

 

[12/09/2012 18:10:12] [Error - LuaScriptInterface::loadFile] data/actions/scripts/boost.lua:89: unexpected symbol near ','

[12/09/2012 18:10:12] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

[12/09/2012 18:10:12] data/actions/scripts/boost.lua:89: unexpected symbol near ','

 

 

Linha 89 tava com uma "," a mais

 

["Golem"] = {earth,, rock},

 

Mas mesmo concertando isso não exibe a animação e nem os slots fecham ao boosta.

 

 

[12/09/2012 18:20:38] [Error - Action Interface]

[12/09/2012 18:20:38] data/actions/scripts/boost.lua:onUse

[12/09/2012 18:20:38] Description:

[12/09/2012 18:20:38] data/actions/scripts/boost.lua:317: attempt to perform arithmetic on a nil value

[12/09/2012 18:20:38] stack traceback:

[12/09/2012 18:20:38] data/actions/scripts/boost.lua:317: in function <data/actions/scripts/boost.lua:215>

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

@Slicer e @pedrowarlock

Não fui eu que fiz, não é a mim que vocês deveriam agradecer e sim a quem fez.

 

Ainda não testei mas parece funcional e simples, depois verei com calma oque mudou e talz :D

 

Depois vejo se trago 1 sistema inutil pro povo haushausa

Link para o comentário
Compartilhar em outros sites

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