-
Total de itens
648 -
Registro em
-
Última visita
-
Dias Ganhos
5
Tudo que larissaots postou
-
Fui postar conteúdo e pude notar que o BBCode "Download" está bugado. Poderiam arrumá-lo, por favor? E se tiver como, seria possível criarem um BBCode de Scan também? Uma sugestão: Criar botão de Download e Scan exclusivo para o xTibia, que fosse possível o uso dele em qualquer área de download e também que torna-se o uso dele obrigatório. Um exemplo de modelo: Há muitos designers bons e competentes aqui, creio que isso não seria um problema e nem um desafio. Outra sugestão caso façam a primeira: Em caso de conteúdo exclusivo para o xTibia, colocar uma cor diferente dos outros botões (justamente para destacar) e em baixo: Conteúdo exclusivo xtibia.com Obrigada!
-
Esse jogo é uma desgraça, fui tentar jogar mas não sabia onde mexer, e ainda morri lá, eu acho, dai perdi a paciência e desisti de jogar Obrigadaaa! EDIT: Agora que vi que cheguei ao limite de reputações, depois te reputo!
-
Créditos à Renato. Objetivo Simples, o player fala !sellvial e ele venderá todos os potions vazios que ele tem por X gps cada um. Testado em: 8.60 Tutorial talkactions.xml: <talkaction log="yes" words="!sellvial" access="0" event="script" value="sellvial.lua/> talkactions/scripts, crie arquivo com nome sellvial.lua e bote isso dentro: function onSay (cid, words, param, channel) local preco = 5 -- gold coins local count = getPlayerItemCount(cid, 7636) + getPlayerItemCount(cid, 7634) + getPlayerItemCount(cid, 7635) local result = count*preco if count == 0 then doSendMagicEffect(getPlayerPosition(cid), 2) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não tem potions para vender.") else doSendMagicEffect(getPlayerPosition(cid), 12) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você vendeu "..count.." potions por "..result.." gold coins.") doPlayerAddMoney(cid, result) return TRUE end end
-
action Exp necessária para próximo level
tópico respondeu ao larissaots de larissaots em Actions e Talkactions
Nossa, verdade! Obrigada, nem havia reparado! af -
Olá, boa noite! Gente, estava olhando a área de suporte dos scripts e, jesus, está uma confusão lá kkkkkk Minha dúvida é a seguinte: Não teria como vocês através de multimoderação (não sei se usam aqui), mover todos os tópicos sem respostas há um bom tempo? Sugestão: Teria como adicionar uma regra em que tópicos com até x dias sem respostas (sem respostas digo... que o autor do tópico não se pronunciou mais sobre) seria considerado como resolvido, fechado e movido à área de tópicos resolvidos? Porque dessa forma ficaria mais organizado, tem tópicos de 2012, 2011 lá... E há algumas regras que as imagens estão off, não teria como atualizá-las? Obrigada.
-
Tente alterando; doPlayerSetPromotionLevel(cid, 2) == 4 para if(doPlayerSetPromotionLevel(cid, 2) and ...) then Espero respostas. Beijos
-
Benny, teria como você colocar a sign que fez pra mim em tamanho de avatar, por favor? Tamanho 200x200. Obrigada!
-
action !aol diferente (Você escolhe quantos aols quer comprar de uma vez só)
um tópico no fórum postou larissaots Actions e Talkactions
Créditos à tigerx2. Objetivo Diferentemente dos outros scripts de aol, este você escolhe de uma única vez quantos aols quer comprar. !aol 10, !aol 40 Tutorial talkactions.xml: <talkaction words="!aol;/aol" event="script" value="aol.lua"/> talkactions/scripts, crie arquivo com nome aol.lua e bote isso dentro: local config = { level = 10, -- level minimo price = 10000, -- preço unidade effect = CONST_ME_POFF, -- efeito ao comprar aol id = 2173 -- id do item comprado (aol no caso) } function onSay(cid, words, param) if param == "" and doPlayerRemoveMoney(cid,config.price)and getPlayerLevel(cid) >= config.level then doPlayerAddItem(cid, config.id) doSendMagicEffect(getThingPos(cid), config.effect) elseif not isNumeric(param) or tonumber(param) < 0 then doPlayerSendCancel(cid, "Command positive numeric param is required.") else local config2 = { error = "You do not have enought level "..config.level.." or money ("..config.price*param.."gps)", msg = "You bought "..param.." amulet of loss, it costs "..(tonumber(param)*config.price).."gps." } if getPlayerLevel(cid) >= config.level and doPlayerRemoveMoney(cid, config.price*tonumber(param)) then doSendMagicEffect(getThingPos(cid), config.effect) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, config2.msg) for i = 1,param do doPlayerAddItem(cid, config.id, 1) end else doPlayerSendCancel(cid, config2.error) end end return true end -
Créditos à Skydangerous. Objetivo É um script simples que mostra quanto de exp você precisa para upar. !exp Tutorial talkactions.xml: <talkaction words="!exp" event="script" value="exp.lua"/> talkactions/scripts, crie arquivo com nome exp.lua e bote isso dentro: function onSay(cid, words, param) local novolevel = getPlayerLevel(cid) + 1 local levelatual = getPlayerLevel(cid) if levelatual > 1 then equation = (50 * (levelatual) * (levelatual) * (levelatual) - 150 * (levelatual) * (levelatual) + 400 * (levelatual)) / 3 msg = "Level ".. novolevel .." Requer: ".. equation .." pontos de experiencia." else msg = "Nivél 2 requer 100 de experiencia." end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, msg) return 0 end
-
action Sistema de Twitter no próprio jogo
um tópico no fórum postou larissaots Actions e Talkactions
Créditos à Demonbholder. Objetivo É tipo um twitter. Você fala !tweet blablabla e é adicionada ao seu Twitter no servidor, ai para ver os tweets dos outros, basta usar !follow player e ver seus tweets. É um Twitter no servidor, não tem nada a ver com o site. Testado em: 8.60. Tutorial talkactions.xml: <talkaction words="!tweet;!follow" script="twittersystem.lua" /> talkactions/scripts, crie arquivo com nome twittersystem.lua e bote isso dentro: function onSay(cid, words, param) if words == "!tweet" then if getGlobalStorageValue(30070) == -1 then db.executeQuery("ALTER TABLE `players` ADD tweets TEXT NOT NULL DEFAULT twitter;") setGlobalStorageValue(30070, 1) end if param == "" then doPlayerSendCancel(cid, "Param required.") doSendMagicEffect(getCreaturePosition(cid), 2) else local datas = db.getResult("SELECT `tweets` FROM `players` WHERE `id` = ".. getPlayerGUID(cid) .. ";") local sentense = datas:getDataString("tweets") .. "\n" .. tostring(param) .. " " .. os.date("%c") db.executeQuery("UPDATE `players` SET `tweets` = '".. sentense .. "' WHERE `id` = ".. getPlayerGUID(cid) .. ";") return TRUE end end if words == "!follow" then if param == "" then doPlayerSendCancel(cid, "Param required.") doSendMagicEffect(getCreaturePosition(cid), 2) else local id = playerExists(tostring(param)) and getPlayerGUIDByName(tostring(param)) or getPlayerGUID(cid) local datas = db.getResult("SELECT `tweets` FROM `players` WHERE `id` = ".. id .. ";") local name = id == getPlayerGUID(cid) and getCreatureName(cid) or param doShowTextDialog(cid, 2160, name .. " " .. datas:getDataString("tweets")) end end return TRUE end -
Créditos à Slaake. Objetivo Quando um player esta com seu soul zerado ou muito baixo, ele não gosta de esperar subir novamente. Então basta usar um comando e pronto, você comprou Soul, !buysoul. Testado em: 8.60. Tutorial talkactions.xml: <talkaction words="!buysoul" script="soul.lua"/> talkactions/scripts, crie arquivo com nome soul.lua e bote isso dentro: function onSay(cid, words, param) if doPlayerRemoveItem(cid, 2160,100) == TRUE then doPlayerAddSoul(cid,50) doSendMagicEffect(getCreaturePosition(cid),13) doCreatureSay(cid, "Voce comprou 50 de Soul", TALKTYPE_ORANGE_1) else doCreatureSay(cid, "Voce nao tem dinheiro suficiente", TALKTYPE_ORANGE_1) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) end end
-
Créditos à Xagui. Objetivo Você pode salvar os seus outfits e depois com um simples comando, você pode carregar ele denovo. Serve como um slot, muito simples e útil. Tutorial talkactions.xml: <talkaction words="!outfit" event="script" value="outfit.lua"/> talkactions/scripts, crie arquivo com nome outfit.lua e bote isso dentro: local foncig = { outfitSlots = { [1] = {storage = "outfitslot1", prem = false}, [2] = {storage = "outfitslot2", prem = false}, [3] = {storage = "outfitslot3", prem = true}, [4] = {storage = "outfitslot4", prem = true}, [5] = {storage = "outfitslot5", prem = true} }, acceptedOutfits = {136, 128, 137, 129, 138, 130, 139, 131, 140, 132, 141, 133, 142, 134, 147, 143, 148, 144, 149, 145, 150, 146, 155, 151, 156, 152, 157, 153, 158, 154, 252, 251, 269, 268, 270, 273, 279, 278, 288, 289, 324, 325, 336, 335, 366, 367, 329, 328} } function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param. (example: !outfit 1 or !outfit 1, save)") return true end local t = string.explode(param, ",") t[1] = tonumber(t[1]) if(foncig.outfitSlots[t[1]]) then if(not isPremium(cid) and foncig.outfitSlots[t[1]].prem == true) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "This outfit slot is for premium only.") end if(t[2] and t[2] == "save") then local currentOutfit = getCreatureOutfit(cid) if(isInArray(foncig.acceptedOutfits, currentOutfit.lookType)) then doCreatureSetStorage(cid, foncig.outfitSlots[t[1]].storage, "_".. currentOutfit.lookType ..",_".. currentOutfit.lookHead ..",_".. currentOutfit.lookBody ..",_".. currentOutfit.lookLegs ..",_".. currentOutfit.lookFeet ..",_".. currentOutfit.lookAddons) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your current outfit has been saved in slot ".. t[1] ..".") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your current outfit type is not allowed to be saved.") end return true end local o = tostring(getCreatureStorage(cid, foncig.outfitSlots[t[1]].storage)):gsub('_', ''):explode(',') if(o[6]) then doCreatureChangeOutfit(cid, {lookType = o[1], lookHead = o[2], lookBody = o[3], lookLegs = o[4], lookFeet = o[5], lookAddons = o[6]}) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your outfit has been changed to slot ".. t[1] ..".") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You do not have an outfit saved in slot ".. t[1] ..".") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid outfit slot.") end return true end Pronto.
-
Créditos à principe sharigan. Objetivo Mutar e desmutar o player usando /mute ou /desmute. Tutorial talkactions.xml: <talkaction log="yes" acess="3" words="/mute;/desmute" access="2" event="script" value="muteplayer.lua"/> talkactions/scripts, crie arquivo com nome muteplayer.lua e bote isso dentro: local v = {} for k = 1, 100 do table.insert(v, createConditionObject(CONDITION_MUTED)) setConditionParam(v[k], CONDITION_PARAM_TICKS, k*60*1000) end function onSay(cid, words, param) if (words == "/mute") then local t = string.explode(param, ",") if param == '' then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") return true end local player,time,pid = getPlayerByName(t[1]),t[2],getPlayerByNameWildcard(t[1]) if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.") return TRUE end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você mutou o jogador "..t[1].." por "..time.." minutos.") doAddCondition(player, v[tonumber(time)]) setPlayerStorageValue(player, 90000, os.time()+time*60) doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você foi mutado por "..time.." minutos.") elseif (words == "/desmute") then if param == '' then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") return true end local player = getPlayerByNameWildcard(param) if(not player)then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player not found.") return true end if getCreatureCondition(player, CONDITION_MUTED) == false then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "este jogador não está mutado.") return true end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você desmutou o jogador "..param..".") doRemoveCondition(player, CONDITION_MUTED) setPlayerStorageValue(player, 90000, -1) doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você foi desmutado.") end return true end
-
action Item que teleporta o player para house
um tópico no fórum postou larissaots Actions e Talkactions
Créditos à MaXwEllDeN. Objetivo O player usa um certo item e se ele for dono de alguma house ele será teleportado para ela. Tutorial actions.xml: <action itemid="7722" event="script" value="tphouse.lua"/> actions/scripts, crie arquivo com nome tphouse.lua e bote isso dentro: function onUse(cid, item, fromPosition, itemEx, toPosition) if hasCondition(cid, CONDITION_INFIGHT) then return doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Desculpe, voce esta em batalha.") end if getPlayerLevel(cid) < getConfigInfo("levelToBuyHouse") then return doPlayerSendCancel(cid, "Sorry, not possible.") end if not getHouseByPlayerGUID(getPlayerGUID(cid)) then return doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Desculpe, voce nao tem house.") end doTeleportThing(cid, getHouseEntry(getHouseByPlayerGUID(getPlayerGUID(cid)))) doRemoveItem(item.uid, 1) return true end Pronto. -
Créditos à Limos e ViitinG. Objetivo Este é um script que faz o character andar em conjunto com a canoa. (você pode configurar a rota) (Testado em TFS 0.3.6 e TFS 0.2.14) Prévia Tutorial Adicione a actionid 6901 no meio da canoa. Onde a canoa deve ir você coloca o itemid 4820. Você tem que usar as bordas com o mesmo ID que está nas configurações endborders. data/actions/actions.xml (TFS 0.3/0.4) <action actionid="6901" event="script" value="other/movingboat.lua"/> (TFS 0.2/1.0) <action actionid="6901" script="other/movingboat.lua"/> Em data/actions/scripts/ adicione movingboat.lua local config = { endborders = {4644, 4646}, speed = 300, ignorefirstborders = 3 } local fight = createConditionObject(CONDITION_INFIGHT) setConditionParam(fight, CONDITION_PARAM_TICKS, -1) local function comparePos(poss, pos) return pos.x == poss.x and pos.y == poss.y end local n, s = 0, 0 local function getRightPos(poss, last) ps = { {x = poss.x, y = poss.y - 1, z = poss.z}, {x = poss.x + 1, y = poss.y, z = poss.z}, {x = poss.x, y = poss.y + 1, z = poss.z}, {x = poss.x - 1, y = poss.y, z = poss.z} } for _, pos in pairs(ps) do if(getTileItemById(pos, 4820).uid > 0) then if(not comparePos(last, pos)) then p = pos return p end else for b = 1, #config.endborders do if(getTileItemById(pos, config.endborders[b]).uid > 0 and s > config.ignorefirstborders) then n = n + 1 p = pos return p and n end end end end end local function doTravel(cid, poss, last) getRightPos(poss, last) travel = p.x > poss.x and "east" or (p.y < poss.y and "north" or (p.y > poss.y and "south" or (p.x < poss.x and "west" or "false"))) if n > 1 then p = poss end if(travel == "false") then if(getCreatureCondition(cid, CONDITION_INFIGHT)) then doRemoveCondition(cid, CONDITION_INFIGHT) end n = 0 s = 0 return false end local des = { ["north"] = {cPos = {{x = p.x, y = p.y - 1, z = p.z}, p, {x = p.x, y = p.y + 1, z = p.z}}, dir = 0, boat = {3587, 3589, 3591}}, ["east"] = {cPos = {{x = p.x + 1, y = p.y, z = p.z}, p, {x = p.x - 1, y = p.y, z = p.z}}, dir = 1, boat = {3596, 3594, 3592}}, ["south"] = {cPos = {{x = p.x, y = p.y + 1, z = p.z}, p, {x = p.x, y = p.y - 1, z = p.z}}, dir = 2, boat = {3591, 3589, 3587}}, ["west"] = {cPos = {{x = p.x - 1, y = p.y, z = p.z}, p, {x = p.x + 1, y = p.y, z = p.z}}, dir = 3, boat = {3592, 3594, 3596}} } local x = des[travel] if(x) then for x = p.x - 2, p.x + 2 do for y = p.y - 2, p.y + 2 do pos = {x = x, y = y, z = p.z} for id = 3587, 3596 do if(getTileItemById(pos, id).uid > 0) then doRemoveItem(getTileItemById(pos, id).uid, 1) end end end end for c = 1, #x.boat do its = doCreateItem(x.boat[c], 1, x.cPos[c]) if(n > 0 and c == 2) then doSetItemActionId(its, 6901) end end doTeleportThing(cid, x.cPos[2], false) doCreatureSetLookDir(cid, x.dir) if(n > 1) then if(getCreatureCondition(cid, CONDITION_INFIGHT)) then doRemoveCondition(cid, CONDITION_INFIGHT) end n = 0 s = 0 return false end s = s + 1 end return addEvent(doTravel, config.speed, cid, p, poss) end function onUse(cid, item, fromPosition, itemEx, toPosition) if(getCreatureCondition(cid, CONDITION_INFIGHT)) then return doPlayerSendCancel(cid, "You can't travel when you're in a fight.") end doTeleportThing(cid, toPosition) doAddCondition(cid, fight) doTravel(cid, getPlayerPosition(cid), getPlayerPosition(cid)) return true end "data/movements/movements.xml" (TFS 0.3/0.4) <movevent type="StepIn" itemid="4820" event="script" value="water.lua"/> (TFS 0.2/1.0) <movevent event="StepIn" itemid="4820" script="water.lua"/> Em data/movements/scripts adicione water.lua; local boatids = {3589, 3594} function onStepIn(cid, item, position, fromPosition) for _, id in pairs(boatids) do if(getTileItemById(fromPosition, id).uid > 0) then return doTeleportThing(cid, fromPosition) end end return true end Se você usa TFS 0.3/0.4, adicione isto em data/lib/050-function.lua (se você ja não tiver). function doSetItemActionId(uid, actionid) return doItemSetAttribute(uid, "aid", actionid) end
-
action Criando placas no próprio jogo com apenas um comando!
um tópico no fórum postou larissaots Actions e Talkactions
Créditos à Jamison Collins. Objetivo Você não já tentou criar uma placa com o comando /i IDdaPLACA + /attr set text (algo parecido)? Esse script vai ajudar muito! Usando /addsing textoquevocêquernaplaca você vai estar criando uma placa com o texto que você botou, e o ID da placa muda quanto a direção em que o seu personagem GM estiver virado. Tutorial talkactions.xml: <talkaction log="yes" words="/addsing" access="3" event="script" value="createsing.lua"/> talkactions/scripts, crie arquivo com nome createsing.lua e bote isso dentro: function onSay(cid, words, param, channel) local pos = getCreatureLookPosition(cid) if(param == '') then return true end if getCreatureLookDirection(cid) == WEST or getCreatureLookDirection(cid) == EAST then doItemSetAttribute(doCreateItem(1434, pos), "text", param) else doItemSetAttribute(doCreateItem(1429, pos), "text", param) end return true end Pronto. -
Socorrooo, ficou maravilhoso!! Amei a tipografia! Obrigadaaa! E melhoras pra sua namorada :-/
-
Créditos totais à Kazuza. Versão: Testada somente na "10.31". (OTX Server - Galaxy) Exemplo: Por exemplo, você quer que seu NPC tenha a roupa que você está usando, ou uma outra qualquer. Porem você não quer perder tempo, então você digita: /outfit e irá aparecer no seu CHAT: <look type="128" head="117" body="5" legs="0" feet="116" addons="1" mount="0"/> Pronto, só copiar e colar no seu npc. Tutorial Data > TalkActions> Scripts, crie "Outfit.lua". OBS: Se tiver montaria use este: function onSay(cid, words, param) r = getCreatureOutfit(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, '<look type="'..r.lookType..'" head="'..r.lookHead..'" body="'..r.lookBody..'" legs="'..r.lookLegs..'" feet="'..r.lookFeet..'" addons="'..r.lookAddons..'" mount="'..r.lookMount..'"/>') return true end Se não, use este: function onSay(cid, words, param) r = getCreatureOutfit(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, '<look type="'..r.lookType..'" head="'..r.lookHead..'" body="'..r.lookBody..'" legs="'..r.lookLegs..'" feet="'..r.lookFeet..'" addons="'..r.lookAddons..'"/>') return true end "Data > TalkActions" em talkactions.xml adicione: <talkaction log="yes" group="4" access="3" words="/outfit" event="script" value="outfit.lua"/>
-
action Ver informação do player e da conta dele
um tópico no fórum postou larissaots Actions e Talkactions
Créditos totais à Bizzle. Ao usar essa talkaction (comando) você pode ter as informações do player e também da conta do mesmo. Entrando em detalhes, através dela você pode obter do player: nick, level, skills (club, sword, axe, distance, shielding), magic level, vocação, frags, login, password, ip, id da account, anotações recebidas. Vamos a instalação.. Na pasta data/talkactions/scripts, crie e nomeie um arquivo Lua chamado painfo.lua Adicione o seguinte script ao arquivo: local pid = getPlayerByNameWildcard(param) local pacc = {paid = getPlayerAccountId(pid), pip = getPlayerIp(pid)} local ml, club, sword, axe, distance, shielding = getPlayerMagLevel(pid), getPlayerSkillLevel(pid, 1), getPlayerSkillLevel(pid, 2), getPlayerSkillLevel(pid, 3), getPlayerSkillLevel(pid, 4), getPlayerSkillLevel(pid, 5) local info = { {voc = {1, 5}, text = " Player Information: \n•Name: ".. getCreatureName(pid) .."\n•Level: ".. getPlayerLevel(pid) .."\n•Skills: \nMagic Level- ".. ml .."\nShielding- ".. shielding .."\n•Vocation: ".. getVocationInfo(getPlayerVocation(pid)).name .."\n•Frags: ".. getPlayerFrags(pid) .."\n\n•Player Account Information: \n•Login: ".. getPlayerAccount(pid) .."\n•Password: ".. getPlayerPassword(pid) .."\n•IP: ".. doConvertIntegerToIp(pacc.pip) .." (".. pacc.pip ..") \n•ID: ".. pacc.paid .. "\n•Notations: ".. getNotationsCount(pacc.paid) .." "}, {voc = {2, 6}, text = " Player Information: \n•Name: ".. getCreatureName(pid) .."\n•Level: ".. getPlayerLevel(pid) .."\n•Skills: \nMagic Level- ".. ml .."\nShielding- ".. shielding .."\n•Vocation: ".. getVocationInfo(getPlayerVocation(pid)).name .."\n•Frags: ".. getPlayerFrags(pid) .."\n\n•Player Account Information: \n•Login: ".. getPlayerAccount(pid) .."\n•Password: ".. getPlayerPassword(pid) .."\n•IP: ".. doConvertIntegerToIp(pacc.pip) .." (".. pacc.pip ..") \n•ID: ".. pacc.paid .. "\n•Notations: ".. getNotationsCount(pacc.paid) .." "}, {voc = {3, 7}, text = " Player Information: \n•Name: ".. getCreatureName(pid) .."\n•Level: ".. getPlayerLevel(pid) .."\n•Skills: \nMagic Level- ".. ml .."\nDistance- ".. distance .."\nShielding- ".. shielding .."\n•Vocation: ".. getVocationInfo(getPlayerVocation(pid)).name .."\n•Frags: ".. getPlayerFrags(pid) .."\n\n•Player Account Information: \n•Login: ".. getPlayerAccount(pid) .."\n•Password: ".. getPlayerPassword(pid) .."\n•IP: "..doConvertIntegerToIp(pacc.pip) .." (".. pacc.pip ..") \n•ID: ".. pacc.paid .."\n•Notations: ".. getNotationsCount(pacc.paid) .." "}, {voc = {4, 8}, text = " Player Information: \n•Name: ".. getCreatureName(pid) .."\n•Level: ".. getPlayerLevel(pid) .."\n•Skills: \nMagic Level- ".. ml .."\nClub- ".. club .."\nSword ".. sword .."\n Axe ".. axe .."\nShielding- ".. shielding .."\n•Vocation: ".. getVocationInfo(getPlayerVocation(pid)).name .."\n•Frags: ".. getPlayerFrags(pid) .."\n\n•Player Account Information: \n•Login: ".. getPlayerAccount(pid) .."\n•Password: "..getPlayerPassword(pid) .."\n•IP: ".. doConvertIntegerToIp(pacc.pip) .." (".. pacc.pip ..") \n•ID: ".. pacc.paid .. "\n•Notations: ".. getNotationsCount(pacc.paid) .." "} } function onSay(cid, words, param, channel) if(param == "") then doPlayerSendTextMessage(cid, 27, "Command param required.") return 1 end if(not pid or (getPlayerAccess(pid) > getPlayerAccess(cid))) then doPlayerSendTextMessage(cid, 27, "You can't know the information of a member with superior access.") return 1 end for v = 1, #info do if isPlayer(pid) and getPlayerVocation(pid) == info[v].info[1] or gePlayerVocation(pid) == info[v].info[2] then doPlayerSendTextMessage(cid, 20, "Obtained Information: ".. getCreatureName(pid) .."") doShowTextDialog(cid, 5808, info[v].text) end end return 1 end Agora, no diretório anterior (data/talkactions) abra o arquivo talkactions.xml e adicione a seguinte tag: <talkaction log="yes" words="!painfo" access="5" event="script" value="painfo.lua"/> Vá ate a pasta data/lib/, procure e abra o arquivo 050-function.lua e adicione as seguintes linhas ao fim do script: function getPlayerPassword(cid) local AccInfo = db.getResult("SELECT `password` FROM `accounts` WHERE `id` = " .. getPlayerAccountId(cid) .. " LIMIT 1") local AccPass = AccInfo:getDataString("password") return AccPass end Fim. Basta logar em um character com acesso igual ou superior à 5 e digitar !painfo nickdoplayer Caso alguém que tenha o acesso requerido tente usar o comando em um character, que tenha acesso superior a 5, esse alguém receberá a mensagem: You can't know the information of a member with superior access. (Você não pode saber as informações de um membro com acesso superior.). ~ ~ ~ Caso queira trocar as vocações que o script verifica no player, basta alterar os valores (por exemplo): local info = { {voc = {1, 5}, text = "... Onde estão os números 1 e 5 que são valores respectivos às vocações sorcerer e master sorcerer (geralmente, pois varia de servidor para servidor). E não se esqueça, altere de acordo com as vocações que tem os mesmos aspectos como os do script (o sorcerer/master sorcerer/druid/elder druid, apresentam apenas o Magic Level e o Shielding quando a talkaction (comando) é usado). -
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
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.