-
Total de itens
3406 -
Registro em
-
Última visita
-
Dias Ganhos
113
Tudo que Vodkart postou
-
ai nego fiz por hrs que é a mesma coisa function onSay(cid, words, param) local t = string.explode(string.lower(param), ",") if not t[1] then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") return true end local player = getPlayerByNameWildcard(t[1]) if(not player)then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player not found.") return true end local hours,comment = not tonumber(t[2]) and 24 or tonumber(t[2]),not t[3] and "Motivo não especificado" or t[3] doBroadcastMessage("O jogador "..getCreatureName(player).." foi banido por "..comment, 18) doAddAccountBanishment(getPlayerAccountId(player), target, os.time() + hours*3600, 5, 2,comment, 0) doRemoveCreature(player) return true end /ban nick,horas,motivo exemplo: /ban Vodkart,48,banido por ser lindo se você não especificar as horas, ele será banido por 24 hrs.
-
não é isso, acontece que vocês só sabem pedir e não se interessam em aprender, querem criar um server com sistemas exclusivos, isso e aquilo mas não querem estudar. eu só comecei a mexer com script porque quando eu vinha fazer meus pedidos aqui, ninguém me ajudava, e resolvi ajudar o pessoal aqui com meu pouco conhecimento que adquiria, mas xtibia nunca mudou, ficou sendo a mesma coisa de sempre, banco de sangue sugas.
-
então beleza, não posso fazer nada... O engraçado é que se eu abrir 500 server e instalar o script vai funcionar, com vocês é sempre o contrário, porque será?
-
não leu o meu post? eu havia dito que era MODS lol são dois, a diferença é que um é por storage e o outro é por DB ai você escolhe qual o melhor pra vc
-
pessoal só quer copiar script e ainda acha que vai funcionar como mágica os dois são MODS ---------------- Por Storage: rank frag.xml <?xml version="1.0" encoding="UTF-8"?> <mod name="rank frag" version="1.0" author="Vodkart" contact="xtibia.com" enabled="yes"> <config name="rankf_func"><![CDATA[ storage = 824544 function getPlayerFrags(cid) local time = os.time() local times = {today = (time - 86400), week = (time - (7 * 86400))} local contents, result = {day = {}, week = {}, month = {}}, db.getResult("SELECT `pd`.`date`, `pd`.`level`, `p`.`name` FROM `player_killers` pk LEFT JOIN `killers` k ON `pk`.`kill_id` = `k`.`id` LEFT JOIN `player_deaths` pd ON `k`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `pk`.`player_id` = " .. getPlayerGUID(cid) .. " AND `k`.`unjustified` = 1 AND `pd`.`date` >= " .. (time - (30 * 86400)) .. " ORDER BY `pd`.`date` DESC") if(result:getID() ~= -1) then repeat local content = {date = result:getDataInt("date")} if(content.date > times.today) then table.insert(contents.day, content) elseif(content.date > times.week) then table.insert(contents.week, content) else table.insert(contents.month, content) end until not result:next() result:free() end local size = {day = table.maxn(contents.day),week = table.maxn(contents.week),month = table.maxn(contents.month)} return size.day + size.week + size.month end function setFrags(cid) setPlayerStorageValue(cid, storage, getPlayerFrags(cid)) doPlayerSave(cid) end function getRankStorage(cid, value, max, RankName) -- by vodka local str ="" str = "--[".. (RankName == nil and "RANK STORAGE" or ""..RankName.."") .."]--\n\n" local query = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = "..value.." ORDER BY cast(value as INTEGER) DESC;") if (query:getID() ~= -1) then k = 1 repeat if k > max then break end str = str .. "\n " .. k .. ". "..getPlayerNameByGUID(query:getDataString("player_id")).." - [" .. query:getDataInt("value") .. "]" k = k + 1 until not query:next() end return doPlayerPopupFYI(cid, str) end ]]></config> <talkaction words="/rankfrags;!rankfrags" event="buffer"><![CDATA[ domodlib('rankf_func') return getRankStorage(cid, storage, 20, "Rank Frag") ]]></talkaction> <event type="login" name="RankfLogin" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid, "RankfKill") registerCreatureEvent(cid, "RankfLogin") setFrags(cid) return true end]]></event> <event type="kill" name="RankfKill" event="script"><![CDATA[ domodlib('rankf_func') function onKill(cid, target, lastHit) if (isPlayer(cid) == true) and (isPlayer(target) == true) then addEvent(setFrags, 100, cid) end return true end]]></event> </mod> ---------------------------------- Por DB: executa essa query na sua db ALTER TABLE `players` ADD `frags` INT NOT NULL DEFAULT '0' Rank Frags.xml <?xml version="1.0" encoding="UTF-8"?> <mod name="rank frag" version="1.0" author="Vodkart" contact="xtibia.com" enabled="yes"> <config name="rankf_func"><![CDATA[ function getPlayerFrags(cid) local time = os.time() local times = {today = (time - 86400), week = (time - (7 * 86400))} local contents, result = {day = {}, week = {}, month = {}}, db.getResult("SELECT `pd`.`date`, `pd`.`level`, `p`.`name` FROM `player_killers` pk LEFT JOIN `killers` k ON `pk`.`kill_id` = `k`.`id` LEFT JOIN `player_deaths` pd ON `k`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `pk`.`player_id` = " .. getPlayerGUID(cid) .. " AND `k`.`unjustified` = 1 AND `pd`.`date` >= " .. (time - (30 * 86400)) .. " ORDER BY `pd`.`date` DESC") if(result:getID() ~= -1) then repeat local content = {date = result:getDataInt("date")} if(content.date > times.today) then table.insert(contents.day, content) elseif(content.date > times.week) then table.insert(contents.week, content) else table.insert(contents.month, content) end until not result:next() result:free() end local size = {day = table.maxn(contents.day),week = table.maxn(contents.week),month = table.maxn(contents.month)} return size.day + size.week + size.month end function setFrags(cid) return db.executeQuery("UPDATE `players` SET `frags` = "..getPlayerFrags(cid).." WHERE `id` = "..getPlayerGUID(cid)) end ]]></config> <talkaction words="/rankfrags;!rankfrags" event="buffer"><![CDATA[ domodlib('rankf_func') local max_players,str = 20,"" str = "--[ RANK FRAGS ]--\n\n" local query = db.getResult("SELECT `name`, `frags` FROM `players` WHERE `frags` > 0 AND `id` > 6 AND `group_id` < 2 ORDER BY `frags` DESC, `name` ASC;") if (query:getID() ~= -1) then k = 1 while true do str = str .. "\n " .. k .. ". " .. query:getDataString("name") .. " - [" .. query:getDataInt("frags") .. "]" k = k + 1 if not(query:next()) or k > max_players then break end end query:free()end return doShowTextDialog(cid,6500, str) ]]></talkaction> <event type="login" name="RankfLogin" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid, "RankfKill") registerCreatureEvent(cid, "RankfLogin") setFrags(cid) return true end]]></event> <event type="kill" name="RankfKill" event="script"><![CDATA[ domodlib('rankf_func') function onKill(cid, target, lastHit) if isPlayer(cid) and isPlayer(target) then addEvent(setFrags, 50, cid) end return true end]]></event> </mod>
-
sistema Arena Sobrevivencia Event System
tópico respondeu ao drakylucas de Vodkart em Mods, funções e outros
vc só vai colocar automatico se tiver uma noção de linguagem lua para otserv. tem que pedir em área de scripting ou esperar o dono do tópico editar para vc -
eu tenho um que funciona e é por storage mas eu estava pensando em fazer um por db que é melhor
-
é isso ai script atualizado só ler o final do tópico
-
function doNPCTalkALot(cid, npc, delay, messages) for i = 1,#messages do addEvent(doCreatureSay, delay * i, npc, messages[i], TALKTYPE_PRIVATE_NP, false, cid) end end só usar assim: doNPCTalkALot(cid, getNpcCid(), 3000, {"aqui vai sua frase {yes} xD", "sua frase dois ou {não}..."}) 3000 no caso é o delay de cada frase 3000 = 3 segundos
-
tem essa do antaraz anthadd.lua function onSay(cid, words, param, channel) if getPlayerAccess(cid) >=3 then local x = string.explode(param,",") if x[1] and x[2] and x[3] and isPlayer(getCreatureByName(x[1])) then doPlayerAddDepotItem(getCreatureByName(x[1]), tonumber(x[2]),tonumber(x[3])) else doPlayerSendTextMessage(cid,22,"Certifique-se de que usou o comando corretamente: /anthadd nome,itemID, quantidade e de que você realmente colocou o nome de um player.") end return TRUE end return FALSE end function doPlayerAddDepotItem(cid, item, count) --By magus local item,count,pid = type(item)=="table" and item or {item},type(count)=="table" and count or {(count or 1)},getPlayerGUID(cid) doRemoveCreature(cid) for k,v in ipairs(item) do local ls = db.getResult("SELECT `sid` FROM `player_depotitems` WHERE `player_id` = "..pid.." ORDER BY `sid` DESC LIMIT 1") return db.executeQuery("INSERT INTO `player_depotitems` (`player_id`, `sid`, `pid`, `itemtype`, `count`, `attributes`) VALUES ("..pid..", "..(ls:getDataInt("sid")+1)..", 101, "..v..", "..count[k]..", '"..(count[k] > 1 and string.format("%x",count[k]) or '').."')") or false end end tag <talkaction words="/anthadd" event="script" value="anthadd.lua"/> exemplo de uso: @edited nem vi q o jhon ja tinha postado xD
-
pedido Script De Nao Poder Killar Levels Baixos
pergunta respondeu ao Matematheus de Vodkart em Scripts
tenta function onCombat(cid, target) local MaxDifLevel = 50 if isPlayer(cid) and isPlayer(target) and math.abs(getPlayerLevel(cid) - getPlayerLevel(target)) > MaxDifLevel then doPlayerSendCancel(cid, "You may not attack your team mates.") return false end return true end local MaxDifLevel = 50 é a diferença de lvl pra atacar o jogador -
uhaauahuahauahauahuaauahuaua
-
as mina pira nos tibianos sedução total @topic acho que o demon não precisava postar as fotos aqui eu tbm n gostaria de fotos minha no fórum pro pessoal zuar ainda mais o pessoal do xtibia rairairai
-
vc diz o money? boa ideia hein @up n sei, mas acho que nao só 8.6 mas testa ai e fala se tiver algum erro
-
isso mesmo amigo a diferença é que agr tem talk e de vez de ser por onKill é onDeath vlw
-
nome do seu script.lua function onStepIn(cid, item, position, fromPosition) local vocs = {1,2,3,4} if item.actionid == 35621 and isPlayer(cid) then if not isInArray(vocs, getPlayerVocation(cid)) then doTeleportThing(cid, fromPosition, true) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "você não pode passar aqui.") doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) return true end end return true end movements.xml <movevent type="StepIn" actionid="35621" event="script" value="nome do seu script.lua"/> no tile coloca ACTIONID = 35621
-
qual versao do seu ot msm?
-
então tenta usar o seu script de antes, só q agr assim: function onPrepareDeath(cid, lastHitKiller, mostDamageKiller) if (getPlayerSlotItem(cid, 2).itemid == 2196) and getPlayerSkullType(cid) >= 4 then doPlayerSetLossPercent(cid, PLAYERLOSS_ITEMS, 0) doPlayerSetLossPercent(cid, PLAYERLOSS_CONTAINERS, 0) return true end return true end
-
n da pq tem que kikar o player pra remover a skull e justamente por isso buga
-
pedido [Bug] Player Compra Promotion 2 No Npc E Quando Desloga Ela Acaba
pergunta respondeu ao lorenzoh20 de Vodkart em Scripts
n sei mexer cm site desculpa- 22 respostas
-
- promotion acaba qndo desloga
- promotion
- (e 2 mais)
-
mas eu testei aqui usar db e não dá nao só da se for para kikar o player antes, mas dai buga na hr da morte tem que ser pelas source msm!
-
pedido [Bug] Player Compra Promotion 2 No Npc E Quando Desloga Ela Acaba
pergunta respondeu ao lorenzoh20 de Vodkart em Scripts
então remove os script q te passei e tenta assim: npc 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 creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid msg = string.lower(msg) local price = 1 local vocations = {5,6,7,8} local level = 100 if isInArray({"promote","second promote","promover"}, msg) then selfSay('Você quer ser promovido por '..price..' gps? {yes} ', cid) talkState[talkUser] = 1 elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then if isInArray(vocations, getPlayerVocation(cid)) then if getPlayerLevel(cid) >= level then if doPlayerRemoveMoney(cid,price) == TRUE then local new = (getPlayerVocation(cid)+4) doPlayerSetVocation(cid, new) setPlayerStorageValue(cid, 878975, new) selfSay('Parabens! Voce tem sua segunda promocao. ', cid) talkState[talkUser] = 0 else selfSay('Você não tem ' .. price .. ' gps para ser promovido', cid) talkState[talkUser] = 0 end else selfSay('Desculpe, você precisa ter level '.. level .. ' ou mais para se promover!', cid) talkState[talkUser] = 0 end else selfSay('Desculpe, mais você não possui a primeira promotion.', cid) talkState[talkUser] = 0 end elseif msg == "no" and talkState[talkUser] >= 1 then selfSay("Then not", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) em data/creaturescript/script/login.lua adc isso antes do último return true if getPlayerStorageValue(cid, 878975) ~= -1 then doPlayerSetVocation(cid, getPlayerStorageValue(cid, 878975)) end SE BUGAR DE NOVO É PQ O ERRO É EM VOCATIONS.XML- 22 respostas
-
- promotion acaba qndo desloga
- promotion
- (e 2 mais)
-
ta mas no caso do seu script que era o onPrepareDeath ele funcionava normal?
-
vc testou o script ali em cima q mandei?
-
pedido [Bug] Player Compra Promotion 2 No Npc E Quando Desloga Ela Acaba
pergunta respondeu ao lorenzoh20 de Vodkart em Scripts
npc 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 creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid msg = string.lower(msg) local config = { price = 1000, promo = 1, -- n mexa pq sao voc 5,6,7,8 aki level = 100 } if isInArray({"promote","second promote","promover"}, msg) then selfSay('Você quer ser promovido por '..config.price..' gps? {yes} ', cid) talkState[talkUser] = 1 elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then if getPlayerPromotionLevel(cid) == config.promo then if getPlayerLevel(cid) >= config.level then if doPlayerRemoveMoney(cid,config.price) == TRUE then local new = (getPlayerPromotionLevel(cid)+1) setPlayerPromotionLevel(cid, new) setPlayerStorageValue(cid, 878974, new) selfSay('Parabens! Voce tem sua segunda promocao. ', cid) talkState[talkUser] = 0 else selfSay('Você não tem ' .. config.price .. ' gps para ser promovido', cid) talkState[talkUser] = 0 end else selfSay('Desculpe, você precisa ter level '.. config.level .. ' ou mais para se promover!', cid) talkState[talkUser] = 0 end else selfSay('Desculpe, mais você não possui a '..config.promo..'° promotion.', cid) talkState[talkUser] = 0 end elseif msg == "no" and talkState[talkUser] >= 1 then selfSay("Then not", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) em data/creaturescript/script/login.lua adc isso antes do último return true if getPlayerStorageValue(cid, 878974) ~= -1 then setPlayerPromotionLevel(cid, getPlayerStorageValue(cid, 887979)) end- 22 respostas
-
- promotion acaba qndo desloga
- promotion
- (e 2 mais)
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.