Postado Julho 23, 2014 10 anos Olá, gostaria de um script no qual o ditto normal não pudesse se transformar em pokemons shinys. Valeu
Postado Julho 23, 2014 10 anos OBS: SIGA NA ORDEM! Vamos lá. Adicionando script no order.lua(data/actions/scripts). Substituia: -------- TRANSFORM ---------- --alterado v1.7 if (getCreatureName(mysum) == "Ditto" or getCreatureName(mysum) ) and isMonster(item2.uid) and pokes[getCreatureName(item2.uid)] then if item2.uid == mysum then --edited if isTransformed(mysum) then deTransform(mysum, getItemAttribute(thisball.uid, "transTurn")) markPos(mysum, unfix) doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["untransform"][math.random(1, #txt["untransform"])].."", 1) if useKpdoDlls then doUpdateMoves(cid) --alterado v1.9 end return true end doPlayerSendCancel(cid, "Your ditto is not transformed.") markPos(mysum, unfix) return true end if getCreatureName(item2.uid) == "Ditto" or getCreatureName(item2.uid) then --edited transform for shiny ditto doPlayerSendCancel(cid, "Your ditto can't transform into another ditto.") markPos(mysum, unfix) return true end if getCreatureName(item2.uid) == getPlayerStorageValue(mysum, 1010) then doPlayerSendCancel(cid, "Your ditto is already transformed into that pokemon.") markPos(mysum, unfix) return true end local cd = getCD(thisball.uid, "trans", 40) if cd > 0 then doPlayerSendCancel(cid, "Your pokemon is too tired to transform again. Cooldown: ("..getStringmytempo(cd)..")") return true end if getHappiness(mysum) <= 50 then doSendMagicEffect(getThingPos(mysum), happinessRate[1].effect) markPos(mysum, unfix) return true end local turn = getItemAttribute(thisball.uid, "transTurn") if not turn or turn > 10 then doItemSetAttribute(thisball.uid, "transTurn", 0) else doItemSetAttribute(thisball.uid, "transTurn", turn + 1) end local time = 140 + 2 * getPokemonLevel(mysum) turn = getItemAttribute(thisball.uid, "transTurn") markPos(mysum, unfix) setPlayerStorageValue(mysum, 1010, getCreatureName(item2.uid)) doSetCreatureOutfit(mysum, {lookType = getPokemonXMLOutfit(getCreatureName(item2.uid))}, -1) --alterado v1.8 addEvent(deTransform, time * 1000, mysum, turn) doSendMagicEffect(getThingPos(mysum), 184) doCreatureSay(mysum, "TRANSFORM!", TALKTYPE_MONSTER) local name = getCreatureName(item2.uid) setCD(thisball.uid, "trans", 40) doItemSetAttribute(thisball.uid, "transBegin", os.clock()) doSetItemAttribute(thisball.uid, "transLeft", time) doSetItemAttribute(thisball.uid, "transOutfit", getPokemonXMLOutfit(getCreatureName(item2.uid))) --alterado v1.8 doSetItemAttribute(thisball.uid, "transName", getCreatureName(item2.uid)) doFaceCreature(mysum, getThingPos(item2.uid)) doPlayerSay(cid, ""..getPokeName(mysum)..", transform into "..getArticle(name).." "..name.."!", 1) if useKpdoDlls then doUpdateMoves(cid) --alterado v1.6 end if dittoCopiesStatusToo then setPlayerStorageValue(mysum, 1001, dittoBonus*getOffense(item2.uid)) setPlayerStorageValue(mysum, 1002, dittoBonus*getDefense(item2.uid)) setPlayerStorageValue(mysum, 1003, getSpeed(item2.uid)) setPlayerStorageValue(mysum, 1004, dittoBonus*getVitality(item2.uid)) setPlayerStorageValue(mysum, 1005, dittoBonus*getSpecialAttack(item2.uid)) ------------------ local pct = getCreatureHealth(mysum) / getCreatureMaxHealth(mysum) local vit = (getVitality(mysum) * getMasterLevel(mysum)) / 100 setCreatureMaxHealth(mysum, ( vit * HPperVITsummon )) --alterado v1.6 doCreatureAddHealth(mysum, pct * vit * HPperVITsummon) end return true end por:: -------- TRANSFORM ---------- --alterado v1.7 if (getCreatureName(mysum) == "Ditto") and getItemAttribute(thisball.uid, "ehditto") ~= -1 and isMonster(item2.uid) and pokes[getCreatureName(item2.uid)] then local m = getCreatureMaster(cid) local p = getPlayerSlotItem(m, 8)local proibidossempre = {"Celebi", "Moltres", "Zapdos", "Suicune", "Entei", "Raikou", "Suicune", "Lugia", "Mewtwo", "Mew", "Shiny Rhydon", "Shiny Ariados", "Shiny Magneton", "Shiny Ninetales", "Shiny Politoed", "Shiny Stantler", "Shiny Dodrio", "Shiny Espeon", "Shiny Umbreon"} -- Nunca permitir local proibidosboost = {"Shiny Dragonite", "Shiny Snorlax", "Shiny Gyarados", "Shiny Scyther"} local boost = getItemAttribute(thisball.uid, "boost") or 0 if getCreatureName(item2.uid) == "Ditto" or getCreatureName(item2.uid) then doPlayerSendCancel(cid, "Your ditto can't transform into another ditto.") markPos(mysum, unfix) return true end if isInArray(proibidossempre, getCreatureName(item2.uid)) then --Checa a lista doPlayerSendCancel(cid, "Your ditto can't transform into that pokemon.") markPos(mysum, unfix) return true end if isInArray(proibidosboost, getCreatureName(item2.uid)) and boost < 50 then --Checa a lista doPlayerSendCancel(cid, "Your ditto can't transform into that pokemon.") markPos(mysum, unfix) return true end if getCreatureName(item2.uid) == getPlayerStorageValue(mysum, 1010) then doPlayerSendCancel(cid, "Your ditto is already transformed into that pokemon.") markPos(mysum, unfix) return true end markPos(mysum, unfix) local name = getCreatureName(item2.uid) setPlayerStorageValue(mysum, 1010, getCreatureName(item2.uid)) doItemSetAttribute(thisball.uid, "ehditto", 1) doItemSetAttribute(thisball.uid, "poke", getCreatureName(item2.uid)) doUpdateMoves(cid) doSetCreatureOutfit(mysum, getCreatureOutfit(item2.uid), -1) doCreatureSay(mysum, "TRANSFORM!", TALKTYPE_MONSTER) doFaceCreature(mysum, getThingPos(item2.uid)) doSendMagicEffect(getThingPos(mysum), 184) doPlayerSay(cid, ""..getPokeName(mysum)..", transform into "..getArticle(name).." "..name.."!", 1) return true end ----------------------------- Pronto, sistema feito. Mas assim não da de indentificar que é ditto, sendo assim possivel enganar outros players. Para isso, vá em "data/creaturescripts/scripts" abra look.lua e procure por: table.insert(str, "\nIt contains "..getArticle(pokename).." "..pokename..".\n") e substitua por: if getItemAttribute(thing.uid, "ehditto") == 1 then table.insert(str, "\nIt contains "..getArticle(pokename).." "..pokename.." (Ditto).\n") else table.insert(str, "\nIt contains "..getArticle(pokename).." "..pokename..".\n") end No Goback.lua(data/actions/scripts) e no Some Functions.lua(data/lib) procure isso: if getCreatureName(pk) == "Ditto" or getCreatureName(pk) == "Shiny Ditto" then --edited local left = getItemAttribute(item.uid, "transLeft") local name = getItemAttribute(item.uid, "transName") if left and left > 0 then setPlayerStorageValue(pk, 1010, name) doSetCreatureOutfit(pk, {lookType = getItemAttribute(item.uid, "transOutfit")}, -1) addEvent(deTransform, left * 1000, pk, getItemAttribute(item.uid, "transTurn")) doItemSetAttribute(item.uid, "transBegin", os.clock()) else setPlayerStorageValue(pk, 1010, getCreatureName(pk) == "Ditto" and "Ditto" ) --edited end end E apague. Em Some Functions.lua procure por: function doAppear(cid) --Faz um poke q tava invisivel voltar a ser visivel... if not isCreature(cid) then return true end doRemoveCondition(cid, CONDITION_INVISIBLE) doRemoveCondition(cid, CONDITION_OUTFIT) doCreatureSetHideHealth(cid, false) if getCreatureName(cid) == "Ditto" and pokes[getPlayerStorageValue(cid, 1010)] and getPlayerStorageValue(cid, 1010) ~= "Ditto" then if isSummon(cid) then local item = getPlayerSlotItem(getCreatureMaster(cid), 8) doSetCreatureOutfit(cid, {lookType = getItemAttribute(item.uid, "transOutfit")}, -1) --alterado v1.6.1 end end end E deixe assim: function doAppear(cid) --Faz um poke q tava invisivel voltar a ser visivel... if not isCreature(cid) then return true end doRemoveCondition(cid, CONDITION_INVISIBLE) doRemoveCondition(cid, CONDITION_OUTFIT) doCreatureSetHideHealth(cid, false) end Ainda no some functions.lua apague isso: if getCreatureName(pokemon) == "Ditto" then if isTransformed(pokemon) then local left = getItemAttribute(pokeball.uid, "transLeft") - (os.clock() - getItemAttribute(pokeball.uid, "transBegin")) doItemSetAttribute(pokeball.uid, "transLeft", left) end end SE SEU SERVER TIVER LEVEL SYSTEM FAÇA AS SEGUINTER ADAPTAÇÕES: Vá em "data/lib" e abra o "level system.lua". Nele procure isso: setPlayerStorageValue(pk, 1001, pokes[getCreatureName(pk)].offense * (getMasterLevel(pk) + getPokemonBoost(pk))) setPlayerStorageValue(pk, 1002, pokes[getCreatureName(pk)].defense) setPlayerStorageValue(pk, 1003, pokes[getCreatureName(pk)].agility) setPlayerStorageValue(pk, 1004, pokes[getCreatureName(pk)].vitality * (getMasterLevel(pk) + getPokemonBoost(pk))) setPlayerStorageValue(pk, 1005, pokes[getCreatureName(pk)].specialattack * (getMasterLevel(pk) + getPokemonBoost(pk))) E substitua por isso: if (getItemAttribute(item, "ehditto") == 1) then setPlayerStorageValue(pk, 1001, (pokes[getCreatureName(pk)].offense * (getMasterLevel(pk) + getPokemonBoost(pk))) * 0.75) setPlayerStorageValue(pk, 1002, (pokes[getCreatureName(pk)].defense) * 0.75) setPlayerStorageValue(pk, 1003, pokes[getCreatureName(pk)].agility) setPlayerStorageValue(pk, 1004, (pokes[getCreatureName(pk)].vitality * (getMasterLevel(pk) + getPokemonBoost(pk))) * 0.75) setPlayerStorageValue(pk, 1005, (pokes[getCreatureName(pk)].specialattack * (getMasterLevel(pk) + getPokemonBoost(pk))) * 0.75) else setPlayerStorageValue(pk, 1001, pokes[getCreatureName(pk)].offense * (getMasterLevel(pk) + getPokemonBoost(pk))) setPlayerStorageValue(pk, 1002, pokes[getCreatureName(pk)].defense) setPlayerStorageValue(pk, 1003, pokes[getCreatureName(pk)].agility) setPlayerStorageValue(pk, 1004, pokes[getCreatureName(pk)].vitality * (getMasterLevel(pk) + getPokemonBoost(pk))) setPlayerStorageValue(pk, 1005, pokes[getCreatureName(pk)].specialattack * (getMasterLevel(pk) + getPokemonBoost(pk))) end PS: Como ali está "0.75", a força é diminuida em 1/4(um quarto). Pode mudar para o quanto quiser. EX: 0.50 -> 2/4. 0.25 -> 3/4 Creditos: TsplayerT: por fazer adaptações para não se transformar em pokemons ShinysAnnaFeeh: por trazer essas informações ao TibiaKing CASO EU TE AJUDEI OU VOCÊ VIU MEU ESFORÇO POR FAVOR DE REP+ Editado Julho 23, 2014 10 anos por TsplayerT (veja o histórico de edições) Meus Contatos! Minhas Funções: Skype: TsplayerT Facebook: TakaFukushii YouTube: ADoseDupla Twitter: @_Splayer_ Mapper:▓▓▓▓▓▓▓▓▓▓ 97% Programmer:▓▓▓▓▓▒▒▒▒▒ 45% Scripter:▓▓▓▓▓▓▓▓▓▒ 83% Spriter:▓▓▓▓▓▓▒▒▒▒ 57% Gamemaster:▓▓▓▓▓▓▓▓▓▓ 99% Ot Creator:▓▓▓▓▓▓▓▒▒▒71% Ot Client Maker:▓▓▓▓▓▓▓▒▒▒74%
Postado Julho 23, 2014 10 anos Autor Amigo, eu já tenho esse ditto system O que preciso é só a parte de não transformar em shinys
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.