MatheusGlad
Conde-
Total de itens
528 -
Registro em
-
Última visita
-
Dias Ganhos
30
Tudo que MatheusGlad postou
-
O script tem item2 e itemEx, so pode ter um, ou item2, ou itemEx Tenta assim: -- New MF rune******-- function onUse(cid, item, frompos, itemEx, topos) playerpos = {x=topos.x, y=topos.y, z=topos.z, stackpos=253} player = getThingfromPos(playerpos) ml = getPlayerMagLevel(cid) lvl = getPlayerLevel(cid) formula = math.random(((lvl+ml)*2)-(lvl-ml)) if itemEx.itemid == 1 and ml >= 2 then doSendMagicEffect(playerpos,1) doPlayerAddMana(player.uid,formula) doPlayerSay(player.uid,"Yeah Mana For me!",2) if item.type > 1 then doChangeTypeItem(item.uid,item.type-1) else doRemoveItem(item.uid,0) end end if itemEx.itemid == 1 and ml <= 1 then doSendMagicEffect(frompos,2) doPlayerSendCancel(cid,"You dont Have Magic Level to use this rune.") end if itemEx.itemid >= 2 then doPlayerSendCancel(cid,"You can only use this rune in you or in players.") doSendMAgicEffect(frompos,2) end if((not(isSorcerer(itemEx.uid) or isDruid(itemEx.uid)) or getPlayerLevel(itemEx.uid) < 80) and getPlayerCustomFlagValue(itemEx.uid, PlayerCustomFlag_GamemasterPrivileges) == FALSE) then doCreatureSay(itemEx.uid, "Only sorcerers and druids of level 80 or above may drink this fluid.", TALKTYPE_ORANGE_1) return TRUE end return 1 end
-
Da pra fazer, editando os items e adicionando um novo com o mesmo sprite, ou editando o attack de uma golden armor. Acho que a sessao correta para esse topico seria uma sessao de Duvidas.
-
Vá em data/creaturescripts/scrips, abra o login.lua, procure os registerCreatureEvent e adicione esse junto com eles: registerCreatureEvent(cid, "MaxLevel") Agora na mesma pasta adicione um arquivo.lua com o nome de maxlevel e bote esse script: local maxlevel = 200 function onAdvance(cid, skill, oldLevel, newLevel) if skill == SKILL__LEVEL then if newLevel > maxlevel then doPlayerAddExp(cid, getExperienceForLevel(maxlevel)-getPlayerExperience(cid)) return FALSE end end return TRUE end Depois va em creaturescripts.xml e adicione essa linha: <event type="advance" name="MaxLevel" event="script" value="maxlevel.lua"/>
-
Aqui nao aconteceu isso nao oO, deve ser algo no seu ot.
-
No script do exura voce bota isso: data/spells/scripts/healing/light healing.lua: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) local delay = 10 function onCastSpell(cid, var) local minformule = getPlayerMagLevel(cid)*6+getPlayerLevel(cid) local maxformule = getPlayerMagLevel(cid)*7+(getPlayerLevel(cid)*1.5) if os.time()-getPlayerStorageValue(cid, 66697) < delay then doPlayerSendCancel(cid, "Voce precisa esperar " .. delay-(os.time()-getPlayerStorageValue(cid, 66697)) .. " segundos para usar a magia novamente.") else setPlayerStorageValue(cid, 66697, os.time()) doCreatureAddHealth(cid, math.random(minformule, maxformule)) return doCombat(cid, combat, var) end end E agora voce vai na tag e tira o exausted deixando-o 0:
-
Va em data/talkaction/scripts e adicione um arquivo em formato lua e nomeio de tpromote e bote isso dentro: function onSay(cid, words, param, channel) local configs = { cost = 20000, level = 20 } if isPremium(cid) then if getPlayerLevel(cid) >= configs.level then if getPlayerPromotionLevel(cid) < 1 then if configs.cost <= 0 or doPlayerRemoveMoney(cid, configs.cost) then setPlayerPromotionLevel(cid, 1) else doPlayerSendCancel(cid, "Voce nao tem o dinheiro suficiente que é " .. configs.cost .. " gold coins.") end else doPlayerSendCancel(cid, "Voce ja é promoted.") end else doPlayerSendCancel(cid, "Voce precisa ser level " .. configs.level .. " ou maior para adiquirir a promotion.") end else doPlayerSendCancel(cid, "Voce precisa ser premium account para adiquirir a promotion.") end return TRUE end Depois va em talkaction.xml na pasta talkaction e bote essa linha: <talkaction words="!promotion" event="script" value="tpromote.lua"/> Pronto!
-
Funçao Dosendmagiceffectinarea(Firstpos, Area, Effect)
um tópico no fórum postou MatheusGlad Mods, funções e outros
Manda efeito em area? Function: function doSendMagicEffectInArea(firstpos, area, effect) for i = 1, #area do for s = 1, #area[1] do if area[i][s] ~= 0 then doSendMagicEffect({x=firstpos.x+s-1, y=firstpos.y+i-1, z=firstpos.z}, effect) end end end end Como usar: Voce vai precisar fazer uma area, e declarar a firstpos. Exemplo: A posiçao x,y,z em vermelho corresponde a posiçao ao primeiro "1" na area. A area em azul sera aonde ira mandar effeitos. como no sistema de spells. Oque esta em rosa eh o numero do effect que sera mandado. Flw, gogo aprender script pra fazer o seu sistema de M1. -
Nao, ja ta tudo configurado eh so botar os action id.
-
Va em data/actions/scripts e adicione um arquivo.lua com o nome de hellgorak e adicione esse script nele: function teleportDoor(cid, posdoor) local player = getCreaturePosition(cid) local pos = posdoor if player.x == pos.x and player.y > pos.y then doTeleportThing(cid, {x=player.x, y=player.y-2, z=player.z}) elseif player.x == pos.x and player.y < pos.y then doTeleportThing(cid, {x=player.x, y=player.y+2, z=player.z}) elseif player.x < pos.x and player.y == pos.y then doTeleportThing(cid, {x=player.x+2, y=player.y, z=player.z}) elseif player.x > pos.x and player.y == pos.y then doTeleportThing(cid, {x=player.x-2, y=player.y, z=player.z}) else doPlayerSendTextMessage(cid, 25, "Voce precisa estar na frente da porta.") end end function onUse(cid, item, frompos, item2, topos) if item.actionid == 51321 then if getPlayerStorageValue(cid, 66666) <= 0 then setPlayerStorageValue(cid, 66666, 1) doPlayerSendTextMessage(cid, 22, "Voce possuio a 1 parte do espirito de Hellgorak.") else doPlayerSendCancel(cid, "Voce já possui essa parte do Espirito de Hellgorak.") end elseif item.actionid == 51322 then if getPlayerStorageValue(cid, 66666) == 1 then setPlayerStorageValue(cid, 66666, 2) doPlayerSendTextMessage(cid, 22, "Voce possuio a 2 parte do espirito de Hellgorak.") else doPlayerSendCancel(cid, "Voce já possui essa parte do Espirito de Hellgorak.") end elseif item.actionid == 51323 then if getPlayerStorageValue(cid, 66666) == 2 then setPlayerStorageValue(cid, 66666, 3) doPlayerSendTextMessage(cid, 22, "Voce possuio a 3 parte do espirito de Hellgorak.") else doPlayerSendCancel(cid, "Voce já possui essa parte do Espirito de Hellgorak.") end elseif item.actionid == 51324 then if getPlayerStorageValue(cid, 66666) == 3 then setPlayerStorageValue(cid, 66666, 4) doPlayerSendTextMessage(cid, 22, "Voce possuio a 4 parte do espirito de Hellgorak.") else doPlayerSendCancel(cid, "Voce já possui essa parte do Espirito de Hellgorak.") end elseif item.actionid == 51325 then if getPlayerStorageValue(cid, 66666) == 4 then setPlayerStorageValue(cid, 66666, 5) doPlayerSendTextMessage(cid, 22, "Voce possuio a 5 parte do espirito de Hellgorak.") else doPlayerSendCancel(cid, "Voce já possui essa parte do Espirito de Hellgorak.") end elseif item.actionid == 51326 then if getPlayerStorageValue(cid, 66666) == 5 then setPlayerStorageValue(cid, 66666, 6) doPlayerSendTextMessage(cid, 22, "Voce possuio a 6 parte do espirito de Hellgorak.") else doPlayerSendCancel(cid, "Voce já possui essa parte do Espirito de Hellgorak.") end elseif item.actionid == 46211 then if getPlayerStorageValue(cid, 66666) >= 1 then teleportDoor(cid, topos) else doPlayerSendCancel(cid, "Voce precisa da primeira parte do espirito de Hellgorak para passar por esta porta.") end elseif item.actionid == 46212 then if getPlayerStorageValue(cid, 66666) >= 2 then teleportDoor(cid, topos) else doPlayerSendCancel(cid, "Voce precisa da segunda parte do espirito de Hellgorak para passar por esta porta.") end elseif item.actionid == 46213 then if getPlayerStorageValue(cid, 66666) >= 3 then teleportDoor(cid, topos) else doPlayerSendCancel(cid, "Voce precisa da terceira parte do espirito de Hellgorak para passar por esta porta.") end elseif item.actionid == 46214 then if getPlayerStorageValue(cid, 66666) >= 4 then teleportDoor(cid, topos) else doPlayerSendCancel(cid, "Voce precisa da quarta parte do espirito de Hellgorak para passar por esta porta.") end elseif item.actionid == 46215 then if getPlayerStorageValue(cid, 66666) >= 5 then teleportDoor(cid, topos) else doPlayerSendCancel(cid, "Voce precisa da quinta parte do espirito de Hellgorak para passar por esta porta.") end elseif item.actionid == 46216 then if getPlayerStorageValue(cid, 66666) >= 6 then teleportDoor(cid, topos) else doPlayerSendCancel(cid, "Voce precisa da sexta parte do espirito de Hellgorak para passar por esta porta.") end end return TRUE end Depois va em data/actions abra o actions.xml e adicione essa linha: <action actionid="51321-51326;46211-46216" event="script" value="hellgorak.lua" /> Bem agora voce precisa ir no map editor e botar os seguintes ActionsIds:
-
local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function playerHaveItems(cid, itemid) -- by MatheusMkalo local items = type(itemid) == "table" and itemid or {itemid} for i = 1, #items do if getPlayerItemCount(cid, items[i]) <= 0 then return false end end return true end function doPlayerRemoveItems(cid, itemid, count) -- by MatheusMkalo local items = type(itemid) == "table" and itemid or {itemid} for i = 1, #items do doPlayerRemoveItem(cid, items[i], count ~= nil and count or 1) end return nil end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end if msgcontains(msg, "trocar") then if playerHaveItems(cid, {2335, 2336, 2337, 2338, 2339, 2340, 2341}) then doPlayerRemoveItems(cid, {2335, 2336, 2337, 2338, 2339, 2340, 2341}, 1) doPlayerAddItem(cid, 2342, 1) else selfSay("Voce nao tem os items nescessarios para trocar por um novo.") end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Erros bobos, desculpe
-
Ajuda! God E Gm - Participando Do Lottery System
tópico respondeu ao nilvagnersix de MatheusGlad em Lixeira Pública
Tenta esse: <?xml version="1.0" encoding="UTF-8"?> <mod name="Lottery" enabled="yes"> <config name="lottery_config"><![CDATA[ t = { lottery_hour = "1 hours", -- Time to next lottery (you set the real time on interval, it's only for the broadcast message.) rewards_id = {2160, 2195, 2534, 2173}, -- ID's of rewards stackable_amount = 10, -- amount, if this it's a stackable item website = true -- Do you have `lottery` table in your database? } ]]></config> <globalevent name="lottery" interval="600000" event="buffer"><![CDATA[ domodlib('lottery_config') local list = getPlayersOnline() function onlyHaveGmOnline() for i = 1, #getPlayersOnline() do if getPlayerAccess(getPlayersOnline()[i]) <= 2 then return false end end return true end function getWinner() if onlyHaveGmOnline() then return false end local winner = getPlayersOnline()[math.random(#getPlayersOnline())] while getPlayerAccess(winner) >= 3 do winner = getPlayersOnline()[math.random(#getPlayersOnline())] end return winner end if #list > 0 then local winner, item = getWinner(), t.rewards_id[math.random(#t.rewards_id)] if not winner then return false end local stackable = getItemInfo(item).stackable doPlayerAddItem(winner, item, stackable and t.stackable_amount or 1) doBroadcastMessage('[sYSTEM LOTTERY]\nWinner: '.. getCreatureName(winner) ..',\nPremio: '.. (stackable and t.stackable_amount ..' ' or '') .. (stackable and getItemInfo(item).plural or getItemNameById(item)) .. '.\nCongratulations!\n(Next lottery in '.. t.lottery_hour ..')') if t.website then db.executeQuery("INSERT INTO `lottery` (`name`, `item`, `world_id`) VALUES ('".. getCreatureName(winner) .."', '".. getItemNameById(item) .."', '".. getConfigValue('worldId') .."');") end end return true ]]></globalevent> </mod> -
[Pedido] Shrinetele.lua - Tp Para A Salinha De Encantar Smeralds
tópico respondeu ao buzurck de MatheusGlad em Lixeira Pública
function onUse(cid, item, frompos, item2, topos) if isInArray({1,2,5,6}, getPlayerVocation(cid)) then if getPlayerLevel(cid) >= 30 then doPlayerSendTextMessage(cid, 22, "Bem-vindo ao Shrine, onde voce pode encantar suas armas.") doTeleportThing(cid, {x=98, y=43, z=10}) else doPlayerSendCancel(cid, "Apenas players level 30 ou mais podem usar o shrine.") end else doPlayerSendCancel(cid, "Apenas druids e sorcerers podem usar o shrine.") end return TRUE end -
Ao Usar, Teleportar Para Uma Área Aleatória.
pergunta respondeu ao brunin86 de MatheusGlad em Scripts
function onUse(cid, item, frompos, item2, topos) local poses = { [1] = {x = 1053, y = 1048, z = 7}, [2] = {x = 1043, y = 1048, z = 7}, } doTeleportThing(cid, poses[math.random(1, #poses)]) return TRUE end -
[Creaturescript - Onlogin] Quando Logar New Char, Logar Em Outra Position
pergunta respondeu ao buzurck de MatheusGlad em Scripts
function onLogin(cid) local novapos = {x=98, y=11, z=7} -- send player here first log in. local playername = getPlayerName(cid) if getPlayerStorageValue(cid, 18541) <= 0 then doTeleportThing(cid, novapos) doPlayerSendTextMessage(cid, 22,"Welcome to the danger Line " .. playername .. ".") doSendMagicEffect(novapos, 2) setPlayerStorageValue(cid, 18541, 1) else doPlayerSendTextMessage(cid, 22,"Welcome to the danger Line " .. playername .. ".") end return TRUE end -
data/npc/scripts/troca7npc.lua: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function playerHaveItems(cid, itemid) -- by MatheusMkalo local items = type(itemid) == "table" and itemid or {itemid} for i = 1, items do if getPlayerItemCount(cid, items[i]) <= 0 then return false end end return true end function doPlayerRemoveItems(cid, itemid, count) -- by MatheusMkalo local items = type(itemid) == "table" and itemid or {itemid} for i = 1, items do doPlayerRemoveItem(cid, items[i], count ~= nil and count or 1) end return nil end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end if msgcontains(msg, "trocar") then if playerHaveItems(cid, {2335, 2336, 2337, 2338, 2339, 2340, 2341}) then doPlayerRemoveItems(cid, {2335, 2336, 2337, 2338, 2339, 2340, 2341}, 1) doPlayerAddItem(cid, 2342, 1) else selfSay("Voce nao tem os items nescessarios para trocar por um novo.") end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) data/npc/Trocador de Items.xml: <?xml version="1.0" encoding="UTF-8"?> <npc name="Trocador" script="troca7npc.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="128" head="17" body="54" legs="114" feet="0" addons="2"/> <parameters> <parameter key="message_greet" value="Ola, diga {trocar} para trocar 7 items por 1."/> </parameters> </npc> Nao testei, se nao funcionar avise.
-
nao funciona em 8.4 porque nao tem a funçao doSetItemAttribute e a getItemAttribute.
-
Bem eu tava jogando um ot, ai eu usava potion e adicionava umas 300 mana fluid separadas na minha bp e dava pra eu usar potion de mage em um kina, ai eu fiz um sistema de potion pra nao dar mais esse bug pra postar ai: Vá em data/actions/scripts/liquids, abra o script potions.lua, e mude para esse script: local all = {1,2,3,4,5,7,6,8} -- All Vocations. local potions = { [7620] = {vocations = all, emptypotion = 7636, mana = {70, 130}}, [7589] = {level = 50, vocations = {1, 2, 3, 5, 6, 7}, emptypotion = 7634, mana = {110, 190}}, [7590] = {level = 80, vocations = {1, 2, 5, 6}, emptypotion = 7635, mana = {200, 300}}, [8704] = {vocations = all, emptypotion = 7636, health = {50, 100}}, [7618] = {vocations = all, emptypotion = 7636, health = {100, 200}}, [7588] = {level = 50, vocations = {3, 4, 7, 8}, emptypotion = 7634, health = {200, 400}}, [7591] = {level = 80, vocations = {4, 8}, emptypotion = 7635, health = {500, 700}}, [8473] = {level = 130, vocations = {4, 8}, emptypotion = 7635, health = {800, 1000}}, [8472] = {level = 80, vocations = {3, 7}, emptypotion = 7635, health = {200, 400}, mana = {110, 190}}, } local potionc = "transform" -- Use "transform" to transform into a empty potion, "remove" to remove the potion, "infinty" to infinit potion. function getVocNames(tab) function getVocName(v) return isInArray({1, 5}, v) and "sorcerers" or isInArray({2, 6}, v) and "druids" or isInArray({3,7}, v) and "paladins" or isInArray({4,8}, v) and "knights" or "" end for i = 1, #tab do if not string.find((a == nil and "" or a), getVocName(tab[i])) then a = a and a .. " and " .. getVocName(tab[i]) or getVocName(tab[i]) end end return a end function onUse(cid, item, fromPosition, itemEx, toPosition) if isPlayer(itemEx.uid) then if getPlayerAccess(cid) >= 4 or isInArray(potions[item.itemid].vocations, getPlayerVocation(itemEx.uid)) and getPlayerLevel(itemEx.uid) >= (potions[item.itemid].level == nil and 0 or potions[item.itemid].level) and getPlayerLevel(cid) >= (potions[item.itemid].level == nil and 0 or potions[item.itemid].level) then if potions[item.itemid].mana then doCreatureAddMana(itemEx.uid, math.random(potions[item.itemid].mana[1], potions[item.itemid].mana[2])) end if potions[item.itemid].health then doCreatureAddHealth(itemEx.uid, math.random(potions[item.itemid].health[1], potions[item.itemid].health[2])) end if potionc == "transform" then if getPlayerItemById(cid, TRUE, potions[item.itemid].emptypotion).uid ~= 0 then if getPlayerItemById(cid, TRUE, potions[item.itemid].emptypotion).type < 100 then doTransformItem(getPlayerItemById(cid, TRUE, potions[item.itemid].emptypotion).uid, potions[item.itemid].emptypotion, getPlayerItemById(cid, TRUE, potions[item.itemid].emptypotion).type+1) doRemoveItem(item.uid, 1) else doPlayerAddItem(cid, potions[item.itemid].emptypotion, 1) doRemoveItem(item.uid, 1) end else doPlayerAddItem(cid, potions[item.itemid].emptypotion, 1) doRemoveItem(item.uid, 1) end elseif potionc == "remove" then doRemoveItem(item.uid, 1) end doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) else return doCreatureSay(itemEx.uid, "Only " .. getVocNames(potions[item.itemid].vocations) .. (potions[item.itemid].level and " of level " .. potions[item.itemid].level .. " or above " or " ") .. "may drink this fluid.", TALKTYPE_ORANGE_1) end end return TRUE end Bem é so isso mesmo, kkk a configuraçao eh bem facilzinha de fazer e voce pode adicionar pra healar mana e health nos potions tranquilo. Nao da rep nao, aperta o botao do Eu recomendo! que eh melhor
-
Mam czarów m1 skryptu, ale jest w mojej drużynie i nie mogę zapewnia I have spells m1 script, but it is on my team and I can not give Eu tenho o script de magias m1, porem ele esta na minha equipe e eu nao posso dar
-
Sistema de megasena 80% riaria, vou postar jaja, depois que eu voltar do colegio.
-
[Arquivado]Funçao Docreateiteminarea(Firstpos, Area, Tab)
tópico respondeu ao MatheusGlad de MatheusGlad em Noticias - Arquivo
Bem legal, to aqui pra ajudar, qlqr coisa eh so chamar POST 666 FUCK YEAAAAAAHHHHHHHHHHH -
[Arquivado]Funçao Docreateiteminarea(Firstpos, Area, Tab)
tópico respondeu ao MatheusGlad de MatheusGlad em Noticias - Arquivo
Funçao atualizada, agora da pra botar actionids nos items!
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.