-
Total de itens
648 -
Registro em
-
Última visita
-
Dias Ganhos
5
Tudo que larissaots postou
-
Créditos à Renato. Objetivo Simples, você fala !soft e recarrega sua soft por X valor. Retorna erro caso não tenha a grana ou a worn soft boots. Tutorial soft.lua function onSay (cid, words, param, channel) local preco = 10000 -- gold coins local wornId = yyyy -- id da worn soft boots, bota descarregada local newId = xxxx -- id da nova soft boots, bota carregada if getPlayerItemCount(cid, wornId) >= 1 and getPlayerMoney(cid) >= preco then doSendMagicEffect(getPlayerPosition(cid), 12) doPlayerRemoveItem(cid, wornId) doPlayerAddItem(cid, newId) doPlayerRemoveMoney(cid, preco) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você recarregou sua soft por "..preco.." gps.") else doSendMagicEffect(getPlayerPosition(cid), 2) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não tem "..preco.." gps ou uma worn soft boots para poder recarregar.") return TRUE end end Atenção! Aqui nestes dois locais: local wornId = yyyy local newId = xxxx Troque o yyyy pelo ID da worn soft boots (descarregada) e o xxxx pelo ID da soft boots (carregada). Em data/talkactions/talkactions.xml ponha a tag em qualquer lugar: <talkaction log="yes" words="!soft" access="0" event="script" value="soft.lua">
-
Créditos à Kamii. Prévia https://vid.me/O1hJ Comando !rainbow on = Ligar o Rainbow Outfit !rainbow off = Desligar o Rainbow Outfit Tutorial Em talkactions/scripts crie um arquivo chamado rainbow.lua e então coloque esse conteúdo dentro: local colors = {94, 81, 79, 88, 18, 11, 92, 128} local storage = 65535 local time = 10 --in miliseconds function onSay(cid, words, param, channel) if(param == "on") then if getPlayerStorageValue(cid, storage) < 1 then if doPlayerRemoveMoney(cid, 0) == TRUE then local event = addEvent(changeOutfit, time, cid) setPlayerStorageValue(cid, storage, 1) return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You do not have enough money.") return TRUE end else return TRUE end elseif(param == "off") then if getPlayerStorageValue(cid, storage) > 0 then setPlayerStorageValue(cid, storage, 0) return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You do not have rainbow outfit on.") return TRUE end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Use !rainbow on-off.") return TRUE end return TRUE end function changeOutfit(cid) local randomHead = colors[math.random(#colors)] local randomLegs = colors[math.random(#colors)] local randomBody = colors[math.random(#colors)] local randomFeet = colors[math.random(#colors)] local tmp = {} if getPlayerStorageValue(cid, storage) > 0 then local outfit = getCreatureOutfit(cid) tmp = outfit tmp.lookType = outfit.lookType tmp.lookHead = randomHead tmp.lookLegs = randomLegs tmp.lookBody = randomBody tmp.lookFeet = randomFeet tmp.lookAddons = outfit.lookAddons doCreatureChangeOutfit(cid, tmp) local event = addEvent(repeatChangeOutfit, time, cid) return TRUE else stopEvent(event) return TRUE end end function repeatChangeOutfit(cid) local randomHead = colors[math.random(#colors)] local randomLegs = colors[math.random(#colors)] local randomBody = colors[math.random(#colors)] local randomFeet = colors[math.random(#colors)] local tmp = {} if getPlayerStorageValue(cid, storage) > 0 then local outfit = getCreatureOutfit(cid) tmp = outfit tmp.lookType = outfit.lookType tmp.lookHead = randomHead tmp.lookLegs = randomLegs tmp.lookBody = randomBody tmp.lookFeet = randomFeet tmp.lookAddons = outfit.lookAddons doCreatureChangeOutfit(cid, tmp) local event = addEvent(changeOutfit, time, cid) return TRUE else stopEvent(event) return TRUE end end No talkactions.xml coloque: <talkaction words="!rainbow" event="script" value="rainbow.lua"/>
-
Créditos à leonardobo. Tutorial Em talkactions/scripts crie um arquivo chamado prisiontp.lua e então coloque esse conteúdo dentro: function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Precisa de um nome Exemplo: !prender Joao") return true end local tid = cid if(param ~= '') then tid = getPlayerByNameWildcard(param) if(not tid or (isPlayerGhost(tid) and getPlayerGhostAccess(tid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. param .. " nao encontrado.") return true end end pos = {x=1017, y=1034, z=7} -- POSIÇÃO AONDE SERA TELEPORTADO. if(doTeleportThing(tid, pos, true) and not isPlayerGhost(tid)) then doSendMagicEffect(pos, CONST_ME_TELEPORT) if tid then doPlayerSendTextMessage(tid, MESSAGE_STATUS_WARNING, "Voce foi preso !") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce prendeu ".. getPlayerName(tid) ..". ") end end return true end Agora na mesma pasta, talkactions/scripts crie um arquivo chamado liberartp.lua e então coloque esse conteúdo dentro: function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Precisa de um nome Exemplo: !liberar Joao") return true end local tid = cid if(param ~= '') then tid = getPlayerByNameWildcard(param) if(not tid or (isPlayerGhost(tid) and getPlayerGhostAccess(tid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. param .. " nao encontrado.") return true end end local pos = getPlayerTown(tid) if(doTeleportThing(tid, getTownTemplePosition(pos), true) and not isPlayerGhost(tid)) then if tid then doPlayerSendTextMessage(tid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce foi liberado !") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce liberou ".. getPlayerName(tid) ..". ") end end return true end No talkactions.xml coloque: <talkaction log="yes" words="/prender" access="5" event="script" value="prisiontp.lua"/> <talkaction log="yes" words="/liberar" access="5" event="script" value="liberartp.lua"/>
-
Créditos à Nogard. Objetivo Através de um único comando, você dará de presente, item ou dinheiro. O player será avisado. Com o comando também é possível mandar uma mensagém. Como funciona /giveto Player, gold coin (ou item id), 41 15:25 You give 41 gold coin to Player. 15:25 You received 41 gold coin from Azhaurn. /giveto Azhaurn, gold coin, 89, Presente! (: 20:31 You received 90 gold coin from Player. 20:31 Message: Presente! (: Tutorial Em talkactions/scripts crie um arquivo chamado presente.lua e então coloque esse conteúdo dentro: --Give a present!-- function onSay (cid, words, param) local s = string.explode(param, ",") if (param == "") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Param required.") return true end if not isPlayer(getPlayerByNameWildcard(s[1])) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player not found.") return true end if s[1] == getCreatureName(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You cannot give yourself.") return true end if s[3] == nil or s[3] == "" or s[2] == nil then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Write the item and value.") return true end -- local arr = { items = {2148, -- Items possible to give 2160, 2463}, } local g = "Items that you can give:\n\n"..getItemNameById(arr.items[1]).."\nDescription: A coin made of gold, nice present.\n\n".. getItemNameById(arr.items[2]).."\nDescription: ~~~~~~~~~\n\n" --[[-- For add more descriptions, copy this: ..getItemNameById(arr.items[Position of value in array]).."\n Description: ~~~~~~~~~\n\n" ]]-- if not isNumber(s[2]) then if isInArray(arr.items, getItemIdByName(s[2])) then if (doPlayerRemoveItem(cid, getItemIdByName(s[2]), s[3]) == true) then local bag = doPlayerAddItem(getPlayerByName(s[1]), 1990, 1) doAddContainerItem(bag, getItemIdByName(s[2]), s[3]) doSendAnimatedText(getCreaturePosition(cid), "Sucess!", COLOR_GREEN) doPlayerSendTextMessage(getPlayerByNameWildcard(s[1]), MESSAGE_STATUS_CONSOLE_ORANGE, "You received "..s[3].." "..s[2].." from "..getCreatureName(cid)..".") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "You gave "..s[3].." "..s[2].." to "..s[1]..".") doSendMagicEffect(getCreaturePosition(getPlayerByName(s[1])), 28) if s[4] ~= nil then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Message: "..s[4].."\n Respectfully, "..getCreatureName(cid)..".") else return true end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You dont have this ammount.") return true end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You cannot give this item. Please, check list.") doShowTextDialog(cid, 2105, g) return true end return true end --- if isInArray(arr.items, s[2]) then if (doPlayerRemoveItem(cid, s[2], s[3])== true) then local bag = doPlayerAddItem(getPlayerByName(s[1]), 1990, 1) doAddContainerItem(bag, s[2], s[3]) doSendAnimatedText(getCreaturePosition(cid), "Sucess!", COLOR_GREEN) doPlayerSendTextMessage(getPlayerByNameWildcard(s[1]), MESSAGE_STATUS_CONSOLE_ORANGE, "You received "..s[3].." "..getItemNameById(s[2]).." from "..getCreatureName(cid)..".") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "You gave "..s[3].." "..getItemNameById(s[2]).." to "..s[1]..".") doSendMagicEffect(getCreaturePosition(getPlayerByName(s[1])), 28) if s[4] ~= nil then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Message: "..s[4].."\n Respectfully, "..getCreatureName(cid)..".") else return true end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You dont have this ammount.") return true end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You cannot give this item. Please, check list.") doShowTextDialog(cid, 2105, g) return true end return true end No talkactions.xml coloque: <talkaction words="/giveto" event="script" value="presente.lua"/>
-
action Dar X item para o player (Útil para eventos)
um tópico no fórum postou larissaots Actions e Talkactions
Créditos à ViitinG. Objetivo O ADM do servidor digita um comando para dar X quantidade de item para X player. Útil para quando terminar um evento o ADM dar X item para tal player pelo comando e não jogando o item no chão. Como funciona /giveitem nome do player, id item, quantidade Tutorial Em talkactions/scripts crie um arquivo chamado giveitem.lua e então coloque esse conteúdo dentro: function onSay(cid, words, param) local param = param.explode(param, ',') local item = param[2] if isPlayer(getPlayerByName(param[1])) and tonumber(param[2]) and tonumber(param[3]) then doPlayerSendTextMessage(getCreatureByName(param[1]), 22, "Você acabou de receber "..param[3].." "..getItemNameById(item).." do ADM!") doPlayerAddItem(getCreatureByName(param[1]), param[2], param[3]) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have to use /giveitem Name,Itemid,Count.") end return TRUE end No talkactions.xml coloque: <talkaction log="yes" access="5" words="/giveitem" event="script" value="giveitem.lua"/> -
action Buy bless com preço de acordo com nível
um tópico no fórum postou larissaots Actions e Talkactions
Créditos à tddf1995. Objetivo Quanto maior o level do jogador mais ele irá gastar na bless, ou seja, o dinheiro fica com mais valor e ajuda os novatos. Tutorial talkactions.xml <talkaction words="!bless;/bless;!buybless;/buybless" event="script" value="buybless.lua"/> buybless.lua --by tddf1995 local valor = getPlayerLevel(cid) * 2000 -- Onde está 2000 edite para o valor que você quiser, é LEVEL do jogador X valor function onSay(cid, words, param) if doPlayerRemoveMoney(cid, valor) == TRUE and not getPlayerBlessing(cid,1) then for b=1, 5 do doPlayerAddBlessing(cid, b) end doSendMagicEffect(getThingPosition(cid), CONST_ME_HOLYDAMAGE) doCreatureSay(cid, "BLESS: Você está protegido!", TALKTYPE_ORANGE_1) else doCreatureSay(cid, "Você não tem dinheiro suficiente ou já tem a bless", TALKTYPE_ORANGE_1) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) end end -
action Deletando players por comando [Atualizado]
um tópico no fórum postou larissaots Actions e Talkactions
Créditos à keilost1. Objetivo Com apenas o comando /delete você irá deletar os players de seu servidor. Como funciona Para deletar o player: /delete Nome,1 Para remover o delete: /delete Nome,0 Tutorial Em talkactions/scripts crie um arquivo chamado deleteplayer.lua e então coloque esse conteúdo dentro: function onSay(cid, words, param) local t = string.explode(param, ",") if(t == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end local pid = getCreatureByName("".. t[1] .."") if isPlayer(pid) then doRemoveCreature(pid) end if t[2] == 1 then db.executeQuery("UPDATE `otserv`.`players` SET `deleted` = '1' WHERE `players`.`name` =".. t[1] ..";") doPlayerSendTextMessage(cid, 27, "Player ".. t[1] .." foi deletado.") end if t[2] == 0 then db.executeQuery("UPDATE `otserv`.`players` SET `deleted` = '0' WHERE `players`.`name` =".. t[1] ..";") doPlayerSendTextMessage(cid, 27, "O delete do player ".. t[1] .." foi retirado.") end return true end No talkactions.xml coloque: <talkaction words="/delete" event="script" value="deleteplayer.lua"/> -
Créditos ao keilost1. Objetivo Os tutores (ou outro cargo) utilizam o comando e anuncia a seguinte mensagem: 04:14 O Tutor Fulano está no Help Channel respondendo duvidas. Ele tem uma limitação de 15 minutos para usar novamente e há a função que identifica qual group é do player. Comando /anunciar Tutorial Em talkactions/talkactions.xml coloque a seguinte tag: <talkaction log="yes" words="/anunciar" access="2" event="script" script="staffbroad.lua"/> Agora em talkactions/scripts crie um arquivo lua chamado staffbroad e coloque o seguinte conteúdo: function getNameGroup(group) local groups = {"Player", "Tutor", "Senior Tutor", "Gamemaster", "Community Manager", "Administrador"} return groups[group] end function onSay(cid, words, param, channel) local gbb = 82389239 if getPlayerStorageValue(cid, gbb) - os.time() > 0 then doPlayerSendTextMessage(cid, 27, "O comando só pode ser executado de 15 em 15 minutos.") return true end doBroadcastMessage("O "..getNameGroup(getPlayerGroupId(cid)).." "..getPlayerName(cid).." está no Help Channel respondendo duvidas.") setPlayerStorageValue(cid, gbb, os.time() + 15 * 60) return true end
-
Tamanho: 23.6 MB Conteúdo: Há houses e spawns, tudo 100%. Categoria: Mapa. Versão: 10.77 Créditos: Abc, Pozdrowienia, Krolm, Thorge, Matrix, Pozdrowienia, Ramqu, Pumba, Whale, Gaspar, Artii. Anexos: Scan | Download Screenshot;
-
Tamanho: 29.8 MB Conteúdo: Há houses e spawns, tudo 100%. Categoria: Mapa. Versão: 10.77 Créditos: Peonso Anexos: Scan | Download Screenshot;
-
Tamanho: 32.1 MB Conteúdo: Há houses e spawns, tudo 100%. Categoria: Mapa. Versão: 10.77 Créditos: norah.pl Anexos: Scan | Download Screenshot;
-
Tamanho: 34 MB Conteúdo: Há houses e spawns, tudo 100%. Categoria: Mapa. Versão: 10.77 Créditos: Alvanea. Anexos: Scan | Download Screenshot;
-
Tamanho: 7,09 MB. Conteúdo: Não há spawns e nem houses. Categoria: Mapa. Versão: 10.77 Créditos: Menoxcide, Raell's Kill's, Raell's Undead. Anexos: Scan | Download Screenshot;
-
Tamanho: 29.2 MB Conteúdo: Há houses e spawns, tudo 100%. Categoria: Mapa. Versão: 10.77 Créditos: 5mok3 Anexos: Scan | Download Screenshot;
-
Tamanho: 9.43 MB Conteúdo: Não há spawns e nem houses. Categoria: Mapa. Versão: 10.77 Créditos: Neon, Demon Eldorath, Peroxide. Anexos: Scan | Download Screenshot;
-
creatureevent Mostrar a quantidade que morreu e que matou ao dar look no player
um tópico no fórum postou larissaots Globalevents e Spells
Créditos ao Critico e tev. Prévia Tutorial Crie um arquivo KillsandDeath.lua function onLook(cid, thing, position, lookDistance) function getDeathsAndKills(cid, type) -- by vodka local query,d = db.getResult("SELECT `player_id` FROM "..(tostring(type) == "kill" and "`player_killers`" or "`player_deaths`").." WHERE `player_id` = "..getPlayerGUID(cid)),0 if (query:getID() ~= -1) then repeat d = d+1 until not query:next() query:free() end return d end if isPlayer(thing.uid) then doPlayerSetSpecialDescription(thing.uid, "\n"..(getPlayerSex(thing.uid) == 0 and "She" or "He").." has Killed: ["..getDeathsAndKills(thing.uid, "kill").."] Players.\n"..(getPlayerSex(thing.uid) == 0 and "She" or "He").." has Died: ["..getDeathsAndKills(thing.uid, "death").."] Times") end return true end No creaturescript.xml, coloque: <event type="look" name="showKD" event="script" value="KillsandDeath.lua"/> Em creaturescript/script/login.lua, coloque: registerCreatureEvent(cid, "showKD")- 10 respostas
-
- [tfs 0.4 / 0.6]
- ou +
-
(e 3 mais)
Tags:
-
moveevent Ao equipar x item, seu outfit muda
um tópico no fórum postou larissaots Actions e Talkactions
Créditos ao tev. Objetivo Quando o player equipa x item, o outfit dele muda para x outfit. Se ele deixa de equipar esse item, o outfit dele volta ao de antes. Tutorial Vá em data/movements/scripts e crie um arquivo changeoutfit.lua, coloque: local look = 3 -- Coloque o ID do outfit function onEquip(cid, item) doSetCreatureOutfit(cid, {lookType = look}, -1) return true end function onDeEquip(cid, item) doRemoveCondition(cid, CONDITION_OUTFIT) return true end Agora em Movements.xml, acrescente: <movevent type="Equip" itemid="ID DO ITEM" slot="ammo" script="changeoutfit.lua"/> <movevent type="DeEquip" itemid="ID DO ITEM" slot="ammo" script="changeoutfit.lua"/> -
Preciso que você poste seu highscores, para tentar fazer a alteração. Beijos.
-
creatureevent Anunciar morte de boss (O player x matou o boss x!)
um tópico no fórum postou larissaots Globalevents e Spells
Créditos à zipter98. Objetivo Aparecerá uma mensagem no Local Chat avisando que x jogador matou x boss. O player [NickDoPlayer] matou o boss [NomeDoBoss]! Tutorial Vá em data/creaturescripts/scripts e crie o arquivo anunciomonstro.lua local monster = "monster_name" --Nome do monstro. function onDeath(cid, corpse, deathList) if isMonster(cid) and getCreatureName(cid) == monster and isPlayer(deathList[2] or deathList[1]) then broadcastMessage("O player "..getCreatureName(deathList[2] or deathList[1]).." matou o boss "..monster.."!") end return true end Em data/creaturescripts, abra o arquivo creaturescripts.xml e coloque a tag (coloque antes de </creaturescripts>): <event type="death" name="anuncioServer" event="script" value="anunciomonstro.lua"/> Depois, em data/monster, abra o arquivo XML do monstro e coloque, antes do </monster>, isso: <script> <event name="anuncioServer"/> </script> -
action Ao pisar em x lugar, aparece mensagem
um tópico no fórum postou larissaots Actions e Talkactions
Créditos à zipter98. Objetivo Ao pisar em algum lugar, aparece uma mensagem como está abaixo, por exemplo. Prévia Vá em data/movements/scripts e crie o arquivo mensagemtile.lua, coloque: local message = "mensagem" -- Mensagem que aparecerá ao pisar no tile. function onStepIn(cid, item, position, fromPosition) if not isPlayer(cid) then return true end doPlayerPopupFYI(cid, message) return true end Em data/movements/ abra o arquivo movements.xml e coloque: <movevent type="StepIn" actionid="5731" event="script" value="nome_do_arquivo.lua"/> Não se esqueça de configurar no tile o action id 5731. OBS. Caso queira colocar em linhas como no exemplo do print, coloque dessa forma: local message = [[ ASSIM JÁ VAI COM QUEBRA DE LINHA LINHA 2 LINHA 3 ]] ou use \n para quebrar as linhas, exemplo: local message = "QUER SER VIP?\nAcess www.refugia.com.br\nVantagens:\nNão Pegue Fila" -
creatureevent Aviso quando uma pessoa da staff logar
um tópico no fórum postou larissaots Globalevents e Spells
Créditos à Wakon e zipter98. Objetivo Irá aparecer uma mensagem em laranja no Local Chat quando o membro da staff entrar. Aparecerá assim: (TUTOR) Fulano está online! Dúvidas no Help Channel. Tutorial Em data/creaturescripts/scripts, adicione staffon.lua e coloque: local groups = {2, 3} function onLogin(cid) if isInArray(groups, getPlayerGroupId(cid)) then doBroadcastMessage("["..getPlayerGroupName(cid).."] "..getPlayerName(cid)..", está online.") end return true end Após isso vá em data/creaturescripts abra o creaturescripts.xml e adicione a tag: <event type="login" name="StaffOn" event="script" value="staffon.lua"/> OBS. Está configurado para aparecer apenas para o cargo de Tutor e Senior Tutor. Caso queira alterar, basta mudar o ID "2" e "3". -
Créditos à zipter98. Objetivo Quando X item cair do loot de algum monstro, irá aparecer uma backpack ou bag (a que você preferir) e nela estará o item que você configurou no script. Isso é bom para deixar separados dos itens "sem valor", pois, você vai saber quando realmente cair um item valioso, porque irá aparecer a backpack/bag. É um script diferente que pode chamar a atenção dos players. Tutorial Vá até as pastas data/creaturescripts/scripts, crie o arquivo aparecerbag.lua e coloque: local bag = xxx -- ID da bag ou backpack local itens = {xxx, xxx, xxx} -- ID dos itens que serão colocados dentro da bag, caso dropados. function Loot(mName, mPosition) local items = {} for i = getTileInfo(mPosition).items, 1, -1 do mPosition.stackpos = i table.insert(items, getThingFromPos(mPosition)) end if #items == 0 then return true end local corpse = -1 for _, item in ipairs(items) do local name = getItemName(item.uid):lower() if name:find(mName:lower()) then corpse = item.uid break end end if not isContainer(corpse) then return true end if corpse == -1 then return true end for i = 0, getContainerSize(corpse) - 1 do local item = getContainerItem(corpse, i) if isInArray(itens, item.itemid) then doAddContainerItem(doAddContainerItem(corpse, bag, 1), item.itemid, item.type) doRemoveItem(item.uid) end end end function onKill(cid, target) if isMonster(target) then addEvent(Loot, 5, getCreatureName(target), getThingPos(target)) end return true end function onLogin(cid) registerCreatureEvent(cid, "lootItem") return true end Após isso vá em data/creaturescripts/ e abra o arquivo creaturescripts.xml. Adicione: <event type="login" name="lootLogin" event="script" value="aparecerbag.lua"/> <event type="kill" name="lootItem" script="aparecerbag.lua"/>
-
Créditos à ViitinG. Objetivo É um comando que o player poderá usar para reportar bugs direto para o ADM do servidor com um intervalo de 60 minutos (configurável). O bug será enviado para um log (bloco de notas) que será criado na pasta do servidor! Prévia Tutorial Em data/talkactions/scripts crie o arquivo reportbugs.lua e adicione: function onSay(cid, words, param, channel) if os.time() > getPlayerStorageValue(cid, 14001) then setPlayerStorageValue(cid, 14001, os.time()+3600) local file = io.open('log.txt','a') file:write(getCreatureName(cid)..": "..tostring(param).."\n") file:close() doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING,'Mensagem enviada com sucesso.') else doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING,'Você não pode mandar outra mensagem ainda. Falta(m) '..(math.ceil((getPlayerStorageValue(cid, 14001)-os.time())/60)+1)..' minuto(s) para você poder mandar uma nova mensagem.') end return TRUE end Em data/talkactions/ abra o arquivo talkactions.xml e adicione a tag: <talkaction words="/reportbug" event="script" value="reportbugs.lua"/> Como funciona doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING,'Mensagem enviada com sucesso.') doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING,'Você não pode mandar outra mensagem ainda. Falta(m) '..(math.ceil((getPlayerStorageValue(cid, 14001)-os.time())/60)+1)..' minuto(s) para você poder mandar uma nova mensagem.') <talkaction words="/reportbug" event="script" value="reportbugs.lua"/> Mensagem que será enviada para o player quando enviar o relatório para o ADM. Tempo que o player terá que esperar para usar o comando novamente. Mensagem que vai aparecer quando o player tentar usar o comando sem esperar o tempo para usar novamente. Comando que será usado. /reportbug
-
creatureevent Monitorando todos os trades do servidor (Trade log)
um tópico no fórum postou larissaots Globalevents e Spells
Créditos à Anonimo e Animal Park. Objetivo O script consiste em criar um log .txt em data/logs/trades mostrando quais itens foram passados entre os jogadores dentro do seu servidor Tutorial Em data/creaturescripts/scripts/ crie um arquivo .lua chamado: checktrades.lua e dentro coloque: local servers = {[0] = 'server1', [1] = 'server2', [2] = 'server3'} local function getType(item) return (item.type > 0) and item.type or 1 end Log = {} Log.__index = Log function Log.create() local t = {} setmetatable(t, Log) t.file = servers[getConfigValue("worldId")] .. "/" .. os.date("%B-%d-%Y", os.time()) .. ".txt" t.str, t.cstr, t.con = '', '', 0 return t end function Log:write() local f = io.open("data/logs/trades/" .. self.file, "a+") if not f then return false end f:write(self.str) f:close() end function Log:containerString() self.cstr = '' for i = 1, self.con do self.cstr = self.cstr .. '-> ' end end function Log:addContainer() self.con = self.con + 1 self:containerString() end function Log:closeContainer() self.con = self.con - 1 self:containerString() end function Log:setLine(txt) self.str = self.str .. self.cstr .. txt .. '\n' end function Log:kill() self.file, self.cstr, self.str, self.con = "", "", "", -1 end function onTradeAccept(cid, target, item, targetItem) local this = Log.create() local name, tname = getCreatureName(cid), getCreatureName(target) this:setLine("Trade between " .. name .. " and " .. tname .. " || [" .. os.date("%d/%m/%Y %H:%M:%S") .. "]") local function logging(cid, item) this:setLine(getCreatureName(cid) .. " traded:") local function scanContainer(cid, uid) for k = (getContainerSize(uid) - 1), 0, -1 do local tmp = getContainerItem(uid, k) this:setLine(getItemNameById(tmp.itemid) .. " x " .. getType(tmp) .. " || itemid: " .. tmp.itemid) if isContainer(tmp.uid) then this:addContainer() scanContainer(cid, tmp.uid) this:closeContainer() end end end this:setLine(getItemNameById(item.itemid) .. " x " .. getType(item) .. " || itemid: " .. item.itemid) if isContainer(item.uid) then this:addContainer() scanContainer(cid, item.uid) this:closeContainer() end end logging(cid, item) logging(target, targetItem) this:setLine("END OF THIS TRADE --------------\n") this:write() this:kill() return true end Em data/creaturescripts adicione no creaturescripts.xml a seguinte linha: <event type="trade" name="tradeCheck" event="script" value="checktrades.lua"/> Em data/creaturescripts/scripts/ abra o arquivo login.lua e adicione: registerCreatureEvent(cid, "tradeCheck") Pronto, agora você poderá monitorar os trades em seu servidor! -
creatureevent Ganhar novas wands e rods conforme o level
um tópico no fórum postou larissaots Globalevents e Spells
Créditos a GodFather. Objetivo Você normalmente começa com a wand of vortex nos servidores. Daí, quando pega nível suficiente pra usar a próxima wand (wand of dragonbreath), ganha ela automaticamente. Assim por diante até a wand of voodoo. Funciona em Druids também! Tutorial Vá até data/creaturescripts/scripts/ e crie o arquivo evoluirwand.lua, coloque: local items = { {13,2191,2186,-1}, {19,2188,2185,0}, {22,8921,8911,1}, {26,2189,2181,2}, {33,2187,2183,3}, {37,8920,8912,4}, {45,8922,8910,5}, {99999999999} } local stuff = {2190,2182,2191,2188,8921,2189,2187,8920,8922,2186,2185,8911,2181,2183,8912,8910} function onAdvance(cid, skill, oldlevel, newlevel) local place = 0 local st = 23636 local blala = newLevel if isInArray({1,2,5,6},getPlayerVocation(cid)) then if skill == 8 then for x = 1, #items do if newlevel >= items[x][1] and newlevel < items[x+1][1] then place = x end end if place > 0 then if getPlayerStorageValue(cid,st) <= items[place][4] then local byvoc = getPlayerVocation(cid) if getPlayerVocation(cid) > 4 then byvoc = getPlayerVocation(cid)-4 end if isInArray(stuff,getPlayerSlotItem(cid,5).itemid) then doRemoveItem(getPlayerSlotItem(cid,5).uid) elseif isInArray(stuff,getPlayerSlotItem(cid,6).itemid) then doRemoveItem(getPlayerSlotItem(cid,6).uid) end doPlayerAddItem(cid,items[place][byvoc+1],1) doPlayerSendTextMessage(cid,4,"Você evoluiu e ganhou uma nova wand: "..getItemNameById(items[place][byvoc+1])..".") setPlayerStorageValue(cid,st,items[place][4]+1) end end end end return TRUE end Agora vá em data/creaturescripts, abra o arquivo creaturescripts.xml e adicione a seguinte linha: <event type="advance" name="EvoluirStaff" event="script" value="evoluirwand.lua"/> Por último, vá em data/creaturescripts/scripts, abra login.lua e adicione a seguinte linha após onLogin(cid): registerCreatureEvent(cid, "EvoluirStaff")
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.