Ir para conteúdo

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


lucashgas

Posts Recomendados

Que mapa eu posso colocar ? (tenten colocar o do pokemon Ex mas como la tem respaws pokemon "S" exempo Caterpie s, e no server n tem teria que colocar respaws td de novo alguem sabe otro mapa ae ? +REP

 

Tem um mapa que vi em alguns ot qe em cima do cp ja tem os Boost machine, no cp tem tp pra evento e um tp qe vai pra uma salinha com tps pra citys, se algum souber ae qe mapa e esse e me paqssar link +REP 1 semana

 

Descubem erros ortografico :he.gifwacko.png

Link para o comentário
Compartilhar em outros sites

Olha voce pode usar o do KPDO com respaws (ele nao tem os "s") mas se voce quizer tbm voce pode tirar os "S" dos monster do mapa do Pokemon EX.

 

É so abrir o arquivo spwan que ta na pasta do mapa abrir ir com o bloco de notas e tirar os "s" dos poke (somente o "S")

 

Exemplo:


<spawn centerx="1133" centery="1421" centerz="2" radius="10">
   <monster name="Scyther s" x="-8" y="-2" z="2" spawntime="30"/>
   <monster name="Scyther s" x="2" y="0" z="2" spawntime="30"/>
   <monster name="Scyther s" x="10" y="2" z="2" spawntime="30"/>
   <monster name="Scyther s" x="-3" y="8" z="2" spawntime="30"/>
 </spawn>

 

Ai tira os S ficando assim


<spawn centerx="1133" centery="1421" centerz="2" radius="10">
   <monster name="Scyther" x="-8" y="-2" z="2" spawntime="30"/>
   <monster name="Scyther" x="2" y="0" z="2" spawntime="30"/>
   <monster name="Scyther" x="10" y="2" z="2" spawntime="30"/>
   <monster name="Scyther" x="-3" y="8" z="2" spawntime="30"/>
 </spawn>

 

Espero que tenha ajudado.

Link para o comentário
Compartilhar em outros sites

Alguem tem os ids das outfits do clans do pxg ?

REP pra quem me ajudar!

 

 

Usa O Meu

 

<?xml version="1.0"?>

<outfits>

<!-- NORMAL -->

 

<outfit id="1">

<list gender="0" lookType="511" name="Trainer"/>

<list gender="1" lookType="510" name="Trainer"/>

</outfit>

<outfit id="2">

<list gender="0" lookType="615" name="Elite Trainer"/>

<list gender="1" lookType="614" name="Elite Trainer"/>

</outfit>

<outfit id="3">

<list gender="0" lookType="512" name="Rapper"/>

<list gender="1" lookType="545" name="Rapper"/>

</outfit>

<outfit id="4">

<list gender="0" lookType="588" name="Jamaican"/>

<list gender="1" lookType="587" name="Jamaican"/>

</outfit>

<outfit id="5">

<list gender="0" lookType="586" name="Oriental"/>

<list gender="1" lookType="585" name="Oriental"/>

</outfit>

<outfit id="6">

<list gender="0" lookType="605" name="Rocket"/>

<list gender="1" lookType="604" name="Rocket"/>

</outfit>

<outfit id="7">

<list gender="0" lookType="495" name="Adventurer"/>

<list gender="1" lookType="494" name="Adventurer"/>

</outfit>

<outfit id="8">

<list gender="0" lookType="513" name="Bussiness"/>

<list gender="1" lookType="514" name="Bussiness"/>

</outfit>

<outfit id="9">

<list gender="0" lookType="517" name="Atletic"/>

<list gender="1" lookType="516" name="Atletic"/>

</outfit>

<outfit id="10">

<list gender="0" lookType="519" name="Punk"/>

<list gender="1" lookType="518" name="Punk"/>

</outfit>

<outfit id="11">

<list gender="0" lookType="521" name="Fisher"/>

<list gender="1" lookType="520" name="Fisher"/>

</outfit>

<outfit id="12">

<list gender="0" lookType="524" name="Mercenary"/>

<list gender="1" lookType="522" name="Mercenary"/>

</outfit>

<outfit id="13">

<list gender="0" lookType="525" name="Hiker"/>

<list gender="1" lookType="523" name="Hiker"/>

</outfit>

 

<!-- PROMOTE -->

 

<outfit id="14">

<list gender="0" lookType="1149" name="Naturia"/>

<list gender="1" lookType="1159" name="Naturia"/>

</outfit>

<outfit id="15">

<list gender="0" lookType="1152" name="Volcanic"/>

<list gender="1" lookType="1154" name="Volcanic"/>

</outfit>

<outfit id="16">

<list gender="0" lookType="1146" name="Gardestrike"/>

<list gender="1" lookType="1155" name="Gardestrike"/>

</outfit>

<outfit id="17">

<list gender="0" lookType="1153" name="Malefic"/>

<list gender="1" lookType="1157" name="Malefic"/>

</outfit>

<outfit id="18">

<list gender="0" lookType="1148" name="Wingeon"/>

<list gender="1" lookType="1158" name="Wingeon"/>

</outfit>

<outfit id="19">

<list gender="0" lookType="1147" name="Raibolt"/>

<list gender="1" lookType="1160" name="Raibolt"/>

</outfit>

<outfit id="20">

<list gender="0" lookType="1145" name="Psycraft"/>

<list gender="1" lookType="1161" name="Psycraft"/>

</outfit>

<outfit id="21">

<list gender="0" lookType="1151" name="Seavell"/>

<list gender="1" lookType="1162" name="Seavell"/>

</outfit>

<outfit id="22">

<list gender="0" lookType="1150" name="Orebound"/>

<list gender="1" lookType="1156" name="Orebound"/>

</outfit>

<!-- PROMOTE MASTER -->

<outfit id="23" premium="yes">

<list gender="1" lookType="1164" name="Raibolt Legend"/>

<list gender="0" lookType="1179" name="Raibolt Legend"/>

</outfit>

<outfit id="24" premium="yes">

<list gender="1" lookType="1165" name="Seavell King"/>

<list gender="0" lookType="1178" name="Seavell Queen"/>

</outfit>

<outfit id="25" premium="yes">

<list gender="1" lookType="1166" name="Naturia Keeper"/>

<list gender="0" lookType="1177" name="Naturia Keeper"/>

</outfit>

<outfit id="26">

<list gender="1" lookType="1167" name="Malefic Lord"/>

<list gender="0" lookType="1176" name="Malefic Lady"/>

</outfit>

<outfit id="27">

<list gender="1" lookType="1168" name="Volcanic Master"/>

<list gender="0" lookType="1180" name="Volcanic Master"/>

</outfit>

<outfit id="28">

<list gender="1" lookType="1169" name="Wingeon Dragon"/>

<list gender="0" lookType="1175" name="Wingeon Dragon"/>

</outfit>

<outfit id="29">

<list gender="1" lookType="1170" name="Orebound Hero"/>

<list gender="0" lookType="1174" name="Orebound Hero"/>

</outfit>

<outfit id="30">

<list gender="1" lookType="1171" name="Gardestrike Champion"/>

<list gender="0" lookType="1173" name="Gardestrike Lady"/>

</outfit>

 

<outfit id="31">

<list gender="1" lookType="1172" name="Psycraft Medium"/>

<list gender="0" lookType="1181" name="Psycraft Medium"/>

</outfit>

<!-- GAMEMASTER -->

 

<outfit id="32">

<list gender="0-3" lookType="664" name="GameMaster"/>

</outfit>

 

 

<outfit id="33">

<list gender="0-3" lookType="1411" name="Fagundes"/>

</outfit>

 

<!-- NATAL -->

 

<outfit id="34">

<list gender="0" lookType="661" name="Christmas"/>

<list gender="1" lookType="662" name="Christmas"/>

</outfit>

<outfit id="35">

<list gender="0" lookType="1084" name="Christmas 2"/>

<list gender="1" lookType="1083" name="Christmas 2"/>

</outfit>

 

<!-- RELLOWEEN -->

 

<outfit id="36">

<list gender="0-3" lookType="1140" name="Mummy"/>

</outfit>

<outfit id="37">

<list gender="0" lookType="1190" name="Bruxa"/>

<list gender="1" lookType="1191" name="Dracula"/>

</outfit>

<outfit id="38">

<list gender="0" lookType="1188" name="Caveira"/>

<list gender="1" lookType="1189" name="Diaba"/>

</outfit>

</outfits>

 

@Slicer

 

Eu Nao Entendo Muito De Escripts

So Intepleto, Vo Fuçando E Olhando Onde OQ Cada Coisa Fais

 

Mais VLW Vo Tenta Aki. Qual Quer Coisa Eu Posto Aki =D

 

ABRASS

 

O cara posto ae, so que parece que tem alguns que estao com bug, eu não testei. Qualquer coisa voce usa um dat editor e ve o numero correto das outfits que estao no seu client, pois isso pode variar de client para client.

 

@Slicer

Cara, no seu sistema de passivo voce alterou alguma coisa no configuration.lua??

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

Ae galera.. ate q fim terminei.. la vai o sistema de passivo..

**SISTEMA POKES PASSIVOS**

vo postar as passivas pros seguintes pokes: Scyther, Shiny Scyther, Pineco, Forretress, Scizor, Hitmontop, Magmar, Shiny Magmar, Electabuzz, Shiny Electabuzz, Hitmonlee, Shiny hitmonlee, Hitmonchan, Shiny Hitmonchan...

Joguem fora seus Hitmonchans e shiny hitmonchans e criem novos.. pois adicionei o atributo "hands" nas balls.. e sem ele nas balls vai da debug... e sorry.. n sabia q o script do hitmonchan ia mexer com tantos outros.. ;p

Detalhes...

 

 

DETALHES: A maioria das informaçoes ja estam nos scripts... mas vale lembrar...

**como a passiva do hitmonchan mexe com muitos scripts.. vo postar a pasta data soh com os scripts editados.. entao soh baixe,

copiei a pasta data toda e cole na pasta do teu serv substituindo os scripts..

**o configuration.lua na pasta lib ja esta com o pokes johto +/- balanciados.. essa parte foi feita pelo @victorvs

**eu troquei as outfits dos shinys hitmonlee e chan e deixei as iguais a do PO... pois elas ja tem as outfits das luvas do chan e do lee chutando...

**eu n sei como funciona o sistema de dano de skill do brun123.. entao coloquei qlqr coisa.. cada q for usar ajeite do seu jeito..

**em cada arquivo das passivas tem um % chance de sair a passiva.. cada um altere do jeito q quiser.. eu deixei com 20% chance...

 

 

Edits: 04/02 14:20 --> Versao 1.3.1

Adicionado function q estava faltando (sorry)

Adicionado atks passivos dos pokes {Raichu, Wigglytuff e seus shinys}

--

Adicionado atks passivos dos pokes {Golduck, Psyduck, kangaskhan e seus shinys}

arrumado pequenos bugs/erros meus... sorry

Adicionado proteçoes para balls antigas dos chans

Arrumado bug na CDbar

 

 

 

IMPORTANTE: qlqr erro/bug por favor postar aki, mostrando o erro/bug e explicando oq vc estava fazendo quando ocorreu o erro/bug... desde de vlws!

qlqr outra passiva q vcs tenham em mente.. por favor mandar msg pra mim explicando a passiva...

@Slicer eu estava com um problema no seu scrpit dos passivos, que eu lembro era um error que acontecia quando dava respaw(alguma coisa sobre shiny), é pq tava faltando essa parte no seu script:

 

 

return getThingPos(what)
end
function isShiny(cid)
if not isCreature(cid) then
return false
end

if string.find(tostring(getCreatureName(cid)), "Shiny") then
return true
end
return false
end

 

Que iria ficar assim:

 

local hitmonchans = {
["Hitmonchan"] = {
					 [0] = {out = 559, eff = 112, type = FIGHTINGDAMAGE},  --outfit normal
					 [1] = {out = 1075, eff = 35, type = FIREDAMAGE},	--outfit fogo
					 [2] = {out = 1077, eff = 48, type = ELECTRICDAMAGE},	--outfit raio
					 [3] = {out = 1078, eff = 43, type = ICEDAMAGE},	--outfit gelo
					 [4] = {out = 1076, eff = 140, type = GHOSTDAMAGE}   --outfit ghost
			  },

["Shiny Hitmonchan"] = {			
					 --aconcelho trocar a outfit do shiny hitmonchan pela do elite hitmonchan do PO...
					 [0] = {out = 837, eff = 112, type = FIGHTINGDAMAGE},  --outfit normal
					 [1] = {out = 1080, eff = 35, type = FIREDAMAGE},	--outfit fogo
					 [2] = {out = 1081, eff = 48, type = ELECTRICDAMAGE},	--outfit raio
					 [3] = {out = 1082, eff = 43, type = ICEDAMAGE},	--outfit gelo
					 [4] = {out = 1079, eff = 140, type = GHOSTDAMAGE}   --outfit ghost
				   }
}
function getThingPosWithDebug(what)
if not isCreature(what) or getCreatureHealth(what) <= 0 then
return {x = 1, y = 1, z = 1}
end
return getThingPos(what)
end
function isShiny(cid)
if not isCreature(cid) then
return false
endif string.find(tostring(getCreatureName(cid)), "Shiny") then
return true
end
return false
end
function doConvertTypeToStone(type, string)
local t = {
["fly"] = {heart, "heart"},
["flying"] = {heart, "heart"},
["normal"] = {heart, "heart"},
["fire"] = {fire, "fire"},
["grass"] = {leaf, "leaf"},
["leaf"] = {leaf, "leaf"},
["water"] = {water, "water"},
["poison"] = {venom, "venom"},
["venom"] = {venom, "venom"},
["electric"] = {thunder, "thunder"},
["thunder"] = {thunder, "thunder"},
["rock"] = {rock, "rock"},
["fight"] = {punch, "punch"},
["fighting"] = {punch, "punch"},
["bug"] = {coccon, "coccon"},
["dragon"] = {crystal, "crystal"},
["dark"] = {dark, "dark"},
["ghost"] = {dark, "dark"},
["ground"] = {earth, "earth"},
["earth"] = {earth, "earth"},
["psychic"] = {enigma, "enigma"},
["steel"] = {metal, "metal"},
["metal"] = {metal, "metal"},
["ice"] = {ice, "ice"},
}
if string then
return t[type][2]
else
return t[type][1]
end
endfunction isStone(id)
if id >= leaf and id <= ice then
return true
end
return false
end
function isWater(id)
if id >= 4820 and id <= 4825 then
return true
end
return false
endfunction getTopCorpse(position)
local pos = position
 for n = 1, 255 do   pos.stackpos = n
  local item = getTileThingByPos(pos)
  if item.itemid >= 2 and (string.find(getItemNameById(item.itemid), "fainted ") or string.find(getItemNameById(item.itemid), "defeated ")) then
return getTileThingByPos(pos)
  end
 end
return null
endbpslot = CONST_SLOT_BACKPACK
function hasPokemon(cid)
if not isCreature(cid) then return false end
if getCreatureMana(cid) <= 0 then return false end
if #getCreatureSummons(cid) >= 1 then return true end
local item = getPlayerSlotItem(cid, CONST_SLOT_FEET)
local bp = getPlayerSlotItem(cid, bpslot)
for a, b in pairs (pokeballs) do
 if item.itemid == b.on then
 return true
 end
 if #getItemsInContainerById(bp.uid, b.on) >= 1 then
 return true
 end
end
return false
endfunction isNpcSummon(cid)
return isNpc(getCreatureMaster(cid))
end
function getPokemonHappinessDescription(cid)
if not isCreature(cid) then return true end
local str = ""
if getPokemonGender(cid) == SEX_MALE then
 str = "He"
elseif getPokemonGender(cid) == SEX_FEMALE then
 str = "She"
else
 str = "It"
end
local h = getPlayerStorageValue(cid, 1008)
if h >= tonumber(getConfigValue('PokemonStageVeryHappy')) then
 str = str.." is very happy with you!"
elseif h >= tonumber(getConfigValue('PokemonStageHappy')) then
 str = str.." is happy."
elseif h >= tonumber(getConfigValue('PokemonStageOK')) then
 str = str.." is unhappy."
elseif h >= tonumber(getConfigValue('PokemonStageSad')) then
 str = str.." is sad."
elseif h >= tonumber(getConfigValue('PokemonStageMad')) then
 str = str.." is mad."
else
 str = str.." is very mad at you!"
end
return str
endfunction doSetItemAttribute(item, key, value)
doItemSetAttribute(item, key, value)
end
function deTransform(cid, check)
if not isCreature(cid) then return true endlocal m = getCreatureMaster(cid)
local p = getPlayerSlotItem(m, 8)
if getItemAttribute(p.uid, "transTurn") ~= check then return true endsetPlayerStorageValue(cid, 1010, "Ditto")
doRemoveCondition(cid, CONDITION_OUTFIT)
doSendMagicEffect(getThingPos(cid), 184)
doCreatureSay(cid, "DITTO!", TALKTYPE_MONSTER)
doItemSetAttribute(p.uid, "transBegin", 0)
doItemSetAttribute(p.uid, "transLeft", 0)
doItemEraseAttribute(p.uid, "transName")
doItemEraseAttribute(p.uid, "boffense")
doItemEraseAttribute(p.uid, "bdefense")
doItemEraseAttribute(p.uid, "bsattack")
doItemEraseAttribute(p.uid, "bagility")
end
function isTransformed(cid)
if getPlayerStorageValue(cid, 1010) == "Ditto" then
return false
else
return true
end
endfunction doSendFlareEffect(pos)
local random = {28, 29, 79}
doSendMagicEffect(pos, random[math.random(1, 3)])
end
function isDay()
local a = getWorldTime()
if a >= 360 and a < 1080 then
return true
end
return false
endfunction doPlayerSendTextWindow(cid, p1, p2)
if not isCreature(cid) then return true end
local item = 460
local text = ""
if type(p1) == "string" then
 doShowTextDialog(cid, item, p1)
else
 doShowTextDialog(cid, p1, p2)
end
end
function getClockString(tw)
local a = getWorldTime()
local b = a / 60
local hours = math.floor(b)
local minut = a - (60 * hours)if not tw then
 if hours < 10 then
  hours = "0"..hours..""
 end
 if minut < 10 then
  minut = "0"..minut..""
 end
return hours..":"..minut
else
 local sm = "a.m"
 if hours >= 12 then
  hours = hours - 12
  sm = "p.m"
 end
 if hours < 10 then
  hours = "0"..hours..""
 end
 if minut < 10 then
  minut = "0"..minut..""
 end
return hours..":"..minut.." "..sm
end
end
function doCorrectPokemonName(poke)
return doCorrectString(poke)
endfunction doCorrectString(poke)
local name = ""
local n = string.explode(poke, " ")
local str = string.sub(n[1], 1, 1)
local sta = string.sub(n[1], 2, string.len(n[1]))
name = ""..string.upper(str)..""..string.lower(sta)..""
if n[2] then
str = string.sub(n[2], 1, 1)
sta = string.sub(n[2], 2, string.len(n[2]))
name = name.." "..string.upper(str)..""..string.lower(sta)..""
end
return name
end
function getHappinessRate(cid)
if not isCreature(cid) then return 1 end
local a = getPlayerStorageValue(cid, 1008)
 if a == -1 then return 1 end
if a >= getConfigValue('PokemonStageVeryHappy') then
 return happinessRate[5].rate
elseif a >= getConfigValue('PokemonStageHappy') then
 return happinessRate[4].rate
elseif a >= getConfigValue('PokemonStageOK') then
 return happinessRate[3].rate
elseif a >= getConfigValue('PokemonStageSad') then
 return happinessRate[2].rate
else
 return happinessRate[1].rate
end
return 1
endfunction doBodyPush(cid, target, go, pos)
if not isCreature(cid) or not isCreature(target) then
 doRegainSpeed(cid)
 doRegainSpeed(target)
return true
end
 if go then
  local a = getThingPos(cid)
  doChangeSpeed(cid, -getCreatureSpeed(cid))
if not isPlayer(target) then
 doChangeSpeed(target, -getCreatureSpeed(target))
end
  doChangeSpeed(cid, 800)
  doTeleportThing(cid, getThingPos(target))
  doChangeSpeed(cid, -800)
  addEvent(doBodyPush, 350, cid, target, false, a)
 else
  doChangeSpeed(cid, 800)
  doTeleportThing(cid, pos)
  doRegainSpeed(cid)
  doRegainSpeed(target)
 end
end
function doReturnPokemon(cid, pokemon, pokeball, effect, hideeffects, blockevo)local edit = true
if not pokeball then
 pokeball = getPlayerSlotItem(cid, 8)
endif blockevo then
 edit = false
 doPlayerSendCancel(cid, "Your pokemon couldn't evolve due to server mistakes, please wait until we fix the problem.")
end
local happy = getPlayerStorageValue(pokemon, 1008)
local hunger = getPlayerStorageValue(pokemon, 1009)
local pokelife = (getCreatureHealth(pokemon) / getCreatureMaxHealth(pokemon))if edit then
 doItemSetAttribute(pokeball.uid, "happy", happy)
 doItemSetAttribute(pokeball.uid, "hunger", hunger)
 doItemSetAttribute(pokeball.uid, "hp", pokelife)
end
if getCreatureName(pokemon) == "Ditto" then
 if isTransformed(pokemon) then
  local left = getItemAttribute(pokeball.uid, "transLeft") - (os.clock() - getItemAttribute(pokeball.uid, "transBegin"))
  doItemSetAttribute(pokeball.uid, "transLeft", left)
 end
endif hideeffects then
 doRemoveCreature(pokemon)
return true
end
local pokename = getPokeName(pokemon)local mbk = gobackmsgs[math.random(1, #gobackmsgs)].back:gsub("doka", pokename)
if getCreatureCondition(cid, CONDITION_INFIGHT) then
 if isCreature(getCreatureTarget(cid)) then
  doItemSetAttribute(pokeball.uid, "happy", happy - 5)
 else
  doItemSetAttribute(pokeball.uid, "happy", happy - 2)
 end
enddoTransformItem(pokeball.uid, pokeball.itemid-1)
doCreatureSay(cid, mbk, TALKTYPE_SAY)
doSendMagicEffect(getCreaturePosition(pokemon), effect)doRemoveCreature(pokemon)
if useKpdoDlls then
 doUpdateMoves(cid)
endend
function doGoPokemon(cid, item)if getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 63215) >= 1 then
return true
end
local btype = getPokeballType(item.itemid)local effect = pokeballs[btype].effect
 if not effect then
  effect = 21
 end
if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then
 doPlayerSendCancel(cid, "You must put your pokeball in the correct place!")
return TRUE
endlocal thishp = getItemAttribute(item.uid, "hp")
if thishp <= 0 then
 if isInArray(pokeballs[btype].all, item.itemid) then
  doTransformItem(item.uid, pokeballs[btype].off)
  doItemSetAttribute(item.uid, "hp", 0)
  doPlayerSendCancel(cid, "This pokemon is fainted.")
 return true
 end
endlocal pokemon = getItemAttribute(item.uid, "poke")
if not pokes[pokemon] then
return true
endlocal x = pokes[pokemon]
local boosts = getItemAttribute(item.uid, "boost") or 0
if getPlayerLevel(cid) + pokemonMaxLevelAbovePlayer < getItemAttribute(item.uid, "level") then
doPlayerSendCancel(cid, "Your pokemon's level is much higher than yours, you can't use him.")
return true
enddoSummonMonster(cid, pokemon)
local pk = getCreatureSummons(cid)[1]
if not isCreature(pk) then return true end

------------------------passiva hitmonchan------------------------------
if isSummon(pk) then
   --local e = getCreatureMaster(cid)
   local nameHIT = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke")
   local hands = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "hands")
   if nameHIT == "Shiny Hitmonchan" or nameHIT == "Hitmonchan" then
	  if getItemAttribute(getPlayerSlotItem(cid, 8).uid, "hands") then
		 doSetCreatureOutfit(pk, {lookType = hitmonchans[nameHIT][hands].out}, -1)
	  else
		  doPlayerSendTextMessage(cid, 27, "Contact a GameMaster! Error in passive system! Attribute \"hands\" missing")
	  end
   end
end
-------------------------------------------------------------------------if getCreatureName(pk) == "Ditto" then
 local left = getItemAttribute(item.uid, "transLeft")
 local name = getItemAttribute(item.uid, "transName")  if left and left > 0 then
  setPlayerStorageValue(pk, 1010, name)
  doSetCreatureOutfit(pk, {lookType = getItemAttribute(item.uid, "transOutfit")}, -1)
  addEvent(deTransform, left * 1000, pk, getItemAttribute(item.uid, "transTurn"))
  doItemSetAttribute(item.uid, "transBegin", os.clock())
 else
  setPlayerStorageValue(pk, 1010, "Ditto")
 end
end
if isGhostPokemon(pk) then doTeleportThing(pk, getPosByDir(getThingPos(cid), math.random(0, 7)), false) enddoCreatureSetLookDir(pk, 2)
adjustStatus(pk, item.uid, true, false, true)
doAddPokemonInOwnList(cid, pokemon)doTransformItem(item.uid, item.itemid+1)
local pokename = getItemAttribute(item.uid, "nick") or getCreatureName(pk)local mgo = gobackmsgs[math.random(1, #gobackmsgs)].go:gsub("doka", pokename)
doCreatureSay(cid, mgo, TALKTYPE_SAY)
doSendMagicEffect(getCreaturePosition(pk), effect)if useKpdoDlls then
 doUpdateMoves(cid)
end
end
function doRegainSpeed(cid)
if not isCreature(cid) then return 0 end
if isPlayer(cid) then
 doChangeSpeed(cid, - getCreatureSpeed(cid))
 doChangeSpeed(cid, PlayerSpeed)
return PlayerSpeed
end
local speed = getCreatureBaseSpeed(cid) + getSpeed(cid) * speedRate
if speed > 1500 then
 speed = 1500
end
doChangeSpeed(cid, - getCreatureSpeed(cid))
doChangeSpeed(cid, speed)
return speed
endfunction isPosEqualPos(pos1, pos2, checkstackpos)
if pos1.x ~= pos2.x or pos1.y ~= pos2.y and pos1.z ~= pos2.z then
return false
end
if checkstackpos and pos1.stackpos and pos2.stackpos and pos1.stackpos ~= pos2.stackpos then
return false
end
return true
end
function getRandomGenderByName(name)
local rate = newpokedex[name]
if not rate then return 0 end
rate = rate.gender
if rate == 0 then
 gender = 3
elseif rate == 1000 then
 gender = 4
elseif rate == -1 then
 gender = 0
elseif math.random(1, 1000) <= rate then
 gender = 4
else
 gender = 3
end
return gender
endfunction getRecorderPlayer(pos, cid)
local ret = 0
if cid and getThingPos(cid).x == pos.x and getThingPos(cid).y == pos.y then
return cid
end
local s = {}
s.x = pos.x
s.y = pos.y
s.z = pos.z
 for a = 0, 255 do
  s.stackpos = a
  local b = getTileThingByPos(s).uid
  if b > 1 and isPlayer(b) and getCreatureOutfit(b).lookType ~= 814 then
ret = b
  end
 end
return ret
end
function doCreatureSetOutfit(cid, outfit, time)
doSetCreatureOutfit(cid, outfit, time)
endfunction doMagicalFlower(cid, away)
if not isCreature(cid) then return true end
for x = -3, 3 do
 for y = -3, 3 do
 local a = getThingPos(cid)
 a.x = a.x + x
 a.y = a.y + y
  if away then
doSendDistanceShoot(a, getThingPos(cid), 21)
  else
doSendDistanceShoot(getThingPos(cid), a, 21)
  end
 end
end
end
function isItemPokeball(item)
if not item then return false end
for a, b in pairs (pokeballs) do
if isInArray(b.all, item) then return true end
end
return false
endfunction isPokeball(item)
if not item then return false end
if item >= 11826 and item <= 11837 then
return true
end
if item >= 11737 and item <= 11748 then
return true
end
return false
end
function getPokeballType(id)
for a, b in pairs (pokeballs) do
 if isInArray(b.all, id) then
  return a
 end
end
return "none"
endrandomdiagonaldir = {
[NORTHEAST] = {NORTH, EAST},
[sOUTHEAST] = {SOUTH, EAST},
[NORTHWEST] = {NORTH, WEST},
[sOUTHWEST] = {SOUTH, WEST}}
function doFaceOpposite(cid)
local a = getCreatureLookDir(cid)
local d = {
[NORTH] = SOUTH,
[sOUTH] = NORTH,
[EAST] = WEST,
[WEST] = EAST,
[NORTHEAST] = SOUTHWEST,
[NORTHWEST] = SOUTHEAST,
[sOUTHEAST] = NORTHWEST,
[sOUTHWEST] = NORTHEAST}
doCreatureSetLookDir(cid, d[a])
endfunction doFaceRandom(cid)
local a = getCreatureLookDir(cid)
local d = {
[NORTH] = {SOUTH, WEST, EAST},
[sOUTH] = {NORTH, WEST, EAST},
[WEST] = {SOUTH, NORTH, EAST},
[EAST] = {SOUTH, WEST, NORTH}}
doChangeSpeed(cid, 1)
doCreatureSetLookDir(cid, d[a][math.random(1, 3)])
doChangeSpeed(cid, -1)
end
function getFaceOpposite(dir)
local d = {
[NORTH] = SOUTH,
[sOUTH] = NORTH,
[EAST] = WEST,
[WEST] = EAST,
[NORTHEAST] = SOUTHWEST,
[NORTHWEST] = SOUTHEAST,
[sOUTHEAST] = NORTHWEST,
[sOUTHWEST] = NORTHEAST}
return d[dir]
endfunction getResistance(cid, combat)
if isPlayer(cid) then return false end
local poketype1 = pokes[getCreatureName(cid)].type
local poketype2 = pokes[getCreatureName(cid)].type2
local multiplier = 1
if effectiveness[combat].super and isInArray(effectiveness[combat].super, poketype1) then
 multiplier = multiplier * 2
end
if poketype2 and effectiveness[combat].super and isInArray(effectiveness[combat].super, poketype2) then
 multiplier = multiplier * 2
end
if effectiveness[combat].weak and isInArray(effectiveness[combat].weak, poketype1) then
 multiplier = multiplier * 0.5
end
if poketype2 and effectiveness[combat].weak and isInArray(effectiveness[combat].weak, poketype2) then
 multiplier = multiplier * 0.5
end
if effectiveness[combat].non and isInArray(effectiveness[combat].non, poketype1) then
 multiplier = multiplier * 0
end
if poketype2 and effectiveness[combat].non and isInArray(effectiveness[combat].non, poketype2) then
 multiplier = multiplier * 0
end
if multiplier == 0.25 then
 multiplier = 0.5
elseif multiplier == 4 then
 multiplier = 2
endreturn multiplier
end
function getCreatureDirectionToTarget(cid, target, ranged)
if not isCreature(cid) then return true end
if not isCreature(target) then return getCreatureLookDir(cid) end
local dirs = {
[NORTHEAST] = {NORTH, EAST},
[sOUTHEAST] = {SOUTH, EAST},
[NORTHWEST] = {NORTH, WEST},
[sOUTHWEST] = {SOUTH, WEST}}
local x = getDirectionTo(getThingPos(cid), getThingPos(target), false)
 if x <= 3 then return x
 else
  local xdistance = math.abs(getThingPos(cid).x - getThingPos(target).x)
  local ydistance = math.abs(getThingPos(cid).y - getThingPos(target).y)
if xdistance > ydistance then
 return dirs[x][2]
elseif ydistance > xdistance then
 return dirs[x][1]
elseif isInArray(dirs[x], getCreatureLookDir(cid)) then
 return getCreatureLookDir(cid)
else
 return dirs[x][math.random(1, 2)]
end
 end
endfunction getSomeoneDescription(cid)
if isPlayer(cid) then return getPlayerNameDescription(cid) end
return getMonsterInfo(getCreatureName(cid)).description
end

function isGhostPokemon(cid)
if not isCreature(cid) then return false end
if isInArray({"Gengar", "Haunter", "Gastly", "Misdreavus"}, getCreatureName(cid)) then
return true
end
return false
endfunction updateGhostWalk(cid)
if not isCreature(cid) then return false end
local pos = getThingPos(cid)
pos.x = pos.x + 1
pos.y = pos.y + 1
local ret = getThingPos(cid)
doTeleportThing(cid, pos, false)
doTeleportThing(cid, ret, false)
return true
end
function doRemoveElementFromTable(t, e)
local ret = {}
for a = 1, #t do
 if t[a] ~= e then
 table.insert(ret, t[a])
 end
end
return ret
endfunction doFaceCreature(sid, pos)
if not isCreature(sid) then return true end
if getThingPos(sid).x == pos.x and getThingPos(sid).y == pos.y then return true end
local ret = 0
local ld = getCreatureLookDir(sid)
local dir = getDirectionTo(getThingPos(sid), pos)
local al = {
[NORTHEAST] = {NORTH, EAST},
[NORTHWEST] = {NORTH, WEST},
[sOUTHEAST] = {SOUTH, EAST},
[sOUTHWEST] = {SOUTH, WEST}}if dir >= 4 and isInArray(al[dir], ld) then return true end
doChangeSpeed(sid, 1)
 if dir == 4 then
  ret = math.random(2, 3)
 elseif dir == 5 then
  ret = math.random(1, 2)
 elseif dir == 6 then
  local dirs = {0, 3}
  ret = dirs[math.random(1, 2)]
 elseif dir == 7 then
  ret = math.random(0, 1)
 else
  ret = getDirectionTo(getThingPos(sid), pos)
 end
doCreatureSetLookDir(sid, ret)
doChangeSpeed(sid, -1)
return true
endfunction doCreatureAddCondition(cid, condition)
if not isCreature(cid) then return true end
doAddCondition(cid, condition)
end
function doCreatureRemoveCondition(cid, condition)
if not isCreature(cid) then return true end
doRemoveCondition(cid, condition)
endfunction setCD(item, tipo, tempo)
if not tempo or not tonumber(tempo) then
 doItemEraseAttribute(item, tipo)
return true
enddoItemSetAttribute(item, tipo, "cd:"..(tempo + os.time()).."")
return tempo + os.time()
end
function getCD(item, tipo, limite)if not getItemAttribute(item, tipo) then
return 0
end
local string = getItemAttribute(item, tipo):gsub("cd:", "")
local number = tonumber(string) - os.time()if number <= 0 then
return 0
end
if limite and limite < number then
 return 0
endreturn number
end
function getPosfromArea(cid,area)
icenter = math.floor(table.getn(area)/2)+1
jcenter = math.floor(table.getn(area[1])/2)+1
center = area[icenter]
ivar = table.getn(area)
jvar = table.getn(area[1])
i = table.getn(area)^2
j = table.getn(area[1])^2   if center[jcenter] == 3 then
	  if getPlayerLookDir(cid) == 0 then
	  signal = {-1,1,1,2}
	  elseif getPlayerLookDir(cid) == 1 then
	  signal = {1,-1,2,1}
	  elseif getPlayerLookDir(cid) == 2 then
	  signal = {1,-1,1,2}
	  else
	  signal = {-1,1,2,1}
	  end
  else
  signal = {-1,1,1,2}
  end
POSITIONS = {}
P = 0

repeat
pvar = {0,0}
I = area[ivar]
J = I[jvar]
i = i-1
j = j-1
  if J == 1 then
	  if jvar < jcenter then
	  pvar[signal[3]] = signal[1]*math.abs((jcenter-jvar))
	  elseif jvar > jcenter then
	  pvar[signal[3]] = signal[2]*math.abs((jcenter-jvar))
	  end

	  if ivar < icenter then
	  pvar[signal[4]] = signal[1]*math.abs((icenter-ivar))
	  elseif ivar > icenter then
	  pvar[signal[4]] = signal[2]*math.abs((icenter-ivar))
	  end
  end  
  if jvar > 1 then
  jvar = (jvar-1)
  elseif ivar > 1 then
  jvar = table.getn(area[1])
  ivar = (ivar-1)
  end
local pos = getThingPos(cid)
local areapos = {x=pos.x+(pvar[1]),y=pos.y+(pvar[2]),z=pos.z}
  if pos.x ~= areapos.x or pos.y ~= areapos.y then
  P = P+1
  POSITIONS[P] = areapos
  end  
until i <= 0 and j <= 0return POSITIONS
end
function doSendMoveEffect(cid, target, effect)
if not isCreature(cid) or not isCreature(target) then return true end
doSendDistanceShoot(getThingPos(cid), getThingPos(target), effect)
return true
endfunction doSetItemActionId(uid, actionid)
doItemSetAttribute(uid, "aid", actionid)
return true
end
function threeNumbers(number)
if number <= 9 then
return "00"..number..""
elseif number <= 99 then
return "0"..number..""
end
return ""..number..""
endfunction isBr(cid)
if getPlayerStorageValue(cid, 105505) ~= -1 then
return true
end
return false
end
function isBeingUsed(ball)
if isInArray({11827, 11830, 11833, 11836, 11738, 11741, 11744, 11747}, ball) then
return true
end
return false
endfunction doRemoveTile(pos)-- Script by mock
pos.stackpos = 0
local sqm = getTileThingByPos(pos)
doRemoveItem(sqm.uid,1)
end
function doCreateTile(id,pos) -- By mock
doAreaCombatHealth(0,0,pos,0,0,0,CONST_ME_NONE)
doCreateItem(id,1,pos)
endfunction hasSqm(pos)
local f = getTileThingByPos(pos)
if f.itemid ~= 0 and f.itemid ~= 1 then
return true
end
return false
end
function getPosDirs(p, dir) -- By MatheusMkalo
return dir == 1 and {x=p.x-1, y=p.y, z=p.z} or dir == 2 and {x=p.x-1, y=p.y+1, z=p.z} or dir == 3 and {x=p.x, y=p.y+1, z=p.z} or dir == 4 and {x=p.x+1, y=p.y+1, z=p.z} or dir == 5 and {x=p.x+1, y=p.y, z=p.z} or dir == 6 and {x=p.x+1, y=p.y-1, z=p.z} or dir == 7 and {x=p.x, y=p.y-1, z=p.z} or dir == 8 and {x=p.x-1, y=p.y-1, z=p.z}
endfunction canWalkOnPos(pos, creature, pz, water, sqm, proj)
if not pos then return false end
if not pos.x then return false end
if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid <= 1 and sqm then return false end
if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 919 then return false end
if isInArray({4820, 4821, 4822, 4823, 4824, 4825}, getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid) and water then return false end
if getTopCreature(pos).uid > 0 and creature then return false end
if getTileInfo(pos).protection and pz then return false end
local n = not proj and 3 or 2
for i = 0, 255 do
	pos.stackpos = i
	local tile = getTileThingByPos(pos)
	if tile.itemid ~= 0 and not isCreature(tile.uid) then
		if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then
			return false
		end
	end
end
return true
end
function getFreeTile(pos, cid)
if canWalkOnPos(pos, true, false, true, true, false) then
 return pos
end
local positions = {}
for a = 0, 7 do
 if canWalkOnPos(getPosByDir(pos, a), true, false, true, true, false) then
 table.insert(positions, pos)
 end
end
if #positions >= 1 then
 if isCreature(cid) then
  local range = 1000
  local ret = getThingPos(cid)
  for b = 1, #positions do
if getDistanceBetween(getThingPos(cid), positions[b]) < range then
 ret = positions[b]
 range = getDistanceBetween(getThingPos(cid), positions[b])
end
  end
  return ret
 else
  return positions[math.random(#positions)]
 end
end
return getThingPos(cid)
endfunction isWalkable(pos, creature, proj, pz, water)-- by Nord
if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end
if isWater(getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid) and water then return false end
if getTopCreature(pos).uid > 0 and creature then return false end
if getTileInfo(pos).protection and pz then return false, true end
local n = not proj and 3 or 2
for i = 0, 255 do
	pos.stackpos = i
	local tile = getTileThingByPos(pos)
	if tile.itemid ~= 0 and not isCreature(tile.uid) then
		if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then
			return false
		end
	end
end
return true
end

function isPlayerSummon(cid, uid)
if getCreatureMaster(uid) == cid then
return TRUE
end
return FALSE
endfunction isSummon(sid)
if isPlayer(sid) then
return false
end
if isPlayer(getCreatureMaster(sid)) then
return true
end
return false
end
function getItemsInContainerById(container, itemid) -- Function By Kydrai
local items = {}
if isContainer(container) and getContainerSize(container) > 0 then
for slot=0, (getContainerSize(container)-1) do
local item = getContainerItem(container, slot)
if isContainer(item.uid) then
local itemsbag = getItemsInContainerById(item.uid, itemid)
for i=0, #itemsbag do
table.insert(items, itemsbag[i])
end
else
if itemid == item.itemid then
table.insert(items, item.uid)
end
end
end
end
return items
endfunction getPokeballsInContainer(container) -- Function By Kydrai
if not isContainer(container) then return {} end
local items = {}
if isContainer(container) and getContainerSize(container) > 0 then
 for slot=0, (getContainerSize(container)-1) do
  local item = getContainerItem(container, slot)
if isContainer(item.uid) then
 local itemsbag = getPokeballsInContainer(item.uid)
 for i=0, #itemsbag do
  table.insert(items, itemsbag[i])
 end
elseif isPokeball(item.itemid) then
 table.insert(items, item.uid)
end
 end
end
return items
end

 

 

Link para o comentário
Compartilhar em outros sites

Uma coisa que acho que ninguem percebeu

 

Quando aperta Page Up e Page Down o player fala: !up e !down

 

Va em talkactions.xml

 

procure por "up" e mude para "!up" faça a mesma coisa com "down" para "!down"

 

EDIT:

 

Ele subirá no fly e descera, porem para nao ficar feio apertar Page Down e o player falar !down ou aperta Page Up e o player falar !up vo muda o script aki e ja passo pra rapeize.

 

EDIT 2:

 

Va em data/talkactions/scripts/flyup.lua

 

Depois de

 

function onSay(cid, words, param)

 

Coloque isso

 

if words == "!up" and getPlayerStorageValue(cid, 17000) <= 0 then
return 0
end

 

E em data/talkactions/scripts/flydown.lua

 

Depois de

 

function onSay(cid, words, param)

 

Coloque isso

 

if words == "!down" and getPlayerStorageValue(cid, 17000) <= 0 then
return 0
end

 

Salve e teste apertando Fly Up e Fly Down, vou testar mas acho q so pega se tiver com as dlls ativas ja posto resultado.

 

EDIT 3: Mesmo com "useKpdoDlls = false" ainda apertando Page Up e Page Down (ali encima eu disse Fly Up e Fly Down, fail meu) ele continuara subindo no fly se fizer oq eu disse

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

Alguem ae ta sabendo algum bug fatal?

Não parei pra ler 10 páginas atrás fiquei meio off vo da uma lida \o

Sobre o !up e !down legal ja tinha editado antes mas não desse jeito ;D

Slicer eu não sei porque mas seus sistema de passive da um erro tremendo que não tem nem como ler de tão rápido que ele da ai so obrigado a fechar.

Ele da erro pois eu estou usando o Aura ou o shinychance do Zeref então não sei como adiciona-lo com o aura e o shinychance junto.

Mas pelo visto ta bem show os passives.

Link para o comentário
Compartilhar em outros sites

@zeusoak

meu script n mexe em nd com o "onSpawn" o.O e eu nunca usei essa function de isShiny.. ;x

 

@renee

nd ainda mano.. ta loko tudo q tentei n deu certo o.O.. pra mim tem mais alguma coisa interfirindo na hora q o player morre pq n tem como... ;x vo tenta mais um pouco a noite.. q agora to sem tempo.. sorry.. ;x

 

@SoulOroshie

eh mano n uso sistema de aura e nem o sistema de shiny do zeref.. dai tem como eu ver isso.. ;x -eu fiz sistema de shiny mas pelo "spawn.lua" e n deu nenhum problema...

Link para o comentário
Compartilhar em outros sites

@ZerefShirou

oia.. sei la pq mas as passivas em "defense" n funciona pra summons.. ;x entao.. pra pokes selvagens eu coloquei as passivas no "defense" e pros pokes de player eu coloquei no Exp.lua.. q dai sempre q o poke do player toma um hit vai da o math.random e vai soltar ou n a passiva... ;p e tem clr a do hitmonchan q eh um pouco mais complexa..

Link para o comentário
Compartilhar em outros sites

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