Ir para conteúdo

bepokemon

Visconde
  • Total de itens

    273
  • Registro em

  • Última visita

  • Dias Ganhos

    4

Tudo que bepokemon postou

  1. function onSay(cid, words, param) local max = 10 local letters_to_next = 20 local name_now local name = "Highscores\n" name = name.."\n" name = name.."Ranking Resets - Player name\n" local v = db.getResult("SELECT `name`, `reset` FROM `players` WHERE `group_id` <= 3 ORDER BY `reset` DESC LIMIT 0,"..(max)..";") repeat if v:getID() == -1 then break end rkn = rkn+1 name_now, l = v:getDataString("name"), string.len(v:getDataString("name")) space = "" for i=1, letters_to_next-l do space = space.." " end name = name..rkn..". ["..v:getDataInt("reset").."] - "..name_now..space.." ".." ".."".."\n" until v:next() == false return true end
  2. function onTargetTile(cid, position) position.stackpos = 255 doConvinceCreature(cid, doCreateMonster("Sumoned Ghoul", position, false)) doSendMagicEffect(position, CONST_ME_MAGIC_BLUE) return true end local arr = { {0, 0, 0}, {0, 2, 0}, {0, 1, 0}, } local area, combat = createCombatArea(arr), createCombatObject() setCombatArea(combat, area) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile") function onCastSpell(cid, var) if #getCreatureSummons(cid) >= X then doPlayerSendCancel(cid, "You can\'t summon more monsters.") return false end return doCombat(cid, combat, var) end Substitui o X pelo quantidade maxima.
  3. Me manda qual tipo de VIP voce usa. substitui a linha doRemoveItem(item.uid) por (usando como exemplo o comando isVIP para determinar se eh vip.) if not isVip(cid) then doRemoveItem(item.uid) end
  4. bepokemon

    (Pedido) 3 Spells~

    Aqui as tres magias: Primeira magia: Segunda magia: Terceira magia: Testa as tres e me diz oque acontece.
  5. Poderia ter feito tables mais elaboradas. Experiencia e chance de forja. Receitas com mais items sem precisar editar manualmente. Sem usar a alavanca, mas sim um hammer, fica bem mais legal e o RPG fica melhor tambem. Algumas coisas que podem te ajudar: Nao funciona, mas nao quis tirar do post. Terminei o Script em MOD, vou postar e deixo o link aqui. Abraços.
  6. O segundo script, eu tentei resumir um pouco: function onUse(cid, item, frompos, item2, topos) config = { useInfoText = true, -- se voce quer que apareça na mensagem oque tem na bag. sendEffect = true, -- mandar efeito ao abrir prizes = {[32001] = {{id=2156,count=1},{id=7439,count=1},{id=7440,count=1},{id=7443,count=1},{id=12583,count=2}}, [32002] = {{id=5944,count=1},{id=2149,count=6},{id=11256,count=1},{id=12583,count=4}}, [32003] = {{id=7632,count=1},{id=9971,count=5},{id=12583,count=5}}} } local text = 'You have found a demon backpack' if getPlayerStorageValue(cid, item.uid) == -1 then local p = config.prizes[item.uid] local name = getItemNameById local bag = doPlayerAddItem(cid,10518,1) if config.useInfoText then text = text..' containing' end for i,v in ipairs(p) do if config.useInfoText then local a = v.count == 1 and getItemArticleById(v.id) or v.count if i ~= (table.maxn(p)-1) then text = text..' '..a..' '..name(v.id)..'' else text = text..' '..a..' '..name(v.id)..' and' end if i ~= table.maxn(p) then text = text..',' end end doAddContainerItem(bag, v.id, v.count) end text = text..'.' if config.sendEffect then doSendMagicEffect(frompos, 13) end setPlayerStorageValue(cid, item.uid, 1) else text = 'It is empty.' end doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,text) return TRUE end Testei e esta funcionando. Se a mensagem vir assim: Eh porque os items nao tem article/nome nos items.xml
  7. -- Script By: MapperNeto & Fireelement -- function onStepIn(cid, item, position, fromposition) local tp = {x = XXX, y = XXX, z = X} -- pra onde o jogador vai ser teleportado if isPlayer(cid) then doTeleportThing(cid,tp) doSendMagicEffect(getCreaturePosition(cid), 50) -- Efeito que aparecerá após Teleportado doPlayerSendTextMessage(cid, 22, "You're entering the lair of Devovorga.") -- Msg que aparecerá após Teleportado else doPlayerSendTextMessage(cid, 22, "You're entering the lair of Devovorga.") end return true end Isso ta errado ... vai dar erro toda vez que um monstro/npc pisar encima. -- Script By: MapperNeto & Fireelement -- function onStepIn(cid, item, position, fromposition) local tp = {x = XXX, y = XXX, z = X} -- pra onde o jogador vai ser teleportado if isPlayer(cid) then doTeleportThing(cid,tp) doSendMagicEffect(getCreaturePosition(cid), 50) -- Efeito que aparecerá após Teleportado doPlayerSendTextMessage(cid, 22, "You're entering the lair of Devovorga.") -- Msg que aparecerá após Teleportado return true end
  8. 50% de creditos para ctrl + c ~ ctrl + v em algo que todo mundo tem? Pior que voce ainda vai ganhar REP+ '
  9. Vem em todos os OTS atualmente ..
  10. Colocou registerCreatureEvent(cid, "nome") No login?
  11. Nossa, pra mim aquilo pareceu tao simples. Seria soh criar uma storage que conta os twitts .. twitts = getPlayerStorageValue(cid, 123456) setPlayerStorageValue(cid, 123456, twitts+1) Um "... nao sei o nome" na Database com: player_id id date time msg getPlayerGUID(cid) "..twitts.." os.date os.time "param" Nao ..? Eu nao mecho muito com database nem nunca usei nada do tipo 'os' ou 'oi' .. =/ Entao se quiser fazer eu agredeço, UHSAHSA. Faz se quiser s2 Otima ideia btw =) Sou seu fa. E sobre o mentions, nao seria: local maxMentions = 10 local mentions = {} local twitt = tostring(param) if twitt:find("@", maxMentions) then for n=1,#twitt:find("@", maxMentions) do -- tenho certeza que isso nao deve funcionar, espero que me ajude .. if twitt:match("@(.-)") ~= "@Skip_This_Mention" then mentions[n] = twitt:match("@(.-)") twitt:gsub(twitt:match("@(.-)"), "@Skip_This_Mention") end end for _,name in ipairs(mentions) do doSendTextMessage(getPlayerByName(name), 18, getCreatureName(cid).." mentioned you in a twitt:\n"..twitt) end end Ihh, viajei, nao sei fazer isso ._. Se souber .. me ensina? XD function getPlayerTwitts(cid) local twitts = {} local t, msg, date, time if getPlayerStorageValue(cid, 123456) == -1 then return false end for x=0,getPlayerStorageValue(cid, 123456) do t = db.getResult("SELECT `msg`, `date`, `time` FROM `player_twitts` WHERE `player_id` = ".. getPlayerGUID(cid) .. " and `id` = "..x..";") msg = t:getDataInt("msg") date = t:getDataInt("date") time = t:getDataInt("time") table.insert(twitts, x, {msg = msg, date = date, time = time}) t:free() end return twitts end Viajei mais ..
  12. function onThink(cid, interval) if getPlayerFood(cid) then return true end return doPlayerFeed(cid, food) end Soh escolher a comida, e registrar no Login. Deve funcionar.
  13. local shiny golem = {lookTupe = 693} lookTupe? ja deu pra ver que vai dar erro ..
  14. Aprenda como manipular Loops e Tables perfeitamente que voce vai ver como eh bom ser Scripter. Garanto. Se precisar de ajuda me adiciona no MSN: wiwauissu@hotmail.com
  15. O comando normalmente eh "/gogo Lugia" .. e tem que colocar o nome certinho, maiusculo.
  16. Voce poderia ter simplicado com alguns loops e storages, em vez de criar um item novo. Mas ta valendo, boa ideia.
  17. Pegando o topico da SkyDangerous, muda o code para isso: local prizes = { [60001] = {function = item, level = 20, reward = {2160, 2}}, [60002] = {function = teleport, level = 150, pos = {x=X,y=Y,z=Z}, msg = "Mensagem aqui"}, [60003] = {function = itemByVoc, level = 200, reward = { [1] = {id = IDDOITEM,count=1}, [2] = {id = ID, count=1}, [3] = {id = ID,count=1}, [4] = {id = ID,count=1}} } function onAdvance(cid, skill, oldlevel, newlevel) if(skill ~= SKILL__LEVEL)then return TRUE end for i,t in ipairs(prizes) do if not(getPlayerStorageValue(cid, i)) and t.level <= newlevel then if t.function == itemByVoc then local voc = getPlayerVocation(cid) local vocation = voc < 5 and voc or voc-4 local add = doPlayerAddItem(cid, t.reward[vocation].id, t.reward[vocation].count) if add then doPlayerSendTextMessage(cid, 19, "You have received ".getItemArticleById(t.reward[vocation].id)." ".getItemNameById(t.reward[2])." due to reaching level ".t.level.".") setPlayerStorageValue(cid, i, true) end return TRUE end if t.function == teleport then doTeleportThing(cid, t.pos) setPlayerStorageValue(cid, i, 1) doPlayerSendTextMessage(cid, 19, t.msg) return TRUE end if type(t.reward[1] ~= "table") then local add = doPlayerAddItem(cid, t.reward[1], t.reward[2]) if add then doPlayerSendTextMessage(cid, 19, "You have received ".t.reward[2]." ".getItemNameById(t.reward[2])." due to reaching level ".t.level.".") setPlayerStorageValue(cid, i, true) end else local bp = doCreateItemEx(1988, 1) for _,item in ipairs(t.reward) do doAddContainerItem(bp, item[1], item[2]) end local add = doPlayerAddItemEx(cid, bp) if add then doPlayerSendTextMessage(cid, 19, "You have received backpack with items due to reaching level ".t.level.".") setPlayerStorageValue(cid, i, true) end end end end return TRUE end Nao testei mas deve funcionar. Tem que alterar ali {x= POSIÇAO X, y = POSIÇAO Y, z = POSIÇAO Z} e msg = "MENSAGEM QUE IRA RECEBER QUANDO RECEBER O LEVEL" Edit -- Vi em um outro topico que voce queria especificar o item que vai ganhar de acordo com a vocation, ai fiz o script denovo. Tem que editar tambem o ID e o IDDOITEM para os items que voce quer. Lembrando que 1 = sorc, master sorc 2 = druid, elder druid 3 = paladin, royal paladin 4 = knight, elite knight
  18. @Demonbholder Coloca uma funçao que ve os ultimos 'x' twitts, ou todos que ja foram Twittados com data e tal .. (EX em ShowDialog) "Demonbholder twitted in October 14th Ola galera, esse eh meu novo talkaction e sistema de Twitter." Ou entao que apareçam todos os Twitts de todas as pessoas que voce segue. E que receba uma mensagem falando que alguem que voce segue Twittou algo. Otra coisa legal seriam as Mentions, (@PlayerName) .. E se tiver @ entao via mandar uma mensagem para o PlayerName que recebeu uma Twitt com ele Mencionado. Seria bom fazer algumas funçoes: getTwitterFollowers(cid) getTwitterFollowing(cid) getPlayerTwitts(cid) getTwittsByDate(date) coisas do genero .. =)
  19. Abre o o arquivo em data/monsters/monsters.xml Procure por Magikarp. Devem ter duas opçoes. (Magikarp_s / Magikarp s / Magikarp Fish) e (Magikarp) O "Magikarp" eh oque eh sumonado pelas pessoas, e nao possui nenhum ataque, pois ja sao utilizados os m1, m2 .. Os outros sao os pokemons 's' (Selvagens) e o Fish (nao tem em todos os OTS). Substitua os nomes para os respectivos selvagens. OBS: Da proxima vez manda o erro do console e coloque o codigo dentro de Spoler o Code. [code]Seu texto aqui[/ code] [spoiler]Seu texto aqui[/spoiler]
  20. local area = createCombatArea{{1}} function onCastSpell(cid, var) for n=0,40 do addEvent(function () fromPosition = getThingPos(cid) shootPos = {x = fromPosition.x+math.random(-7,7), y = fromPosition.y+math.random(-7,7), z = fromPosition.z} doSendDistanceShoot(getThingPos(cid), shootPos, 6) doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, shootPos, area, -800, -1500, 6) end, n*100) end return TRUE end Essa eh uma que fiz pra mim, se chama Burst Fury local area = createCombatArea{{1,1,1},{1,3,1},{1,1,1}} function onCastSpell(cid, var) local formula = (getPlayerLevel(cid)*0.5+getPlayerSkillLevel(cid, SKILL_DISTANCE)*1.2) for n=0,getPlayerLevel(cid)*0.3 do addEvent(function () fromPosition = getThingPos(cid) shootPos = {x = fromPosition.x+math.random(-4,4), y = fromPosition.y+math.random(-4,4), z = fromPosition.z} doSendDistanceShoot(getThingPos(cid), shootPos, 6) doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, shootPos, area, -formula*0.9, -formula*1.1, 6) end, n*100) end return TRUE end
  21. 1- Aconselho colocar um exhaustion nos grouds, algo do tipo, para que nao fiquem pisando o tempo todo neles pra upar. 2- Colocar os Pokemons que vao aparecer por Level, ou seja, um player level baixo nao vai "sumonar" um Onix dunada .. 3- Usar actionID em vez de itemID e criar uma table: local grounds = { [itemid] = { [1] = "Pokemon 1", [2] = "Pokemon 2" }} Em ordem de força. Depois na hora de selecionar um monstro coloca math.random(1,math.min(math.floor(getPlayerLevel(cid)*0.1), table.maxn(grounds[itemid])) Isso vai fazer um player level 10 sumonar ate o Pokemon 1, 20 ate o Pokemon 2, 30 .. e assim em diante ate o fim da Table. (EX: Se a table termina em 10 e o player eh level 150 entao vai ser 10 o maximo.) 4- Poderia colocar uma chance de sumonar em vez do exhaustion tambem .. 5- Otimo script, bela criativada =)
  22. getCreatureOutfit(monster.uid).lookType No caso, monster.uid tem que ser um Creature ID. EX: 1- cid 2- na funçao onKill: target Edit -- Nao tinha lido o topico principal .. mas seria assim: getMonsterInfo(monstername).lookType Tenta e me fala .. =) Desculpem o double post mas precisava criar outro pra nao confundir. Eu fiz e testei o script aqui para voce: Edit -- Ele juntou os posts de qualquer maneira ¬¬ local config = { addMonsterSpeed = true, addMonsterOutfit = true, addMonsterSpells = true, addItemDescription = true, conditionTime = 60, -- in seconds storageSpells = 23155, storageOutfit = 23255 } local spells = { ["Demon"] = { [1] = {learn = "Demon Beam", name = "Great Energy Beam", words = "demon gran vis lux"}, [2] = {learn = "Demon Explo", name = "Hells Core", words = "demon mas flam"} } } function onUse(cid, item, fromPosition, itemEx, toPosition) local text = "" local mname = getCreatureName(itemEx.uid) if isMonster(itemEx.uid) then doItemSetAttribute(item.uid, "transname", mname) doItemSetAttribute(item.uid, "description", "It is enchanted with the powers of the "..mname..".") doItemSetAttribute(item.uid, config.storageOutfit, getCreatureOutfit(itemEx.uid).lookType) doItemSetAttribute(item.uid, config.storageOutfit+1, getCreatureOutfit(itemEx.uid).lookHead) doItemSetAttribute(item.uid, config.storageOutfit+2, getCreatureOutfit(itemEx.uid).lookAddons) doItemSetAttribute(item.uid, config.storageOutfit+3, getCreatureOutfit(itemEx.uid).lookLegs) doItemSetAttribute(item.uid, config.storageOutfit+4, getCreatureOutfit(itemEx.uid).lookBody) doItemSetAttribute(item.uid, config.storageOutfit+5, getCreatureOutfit(itemEx.uid).lookFeet) text = text.."Your crystal has been enchanted. It have now the power of the "..mname.."." if spells[mname] ~= nil then s = spells[mname] text = text.."\nMonster\'s spells saved with the crystal:" doItemSetAttribute(item.uid, config.storageSpells, 0) for x=1,table.maxn(s) do doItemSetAttribute(item.uid, config.storageSpells, getItemAttribute(item.uid, config.storageSpells)+1) doItemSetAttribute(item.uid, config.storageSpells+x, s[x].learn) text = text.."\n#"..x.." - Name: "..s[x].name.." / Words: "..s[x].words.."." end doItemSetAttribute(item.uid, "description", getItemAttribute(item.uid, "description").." It have "..table.maxn(s).." spells stored in it.") end doPlayerSendTextMessage(cid, 18, text) elseif isPlayer(itemEx.uid) then if itemEx.uid ~= cid then doPlayerSendCancel(cid, "You can only transform yourself with the crystal.") return TRUE end transname = getItemAttribute(item.uid, "transname") if transname ~= nil then info = getMonsterInfo(tostring(transname)) doPlayerSendTextMessage(cid, 18, "You are now using the powers of the "..transname..".") outfit = {lookType = tonumber(getItemAttribute(item.uid, config.storageOutfit)), lookHead = tonumber(getItemAttribute(item.uid, config.storageOutfit)+1), lookAddons = tonumber(getItemAttribute(item.uid, config.storageOutfit)+2), lookLegs = tonumber(getItemAttribute(item.uid, config.storageOutfit)+3), lookBody = tonumber(getItemAttribute(item.uid, config.storageOutfit)+4), lookFeet = tonumber(getItemAttribute(item.uid, config.storageOutfit)+5)} doSetCreatureOutfit(cid, outfit, config.conditionTime*1000) if getItemAttribute(item.uid, config.storageSpells) ~= nil then spls = getItemAttribute(item.uid, config.storageSpells) text2 = "You\'ve learned "..spls.." spells from your crystal:" s = spells[transname] for x=1,spls do text2 = text2.."\n#"..x.." - Name: "..s[x].name.." / Words: "..s[x].words.."." doPlayerLearnInstantSpell(cid, s[x].learn) end doPlayerSendTextMessage(cid, 18, text2) end else doPlayerSendTextMessage(cid, 18, "Your crystal don\'t have any power stored.") end end return true end Ele eh todo em actions, voce soh precisa colocar um item QUE NAO SEJA STACKABLE (que nao se junte, tipo gold coin). Como funciona? Voce usa em um monstro e ele salva o nome do monstro, o outfit do monstro e as spells do monstro (se configurado) no Crystal. Se voce usar em voce mesmo depois disso ele vai te transformar no monstro e te dar as spells que ele salvou, se salvou. Como adicionar novos monstros e spells??? Esta table tem o nome do monstro e as spells que ele vai dar. Mude como desejar. local spells = { ["Demon"] = { [1] = {learn = "Demon Beam", name = "Great Energy Beam", words = "demon gran vis lux"}, [2] = {learn = "Demon Explo", name = "Hells Core", words = "demon mas flam"} } } Exemplo: local spells = { ["Demon"] = { [1] = {learn = "Demon Beam", name = "Great Energy Beam", words = "demon gran vis lux"}, [2] = {learn = "Demon Explo", name = "Hells Core", words = "demon mas flam"} }, ["Orc Spearman"] = { [1] = {learn = "Orc Spearman Spear", name = "Ethereal Spear", words = "orc spearman con"} } } Learn = nome da spell que voce vai criar no spells.xml name = nome da spell que vai aparecer para o player. words = words que serao faladas para a spell sair. Depois disso voce precisara criar uma spell no Spells.xml assim: (OBS: aconselho pegar a spell equivalente (EX: exori con para a do Orc Spearman, copiar e modificar)) <instant name="OQUE VOCE COLOCOU NO LEARN" words="OQUE VOCE COLOCOU NO WORDS" lvl="OQUE VOCE QUISER" mana="OQUE VOCE QUISER" prem="DEPENDE" selftarget="DEPENDE" exhaustion="DEPENDE" needlearn="1" event="script" value="SCRIPT DA SPELL.lua"> <vocation id="1-8"/> </instant> Lembrando que "DEPENDE" significa que depende da Spell. NEED LEARN TEM QUE ESTAR COMO 1. 'VOCATION ID="1-8"' significa que todas as vocations poderao usar.
  23. function onKill(cid, target) if isMonster(target) then name = getCreatureName(target) setPlayerStorageValue(cid, name, getPlayerStorageValue(cid, name) == -1 and 1 or getPlayerStorageValue(cid, name)+1) end return TRUE end agora coloca no login.lua pra registrar eventos e depois faz uma db.Query para ver quem tem o maior storage value para tal monstro.
  24. O Repel poderia ser um exhaustion. config { [id] = {30}, -- repel [id2] = {60}, -- super repel [id3] = {120} -- max repel } if getPlayerStorageValue(cid, "underquest") ~= -1 then doPlayerSendTextMessage(cid, 18, "You can\'t use a repel while you are doing a quest.") return FALSE end exhaustion.set(cid, "repel", config[item.itemid]) E depois colocar um CreatureScript para que quando um monstro atacasse alguem com o Exhaustion Repel nao fosse possivel? Ai funcionaria pra tudo. function onAttack(cid, target) if exhaustion.get(target, "repel") then return FALSE end return TRUE end Depois seria soh configurar pra nao poder usar em quests, talvez .. function onStepIn(cid, fromPosition) if exhaustion.get(cid, "repel") then exhaustion.set(cid, "repel", -1) setPlayerStorageValue(cid, "underquest", 1) doPlayerSendTextMessage(cid, 18, "Your repel status has been removed.") end return TRUE end
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...