-
Total de itens
2187 -
Registro em
-
Última visita
-
Dias Ganhos
58
Tudo que Yan Oliveira postou
-
Que bom que deu certo! De nada.
-
Tinha esquecido de adicionar a nova tabela no array, pois, como criei uma tabela nova, ai faltou passar para o isInArray. local STORAGE_SKILL_LEVEL = 10009 local STORAGE_SKILL_TRY = 10007 local config = { levels = { {level = {0,9}, quant = {1,1}, percent = 5}, {level = {10,19}, quant = {1,1}, percent = 10}, {level = {20,29}, quant = {1,1}, percent = 15}, {level = {30,39}, quant = {1,1}, percent = 20}, {level = {40,49}, quant = {1,1}, percent = 25}, {level = {50,59}, quant = {1,1}, percent = 30}, {level = {60,69}, quant = {1,1}, percent = 30}, {level = {70,79}, quant = {1,1}, percent = 35}, {level = {80,89}, quant = {1,1}, percent = 35}, {level = {90,99}, quant = {1,1}, percent = 40}, {level = {100}, quant = {1,1}, percent = 50} }, -- Rocks = Id das rochas que podem ser quebradas || -- Stone = Modelo {rock_id, rock_id} -- stones = { {rock = 5092, ore = 5097}, {rock = 5093, ore = 5099}, {rock = 5094, ore = 5100}, {rock = 5095, ore = 5098}, } rock_delay = 60, -- Tempo de volta da rocha (Em segundos) bonus_chance = 3, -- Chance (em porcentagem) de se conseguir um bonus de exp bonus_exp = 1 -- Bonus extra } ------------------------------------ -- END Configurations --- ------------------------------------ function getCuttingLevel(cid) return getPlayerStorageValue(cid, STORAGE_SKILL_LEVEL) end function setPlayerCuttingLevel(cid, n) setPlayerStorageValue(cid, STORAGE_SKILL_LEVEL, n) end function addCuttingLevel(cid, n) setPlayerCuttingLevel(cid, getCuttingLevel(cid) + (isNumber(n) and n or 1)) setCuttingTry(cid, 0) end function getCuttingInfo(cid) for i = 1, #config.levels do min = config.levels[i].level[1]; max = config.levels[i].level[2] if (getCuttingLevel(cid) >= min and getCuttingLevel(cid) <= max) then return {quantity = {min = config.levels[i].quant[1], max = config.levels[i].quant[2]}, chance = config.levels[i].percent} end end end -- RETORNA O MINÉRIO DE ACORDO COM A ROCHA DESTRUIDA -- function getOreByRock(rock_target) for i = 1, #config.stones do if config.stones[i].rock == rock_target then return config.stones[i].ore end end end function getCuttingTries(cid) return getPlayerStorageValue(cid, STORAGE_SKILL_TRY) end function setCuttingTry(cid, n) setPlayerStorageValue(cid, STORAGE_SKILL_TRY, n) end function addCuttingTry(cid, bonus) setCuttingTry(cid, getCuttingTries(cid) + 1 + (bonus and config.bonus_exp or 0)) if (getCuttingTries(cid) >= getCuttingExpTo(getCuttingLevel(cid))) then -- Up doPlayerSendTextMessage(cid, 22, "You advanced from level " .. getCuttingLevel(cid) .. " to level ".. (getCuttingLevel(cid) + 1) .." in miner.") if ((getCuttingLevel(cid)+1) == getCuttingMaxLevel()) then doPlayerSendTextMessage(cid, 22, "Max level reached in miner.") end addCuttingLevel(cid) doSendMagicEffect(getCreaturePosition(cid), math.random(28,30)) setCuttingTry(cid, 0) end end function getCuttingExpTo(level) return ((level*1.5)+((level+1)*7)) end function getCuttingMaxLevel() return config.levels[#config.levels].level[#config.levels[#config.levels].level] end ------------------------------------------------------------------------------------------------------ function onUse(cid, item, fromPosition, itemEx, toPosition) local rock = { id = itemEx.itemid, uid = itemEx.uid, position = toPosition } local player = { position = getCreaturePosition(cid) } if (getCuttingLevel(cid) < 0) then setPlayerCuttingLevel(cid, 0) end if isInArray({config.stones[1].rock, config.stones[2].rock, config.stones[3].rock, config.stones[4].rock}, rock.id) then addCuttingTry(cid) if (math.random(1,100) <= getCuttingInfo(cid).chance) then local collected = math.random(getCuttingInfo(cid).quantity.min, getCuttingInfo(cid).quantity.max) doPlayerAddItem(cid, getOreByRock(rock.id), collected) doSendAnimatedText(getThingPos(cid), collected .. " ore", math.random(1, 255)) doPlayerSendTextMessage(cid, 22, "You got " .. collected .. " brass" .. (collected > 1 and "s" or "") .. " ore.") if (math.random(1,100) <= config.bonus_chance) then -- Bonus calc addCuttingTry(cid, true) doSendAnimatedText(player.position, "Bonus!", COLOR_ORANGE) end event_rockCut(rock) else if (math.random(0,100) <= (0-getCuttingInfo(cid).chance/0)) then doPlayerSendTextMessage(cid, 22, "You got nothing.") event_rockCut(rock) else doSendMagicEffect(rock.position, 3) doSendAnimatedText(rock.position, "Poff!", COLOR_GREEN) end end else doPlayerSendCancel(cid, "This can't be cut.") end end function event_rockCut(rock) addEvent(event_rockGrow, config.rock_delay * 1000, rock.position, rock.id) doTransformItem(rock.uid, 5104) doSendMagicEffect(rock.position, 3) doSendAnimatedText(rock.position, "Tack!", COLOR_GREEN) doItemSetAttribute(rock.uid, "name", "A trunk of " .. getItemNameById(rock.id)) end function event_rockGrow(rockPos, old_id) local rock = getThingFromPos(rockPos).uid doTransformItem(rock, old_id) doItemSetAttribute(rock, "name", getItemNameById(old_id)) doSendMagicEffect(rockPos, 3) end Teste e veja se continuo com erro.
-
Eu refiz a função que você fez, e também criei uma tabela com a rocha destruída e o minério equivalente que vem de acordo com tal rocha, para ficar mais fácil de verificar. Substitua o código por: local STORAGE_SKILL_LEVEL = 10009 local STORAGE_SKILL_TRY = 10007 local config = { levels = { {level = {0,9}, quant = {1,1}, percent = 5}, {level = {10,19}, quant = {1,1}, percent = 10}, {level = {20,29}, quant = {1,1}, percent = 15}, {level = {30,39}, quant = {1,1}, percent = 20}, {level = {40,49}, quant = {1,1}, percent = 25}, {level = {50,59}, quant = {1,1}, percent = 30}, {level = {60,69}, quant = {1,1}, percent = 30}, {level = {70,79}, quant = {1,1}, percent = 35}, {level = {80,89}, quant = {1,1}, percent = 35}, {level = {90,99}, quant = {1,1}, percent = 40}, {level = {100}, quant = {1,1}, percent = 50} }, -- Rocks = Id das rochas que podem ser quebradas || -- Stone = Modelo {rock_id, rock_id} -- stones = { {rock = 5092, ore = 5097}, {rock = 5093, ore = 5099}, {rock = 5094, ore = 5100}, {rock = 5095, ore = 5098}, } rock_delay = 60, -- Tempo de volta da rocha (Em segundos) bonus_chance = 3, -- Chance (em porcentagem) de se conseguir um bonus de exp bonus_exp = 1 -- Bonus extra } ------------------------------------ -- END Configurations --- ------------------------------------ function getCuttingLevel(cid) return getPlayerStorageValue(cid, STORAGE_SKILL_LEVEL) end function setPlayerCuttingLevel(cid, n) setPlayerStorageValue(cid, STORAGE_SKILL_LEVEL, n) end function addCuttingLevel(cid, n) setPlayerCuttingLevel(cid, getCuttingLevel(cid) + (isNumber(n) and n or 1)) setCuttingTry(cid, 0) end function getCuttingInfo(cid) for i = 1, #config.levels do min = config.levels[i].level[1]; max = config.levels[i].level[2] if (getCuttingLevel(cid) >= min and getCuttingLevel(cid) <= max) then return {quantity = {min = config.levels[i].quant[1], max = config.levels[i].quant[2]}, chance = config.levels[i].percent} end end end -- RETORNA O MINÉRIO DE ACORDO COM A ROCHA DESTRUIDA -- function getOreByRock(rock_target) for i = 1, #config.stones do if config.stones.rock[i] == rock_target then return config.stones.ore[i] end end end function getCuttingTries(cid) return getPlayerStorageValue(cid, STORAGE_SKILL_TRY) end function setCuttingTry(cid, n) setPlayerStorageValue(cid, STORAGE_SKILL_TRY, n) end function addCuttingTry(cid, bonus) setCuttingTry(cid, getCuttingTries(cid) + 1 + (bonus and config.bonus_exp or 0)) if (getCuttingTries(cid) >= getCuttingExpTo(getCuttingLevel(cid))) then -- Up doPlayerSendTextMessage(cid, 22, "You advanced from level " .. getCuttingLevel(cid) .. " to level ".. (getCuttingLevel(cid) + 1) .." in miner.") if ((getCuttingLevel(cid)+1) == getCuttingMaxLevel()) then doPlayerSendTextMessage(cid, 22, "Max level reached in miner.") end addCuttingLevel(cid) doSendMagicEffect(getCreaturePosition(cid), math.random(28,30)) setCuttingTry(cid, 0) end end function getCuttingExpTo(level) return ((level*1.5)+((level+1)*7)) end function getCuttingMaxLevel() return config.levels[#config.levels].level[#config.levels[#config.levels].level] end ------------------------------------------------------------------------------------------------------ function onUse(cid, item, fromPosition, itemEx, toPosition) local rock = { id = itemEx.itemid, uid = itemEx.uid, position = toPosition } local player = { position = getCreaturePosition(cid) } if (getCuttingLevel(cid) < 0) then setPlayerCuttingLevel(cid, 0) end if (isInArray(config.rocks, rocks2, rocks3, rocks4, rock.id, rock.id2, rock.id3, rock.id4)) then addCuttingTry(cid) if (math.random(1,100) <= getCuttingInfo(cid).chance) then local collected = math.random(getCuttingInfo(cid).quantity.min, getCuttingInfo(cid).quantity.max) doPlayerAddItem(cid, getOreByRock(rock.id), collected) doSendAnimatedText(getThingPos(cid), collected .. " ore", math.random(1, 255)) doPlayerSendTextMessage(cid, 22, "You got " .. collected .. " brass" .. (collected > 1 and "s" or "") .. " ore.") if (math.random(1,100) <= config.bonus_chance) then -- Bonus calc addCuttingTry(cid, true) doSendAnimatedText(player.position, "Bonus!", COLOR_ORANGE) end event_rockCut(rock) else if (math.random(0,100) <= (0-getCuttingInfo(cid).chance/0)) then doPlayerSendTextMessage(cid, 22, "You got nothing.") event_rockCut(rock) else doSendMagicEffect(rock.position, 3) doSendAnimatedText(rock.position, "Poff!", COLOR_GREEN) end end else doPlayerSendCancel(cid, "This can't be cut.") end end function event_rockCut(rock) addEvent(event_rockGrow, config.rock_delay * 1000, rock.position, rock.id) doTransformItem(rock.uid, 5104) doSendMagicEffect(rock.position, 3) doSendAnimatedText(rock.position, "Tack!", COLOR_GREEN) doItemSetAttribute(rock.uid, "name", "A trunk of " .. getItemNameById(rock.id)) end function event_rockGrow(rockPos, old_id) local rock = getThingFromPos(rockPos).uid doTransformItem(rock, old_id) doItemSetAttribute(rock, "name", getItemNameById(old_id)) doSendMagicEffect(rockPos, 3) end Coloquei um mensagem com efeito (animated text) falando a quantidade de ore que recebeu, caso não queira só remover a linha: doSendAnimatedText(getThingPos(cid), collected .. " ore", math.random(1, 255)) Teste e veja se da algum erro.
-
Dá algum erro na distro? O pokémon tem que estar fora da ball?
-
Se ele é item equipável (colocar no set de roupas do inventário) tem que registrar no movements no Equip e DeEquipe.
-
O erro acontece quando o player tenta comprar qualquer backpack?
-
Os id dos minérios já estão no script? E quer que saia qual minério para cada pedra quebrada?
-
Como esses pontos são armazenados no banco? Vi que tem uma função própria doPlayerAddPoints, e o valor (pontos) passados para essa função é salvo no banco na tabela de itens ou de players?
-
Não acho que é isso que ele quer. Pelo que ele disse, ele quer um script que aumente a vida máxima do player, e não a vida atual.
-
Esse não é o problema dele, ele não está com problemas em relação a logar mais de um personagem na mesma conta, e sim de, mais de uma personagem da mesma conta poder ganhar os pontos.
-
local pos = {x=1411, y=1287, z=5} local need_lv = 300 function onUse(cid, item, frompos, item2, topos) if isPremium(cid) then if getPlayerLevel(cid) >= need_lv then doTeleportThing(cid, pos) doSendMagicEffect(pos, CONST_ME_TELEPORT) return true else return doPlayerSendCancel(cid, "Você precisa ser level "..need_lv.." para passar por esta porta.") end else doPlayerSendCancel(cid, "Você precisa ser level "..need_lv.." para passar por esta porta.") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ser premium account para passar por esta porta.") doTeleportThing(cid, frompos) return true end end
-
Eu refiz o seu código, pois a estrutura dele não estava legal. Não fazia sentido você setar a storage com tempo do os.time() sem nenhum acréscimo além dele, pois seria a mesma coisa que nada. E também não é bom fazer uma função dentro do onUse, é sempre bom fazer fora, como boas práticas. Substitua seu código por: ---------------------------- FUNÇÃO DE HEALAR ----------------------------- local function doRegeneration(cid, health, effect, count) if count > 0 then doCreatureAddHealth(cid, math.floor(health)) doSendMagicEffect(getCreaturePosition(cid), effect) addEvent(doRegeneration, 1000, cid, health, effect, count - 1) end end --------------------------------------------------------------------------- local storage = 11148 -- STORAGE PARA ARMAZENAR UM TEMPO DE COOLDOWN PARA USAR A POTION NOVAMENTE ------------------------------ CÓDIGO -------------------------------------- function onUse(cid, item, fromPos, itemEx, toPos) local tempo = 30 -- TEMPO EM SEGUNDOS QUE A POTION VAI HEALAR (ESSE MESMO TEMPO É ADICIONADO A STORAGE PARA FAZER UM EXHAUST E O PLAYER NÃO USAR MAIS DE UMA POTION DE UMA VEZ) local health = 15 -- TANTO DE VIDA QUE O PLAYER VAI RECUPERAR local effect = CONST_ME_MAGIC_GREEN -- EFEITO QUE VAI SAIR NO PLAYER QUANDO USAR A POTION if getCreatureHealth(cid) == getCreatureMaxHealth(cid) then -- VERIFICA SE O PLAYER JÁ ESTÁ COM A VIDA TOTALMENTE CHEIA return doPlayerSendCancel(cid, "Your health already is full.") end if not isPlayer(cid) then -- VERIFICA SE O PLAYER ESTÁ USANDO A POTION EM OUTRA CRIATURA doPlayerSendCancel(cid, "You only can use the potion in you.") return false end -- CONDIÇÃO PARA VER SE A POTION AINDA ESTÁ SENDO USADA NO PLAYER, PARA NÃO USAR MAIS DE UMA CORRENDO RISCO DE GASTAR POTION ATOA -- if getPlayerStorageValue(cid, storage) <= os.time() then doRegeneration(cid, health, effect, tempo) doChangeTypeItem(item.uid, item.type - 1) setPlayerStorageValue(cid, storage, os.time() + tempo) return true else doPlayerSendCancel(cid, "You are still being recovering.") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You are still being recovering.") return true end end Deixei tudo comentado para você entender, e também adicionei algumas verificações, como se o player já estiver com a vida totalmente cheia e se ele está tentando usar a potion em outra criatura. Também fiz para setar a storage com o tempo (definido na storage tempo) para setar mais o tempo do os.time() (momento que o player usa a potion), é bom isso porque não corre risco do player usar a potion duas vezes ou mais seguidas sem querer e também não gastar potion atoa, caso a primeira já encha a vida totalmente. Também mudei o tempo do addEvent para 1 segundo, pois estava 2 segundos e meio. Testa e me fala se der algum erro.
-
Pelo visto seu servidor não tem Blessings, que parece ser uma tabela global.
-
{AJUDA} Adicionar pontos por storage a todos player na area x
pergunta respondeu ao LeoPetryScript de Yan Oliveira em Scripts
Não está correto seu script e essa linha não faz sentido local tp = name[getCreatureName(cid)] Vamos lá! Substitua seu código por esse: local monster_name = "Ferumbras" -- NOME DO MONSTRO (TEM QUE SER IGUAL O NOME QUE ESTÁ NO ARQUIVO XML) local storage = 29111 -- STORAGE local storage_points_increment = 15 -- VALOR QUE SERÁ INCREMENTADO NA STORAGE (PONTOS) -- COORDENADAS DA ÁREA -- local position_area = { start_position = {x= 1092, y= 1073, z= 6}, end_position = {x= 1093, y= 1075, z= 6} } local message = true -- SE FOR EXIBIR MENSAGEM PARA OS PLAYERS QUE GANHAREM PONTOS SE ESTIVER DENTRO DA ÁREA DEIXE TRUE, CASO NÃO QUEIRA, MUDE PARA FALSE ------------------------------------------------- CÓDIGO ------------------------------------------------- function onDeath(cid) local check_position = {} for i = position_area.start_position.x, position_area.end_position.x do for j = position_area.start_position.y, position_area.end_position.y do for k = position_area.start_position.z, position_area.end_position.z do check_position[#check_position + 1] = {x= i, y= j, z= k, stackpos = 253} end end end if (isMonster(cid)) and (getCreatureName(cid) == monster_name) then for i = 1, #check_position do local player = getTileThingByPos(check_position[i]) if isInArea(check_position[i], position_area.start_position, position_area.end_position) then if isPlayer(player.uid) then setPlayerStorageValue(player.uid, storage, storage + storage_points_increment) doSendAnimatedText(getThingPos(player.uid), storage_points_increment.. " points", math.random(1, 255), player.uid) if message then doPlayerSendTextMessage(player.uid, MESSAGE_STATUS_CONSOLE_BLUE, "You gained " ..storage_points_increment.. " points for killing " ..monster_name.. ".") end return true end end end else return true end end Lembrando que o nome do monstro na variável monster_name tem que ser igual a nomenclatura do monstro no arquivo xml, se não vai dar erro. E deixei para exibir mensagem para o player, caso não queira, mude a variável message para false. Teste e veja se dá algum erro. -
Vamos testar sem eventos, pode ser algum evento. Substitui o código por esse: local config = { loginMessage = getConfigValue('loginMessage'), useFragHandler = getBooleanFromString(getConfigValue('useFragHandler')) } --alterado v2.6 tabelas soh em lib/configuration.lua; local looktype_accountmanager = 352 -- LOOKTYPE DO ACCOUNT MANAGER local storage_online_points = 5984548 -- STORAGE QUE ARMAZENA PONTOS ONLINE function onLogin(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Bem Vindo Ao Pokemon Venetta Server') ----------------------------------------------------------- ACCOUNT MANAGER ----------------------------------------------------------- local accountManager = getPlayerAccountManager(cid) if(accountManager == MANAGER_NONE) then local lastLogin = getPlayerLastLoginSaved(cid) local str = 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) .. "." end doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str) elseif(accountManager == MANAGER_NAMELOCK) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Ola, parece que voce teve seu nome bloqueado (nameblock), escolha outro nome.") 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 = {lookType = looktype_accountmanager} -- OUTFIT QUE O ACCOUNT MANAGER TEM SE NÃO FOR OUTFIT DE POKÉMON RANDOM end doSetCreatureOutfit(cid, outfit, -1) return true end --------------------------------------------------------------------------------------------------------------------------------------- ------------------ EVENTOS ------------------ --registerCreatureEvent(cid, "hmup") --registerCreatureEvent(cid, "PlayerAttack") --registerCreatureEvent(cid, "dropStone") --registerCreatureEvent(cid, "OnAdvanced") --registerCreatureEvent(cid, "vipexp") --registerCreatureEvent(cid, "ShowPokedex") --registerCreatureEvent(cid, "ClosePokedex") --registerCreatureEvent(cid, "WatchTv") --registerCreatureEvent(cid, "DropShiny") --registerCreatureEvent(cid, "StopWatchingTv") --registerCreatureEvent(cid, "WalkTv") --registerCreatureEvent(cid, "RecordTv") --registerCreatureEvent(cid, "Death") --registerCreatureEvent(cid, "PlayerLogout") --registerCreatureEvent(cid, "WildAttack") --registerCreatureEvent(cid, "Idle") --registerCreatureEvent(cid, "PokemonIdle") --registerCreatureEvent(cid, "EffectOnAdvance") --registerCreatureEvent(cid, "reward") --registerCreatureEvent(cid, "GeneralConfiguration") --registerCreatureEvent(cid, "ExtendedOpcode") --registerCreatureEvent(cid, "ReportBug") --registerCreatureEvent(cid, "LookSystem") --registerCreatureEvent(cid, "T1") --registerCreatureEvent(cid, "T2") --registerCreatureEvent(cid, "ll1") --registerCreatureEvent(cid, "task_count") --registerCreatureEvent(cid, "effectdeath") --registerCreatureEvent(cid, "dota") --registerCreatureEvent(cid, "atk") --registerCreatureEvent(cid, "balance") --registerCreatureEvent(cid, "BlockHit") --registerCreatureEvent(cid, "Ataque") --registerCreatureEvent(cid, "NlooT") --registerCreatureEvent(cid, "KillTask") --registerCreatureEvent(cid, "KillTaske") --registerCreatureEvent(cid, "KillTask3") --registerCreatureEvent(cid, "KillTask4") --registerCreatureEvent(cid, "PlayerDeath") --registerCreatureEvent(cid, "PetKill") --registerCreatureEvent(cid, "onlinebonus") --registerCreatureEvent(cid, "AtLoot") --registerCreatureEvent(cid, "Monster Hunterl") --registerCreatureEvent(cid, "Monster Hunter") doCreatureSetDropLoot(cid, false) doRegainSpeed(cid) if getCreatureName(cid) ~= "Account Manager" then -- O "ACCOUNT MANAGER" É EXCEÇÃO. doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "(Online Points) Voce Possui " ..getPlayerStorageValue(cid, storage_online_points).. " Online Points Armazenados Em Seu Personagem. Digite !opshop A Qualquer Momento Para Saber Quantos Online Points Voce Possui.") end if getPlayerStorageValue(cid, 17000) >= 1 then setPlayerStorageValue(cid, 17000, 0) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) sendMsgToPlayer(cid, 20, "Voce Deslogou No Fly E Foi Teleportado Para O CP Por Questoes De Seguranca.") return true end setPlayerStorageValue(cid, 17001, 0) --ride setPlayerStorageValue(cid, 92003, 0) --water robotic setPlayerStorageValue(cid, 92002, 0) --fire robotic setPlayerStorageValue(cid, 92001, 0) --water robotic setPlayerStorageValue(cid, 32001, 0) --bike if getPlayerStorageValue(cid, storage_online_points) < 0 then setPlayerStorageValue(cid, storage_online_points, 0) return true end -- SE AS QUANTIDADES DE FUSION HELDS POINTS FOREM MENOR QUE 0, SETA AS QUANTIDADES DE FUSION HELDS POINTS PARA 0 if getPlayerStorageValue(cid, 1234601) < 0 then setPlayerStorageValue(cid, 1234601, 0) return true end if getPlayerStorageValue(cid, 1234602) < 0 then setPlayerStorageValue(cid, 1234602, 0) return true end if getPlayerStorageValue(cid, 1234603) < 0 then setPlayerStorageValue(cid, 1234603, 0) return true end if getPlayerStorageValue(cid, 1234604) < 0 then setPlayerStorageValue(cid, 1234604, 0) return true end if getPlayerStorageValue(cid, 1234605) < 0 then setPlayerStorageValue(cid, 1234605, 0) return true end if getPlayerStorageValue(cid, 1234606) < 0 then setPlayerStorageValue(cid, 1234606, 0) return true end if getPlayerStorageValue(cid, 1234607) < 0 then setPlayerStorageValue(cid, 1234607, 0) return true end if(not isPlayerGhost(cid)) then doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) end doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, 25) doUpdatePokemonsBar(cid) local outfit = {} if getPlayerVocation(cid) == 0 then doPlayerSetMaxCapacity(cid, 7) doPlayerSetVocation(cid, 1) setCreatureMaxMana(cid, 6) doPlayerAddSoul(cid, -getPlayerSoul(cid)) setPlayerStorageValue(cid, 19898, 0) if getCreatureOutfit(cid).lookType == 510 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 == 511 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 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) doRemoveCondition(cid, CONDITION_OUTFIT) --alterado v2.9 \/ doTeleportThing(cid, posBackPVP, false) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) 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 v2.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) local addonfly = getPlayerSlotItem(cid, 8).uid local addofly = getItemAttribute(addonfly,"addonfly") if not addofly then doSetItemAttribute(addonfly,"addonfly",0) doSetCreatureOutfit(cid, {lookType = flys[poke][1] + 351}, -1) end if addofly > 0 then doSetCreatureOutfit(cid, {lookType = addofly}, -1) end 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 v2.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") local addonsurf = getPlayerSlotItem(cid, 8).uid local addosurf = getItemAttribute(addonsurf,"addonsurf") if not addosurf then doSetItemAttribute(addonsurf,"addonsurf",0) doSetCreatureOutfit(cid, {lookType = surfs[poke].lookType + 351}, -1) end if addosurf > 0 then doSetCreatureOutfit(cid, {lookType = addosurf}, -1) end 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 v2.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) local addonride = getPlayerSlotItem(cid, 8).uid local addoride = getItemAttribute(addonride,"addonride") if not addofly then doSetItemAttribute(addonride,"addonride",0) doSetCreatureOutfit(cid, {lookType = rides[poke][1] + 351}, -1) end if addoride > 0 then doSetCreatureOutfit(cid, {lookType = addoride}, -1) end 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 v2.8 end else 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) 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 v2.8 if getPlayerSex(cid) == 1 then doSetCreatureOutfit(cid, {lookType = 1394}, -1) else doSetCreatureOutfit(cid, {lookType = 1393}, -1) end elseif getPlayerStorageValue(cid, 75846) >= 1 then --alterado v2.9 \/ doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) setPlayerStorageValue(cid, 75846, -1) sendMsgToPlayer(cid, 20, "You have been moved to your town!") else doRegainSpeed(cid) --alterado v2.6 end if getPlayerStorageValue(cid, 22545) >= 1 then --golden arena setPlayerStorageValue(cid, 22545, -1) --alterado v2.4 doTeleportThing(cid, getClosestFreeTile(cid, posBackGolden), false) setPlayerRecordWaves(cid) --alterado v2.7 end -- local CP = {x=1056, y=1049, z=7} -- if getPlayerStorageValue(cid, 17000) >= 1 then -- setPlayerStorageValue(cid, 17000, 0) -- doTeleportThing(cid, CP) -- end return true end
-
Vamos descobrir esse problema ^^, testa esse script: local config = { loginMessage = getConfigValue('loginMessage'), useFragHandler = getBooleanFromString(getConfigValue('useFragHandler')) } --alterado v2.6 tabelas soh em lib/configuration.lua; local looktype_accountmanager = 352 -- LOOKTYPE DO ACCOUNT MANAGER local storage_online_points = 5984548 -- STORAGE QUE ARMAZENA PONTOS ONLINE function onLogin(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Bem Vindo Ao Pokemon Venetta Server') ----------------------------------------------------------- ACCOUNT MANAGER ----------------------------------------------------------- local accountManager = getPlayerAccountManager(cid) if(accountManager == MANAGER_NONE) then local lastLogin = getPlayerLastLoginSaved(cid) local str = 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) .. "." end doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str) elseif(accountManager == MANAGER_NAMELOCK) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Ola, parece que voce teve seu nome bloqueado (nameblock), escolha outro nome.") 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 = {lookType = looktype_accountmanager} -- OUTFIT QUE O ACCOUNT MANAGER TEM SE NÃO FOR OUTFIT DE POKÉMON RANDOM end doSetCreatureOutfit(cid, outfit, -1) return true end --------------------------------------------------------------------------------------------------------------------------------------- ------------------ EVENTOS ------------------ registerCreatureEvent(cid, "hmup") registerCreatureEvent(cid, "PlayerAttack") registerCreatureEvent(cid, "dropStone") registerCreatureEvent(cid, "OnAdvanced") registerCreatureEvent(cid, "vipexp") registerCreatureEvent(cid, "ShowPokedex") registerCreatureEvent(cid, "ClosePokedex") registerCreatureEvent(cid, "WatchTv") registerCreatureEvent(cid, "DropShiny") registerCreatureEvent(cid, "StopWatchingTv") registerCreatureEvent(cid, "WalkTv") registerCreatureEvent(cid, "RecordTv") registerCreatureEvent(cid, "Death") registerCreatureEvent(cid, "PlayerLogout") registerCreatureEvent(cid, "WildAttack") registerCreatureEvent(cid, "Idle") registerCreatureEvent(cid, "PokemonIdle") registerCreatureEvent(cid, "EffectOnAdvance") registerCreatureEvent(cid, "reward") registerCreatureEvent(cid, "GeneralConfiguration") registerCreatureEvent(cid, "ExtendedOpcode") registerCreatureEvent(cid, "ReportBug") registerCreatureEvent(cid, "LookSystem") registerCreatureEvent(cid, "T1") registerCreatureEvent(cid, "T2") registerCreatureEvent(cid, "ll1") registerCreatureEvent(cid, "task_count") registerCreatureEvent(cid, "effectdeath") registerCreatureEvent(cid, "dota") registerCreatureEvent(cid, "atk") registerCreatureEvent(cid, "balance") registerCreatureEvent(cid, "BlockHit") registerCreatureEvent(cid, "Ataque") registerCreatureEvent(cid, "NlooT") registerCreatureEvent(cid, "KillTask") registerCreatureEvent(cid, "KillTaske") registerCreatureEvent(cid, "KillTask3") registerCreatureEvent(cid, "KillTask4") registerCreatureEvent(cid, "PlayerDeath") registerCreatureEvent(cid, "PetKill") registerCreatureEvent(cid, "onlinebonus") registerCreatureEvent(cid, "AtLoot") registerCreatureEvent(cid, "Monster Hunterl") registerCreatureEvent(cid, "Monster Hunter") doCreatureSetDropLoot(cid, false) doRegainSpeed(cid) if getCreatureName(cid) ~= "Account Manager" then -- O "ACCOUNT MANAGER" É EXCEÇÃO. doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "(Online Points) Voce Possui " ..getPlayerStorageValue(cid, storage_online_points).. " Online Points Armazenados Em Seu Personagem. Digite !opshop A Qualquer Momento Para Saber Quantos Online Points Voce Possui.") end if getPlayerStorageValue(cid, 17000) >= 1 then setPlayerStorageValue(cid, 17000, 0) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) sendMsgToPlayer(cid, 20, "Voce Deslogou No Fly E Foi Teleportado Para O CP Por Questoes De Seguranca.") return true end setPlayerStorageValue(cid, 17001, 0) --ride setPlayerStorageValue(cid, 92003, 0) --water robotic setPlayerStorageValue(cid, 92002, 0) --fire robotic setPlayerStorageValue(cid, 92001, 0) --water robotic setPlayerStorageValue(cid, 32001, 0) --bike if getPlayerStorageValue(cid, storage_online_points) < 0 then setPlayerStorageValue(cid, storage_online_points, 0) return true end -- SE AS QUANTIDADES DE FUSION HELDS POINTS FOREM MENOR QUE 0, SETA AS QUANTIDADES DE FUSION HELDS POINTS PARA 0 if getPlayerStorageValue(cid, 1234601) < 0 then setPlayerStorageValue(cid, 1234601, 0) return true end if getPlayerStorageValue(cid, 1234602) < 0 then setPlayerStorageValue(cid, 1234602, 0) return true end if getPlayerStorageValue(cid, 1234603) < 0 then setPlayerStorageValue(cid, 1234603, 0) return true end if getPlayerStorageValue(cid, 1234604) < 0 then setPlayerStorageValue(cid, 1234604, 0) return true end if getPlayerStorageValue(cid, 1234605) < 0 then setPlayerStorageValue(cid, 1234605, 0) return true end if getPlayerStorageValue(cid, 1234606) < 0 then setPlayerStorageValue(cid, 1234606, 0) return true end if getPlayerStorageValue(cid, 1234607) < 0 then setPlayerStorageValue(cid, 1234607, 0) return true end if(not isPlayerGhost(cid)) then doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) end doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, 25) doUpdatePokemonsBar(cid) local outfit = {} if getPlayerVocation(cid) == 0 then doPlayerSetMaxCapacity(cid, 7) doPlayerSetVocation(cid, 1) setCreatureMaxMana(cid, 6) doPlayerAddSoul(cid, -getPlayerSoul(cid)) setPlayerStorageValue(cid, 19898, 0) if getCreatureOutfit(cid).lookType == 510 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 == 511 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 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) doRemoveCondition(cid, CONDITION_OUTFIT) --alterado v2.9 \/ doTeleportThing(cid, posBackPVP, false) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) 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 v2.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) local addonfly = getPlayerSlotItem(cid, 8).uid local addofly = getItemAttribute(addonfly,"addonfly") if not addofly then doSetItemAttribute(addonfly,"addonfly",0) doSetCreatureOutfit(cid, {lookType = flys[poke][1] + 351}, -1) end if addofly > 0 then doSetCreatureOutfit(cid, {lookType = addofly}, -1) end 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 v2.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") local addonsurf = getPlayerSlotItem(cid, 8).uid local addosurf = getItemAttribute(addonsurf,"addonsurf") if not addosurf then doSetItemAttribute(addonsurf,"addonsurf",0) doSetCreatureOutfit(cid, {lookType = surfs[poke].lookType + 351}, -1) end if addosurf > 0 then doSetCreatureOutfit(cid, {lookType = addosurf}, -1) end 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 v2.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) local addonride = getPlayerSlotItem(cid, 8).uid local addoride = getItemAttribute(addonride,"addonride") if not addofly then doSetItemAttribute(addonride,"addonride",0) doSetCreatureOutfit(cid, {lookType = rides[poke][1] + 351}, -1) end if addoride > 0 then doSetCreatureOutfit(cid, {lookType = addoride}, -1) end 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 v2.8 end else 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) 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 v2.8 if getPlayerSex(cid) == 1 then doSetCreatureOutfit(cid, {lookType = 1394}, -1) else doSetCreatureOutfit(cid, {lookType = 1393}, -1) end elseif getPlayerStorageValue(cid, 75846) >= 1 then --alterado v2.9 \/ doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) setPlayerStorageValue(cid, 75846, -1) sendMsgToPlayer(cid, 20, "You have been moved to your town!") else doRegainSpeed(cid) --alterado v2.6 end if getPlayerStorageValue(cid, 22545) >= 1 then --golden arena setPlayerStorageValue(cid, 22545, -1) --alterado v2.4 doTeleportThing(cid, getClosestFreeTile(cid, posBackGolden), false) setPlayerRecordWaves(cid) --alterado v2.7 end -- local CP = {x=1056, y=1049, z=7} -- if getPlayerStorageValue(cid, 17000) >= 1 then -- setPlayerStorageValue(cid, 17000, 0) -- doTeleportThing(cid, CP) -- end return true end
-
Que bom que deu certo sobre o looktype ?. Sobre as mensagens, provavelmente é algum evento, pois, você deixou para os eventos serem a primeira coisa a ser carregados, e não é o ideal. Testa assim: local config = { loginMessage = getConfigValue('loginMessage'), useFragHandler = getBooleanFromString(getConfigValue('useFragHandler')) } --alterado v2.6 tabelas soh em lib/configuration.lua; local looktype_accountmanager = 352 -- LOOKTYPE DO ACCOUNT MANAGER local storage_online_points = 5984548 -- STORAGE QUE ARMAZENA PONTOS ONLINE function onLogin(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Bem Vindo Ao Pokemon Venetta Server') doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, 25) doCreatureSetDropLoot(cid, false) ----------------------------------------------------------- ACCOUNT MANAGER ----------------------------------------------------------- local accountManager = getPlayerAccountManager(cid) if(accountManager == MANAGER_NONE) then local lastLogin = getPlayerLastLoginSaved(cid) local str = 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) .. "." end doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str) elseif(accountManager == MANAGER_NAMELOCK) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Ola, parece que voce teve seu nome bloqueado (nameblock), escolha outro nome.") 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 = {lookType = looktype_accountmanager} -- OUTFIT QUE O ACCOUNT MANAGER TEM SE NÃO FOR OUTFIT DE POKÉMON RANDOM end doSetCreatureOutfit(cid, outfit, -1) return true end --------------------------------------------------------------------------------------------------------------------------------------- ------------------ EVENTOS ------------------ registerCreatureEvent(cid, "hmup") registerCreatureEvent(cid, "PlayerAttack") registerCreatureEvent(cid, "dropStone") registerCreatureEvent(cid, "OnAdvanced") registerCreatureEvent(cid, "vipexp") registerCreatureEvent(cid, "ShowPokedex") registerCreatureEvent(cid, "ClosePokedex") registerCreatureEvent(cid, "WatchTv") registerCreatureEvent(cid, "DropShiny") registerCreatureEvent(cid, "StopWatchingTv") registerCreatureEvent(cid, "WalkTv") registerCreatureEvent(cid, "RecordTv") registerCreatureEvent(cid, "Death") registerCreatureEvent(cid, "PlayerLogout") registerCreatureEvent(cid, "WildAttack") registerCreatureEvent(cid, "Idle") registerCreatureEvent(cid, "PokemonIdle") registerCreatureEvent(cid, "EffectOnAdvance") registerCreatureEvent(cid, "reward") registerCreatureEvent(cid, "GeneralConfiguration") registerCreatureEvent(cid, "ExtendedOpcode") registerCreatureEvent(cid, "ReportBug") registerCreatureEvent(cid, "LookSystem") registerCreatureEvent(cid, "T1") registerCreatureEvent(cid, "T2") registerCreatureEvent(cid, "ll1") registerCreatureEvent(cid, "task_count") registerCreatureEvent(cid, "effectdeath") registerCreatureEvent(cid, "dota") registerCreatureEvent(cid, "atk") registerCreatureEvent(cid, "balance") registerCreatureEvent(cid, "BlockHit") registerCreatureEvent(cid, "Ataque") registerCreatureEvent(cid, "NlooT") registerCreatureEvent(cid, "KillTask") registerCreatureEvent(cid, "KillTaske") registerCreatureEvent(cid, "KillTask3") registerCreatureEvent(cid, "KillTask4") registerCreatureEvent(cid, "PlayerDeath") registerCreatureEvent(cid, "PetKill") registerCreatureEvent(cid, "onlinebonus") registerCreatureEvent(cid, "AtLoot") registerCreatureEvent(cid, "Monster Hunterl") registerCreatureEvent(cid, "Monster Hunter") doRegainSpeed(cid) doUpdatePokemonsBar(cid) if getCreatureName(cid) ~= "Account Manager" then -- O "ACCOUNT MANAGER" É EXCEÇÃO. doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "(Online Points) Voce Possui " ..getPlayerStorageValue(cid, storage_online_points).. " Online Points Armazenados Em Seu Personagem. Digite !opshop A Qualquer Momento Para Saber Quantos Online Points Voce Possui.") end if getPlayerStorageValue(cid, 17000) >= 1 then setPlayerStorageValue(cid, 17000, 0) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) sendMsgToPlayer(cid, 20, "Voce Deslogou No Fly E Foi Teleportado Para O CP Por Questoes De Seguranca.") return true end setPlayerStorageValue(cid, 17001, 0) --ride setPlayerStorageValue(cid, 92003, 0) --water robotic setPlayerStorageValue(cid, 92002, 0) --fire robotic setPlayerStorageValue(cid, 92001, 0) --water robotic setPlayerStorageValue(cid, 32001, 0) --bike if getPlayerStorageValue(cid, storage_online_points) < 0 then setPlayerStorageValue(cid, storage_online_points, 0) return true end -- SE AS QUANTIDADES DE FUSION HELDS POINTS FOREM MENOR QUE 0, SETA AS QUANTIDADES DE FUSION HELDS POINTS PARA 0 if getPlayerStorageValue(cid, 1234601) < 0 then setPlayerStorageValue(cid, 1234601, 0) return true end if getPlayerStorageValue(cid, 1234602) < 0 then setPlayerStorageValue(cid, 1234602, 0) return true end if getPlayerStorageValue(cid, 1234603) < 0 then setPlayerStorageValue(cid, 1234603, 0) return true end if getPlayerStorageValue(cid, 1234604) < 0 then setPlayerStorageValue(cid, 1234604, 0) return true end if getPlayerStorageValue(cid, 1234605) < 0 then setPlayerStorageValue(cid, 1234605, 0) return true end if getPlayerStorageValue(cid, 1234606) < 0 then setPlayerStorageValue(cid, 1234606, 0) return true end if getPlayerStorageValue(cid, 1234607) < 0 then setPlayerStorageValue(cid, 1234607, 0) return true end if(not isPlayerGhost(cid)) then doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) end local outfit = {} if getPlayerVocation(cid) == 0 then doPlayerSetMaxCapacity(cid, 7) doPlayerSetVocation(cid, 1) setCreatureMaxMana(cid, 6) doPlayerAddSoul(cid, -getPlayerSoul(cid)) setPlayerStorageValue(cid, 19898, 0) if getCreatureOutfit(cid).lookType == 510 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 == 511 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 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) doRemoveCondition(cid, CONDITION_OUTFIT) --alterado v2.9 \/ doTeleportThing(cid, posBackPVP, false) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) 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 v2.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) local addonfly = getPlayerSlotItem(cid, 8).uid local addofly = getItemAttribute(addonfly,"addonfly") if not addofly then doSetItemAttribute(addonfly,"addonfly",0) doSetCreatureOutfit(cid, {lookType = flys[poke][1] + 351}, -1) end if addofly > 0 then doSetCreatureOutfit(cid, {lookType = addofly}, -1) end 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 v2.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") local addonsurf = getPlayerSlotItem(cid, 8).uid local addosurf = getItemAttribute(addonsurf,"addonsurf") if not addosurf then doSetItemAttribute(addonsurf,"addonsurf",0) doSetCreatureOutfit(cid, {lookType = surfs[poke].lookType + 351}, -1) end if addosurf > 0 then doSetCreatureOutfit(cid, {lookType = addosurf}, -1) end 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 v2.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) local addonride = getPlayerSlotItem(cid, 8).uid local addoride = getItemAttribute(addonride,"addonride") if not addofly then doSetItemAttribute(addonride,"addonride",0) doSetCreatureOutfit(cid, {lookType = rides[poke][1] + 351}, -1) end if addoride > 0 then doSetCreatureOutfit(cid, {lookType = addoride}, -1) end 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 v2.8 end else 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) 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 v2.8 if getPlayerSex(cid) == 1 then doSetCreatureOutfit(cid, {lookType = 1394}, -1) else doSetCreatureOutfit(cid, {lookType = 1393}, -1) end elseif getPlayerStorageValue(cid, 75846) >= 1 then --alterado v2.9 \/ doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) setPlayerStorageValue(cid, 75846, -1) sendMsgToPlayer(cid, 20, "You have been moved to your town!") else doRegainSpeed(cid) --alterado v2.6 end if getPlayerStorageValue(cid, 22545) >= 1 then --golden arena setPlayerStorageValue(cid, 22545, -1) --alterado v2.4 doTeleportThing(cid, getClosestFreeTile(cid, posBackGolden), false) setPlayerRecordWaves(cid) --alterado v2.7 end -- local CP = {x=1056, y=1049, z=7} -- if getPlayerStorageValue(cid, 17000) >= 1 then -- setPlayerStorageValue(cid, 17000, 0) -- doTeleportThing(cid, CP) -- end return true end Testa e vê se permanece as mensagens.
-
Eu dei uma refatorada nesse seu último código, testa e vê se funciona normal agora o looktype do account manager: local config = { loginMessage = getConfigValue('loginMessage'), useFragHandler = getBooleanFromString(getConfigValue('useFragHandler')) } --alterado v2.6 tabelas soh em lib/configuration.lua; local looktype_accountmanager = 352 -- LOOKTYPE DO ACCOUNT MANAGER local storage_online_points = 5984548 -- STORAGE QUE ARMAZENA PONTOS ONLINE function onLogin(cid) registerCreatureEvent(cid, "hmup") registerCreatureEvent(cid, "PlayerAttack") registerCreatureEvent(cid, "dropStone") registerCreatureEvent(cid, "OnAdvanced") registerCreatureEvent(cid, "vipexp") registerCreatureEvent(cid, "ShowPokedex") registerCreatureEvent(cid, "ClosePokedex") registerCreatureEvent(cid, "WatchTv") registerCreatureEvent(cid, "DropShiny") registerCreatureEvent(cid, "StopWatchingTv") registerCreatureEvent(cid, "WalkTv") registerCreatureEvent(cid, "RecordTv") registerCreatureEvent(cid, "Death") registerCreatureEvent(cid, "PlayerLogout") registerCreatureEvent(cid, "WildAttack") registerCreatureEvent(cid, "Idle") registerCreatureEvent(cid, "PokemonIdle") registerCreatureEvent(cid, "EffectOnAdvance") registerCreatureEvent(cid, "reward") registerCreatureEvent(cid, "GeneralConfiguration") registerCreatureEvent(cid, "ExtendedOpcode") registerCreatureEvent(cid, "ReportBug") registerCreatureEvent(cid, "LookSystem") registerCreatureEvent(cid, "T1") registerCreatureEvent(cid, "T2") registerCreatureEvent(cid, "ll1") registerCreatureEvent(cid, "task_count") registerCreatureEvent(cid, "effectdeath") registerCreatureEvent(cid, "dota") registerCreatureEvent(cid, "atk") registerCreatureEvent(cid, "balance") registerCreatureEvent(cid, "BlockHit") registerCreatureEvent(cid, "Ataque") registerCreatureEvent(cid, "NlooT") registerCreatureEvent(cid, "KillTask") registerCreatureEvent(cid, "KillTaske") registerCreatureEvent(cid, "KillTask3") registerCreatureEvent(cid, "KillTask4") registerCreatureEvent(cid, "PlayerDeath") registerCreatureEvent(cid, "PetKill") registerCreatureEvent(cid, "onlinebonus") registerCreatureEvent(cid, "AtLoot") registerCreatureEvent(cid, "Monster Hunterl") registerCreatureEvent(cid, "Monster Hunter") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Bem Vindo Ao Pokemon Venetta Server') doRegainSpeed(cid) doUpdatePokemonsBar(cid) doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, 25) doCreatureSetDropLoot(cid, false) if getCreatureName(cid) ~= "Account Manager" then -- O "ACCOUNT MANAGER" É EXCEÇÃO. doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "(Online Points) Voce Possui " ..getPlayerStorageValue(cid, storage_online_points).. " Online Points Armazenados Em Seu Personagem. Digite !opshop A Qualquer Momento Para Saber Quantos Online Points Voce Possui.") end ----------------------------------------------------------- ACCOUNT MANAGER ----------------------------------------------------------- local accountManager = getPlayerAccountManager(cid) if(accountManager == MANAGER_NONE) then local lastLogin = getPlayerLastLoginSaved(cid) local str = 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) .. "." end doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str) elseif(accountManager == MANAGER_NAMELOCK) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Ola, parece que voce teve seu nome bloqueado (nameblock), escolha outro nome.") 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 = {lookType = looktype_accountmanager} -- OUTFIT QUE O ACCOUNT MANAGER TEM SE NÃO FOR OUTFIT DE POKÉMON RANDOM end doSetCreatureOutfit(cid, outfit, -1) return true end --------------------------------------------------------------------------------------------------------------------------------------- if getPlayerStorageValue(cid, 17000) >= 1 then setPlayerStorageValue(cid, 17000, 0) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) sendMsgToPlayer(cid, 20, "Voce Deslogou No Fly E Foi Teleportado Para O CP Por Questoes De Seguranca.") return true end setPlayerStorageValue(cid, 17001, 0) --ride setPlayerStorageValue(cid, 92003, 0) --water robotic setPlayerStorageValue(cid, 92002, 0) --fire robotic setPlayerStorageValue(cid, 92001, 0) --water robotic setPlayerStorageValue(cid, 32001, 0) --bike if getPlayerStorageValue(cid, storage_online_points) < 0 then setPlayerStorageValue(cid, storage_online_points, 0) return true end -- SE AS QUANTIDADES DE FUSION HELDS POINTS FOREM MENOR QUE 0, SETA AS QUANTIDADES DE FUSION HELDS POINTS PARA 0 if getPlayerStorageValue(cid, 1234601) < 0 then setPlayerStorageValue(cid, 1234601, 0) return true end if getPlayerStorageValue(cid, 1234602) < 0 then setPlayerStorageValue(cid, 1234602, 0) return true end if getPlayerStorageValue(cid, 1234603) < 0 then setPlayerStorageValue(cid, 1234603, 0) return true end if getPlayerStorageValue(cid, 1234604) < 0 then setPlayerStorageValue(cid, 1234604, 0) return true end if getPlayerStorageValue(cid, 1234605) < 0 then setPlayerStorageValue(cid, 1234605, 0) return true end if getPlayerStorageValue(cid, 1234606) < 0 then setPlayerStorageValue(cid, 1234606, 0) return true end if getPlayerStorageValue(cid, 1234607) < 0 then setPlayerStorageValue(cid, 1234607, 0) return true end if(not isPlayerGhost(cid)) then doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) end local outfit = {} if getPlayerVocation(cid) == 0 then doPlayerSetMaxCapacity(cid, 7) doPlayerSetVocation(cid, 1) setCreatureMaxMana(cid, 6) doPlayerAddSoul(cid, -getPlayerSoul(cid)) setPlayerStorageValue(cid, 19898, 0) if getCreatureOutfit(cid).lookType == 510 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 == 511 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 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) doRemoveCondition(cid, CONDITION_OUTFIT) --alterado v2.9 \/ doTeleportThing(cid, posBackPVP, false) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) 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 v2.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) local addonfly = getPlayerSlotItem(cid, 8).uid local addofly = getItemAttribute(addonfly,"addonfly") if not addofly then doSetItemAttribute(addonfly,"addonfly",0) doSetCreatureOutfit(cid, {lookType = flys[poke][1] + 351}, -1) end if addofly > 0 then doSetCreatureOutfit(cid, {lookType = addofly}, -1) end 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 v2.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") local addonsurf = getPlayerSlotItem(cid, 8).uid local addosurf = getItemAttribute(addonsurf,"addonsurf") if not addosurf then doSetItemAttribute(addonsurf,"addonsurf",0) doSetCreatureOutfit(cid, {lookType = surfs[poke].lookType + 351}, -1) end if addosurf > 0 then doSetCreatureOutfit(cid, {lookType = addosurf}, -1) end 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 v2.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) local addonride = getPlayerSlotItem(cid, 8).uid local addoride = getItemAttribute(addonride,"addonride") if not addofly then doSetItemAttribute(addonride,"addonride",0) doSetCreatureOutfit(cid, {lookType = rides[poke][1] + 351}, -1) end if addoride > 0 then doSetCreatureOutfit(cid, {lookType = addoride}, -1) end 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 v2.8 end else 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) 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 v2.8 if getPlayerSex(cid) == 1 then doSetCreatureOutfit(cid, {lookType = 1394}, -1) else doSetCreatureOutfit(cid, {lookType = 1393}, -1) end elseif getPlayerStorageValue(cid, 75846) >= 1 then --alterado v2.9 \/ doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) setPlayerStorageValue(cid, 75846, -1) sendMsgToPlayer(cid, 20, "You have been moved to your town!") else doRegainSpeed(cid) --alterado v2.6 end if getPlayerStorageValue(cid, 22545) >= 1 then --golden arena setPlayerStorageValue(cid, 22545, -1) --alterado v2.4 doTeleportThing(cid, getClosestFreeTile(cid, posBackGolden), false) setPlayerRecordWaves(cid) --alterado v2.7 end -- local CP = {x=1056, y=1049, z=7} -- if getPlayerStorageValue(cid, 17000) >= 1 then -- setPlayerStorageValue(cid, 17000, 0) -- doTeleportThing(cid, CP) -- end return true end Mesmo esquema do outro script que fiz, deixei mais fácil até, só mudar o ID do looktype na variável looktype_accountmanager no começo do arquivo. Também criei uma variável para a storage dos pontos online que exibe para o player quando loga. Testa e vê se continua voltando aquela outfit de ADM.
-
É normal acontecer isso, eu fiz apenas um teste ^^. Eu fiz uma verificação se for account manager setar uma outfit e em seguida dei um return true, ou seja, ele encerra o arquivo ali mesmo e não carrega os eventos (módulos) porque estão mais para baixo no script. Bom, então está trocando, porém alguma parte do seu script está setando a outfit, vou dar uma olhada aqui.
-
Testa primeiro com a que mandei, não é definitivo, testa lá e me fala.
-
Eu tenho uma base DXP aqui, e fiz um teste, mas no caso, o meu login.lua tinha uma linha a mais que estava setando a outfit, mudei o looktype e funcionou. Mas vamos descobrir o problema, faz um teste para mim, substitui o seu login.lua por esse: local config = { loginMessage = getConfigValue('loginMessage'), useFragHandler = getBooleanFromString(getConfigValue('useFragHandler')) } local looktype_account_manager = {lookType = 215} --alterado v2.6 tabelas soh em lib/configuration.lua; function onLogin(cid) if getCreatureName(cid) == "Account Manager" then doSetCreatureOutfit(cid, looktype_account_manager, -1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Account Manager com outfit") return true end registerCreatureEvent(cid, "hmup") registerCreatureEvent(cid, "PlayerAttack") registerCreatureEvent(cid, "dropStone") registerCreatureEvent(cid, "OnAdvanced") registerCreatureEvent(cid, "vipexp") registerCreatureEvent(cid, "ShowPokedex") registerCreatureEvent(cid, "ClosePokedex") registerCreatureEvent(cid, "WatchTv") registerCreatureEvent(cid, "DropShiny") registerCreatureEvent(cid, "StopWatchingTv") registerCreatureEvent(cid, "WalkTv") registerCreatureEvent(cid, "RecordTv") registerCreatureEvent(cid, "Death") registerCreatureEvent(cid, "PlayerLogout") registerCreatureEvent(cid, "WildAttack") registerCreatureEvent(cid, "Idle") registerCreatureEvent(cid, "PokemonIdle") registerCreatureEvent(cid, "EffectOnAdvance") registerCreatureEvent(cid, "reward") registerCreatureEvent(cid, "GeneralConfiguration") registerCreatureEvent(cid, "ExtendedOpcode") registerCreatureEvent(cid, "ReportBug") registerCreatureEvent(cid, "LookSystem") registerCreatureEvent(cid, "T1") registerCreatureEvent(cid, "T2") registerCreatureEvent(cid, "ll1") registerCreatureEvent(cid, "task_count") registerCreatureEvent(cid, "effectdeath") registerCreatureEvent(cid, "dota") registerCreatureEvent(cid, "atk") registerCreatureEvent(cid, "balance") registerCreatureEvent(cid, "BlockHit") registerCreatureEvent(cid, "Ataque") registerCreatureEvent(cid, "NlooT") registerCreatureEvent(cid, "KillTask") registerCreatureEvent(cid, "KillTaske") registerCreatureEvent(cid, "KillTask3") registerCreatureEvent(cid, "KillTask4") registerCreatureEvent(cid, "PlayerDeath") registerCreatureEvent(cid, "PetKill") registerCreatureEvent(cid, "onlinebonus") registerCreatureEvent(cid, "AtLoot") registerCreatureEvent(cid, "Monster Hunterl") registerCreatureEvent(cid, "Monster Hunter") doRegainSpeed(cid) doUpdatePokemonsBar(cid) doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, 25) doCreatureSetDropLoot(cid, false) if getPlayerStorageValue(cid, 17000) >= 1 then setPlayerStorageValue(cid, 17000, 0) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) sendMsgToPlayer(cid, 20, "Voce Deslogou No Fly E Foi Teleportado Para O CP Por Questoes De Seguranca.") return true end setPlayerStorageValue(cid, 17001, 0) --ride setPlayerStorageValue(cid, 92003, 0) --water robotic setPlayerStorageValue(cid, 92002, 0) --fire robotic setPlayerStorageValue(cid, 92001, 0) --water robotic setPlayerStorageValue(cid, 32001, 0) --bike if getCreatureName(cid) ~= "Account Manager" then -- O "ACCOUNT MANAGER" É EXCEÇÃO. doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce possui " .. getPlayerStorageValue(cid,5984548) .. "x Online Bonus armazenados em seu personagem. Digite !opshop a qualquer momento para saber quantos Online Points voce possui.") end if getPlayerStorageValue(cid, 5984548) < 0 then setPlayerStorageValue(cid, 5984548, 0) return true end -- SE AS QUANTIDADES DE FUSION HELDS POINTS FOREM MENOR QUE 0, SETA AS QUANTIDADES DE FUSION HELDS POINTS PARA 0 if getPlayerStorageValue(cid, 1234601) < 0 then setPlayerStorageValue(cid, 1234601, 0) return true end if getPlayerStorageValue(cid, 1234602) < 0 then setPlayerStorageValue(cid, 1234602, 0) return true end if getPlayerStorageValue(cid, 1234603) < 0 then setPlayerStorageValue(cid, 1234603, 0) return true end if getPlayerStorageValue(cid, 1234604) < 0 then setPlayerStorageValue(cid, 1234604, 0) return true end if getPlayerStorageValue(cid, 1234605) < 0 then setPlayerStorageValue(cid, 1234605, 0) return true end if getPlayerStorageValue(cid, 1234606) < 0 then setPlayerStorageValue(cid, 1234606, 0) return true end if getPlayerStorageValue(cid, 1234607) < 0 then setPlayerStorageValue(cid, 1234607, 0) return true end 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) .. "." end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Bem Vindo Ao Pokemon Venetta Server') doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str) elseif(accountManager == MANAGER_NAMELOCK) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Ola, parece que voce teve seu nome bloqueado (nameblock), escolha outro nome.") 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 = looktype_account_manager 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, 7) doPlayerSetVocation(cid, 1) setCreatureMaxMana(cid, 6) doPlayerAddSoul(cid, -getPlayerSoul(cid)) setPlayerStorageValue(cid, 19898, 0) if getCreatureOutfit(cid).lookType == 510 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 == 511 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 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) doRemoveCondition(cid, CONDITION_OUTFIT) --alterado v2.9 \/ doTeleportThing(cid, posBackPVP, false) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) 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 v2.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) local addonfly = getPlayerSlotItem(cid, 8).uid local addofly = getItemAttribute(addonfly,"addonfly") if not addofly then doSetItemAttribute(addonfly,"addonfly",0) doSetCreatureOutfit(cid, {lookType = flys[poke][1] + 351}, -1) end if addofly > 0 then doSetCreatureOutfit(cid, {lookType = addofly}, -1) end 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 v2.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") local addonsurf = getPlayerSlotItem(cid, 8).uid local addosurf = getItemAttribute(addonsurf,"addonsurf") if not addosurf then doSetItemAttribute(addonsurf,"addonsurf",0) doSetCreatureOutfit(cid, {lookType = surfs[poke].lookType + 351}, -1) end if addosurf > 0 then doSetCreatureOutfit(cid, {lookType = addosurf}, -1) end 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 v2.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) local addonride = getPlayerSlotItem(cid, 8).uid local addoride = getItemAttribute(addonride,"addonride") if not addofly then doSetItemAttribute(addonride,"addonride",0) doSetCreatureOutfit(cid, {lookType = rides[poke][1] + 351}, -1) end if addoride > 0 then doSetCreatureOutfit(cid, {lookType = addoride}, -1) end 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 v2.8 end else 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) 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 v2.8 if getPlayerSex(cid) == 1 then doSetCreatureOutfit(cid, {lookType = 1394}, -1) else doSetCreatureOutfit(cid, {lookType = 1393}, -1) end elseif getPlayerStorageValue(cid, 75846) >= 1 then --alterado v2.9 \/ doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) setPlayerStorageValue(cid, 75846, -1) sendMsgToPlayer(cid, 20, "You have been moved to your town!") else doRegainSpeed(cid) --alterado v2.6 end if getPlayerStorageValue(cid, 22545) >= 1 then --golden arena setPlayerStorageValue(cid, 22545, -1) --alterado v2.4 doTeleportThing(cid, getClosestFreeTile(cid, posBackGolden), false) setPlayerRecordWaves(cid) --alterado v2.7 end -- local CP = {x=1056, y=1049, z=7} -- if getPlayerStorageValue(cid, 17000) >= 1 then -- setPlayerStorageValue(cid, 17000, 0) -- doTeleportThing(cid, CP) -- end return true end Veja se mudou outfit e se vai aparecer uma mensagem no console.
-
Mudou no configuration.lua?
-
Qual base você está usando?
-
Faz um teste, muda a variável accountManagerRandomPokemonOutfit para true: accountManagerRandomPokemonOutfit = true Testa e vê se o Account Manager vira algum pokémon.
-
Da algum tipo de erro?
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.