Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 07/15/15 em %
-
[Pedido] Passagem Secreta Diferente
Night Wolf e 3 outros reagiu a RigBy por uma questão
Pronto agora ta muito melhor, acho que não vai ter nenhum bug, testei todos os jeitos de buga. Movement: .lua -- Do not remove the credits -- -- [MOVEMENT] Secret Teleport -- -- Developed by Rigby (João Vitor) -- function onAddItem(cid, moveitem, tileitem, position) local fields = {1492, 1495} -- id do fire field e energy field local tile1 = {x = 1066, y = 1020, z = 7, stackpos= 1} -- Posição do tile 1 local tile2 = {x = 1068, y = 1020, z = 7, stackpos= 1} -- Posição do tile 2 local statue_Of_Position = {x = 1067, y = 1020, z = 7} -- posição onde fica a estátua, que ira aparecer o teleport local teleport = {x = 1066, y = 1020, z = 7} -- posição da onde o player vai quando entrar no teleport local go_Backward = {x = 1067, y = 1019, z = 7} -- Posição para aonde a estátua vai local statue = 3697 -- id da estátua local tempo = 5 -- tempo em segundos que o teleporte ficara aberto local pos1 = getThingfromPos(tile1) local pos2 = getThingfromPos(tile2) if (pos1.itemid == fields[1] and pos2.itemid == fields[2]) or (pos1.itemid == fields[2] and pos2.itemid == fields[1]) then if getItemStack(statue_Of_Position, statue) then doRemoveItem(getItemStack(statue_Of_Position, statue).uid, 1) doCreateTeleport(1387, teleport, statue_Of_Position) doCreateItem(statue, 1, go_Backward) if getItemStack(tile1, fields[1]) then doRemoveItem(getItemStack(tile1, fields[1]).uid, 1) doRemoveItem(getItemStack(tile2, fields[2]).uid, 1) else doRemoveItem(getItemStack(tile1, fields[2]).uid, 1) doRemoveItem(getItemStack(tile2, fields[1]).uid, 1) end addEvent(function() doCreateItem(statue, 1, statue_Of_Position) doRemoveItem(getItemStack(statue_Of_Position, 1387).uid, 1) doRemoveItem(getItemStack(go_Backward, statue).uid, 1) end, tempo*1000) end end if getItemStack(go_Backward, statue) then if getItemStack(tile1, fields[1]) then doRemoveItem(getItemStack(tile1, fields[1]).uid, 1) elseif getItemStack(tile1, fields[2]) then doRemoveItem(getItemStack(tile1, fields[2]).uid, 1) elseif getItemStack(tile2, fields[1]) then doRemoveItem(getItemStack(tile2, fields[1]).uid, 1) elseif getItemStack(tile2, fields[2]) then doRemoveItem(getItemStack(tile2, fields[2]).uid, 1) end end end function getItemStack(pos, iid) for i = 1, 255 do posa = getThingFromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=i}) if posa.itemid == iid then return posa end end return nil end .xml, tag <movevent type="AddItem" tileitem="1" actionid="13501" event="script" value="Nomedoscript.lua"/> So basta coloca o actionid no piso que ira solta os fields4 pontos -
Pokemon Dash v6 reupload by Valakinhas
CoowboyLu e um outro reagiu a valakas por um tópico no fórum
• Menu: ├ Informações; ├ Prints; ├ Download; └ Creditos. • Informações Basicas • • print screen • • download+scan • client/serve/source: http://www.mediafire.com/download/7zuy27ymn7nhnj7/dash+v6+reupload.rar scan: https://www.virustotal.com/pt/file/f8cd451fecabccc09b683e5928a0f186ec11f278628ab0c81e157628f91c6826/analysis/1436901745/ • Creditos • brun123 n lembro o resto2 pontos -
[8.54] Pokemon Spark
nyxshadow e um outro reagiu a Animal Pak por um tópico no fórum
Informações: Pokemons sem level 1 2 3 e 4 geração Mega evolução Novos icones Sistemas PXG E mais! Imagens: Download Servidor: http://www.mediafire.com/download/jgdcwje4qduxjj7/Spark+Servidor+Unico.rar Download Client: http://www.mediafire.com/download/q9f0de8k2x86os9/Pokemon+Spark+Client.rar Scan Servidor: https://www.virustotal.com/pt/file/83bd5d0006c6095e85ce80c920104005cbb64c337f8fd3ef2880a55f73548d0d/analysis/1436907803/ Scan Client: https://www.virustotal.com/pt/file/33c51c714b86d0ed12c81b3762f5fb178dc79b408dec42d4e73a3aa7e6344c01/analysis/1436908433/ Créditos: Spark Team Joshua2 pontos -
Movements: .lua function onStepIn(cid, item, position, fromPosition) if getPlayerGuildId(cid) > 0 then doPlayerSendTextMessage(cid, 27, "Voce entrou, sua guild é a "..getPlayerGuildName(cid)..".") else doPlayerSendTextMessage(cid, 27, "Voce não possue guild, portanto não pode entrar nessa zona.") doTeleportThing(cid, fromPosition) end return true end xml,tag <movevent type="StepIn" actionid="1431" event="script" value="Nomedoscript.lua"/> so basta por 1431 nos tile que não poderão passa.2 pontos
-
RealPoke Online!
Shadow Phantom e um outro reagiu a Avronex por um tópico no fórum
Bom, primeiramente obrigado por relatar estes bugs e sugestôes. Quanto ao item 1 você pode conferir um icone na barra superior direita onde voce pode ocultar a janela. Concordo que o mapa poderia ter alguma sinalização a mais o tamanho eu acredito que esteja ideal pois realmente o player precisa explorar. Todo início é dificil e principalmente quando se é o unico responsavel pelo servidor todo. Entao agradeço a paciencia de ocês e estou me empenhando bastante pra pode resolver os bugs rapido! Mais uma vez obrigado pelo seu relato!2 pontos -
Monstros Passivos
VictorTasquin reagiu a Oneshot por um tópico no fórum
Monstros Passivos Muito bom dia, galera. Sabe, eu estava estudando como funcionam os servidores de pokémons, aqueles que ainda estão começando, embriões de bons servidores, não grandes servidores como o Poke Brasil Online (PokeBro). O problema de todos esses servidores, é que todos são dependentes de sistemas criados pelo brun123 (se não me engano) dentro das sources, ou seja, esses servidores são dependentes do executável compilado do PDA, entre outros. A pedido de um amigo, eu desenvolvi o sistema de monstros passivos. Sim aquele sistema que dá um upgrade na inteligência artificial das criaturas, onde algumas podem atacar o jogador assim que o ver, outras podem atacar apenas quando for atacadas. É um sistema muito básico mesmo, eu fiz com C++ e Lua por puro comodismo, e pretendo deixar mais avançado apenas com C++ e uso de flags nos XMLs. Se você quiser usar, sinta-se a vontade. No seu arquivo monster.h, procure por: bool isHostile() {return mType->isHostile;} Substitua por: bool isHostile() const { std::string value; if(!getStorage("hostile", value)) return mType->isHostile; return booleanString(value); } No seu arquivo monster.cpp, procure por: Monster::selectTarget Dentro da função, procure por: if(!isTarget(creature)) return false; Adicione abaixo: if(!isHostile()) return false; No diretório creaturescripts/scripts, crie um novo arquivo com nome passive.lua e adicione: PASSIVE_BEHAVIOR = {"Deer", "Rabbit"} -- Aqui ficam os monstros que não atacam, mesmo que atacados. function onCombat(cid, target) if isMonster(target) then if not isInArray(PASSIVE_BEHAVIOR, getCreatureName(target)) then doCreatureSetStorage(target, "hostile", 1) end doMonsterSetTarget(target, cid) end return true end No mesmo diretório, abra o arquivo login.lua e adicione: registerCreatureEvent(cid, "PassiveSystem") No diretório creaturescripts/, abra o arquivo creaturescripts.xml e adicione: <event type="combat" name="PassiveSystem" event="script" value="passive.lua"/> Agora é só compilar seu servidor, sem a pasta obj, ou seja, dê um Rebuild All e correr pro abraço com seu sistema de monstros passivos. Abraços, Oneshot.1 ponto -
Fruit Picking Introdução: é um sistema simples, consiste em você pode colher a fruta da arvore e ela crescer depois de um tempo de novo. Instalar o script: em action/script crie: FruitHarvesting.lua adicione: -- Do not remove the credits -- -- [ACTION] Fruit Harvesting -- -- Developed by Rigby -- -- Especially for the Xtibia.com -- local config = { -- [ID_DA_ARVORE] = {FRUTA, QUANTIDADE{minimo, maximo}, ID_DA_ARVORE_SEM_FRUTO, TEMPO_PARA_ÀRVORE_FICA_COM_FRUTO} [5157] = {fruit = 5097, quantity = {0,1}, treeWithoutFruit = 5156, timeToGrow = 5}, [4006] = {fruit = 2675, quantity = {0,3}, treeWithoutFruit = 4008, timeToGrow = 20}, [5094] = {fruit = 2676, quantity = {3,6}, treeWithoutFruit = 5092, timeToGrow = 30}, [5096] = {fruit = 2678, quantity = {2,7}, treeWithoutFruit = 2726, timeToGrow = 70}, } function onUse(cid, item, fromPosition, itemEx, toPosition) for i, k in pairs(config) do if (isInArray(i, item.itemid) == true) then random = math.random(k.quantity[1],k.quantity[2]) doTransformItem(item.uid, k.treeWithoutFruit, 1) doPlayerAddItem(cid,k.fruit,random) addEvent(function() doTransformItem(getThingFromPos(toPosition).uid, i) end, k.timeToGrow * 1000) if random > 0 then doPlayerSendTextMessage(cid,27,"Você pego "..random.." "..getItemNameById(k.fruit).."!") else doPlayerSendTextMessage(cid,27,"Àrvore não deu nenhum fruto!") end end end return true end em action/action.xml adicione a tag: <action itemid="5157;4006;5094;5096" event="script" value="FruitHarvesting.lua"/> Se você adicionar mais arvore não esqueça de adiciona o id na tag também.1 ponto
-
Teleporte falante
alissonxzff2 reagiu a Bruno por uma questão
Tente assim: local config = { ["VipCity"] = { x = 167, y = 49, z = 7 }, ["Power"] = { x = 153, y = 44, z = 7 }, ["Castle"] = { x = 166, y = 54, z = 7 }, ["Arena"] = { x = 151, y = 53, z = 7 }, ["Teleports"] = { x = 157, y = 47, z = 7 }, ["VipQuest"] = { x = 151, y = 54, z = 7 }, ["Depot"] = { x = 151, y = 55, z = 7 }, ["Especiais"] = { x = 177, y = 62, z = 7 }, ["Eventos"] = { x = 159, y = 47, z = 7 }, ["Bem Vindo"] = { x = 160, y = 54, z = 7 } } function onThink(cid, interval, lastExecution) for text, pos in pairs(config) do doSendAnimatedText(pos, text, math.random(1, 255)) end return true end1 ponto -
So basta usar um addEvent local savingEvent = 0 function onSay(cid, words, param, channel) if(isNumber(param)) then stopEvent(savingEvent) save(tonumber(param) * 60 * 1000) else doBroadcastMessage("Server Save!!") -- msg addEvent(doSaveServer, 5000) -- quanto tempo vai demorar depois da msg 5000 = 5s end return true end function save(delay) doSaveServer() if(delay > 0) then savingEvent = addEvent(save, delay, delay) end end1 ponto
-
http://www.xtibia.com/forum/topic/211898-tutorial-como-criar-uma-quest-quando-clicar-no-bau-vem-item-e-vai-para-o-templo/ ver esse. tópico ai mesma coisa só pega o scripter1 ponto
-
[Resolvido] Modificar script weapons
Shadow Phantom reagiu a Alencar522 por uma questão
local efeito = 20 local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat, COMBAT_FORMULA_SKILL, 0, 0, 1.0, 0) local xCombat = createCombatObject() setCombatParam(xCombat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) --setCombatParam(combat, COMBAT_PARAM_EFFECT, 73) local condition = createConditionObject(CONDITION_FIRE) setConditionParam(condition, CONDITION_PARAM_DELAYED, 1) addDamageCondition(condition, 4, 2000, -10) addDamageCondition(condition, 6, 2000, -5) setCombatCondition(xCombat, condition) function onUseWeapon(cid, var) local ret = doCombat(cid, combat, var) if(ret == false) then return false end local target = variantToNumber(var) if(target ~= 0) then -- chance to fire the enemy local chance = math.random(0, 100) if(chance > 90) then doSendMagicEffect({x=getThingPosition(getCreatureTarget(cid)).x+2, y=getThingPosition(getCreatureTarget(cid)).y+0, z=getThingPosition(getCreatureTarget(cid)).z}, efeito) ret = doCombat(cid, xCombat, var) end end return ret end É isso?1 ponto -
1 ponto
-
Na verdade não está faltando nada, ele está avisando que a coluna checkdata não pode ser nula. Basta abrir o sqlite editor (não lembro se é esse nome porque faz 200 anos que não uso) e selecionar a tabela guild e alterar a culuna checkdata para "not null".1 ponto
-
Não entendo nada de db, mas eu tive esse problema quando baixei a TFS 0.4 e usava a database que tinha vindo nele, eu conseguir resolve trocando de database (aquele arquivo.s3db). tenta troca acho que vai funciona. :hi:1 ponto
-
Aperte CTRL+F e digite dirt, clique duas vezes no primeiro item e irá aparecer um novo menu no lado esquerdo do RME clique duas vezes em qualquer uma das opções que aparecer nesse menu, e o RME vai pra algum lugar onde vai ter mapa. Agora se nem isso resolver seu mapa deve estar bugado ou procure por outro item.1 ponto
-
Aqui duuh, vai manda a msg quando entrar no tp: pronto ai: Sim, eu coloquei para funcionar tanto da direita para esquerda ou esquerda para direita. #Foi tudo resolvido, se quiser mais algo crie um tópico fazendo seu pedido.1 ponto
-
Add Item ao Player ao Matar Monstro
blaster_kid reagiu a Bruno por uma questão
@@blaster_kid, Em data/creaturescripts/creaturescripts.xml adicione a seguinte tag: <event type="kill" name="AwardKill" script="awardkill.lua"/> Agora em data/creaturescripts/scripts crie um arquivo chamado awardkill.lua com o seguinte conteúdo: local config = { ["Demon"] = { storage = 10530, chance = 30, items = { {id = 2160, count = 5}, {id = 2400, count = 1} } }, ["Dragon"] = { storage = 10531, chance = 60, items = { {id = 2160, count = 5}, {id = 2400, count = 1} } }, ["Hero"] = { storage = 10532, chance = 15, items = { {id = 2160, count = 5}, {id = 2400, count = 1} } } } function onKill(cid, target) if isPlayer(target) then return true end local criatura = getCreatureName(target):lower() for i, j in pairs(config) do local nome = i:lower() if nome == criatura then local str = getPlayerStorageValue(cid, j.storage) if str < 10 then local rand = math.random(1, 100) if rand <= j.chance then local item = math.random(1, #j.items) doPlayerAddItem(cid, j.items[item].id, j.items[item].count) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Parabens! Voce ganhou um premio por matar ' .. criatura .. '.') setPlayerStorageValue(cid, j.storage, str < 0 and 1 or str + 1) end end end end return true end Ainda em data/creaturescripts/scripts, abra o arquivo login.lua e adicione o seguinte conteúdo antes do último return true: registerCreatureEvent(cid, "AwardKill") Explicação: ["Demon"] -- nome da criatura storage = 10530 -- uma storage livre para fazer a contagem para que o player receba apenas 10 vezes a recompensa chance = 30 -- change em porcentagem para que ele receba o item items = { {id = 2160, count = 5}, {id = 2400, count = 1} } Aqui é uma tabela, onde cada linha será um item aleatório que ele poderá receber, basta colocar o id e a quantidade. Att.1 ponto -
Atributos de cada vocaçao
Duuhzinhow reagiu a cheveko por uma questão
Nunca cheguei a testar, mas creio que seja da seguinte forma... se o player tiver causar 20 de dano com uma arma qualquer com o meleeDamage="1.0", se for 2.0, ele dará 40, seria o multiplicador de dano, entendeu? se tiver ="5.0", o dano será 5x maior..1 ponto -
RealPoke Online!
Shadow Phantom reagiu a Avronex por um tópico no fórum
Usei boa parte do seu server! Mas refiz praticamente tudo kk Vou tentar disponibilizar hoje ainda o cliente com Direct X 9.1 ponto -
Gostei muito da sugestão, espero que o pessoal aceite. Com certeza teria facilitado minha época na equipe... mas não ganha (pelo menos não ganhava) post por usar essa ferramenta de mover pra área de resolvidos. Mesmo que a pessoa apertasse sem querer, ela poderia denunciar e o moderador moveria de volta. Aconteceria muito menos do que ter que mover todos os tópicos resolvidos individualmente. Também não entendi como a pessoa marcar a própria resposta é um problema desse mecanismo. Não tenho acompanhado muito pra dizer como está agora, mas já tivemos épocas em que tanto por volume de tópicos quanto por ausência da equipe, as seções de pedidos e dúvidas tinham vários tópicos resolvidos que não eram devidamente movidos e isso teria contribuído muito.1 ponto
-
não teria como fazer um por movement, dai quando os dois fields forem jogados, a estatua se move sem ter que clicar em nada?1 ponto
-
Ajuda na vip
alissonxzff2 reagiu a Bruno por uma questão
Se é questão de acesso apenas, isso é simples resolver, pois provavelmente ele deve estar sobreescrevendo a storage quando ele evolui de vip e o movements checa apenas x valor. Exemplo: Deve estar: getPlayerStorageValue(cid, xxxx) == 1 Deveria estar: getPlayerStorageValue(cid, xxxx) >= 1 Ai isso vai só mudando conforme ele vai adquirindo outras vips, evitando ter que registrar uma storage para cada nível.1 ponto -
Sim a estatua volta para seu lugar de origem, só não tava removendo os fields mas ja coloquei para remover. Aqui a versão sem aparecer o teleport:1 ponto
-
Opa gostei do seu pedido. Eu pensei em fazer usa globalevent mas isso iria da lag no seu servidor. Então eu fiz por action, tipo quando você usar os fields no piso e clica em alguma coisa(recomendo você coloca para clicar na estatua mas pode coloca em uma alavanca ou qualquer coisa) a estatua vai mover para trás e vai aparecer o teleport, depois de um tempo configurado ela volta para o lugar. Ta aqui: .lua -- Do not remove the credits -- -- [ACTION] Secret Teleport -- -- Developed by Rigby (João Vitor) -- function onUse(cid, item, fromPosition, itemEx, toPosition) local fields = {1492, 1495} -- id do fire field e energy field local tile1 = {x = 1066, y = 1020, z = 7, stackpos= 1} -- Posição do tile 1 local tile2 = {x = 1068, y = 1020, z = 7, stackpos= 1} -- Posição do tile 2 local statue_Of_Position = {x = 1067, y = 1020, z = 7} -- posição onde fica a estátua, que ira aparecer o teleport local teleport = {x = 1066, y = 1020, z = 7} -- posição da onde o player vai quando entrar no teleport local go_Backward = {x = 1067, y = 1019, z = 7} -- Posição para aonde a estátua vai local statue = 3697 -- id da estátua local tempo = 5 -- tempo em segundos que o teleporte ficara aberto local pos1 = getThingfromPos(tile1) local pos2 = getThingfromPos(tile2) if (pos1.itemid == fields[1] and pos2.itemid == fields[2]) or (pos1.itemid == fields[2] and pos2.itemid == fields[1]) then if getItemStack(statue_Of_Position, statue) then doRemoveItem(getItemStack(statue_Of_Position, statue).uid, 1) doCreateTeleport(1387, teleport, statue_Of_Position) doCreateItem(statue, 1, go_Backward) if getItemStack(tile1, fields[1]) then doRemoveItem(getItemStack(tile1, fields[1]).uid, 1) doRemoveItem(getItemStack(tile2, fields[2]).uid, 1) else doRemoveItem(getItemStack(tile1, fields[2]).uid, 1) doRemoveItem(getItemStack(tile2, fields[1]).uid, 1) end addEvent(function() doCreateItem(statue, 1, statue_Of_Position) doRemoveItem(getItemStack(statue_Of_Position, 1387).uid, 1) doRemoveItem(getItemStack(go_Backward, statue).uid, 1) end, tempo*1000) end end end function getItemStack(pos, iid) for i = 1, 255 do posa = getThingFromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=i}) if posa.itemid == iid then return posa end end return nil end Xml, tag <action actionid="6567" event="script" value="NomedoScript.lua"/> So basta coloca o actionid 6567 na estatua ou outro item.1 ponto
-
#2 Mudanças e Novidades
Omega reagiu a Administrador por um tópico no fórum
Fala galera, vim trazer algumas novidades para vocês. Espero que comentem e participem. Atualizações recentes - Corrigido grupos Heroi; - Corrigido bug de cores em fontes (dos grupos); - Reorganização da seção xTibia ; *Notícias e Lixeira pública categorizados em Geral - Reformulamento da seção Tibia Global; *Geral (Notícias & Discussões) *Tutoriais *Media - Reorganização nas categorias; *Tópicos recentes *xTibia *OtServ *Tibia Global *Concursos *OFF Topic - Recriação da categoria Concursos; *Concursos gerais apresenta os concursos ativos e os eventos básicos -Arrumado o bug de layout que ocorria nos links adicionais do menu; -Criado um Github oficial do xTibia. https://github.com/xtibia Adicionado BBCodes Este é um bbcode de alerta. Para utilizar, basta digitar: [alerta]Texto[/alerta*] Sem o " =) Este é um bbcode de sucesso. Para utilizar, basta digitar: [sucesso]Texto[/sucesso*]Sem o " =) Ainda será adicionado o Pastebin, à pedido da galera =) Parcerias Apresento-lhes os projetos: OT Checker Guns Warriors Concursos!1 ponto -
Talkaction !rank [Personalizado]
MonsterB0SS reagiu a JuniorPavani por um tópico no fórum
Creditos: Critico (vodkart) Comando !rank atualizado com novo rank que é o !rank frags, onde mostra os maiores matadores do ot. Ranks: Skills Level Magic Health Mana Frags Exemplo: !rank frags !rank magic Crie ranks.lua em data/talkactions/scripts. e cole o script abaixo local config = { MaxPlayer = 20, fight_skills = { ['fist'] = 0, ['club'] = 1, ['sword'] = 2, ['axe'] = 3, ['distance'] = 4, ['shielding'] = 5, ['fishing'] = 6, ['dist'] = 4, ['shield'] = 5, ['fish'] = 6, }, other_skills = { [''] = "level", ['level'] = "level", ['magic'] = "maglevel", ['health'] = "healthmax", ['mana'] = "manamax" }, vocations = { ['sorcerer'] = {1,5}, ['druid'] = {2,6}, ['paladin'] = {3,7}, ['knight'] = {4,8} }, storages = { ['frags'] = 824544 } } function onSay(cid, words, param) local store,exausted = 156201,30 local param,str = string.lower(param),"" if not config.fight_skills[param] and not config.other_skills[param] and not config.vocations[param] and not config.storages[param] then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "this ranking does not exists.") return true elseif getPlayerStorageValue(cid, store) >= os.time() then doPlayerSendCancel(cid, "wait " .. getPlayerStorageValue(cid, store) - os.time() .. " seconds to use this command again.") return true end str = "--[ RANK "..(param == "" and "LEVEL" or string.upper(param)).." ]--\n\n" query = config.fight_skills[param] and db.getResult("SELECT `player_id`, `value` FROM `player_skills` WHERE `skillid` = "..config.fight_skills[param].." ORDER BY `value` DESC;") or config.other_skills[param] and db.getResult("SELECT `name`, `"..config.other_skills[param].."` FROM `players` WHERE `id` > 6 AND `group_id` < 2 ORDER BY `"..config.other_skills[param].."` DESC, `name` ASC;") or config.storages[param] and db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = "..config.storages[param].." ORDER BY cast(value as INTEGER) DESC;") or db.getResult("SELECT `name`, `level` FROM `players` WHERE `group_id` <= 2 AND `vocation` = "..config.vocations[param][1].." or `vocation` = "..config.vocations[param][2].." ORDER BY `level` DESC;") if (query:getID() ~= -1) then k = 1 while true do str = str .. "\n " .. k .. ". "..(config.fight_skills[param] and getPlayerNameByGUID(query:getDataString("player_id")) or config.storages[param] and getPlayerNameByGUID(query:getDataString("player_id")) or query:getDataString("name")).." - [" .. query:getDataInt((config.fight_skills[param] and "value" or config.storages[param] and "value" or config.vocations[param] and "level" or config.other_skills[param])) .. "]" k = k + 1 if not(query:next()) or k > config.MaxPlayer then break end end query:free() end doShowTextDialog(cid,6500, str) setPlayerStorageValue(cid, store, os.time()+exausted) return true end Em data/lib/050-function.lua adicione: function setFrags(cid) if not isCreature(cid) then return LUA_ERROR end setPlayerStorageValue(cid, 824544, getPlayerFrags(cid)) return doPlayerSave(cid) end Crie rankfrags.lua em data/creaturescripts/scripts e cole o script abaixo function onKill(cid, target, lastHit) if isPlayer(cid) and isPlayer(target) then addEvent(setFrags, 1, cid) end return true end E em data/creaturescripts/login.lua adicione: registerCreatureEvent(cid, "Rankfrags") setFrags(cid) Se ajudei REP + E todos ficamos Felizes!1 ponto -
[Inquisition] Scripts Mapa Global! Plz,
Matheus36000 reagiu a AnneMotta por uma questão
Espero ter contribuido, vou mandar mover para pedidos atendidos.1 ponto