Ir para conteúdo

Tutorial - Como adicionar icon system.


StyloMaldoso

Posts Recomendados

no meu da um erro no login.lua

[04/02/2013 04:19:58] data/creaturescripts/scripts/login.lua:onLogin

[04/02/2013 04:19:58] Description:

[04/02/2013 04:19:58] data/creaturescripts/scripts/login.lua:210: attempt to call global 'doPlayerChangeModeIcon' (a nil value)

[04/02/2013 04:19:58] stack traceback:

[04/02/2013 04:19:58] data/creaturescripts/scripts/login.lua:210: in function <data/creaturescripts/scripts/login.lua:6>

 

Ta muito bom o tutorial, porém acho que se fosse para adicionar o Icon System em outros servidores Exemplo: Pda Slicer seria melhor *-* mas mesmo assim rep+

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

@Didogunner, Ele deu um exemplo de um servidor pra adiconar o pokeXextreme o serve do smix, nele já contem as scritper e era só um modo de explicar, mas funciona no pda by slicer sim, no meu tá funcionando.

 

E posta o login.lua como vc quer que agente resolva seu error se vc nem postou ele ?

Link para o comentário
Compartilhar em outros sites

[04/02/2013 04:19:58] data/creaturescripts/scripts/login.lua:onLogin
[04/02/2013 04:19:58] Description:
[04/02/2013 04:19:58] data/creaturescripts/scripts/login.lua:210: attempt to call global 'doPlayerChangeModeIcon' (a nil value)
[04/02/2013 04:19:58] stack traceback:
[04/02/2013 04:19:58] data/creaturescripts/scripts/login.lua:210: in function <data/creaturescripts/scripts/login.lua:6>

Esse erro é causando quando você reloga seu char, e tenta trasforma algum pokemon para Mode Icon, e sendo que não tem o icone daquele pokemon, ai impede de o player 'logar', intão faz assim.. fica só com 1 pokemon backpack (que voce tenha feito o icone tudo certinho) e reloga.. eu tinha um servidor do pxo com todos icones,eu perdi varios arquivo, se não iria posta pra dowload, abraços.

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

Bom man, no meu nenhum char consegue logar ;/ ( eu ja tinha testado ficar só com uma pokeball ;( )

 

Login.lua

 

local config = {

loginMessage = getConfigValue('loginMessage'),

useFragHandler = getBooleanFromString(getConfigValue('useFragHandler'))

}

 

function onLogin(cid)

 

if getPlayerLevel(cid) >= 1 and getPlayerLevel(cid) <= 10 then --alterado v1.8

doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, 0)

else

doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, (getPlayerLevel(cid) >= 200 and 100 or math.floor(getPlayerLevel(cid)/2)) )

end

doCreatureSetDropLoot(cid, false)

 

local accountManager = getPlayerAccountManager(cid)

 

if(accountManager == MANAGER_NONE) then

local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage

if(lastLogin > 0) then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)

str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "."

else

str = str

end

 

doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)

 

elseif(accountManager == MANAGER_NAMELOCK) then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, it appears that your character has been namelocked, what would you like as your new name?")

elseif(accountManager == MANAGER_ACCOUNT) then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to manage your account and if you want to start over then type 'cancel'.")

else

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to create an account or type 'recover' to recover an account.")

end

 

if getCreatureName(cid) == "Account Manager" then

local outfit = {}

if accountManagerRandomPokemonOutfit then

outfit = {lookType = getPokemonXMLOutfit(oldpokedex[math.random(151)][1])}

else

outfit = accountManagerOutfit

end

 

doSetCreatureOutfit(cid, outfit, -1)

return true

end

 

if(not isPlayerGhost(cid)) then

doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)

end

 

local outfit = {}

 

if getPlayerVocation(cid) == 0 then

doPlayerSetMaxCapacity(cid, 0)

doPlayerSetVocation(cid, 1)

setCreatureMaxMana(cid, 6)

doPlayerAddSoul(cid, -getPlayerSoul(cid))

setPlayerStorageValue(cid, 19898, 0)

if getCreatureOutfit(cid).lookType == 128 then

outfit = {lookType = 510, lookHead = math.random(0, 132), lookBody = math.random(0, 132), lookLegs = math.random(0, 132), lookFeet = math.random(0, 132)}

elseif getCreatureOutfit(cid).lookType == 136 then

outfit = {lookType = 511, lookHead = math.random(0, 132), lookBody = math.random(0, 132), lookLegs = math.random(0, 132), lookFeet = math.random(0, 132)}

end

doCreatureChangeOutfit(cid, outfit)

end

 

registerCreatureEvent(cid, "dropStone") --alterado v1.7

registerCreatureEvent(cid, "ShowPokedex") --alterado v1.6

registerCreatureEvent(cid, "ClosePokedex") --alterado v1.6

registerCreatureEvent(cid, "WatchTv")

registerCreatureEvent(cid, "StopWatchingTv")

registerCreatureEvent(cid, "WalkTv")

registerCreatureEvent(cid, "RecordTv")

registerCreatureEvent(cid, "PlayerLogout")

registerCreatureEvent(cid, "WildAttack")

registerCreatureEvent(cid, "Idle")

registerCreatureEvent(cid, "PokemonIdle")

registerCreatureEvent(cid, "EffectOnAdvance")

registerCreatureEvent(cid, "GeneralConfiguration")

registerCreatureEvent(cid, "SaveReportBug") --ReportBug

registerCreatureEvent(cid, "LookSystem")

registerCreatureEvent(cid, "T1")

registerCreatureEvent(cid, "T2")

registerCreatureEvent(cid, "task_count")

 

if getPlayerStorageValue(cid, 99284) == 1 then

setPlayerStorageValue(cid, 99284, -1)

end

 

if getPlayerStorageValue(cid, 6598754) >= 1 or getPlayerStorageValue(cid, 6598755) >= 1 then

setPlayerStorageValue(cid, 6598754, -1)

setPlayerStorageValue(cid, 6598755, -1)

end

 

doChangeSpeed(cid, -(getCreatureSpeed(cid)))

 

--///////////////////////////////////////////////////////////////////////////--

local storages = {17000, 63215, 17001, 13008, 5700}

for s = 1, #storages do

if not tonumber(getPlayerStorageValue(cid, storages)) then

if s == 3 then

setPlayerStorageValue(cid, storages, 1)

elseif s == 4 then

setPlayerStorageValue(cid, storages, -1)

else

if isBeingUsed(getPlayerSlotItem(cid, 8).itemid) then

setPlayerStorageValue(cid, storages, 1) --alterado v1.6

else

setPlayerStorageValue(cid, storages, -1)

end

end

doPlayerSendTextMessage(cid, 27, "Sorry, but a problem occurred on the server, but now it's alright")

end

end

--/////////////////////////////////////////////////////////////////////////--

if getPlayerStorageValue(cid, 17000) >= 1 then -- fly

 

local item = getPlayerSlotItem(cid, 8)

local poke = getItemAttribute(item.uid, "poke")

doChangeSpeed(cid, getPlayerStorageValue(cid, 54844))

doRemoveCondition(cid, CONDITION_OUTFIT)

doSetCreatureOutfit(cid, {lookType = flys[poke][1] + 351}, -1)

 

local apos = getFlyingMarkedPos(cid)

apos.stackpos = 0

 

if getTileThingByPos(apos).itemid <= 2 then

doCombatAreaHealth(cid, FIREDAMAGE, getFlyingMarkedPos(cid), 0, 0, 0, CONST_ME_NONE)

doCreateItem(460, 1, getFlyingMarkedPos(cid))

end

 

doTeleportThing(cid, apos, false)

if getItemAttribute(item.uid, "boost") and getItemAttribute(item.uid, "boost") >= 50 and getPlayerStorageValue(cid, 42368) >= 1 then

sendAuraEffect(cid, auraSyst[getItemAttribute(item.uid, "aura")]) --alterado v1.8

end

 

local posicao = getTownTemplePosition(getPlayerTown(cid))

markFlyingPos(cid, posicao)

 

elseif getPlayerStorageValue(cid, 63215) >= 1 then -- surf

 

local item = getPlayerSlotItem(cid, 8)

local poke = getItemAttribute(item.uid, "poke")

doSetCreatureOutfit(cid, {lookType = surfs[poke].lookType + 351}, -1) --alterado v1.6

doChangeSpeed(cid, getPlayerStorageValue(cid, 54844))

if getItemAttribute(item.uid, "boost") and getItemAttribute(item.uid, "boost") >= 50 and getPlayerStorageValue(cid, 42368) >= 1 then

sendAuraEffect(cid, auraSyst[getItemAttribute(item.uid, "aura")]) --alterado v1.8

end

 

elseif getPlayerStorageValue(cid, 17001) >= 1 then -- ride

 

local item = getPlayerSlotItem(cid, 8)

local poke = getItemAttribute(item.uid, "poke")

 

 

if rides[poke] then

doChangeSpeed(cid, getPlayerStorageValue(cid, 54844))

doRemoveCondition(cid, CONDITION_OUTFIT)

doSetCreatureOutfit(cid, {lookType = rides[poke][1] + 351}, -1)

if getItemAttribute(item.uid, "boost") and getItemAttribute(item.uid, "boost") >= 50 and getPlayerStorageValue(cid, 42368) >= 1 then

sendAuraEffect(cid, auraSyst[getItemAttribute(item.uid, "aura")]) --alterado v1.8

end

else

setPlayerStorageValue(cid, 17001, -1)

doRegainSpeed(cid) --alterado v1.6

end

 

local posicao2 = getTownTemplePosition(getPlayerTown(cid))

markFlyingPos(cid, posicao2)

 

elseif getPlayerStorageValue(cid, 13008) >= 1 then -- dive

if not isInArray({5405, 5406, 5407, 5408, 5409, 5410}, getTileInfo(getThingPos(cid)).itemid) then

setPlayerStorageValue(cid, 13008, 0)

doRegainSpeed(cid) --alterado v1.6

doRemoveCondition(cid, CONDITION_OUTFIT)

return true

end

 

if getPlayerSex(cid) == 1 then

doSetCreatureOutfit(cid, {lookType = 1034, lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet}, -1)

else

doSetCreatureOutfit(cid, {lookType = 1035, lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet}, -1)

end

doChangeSpeed(cid, 800)

 

elseif getPlayerStorageValue(cid, 5700) > 0 then --bike

doChangeSpeed(cid, -getCreatureSpeed(cid))

doChangeSpeed(cid, getPlayerStorageValue(cid, 5700)) --alterado v1.8

if getPlayerSex(cid) == 1 then

doSetCreatureOutfit(cid, {lookType = 1394}, -1)

else

doSetCreatureOutfit(cid, {lookType = 1393}, -1)

end

else

doRegainSpeed(cid) --alterado v1.6

end

 

if getPlayerStorageValue(cid, 22545) >= 1 then

setPlayerStorageValue(cid, 22545, -1) --alterado v1.4

doTeleportThing(cid, getClosestFreeTile(cid, posBackGolden), false)

setPlayerRecordWaves(cid) --alterado v1.7

end

 

if useKpdoDlls then

doUpdateMoves(cid)

doUpdatePokemonsBar(cid)

end

doPlayerChangeModeIcon(cid)

return true

 

end

 

 

Erro

 

[04/02/2013 04:19:58] data/creaturescripts/scripts/login.lua:onLogin

[04/02/2013 04:19:58] Description:

[04/02/2013 04:19:58] data/creaturescripts/scripts/login.lua:210: attempt to call global 'doPlayerChangeModeIcon' (a nil value)

[04/02/2013 04:19:58] stack traceback:

[04/02/2013 04:19:58] data/creaturescripts/scripts/login.lua:210: in function <data/creaturescripts/scripts/login.lua:6>

 

"Bom.. como o server dele já vem istalado o systema de icon system fica até mais facil"

Pra mim ele ensinou no server do smix que ja tem todos arquivos ;o

mas já que o jose falou que serve pra qualquer um o tutorial, aconselho a colocar no tutorial os arquivos que faltam então ;o o login.lua e iconSys.lua que sem isso ai que não funcionaria nada em outro servidor mesmo ;X

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

Cara, minha intenção com o topico foi a como CRIAR novos icone no server do Smix, quem sabe eu ensino a adicionar o systema no meu servidor né?

tente usa o systema de icon desse servídor aqui.

 

http://www.4shared.com/rar/E-XniCAP/PokeXtreme_-_Beta.html?

 

Creditos

Smix !

Link para o comentário
Compartilhar em outros sites

É então, eu entendi seu tópico ^^

Mas é que o jose tinha falado que serve pra colocar me qualquer servidor, ai eu completei falando que não... que ai precisaria de mais arquivos para ser colocado em outro ;o

 

Bom vou testar com esse beta ai, se mudar algo eu comento aqui

Link para o comentário
Compartilhar em outros sites

@StyloMaldoso

 

tem um bug na great ball ela nao vira icon, vc sabe arrumar isso?

 

---Achei o Bug o.O--

 

para resolver que a great ball vire icon.

 

 

vá em data/lib/ -- abra o arquivo IconSys.lua e em

 

elseif x and getPlayerSlotItem(cid, 8).itemid == 1469 then -- Greatball

doTransformItem(getPlayerSlotItem(cid, 8).uid, x.on)

doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "ball", "greatball")

doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "morta", "no")

doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "icone", "yes")

 

elseif x and getPlayerSlotItem(cid, 8).itemid == 1471 then -- Greatball Morta

doTransformItem(getPlayerSlotItem(cid, 8).uid, x.off)

doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "ball", "greatball")

doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "morta", "yes")

doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "icone", "yes")

 

elseif x and getPlayerSlotItem(cid, 8).itemid == 1470 then -- Greatball Usada

doTransformItem(getPlayerSlotItem(cid, 8).uid, x.use)

doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "ball", "greatball")

doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "morta", "no")

doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "icone", "yes")

 

 

deixe assim:

 

 

elseif x and getPlayerSlotItem(cid, 8).itemid == 11832 then -- Greatball

doTransformItem(getPlayerSlotItem(cid, 8).uid, x.on)

doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "ball", "greatball")

doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "morta", "no")

doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "icone", "yes")

 

elseif x and getPlayerSlotItem(cid, 8).itemid == 11834 then -- Greatball Morta

doTransformItem(getPlayerSlotItem(cid, 8).uid, x.off)

doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "ball", "greatball")

doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "morta", "yes")

doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "icone", "yes")

 

elseif x and getPlayerSlotItem(cid, 8).itemid == 11833 then -- Greatball Usada

doTransformItem(getPlayerSlotItem(cid, 8).uid, x.use)

doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "ball", "greatball")

doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "morta", "no")

doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "icone", "yes")

 

 

dpois desça um pouco e logo achara assim:

 

local balls = getItemsInContainerById(bp.uid, 1471) ------ Greatball

if #balls >= 1 then

for _, ball in pairs (balls) do

local x = icons[getItemAttribute(ball, "poke")]

doTransformItem(balll, x.off)

doItemSetAttribute(ball, "ball", "greatball")

doItemSetAttribute(ball, "morta", "yes")

doItemSetAttribute(ball, "icone", "yes")

end

end

local balls = getItemsInContainerById(bp.uid, 1469) --- Greatball morta

if #balls >= 1 then

for _, ball in pairs (balls) do

local x = icons[getItemAttribute(ball, "poke")]

doTransformItem(ball, x.on)

doItemSetAttribute(ball, "ball", "greatball")

doItemSetAttribute(ball, "morta", "no")

doItemSetAttribute(ball, "icone", "yes")

end

end

 

 

e deixe:

 

local balls = getItemsInContainerById(bp.uid, 11832) ------ Greatball

if #balls >= 1 then

for _, ball in pairs (balls) do

local x = icons[getItemAttribute(ball, "poke")]

doTransformItem(balll, x.off)

doItemSetAttribute(ball, "ball", "greatball")

doItemSetAttribute(ball, "morta", "yes")

doItemSetAttribute(ball, "icone", "yes")

end

end

local balls = getItemsInContainerById(bp.uid, 11834) --- Greatball morta

if #balls >= 1 then

for _, ball in pairs (balls) do

local x = icons[getItemAttribute(ball, "poke")]

doTransformItem(ball, x.on)

doItemSetAttribute(ball, "ball", "greatball")

doItemSetAttribute(ball, "morta", "no")

doItemSetAttribute(ball, "icone", "yes")

end

end

 

 

desça mais ate achar:

 

elseif pokeball == "greatball" and mortano == "no" then

doTransformItem(ball, 1469)

doItemSetAttribute(ball, "icone", "no")

elseif pokeball == "greatball" and mortano == "yes" then

doTransformItem(ball, 1471)

doItemSetAttribute(ball, "icone", "no")

 

 

e deixe assim:

 

elseif pokeball == "greatball" and mortano == "no" then

doTransformItem(ball, 11832)

doItemSetAttribute(ball, "icone", "no")

elseif pokeball == "greatball" and mortano == "yes" then

doTransformItem(ball, 11834)

doItemSetAttribute(ball, "icone", "no")

 

 

Bom, é isso ae :D

 

OBS: eu so troquei o id da great ball que estava errado nos 3 lugares.

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

Cara valeu ae, eu também tava achando estranho a great ball não trasforma, também achei que fosse os IDS, obrigado por ajudar.

Espero que você ajude outras pessoas que utilizão esse systema que podem resolver esse bug, abraços.

Link para o comentário
Compartilhar em outros sites

Alguém ae conseguil resover o bug de quando tipo o poke tava numa batalha contra outro e ele perde a batalha, ai ele fica derrotado, ai quando agente vai na nurse joy e fala hi a ball bão volta pra on ? e se agente tenta chamar o poke pra fora não vai e tenta usar a coownld bar ai chama o poke exemplo o blastoise ai, a o poke sai pra fora mais não fica com a ball on e sim vira o item dps do item.otb digamos no item.otb tem os icones do poke on e dps tem bola, akele do cp de pxg a vermelha, ai quando chama o poke pra fora usando coolwnd bar, inves de voltar a ball pra on ele vira o item proximo da item.otb que séria dps dos icones a ball vermehlaha akela do cp da pxg? --essa ball foi um exemplo

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

alguém ajuda?

 

o meu esta dano esse erro:

 

 

[17/02/2013 06:28:35] [Error - Action Interface]

[17/02/2013 06:28:35] data/actions/scripts/iconSysPortrait.lua:onUse

[17/02/2013 06:28:35] Description:

[17/02/2013 06:28:35] data/actions/scripts/iconSysPortrait.lua:3: attempt to index local 'x' (a nil value)

[17/02/2013 06:28:35] stack traceback:

[17/02/2013 06:28:35] data/actions/scripts/iconSysPortrait.lua:3: in function <data/actions/scripts/iconSysPortrait.lua:1>

 

quando clico no portrait

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

×
×
  • Criar Novo...