Vlw mano +REP ja
A e qual id dakeles outifit de Promotion ?
Por lucashgas, 10 de jan. de 2012 em Tópicos Sem Resposta
info
Grupo: Campones
Registrado: 01/11/11
Posts: 48
Reputação: +6
Char no Tibia: Nao tenho

Vlw mano +REP ja
A e qual id dakeles outifit de Promotion ?
Editado Fevereiro 8 por Eshpedrero
info
Grupo: Campones
Registrado: 15/12/07
Posts: 69
Reputação: +11

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 Fevereiro 8 por yahooABC
info
Grupo: Artesão
Registrado: 02/07/11
Posts: 129
Reputação: +6

ai gente tem um bug
se o player nao tem pokemons ele nao consegue comprar nada no mark
alguém tem uma poção script que não pode ser usado se ele está se curando de uma poção?
info
Grupo: Príncipe
Registrado: 19/08/10
Posts: 4k
Reputação: +1.1k
Gênero: Masculino

sim alterei o configuration.lua sim...
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
Slicer eae conseguiu arrumar o bug do fly la ??
info
Grupo: Conde
Registrado: 06/08/11
Posts: 752
Reputação: +112

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 Fevereiro 8 por ZerefShirou
info
Grupo: Visconde
Registrado: 14/08/11
Posts: 320
Reputação: +34
Gênero: Masculino

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.
info
Grupo: Príncipe
Registrado: 19/08/10
Posts: 4k
Reputação: +1.1k
Gênero: Masculino

meu script n mexe em nd com o "onSpawn"
e eu nunca usei essa function de isShiny.. ;x
nd ainda mano.. ta loko tudo q tentei n deu certo
.. 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
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...
info
Grupo: Conde
Registrado: 06/08/11
Posts: 752
Reputação: +112

@Slicer pode me explica oq tu mudo pra passive? passive pra mim é só colocar o defense ali e pronto
info
Grupo: Príncipe
Registrado: 19/08/10
Posts: 4k
Reputação: +1.1k
Gênero: Masculino

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..
info
Grupo: Conde
Registrado: 06/08/11
Posts: 752
Reputação: +112

Onde você mudou no exp.lua?
info
Grupo: Campones
Registrado: 06/10/11
Posts: 96
Reputação: +7
Char no Tibia: Worna Crien

Eu Editei A Magia Agility, Ela Ta Funcionando Direitinha
Ela Dobra A Speed Do Poke, Ai Dando Uma Grande De Chanse Dele Desvia Dos Attacks Adverssarios (MISS!)
Mais Tem Um Porem ![]()
Quando Volto Ele Pra Pokebola, Ele Perde O Status De Agilidade
E Eu Nao Sei ADD Ele No GoBack
So Ta Faltando Isso. Se Alguem Puder Ajudar
local function effect(params)
if isCreature(params.cid) then
doSendMagicEffect(getThingPositionWithDebug(params.cid), 14)
end
end
local function doReduceSpeed(cid, qnt)
if not isCreature(cid) then return true end
local a = getSpeed(cid)
setPlayerStorageValue(cid, 1003, a - qnt)
end
local function doDoubleSpeed(cid)
if not isCreature(cid) then return true end
local a = getSpeed(cid)
setPlayerStorageValue(cid, 1003, a * 2)
local b = getSpeed(cid)
local c = b - a
addEvent(doReduceSpeed, 14 * 1000 + 40, cid, c)
end
doDoubleSpeed(cid)
for times = 1, 14 do
addEvent(effect, 00, {cid = cid})
addEvent(effect, 1000 * times + 40, {cid = cid})
end
Editado Fevereiro 8 por Fagundes14
info
Grupo: Campones
Registrado: 15/12/07
Posts: 69
Reputação: +11
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:
Ai tira os S ficando assim
Espero que tenha ajudado.