Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 01/18/16 em todas áreas
-
Agora sim ficou bem mais sensato, não tem como levar todos os quesitos ao pé da letra, pois cada um contribuiu e impactou de formas diferentes. O titulo de Herói é uma forma de agradecimento pelos serviços prestados pela a comunidade no modo em geral, fico satisfeito sobre a reavaliação pois vi que a equipe do xtibia tem seriedade com todos os seus membros e que estão disposto há ouvi a opinião de todos. Muitos membros novos se olharem para analisar eu quase não tenho reputação pois na época que eu frequentava não existia este sistema, mas enfim. Daniel muito obrigado por me ouvi e reconhecer os méritos que já prestei em toda comunidade. Um abraço GOD Bon Saudações ao eterno Yurots 1.2 (8.1)4 pontos
-
Visual 2015
JonatasLucasf e 2 outros reagiu a Avuenja por um tópico no fórum
Bom dia pessoal do Ékz, venho até vocês para apenas informar o motivo de voltarmos ao visual de 2015, como todos já devem ter percebido ao entrar no fórum hoje. Para quem não me conhece, sou o Coordenador de Infraestrutura da Comunidade, e cuido desta parte de visual e tudo o que se pode dizer a respeito em relação a isso. O motivo de voltarmos para a antiga skin, foi por alguns motivos que a nova não estava nos possibilitando algumas questões, e também pelo feedback dos vocês membros, pois queremos sempre o melhor para todos. Mas estaremos trabalhando nesta nova skin, e em um novo visual para o Ékz, que nos dará uma entidade visual ótima e única. Aguardem pessoal. Pois bem, é isto. Fiquem na Santa paz de Deus. Abraços3 pontos -
Nível e vocation em vez do nome do mundo em character login
SamueLGuedes e um outro reagiu a kaleudd por um tópico no fórum
img: em iologindata.h procure: uint32_t getAccountIdByName(const std::string& name) const; e substituia por: std::string getCheckPlayerLevel(const std::string& name) const; iologindata.cpp para tfs 0.3.6 std::string IOLoginData::getCheckPlayerLevel(const std::string& name) const { Database* db = Database::getInstance(); DBQuery query; query << "SELECT `level`, `vocation`, `promotion` FROM `players` WHERE `name` " << db->getStringComparison() << db->escapeString(name) << ";"; DBResult* result; if (!(result = db->storeQuery(query.str()))) return false; const uint32_t pLevel = result->getDataInt("level"); const uint32_t pVoc = result->getDataInt("vocation"); const uint32_t prom = result->getDataInt("promotion"); std::string voc; if (prom == 0) { switch (pVoc) { case 0: voc = "Rookie"; break; case 1: voc = "S"; break; case 2: voc = "D"; break; case 3: voc = "P"; break; case 4: voc = "K"; break; default: voc = "Uknown"; } } else if (prom == 1) { switch (pVoc) { case 0: voc = "Rookie"; break; case 1: voc = "MS"; break; case 2: voc = "ED"; break; case 3: voc = "RP"; break; case 4: voc = "EK"; break; default: voc = "Uknown"; } } std::stringstream ret; ret << "Level: "<< pLevel << " Voc: " << voc; result->free(); return ret.str(); } para tfs 0.4: std::string IOLoginData::getCheckPlayerLevel(const std::string& name) const { Database* db = Database::getInstance(); DBQuery query; query << "SELECT `level`, `vocation`, `promotion` FROM `players` WHERE `name` " << db->getStringComparer() << db->escapeString(name) << ";"; DBResult* result; if (!(result = db->storeQuery(query.str()))) return false; const uint32_t pLevel = result->getDataInt("level"); const uint32_t pVoc = result->getDataInt("vocation"); const uint32_t prom = result->getDataInt("promotion"); std::string voc; if (prom == 0) { switch (pVoc) { case 0: voc = "Rookie"; break; case 1: voc = "S"; break; case 2: voc = "D"; break; case 3: voc = "P"; break; case 4: voc = "K"; break; default: voc = "Uknown"; } } else if (prom == 1) { switch (pVoc) { case 0: voc = "Rookie"; break; case 1: voc = "MS"; break; case 2: voc = "ED"; break; case 3: voc = "RP"; break; case 4: voc = "EK"; break; default: voc = "Uknown"; } } std::stringstream ret; ret << "Level: "<< pLevel << " Voc: " << voc; result->free(); return ret.str(); } agora em protocollogin.cpp procure: output->putString(g_config.getString(ConfigManager::SERVE R_NAME)); e em baixo adicione: output->putString(IOLoginData::getInstance()->getCheckPlayerLevel((*it))); testado em 0.3.6 e 0.4 tfs. créditos: jetros2 pontos -
Bom, fiz assim Add no final do creaturescripts\scripts\login.lua Abaixo de: -- Events player:registerEvent("PlayerDeath") player:registerEvent("DropLoot") player:registerEvent("Debuff") Add no creaturescripts.xml <event type="healthchange" name="Debuff" script="debuff.lua"/> Exemplo de spells.xml <instant group="attack" spellid="61" name="Debuff" words="debuff" lvl="1" mana="0" prem="0" range="4" needtarget="1" blockwalls="1" needweapon="0" exhaustion="6000" groupcooldown="2000" needlearn="0" script="debuff.lua"> </instant> spells\scripts\debuff.lua local combat = Combat() combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_SKULLVERTICAL) local conditionDebuff = Condition(CONDITION_PARALYZE) conditionDebuff:setParameter(CONDITION_PARAM_TICKS, 10000) conditionDebuff:setFormula(0, 0, 0, 0) combat:setCondition(conditionDebuff) local function removeDebuff(parameters) parameters.target:setStorageValue(parameters.key, parameters.value) end function onCastSpell(creature, var) local cid = creature:getId() parameters = {target = Creature(var:getNumber()), key = 99881, value = 0} parameters.target:setStorageValue(parameters.key, 1) addEvent(removeDebuff, 10000, parameters) return combat:execute(creature, var) end creaturescripts\scripts\debuff.lua function onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin) local hasdebuff = creature:getStorageValue(99881) --storage dada na debuff spell local percent = 2 -- dobro (50% seria 1.5) local tipoDano = COMBAT_FIREDAMAGE if hasdebuff > 0 then return primaryDamage*percent, tipoDano, secondaryDamage, secondaryType else return primaryDamage, primaryType, secondaryDamage, secondaryType end end2 pontos
-
Nao, nem foi http://www.xtibia.com/forum/topic/226823-o-que-e-ftp-como-usar-o-ftp/?p=1601512 Foi por bobeira, esqueci que informatica n eh bar, levei alerta hasudhasu. Sobre o do Beeki (fabio) foi como disse, foi brincadeira, eu pegava tudo do perfil dele (titulo, avatar, data d nascimento, etc) e usava. Nao sei o que foi, sei que eu brinquei com ele d algo d banir, e ele me suspendeu por 1 hora. Caronte, na realidade, eu fui questionar s O daniel nao entendeu, pensou que eu estava querendo o cargo e me deu, mesmo comigo n concordando com os criterios > birra Pelo amor d deus, ne cara. To batendo o pe no chao? Exigindo algo muito pesado? abç2 pontos
-
Herói
Andre Miles reagiu a Administrador por um tópico no fórum
Introdução Herói é um título (cargo). É concedido à membros que foram importantes para a comunidade. Em tempos passados, este título fora desvalorizado e permaneceu sem supervisão ou definição qualquer enquanto ativo. Herói 1.0 Heróis são avaliados pela contribuição realizada no fórum; 2.0 Alertas, dependendo da seriedade, podem remover o título de um membro. • Atualizado 30/05/171 ponto -
Global Full [CLIENTS COMPATÍVEIS] 10 e 11.5. [BUGS E DOWNLOAD] BAIXEM E REPORTEM EM: OTXGlobal Full [FEATURES] NEW DEPOT, NEW SPAWN, NEW CAST SYSTEM, NEW NPC SYSTEM VIA BANK BALANCE, NEW CRITICAL BOOST SYSTEM, NEW POTIONS, REWARD SYSTEM, PREY ... [MAPA] FULL GLOBAL MAP WITH FEYRIST TODAS CIDADES E NOVAS AREAS TODAS QUESTS FUNCIONANDO! [EVENTS] WAR-ANTIENTROSA [CONTATO] SKYPE: onjogos WHATSAPP: (66) 998427-4493 [Créditos]Tfs 1.2 Developers -Zbizu - Pitis91 - MatheusMkalo - Gesior - Lundrial - M4G0 - Fish04k - Printer - Djarek - Ninjalulz - Slavidodo - Thexamx - Socket2810 - Ciroc -Absolute - Gordonbay - Mitsuig - Alissonfgp - Gunz - Bruno Minervino - Comedinha -Hirako - Maya - Mattyx14 – Darkjav - Viking Tibia1 ponto
-
[TFS 1.x] save automatico ao sair
icaro201094 reagiu a kaleudd por um tópico no fórum
em game.cpp,procure por: oid Game::shutdown() { std::cout << "Shutting down..." << std::flush; g_scheduler.shutdown(); g_databaseTasks.shutdown(); g_dispatcher.shutdown(); map.spawns.clear(); raids.clear(); cleanup(); if (serviceManager) { serviceManager->stop(); } ConnectionManager::getInstance().closeAll(); std::cout << " done!" << std::endl; } e substitua por este: void Game::shutdown() { std::cout << ">> Shutting down...\n> " << std::flush; saveGameState(); g_scheduler.shutdown(); g_databaseTasks.shutdown(); g_dispatcher.shutdown(); map.spawns.clear(); raids.clear(); cleanup(); if (serviceManager) { serviceManager->stop(); } ConnectionManager::getInstance().closeAll(); std::cout << "> Done!" << std::endl; } créditos: Fir3element1 ponto -
Quest Inovadora, CONFIRA!
Marco Oliveira reagiu a totonho18 por um tópico no fórum
É um script de quest feito 100% por mim O que ela retorna? Essa quest simplesmente te fornece um conjunto de itens dentro de uma bag, itens básicos, porém os itens recebidos da quest são diferentes para cada vocação, e detalhe, ela fornece uma sword ou um axe ou um club para o jogador caso ele seja knight, o tipo da arma dependerá do skill do mesmo, se seu maior skill for axe, ele receberá um machado, e o maior skill for club ele recebe uma clava e se o maior for sword ele recebe uma espada, é um sistema de fácil configuração e acredito que pode ser útil de alguma forma principalmente aos programadores iniciantes. Implementação; Abra a pasta data/actions/scripts -> copie e cole um arquivo qualquer e o renomeie para recompensa.lua Apague tudo que tiver dentro e cole o seguinte código: function onUse(cid, item, frompos, item2, topos) --A Configuração abaixo local config = { level_min = 20, -- level mínimo Premium = true, -- Necessita P.A? true para sim ou false para não Club = 7381, -- id da clava caso o suposto knight tenha skill club superior Sword = 7385, -- id da espada caso o suposto knight tenha skill sword superior Axe = 2435 -- id da machado caso o suposto knight tenha skill axe superior } -- Fim da config OBS Configure dessa linha pra baixo se e somente se souber o que está fazendo local SkillClub = getPlayerSkillLevel(cid, 1) local SkillSword = getPlayerSkillLevel(cid, 2) local SkillAxe = getPlayerSkillLevel(cid, 3) local level = getPlayerLevel(cid) local Voc = getPlayerVocation(cid) local QuestStatus = getPlayerStorageValue(cid,13139) if config.Premium and not isPremium(cid) then doPlayerSendTextMessage(cid,29,"Apenas para jogadores premium accounts") return 0 end if Voc == 4 or Voc == 8 then if level >= config.level_min then if QuestStatus == -1 then if (SkillClub > SkillSword) and (SkillClub > SkillAxe) then doPlayerAddItem(cid,config.Club,1) elseif (SkillSword > SkillClub) and (SkillSword > SkillAxe) then doPlayerAddItem(cid,config.Sword,1) elseif (SkillAxe > SkillClub) and (SkillAxe > SkillSword) then doPlayerAddItem(cid,config.Axe,1) end local bag = doPlayerAddItem(cid,3939,1) doPlayerSendTextMessage(cid,29,"Voce recebeu alguns itens uteis") doAddContainerItem(bag, 2152, 50) doAddContainerItem(bag, 2647, 1) doAddContainerItem(bag, 2463, 1) doAddContainerItem(bag, 2457, 1) doAddContainerItem(bag, 2661, 1) doAddContainerItem(bag, 2525, 1) setPlayerStorageValue(cid,13139,1) else return doPlayerSendTextMessage(cid,29,"Vazio") end else doPlayerSendTextMessage(cid,29,"Only Level "..config.level_min.."+") end elseif Voc == 3 or Voc == 7 then if level >= config.level_min then if QuestStatus == -1 then local bag = doPlayerAddItem(cid,3939,1) doPlayerSendTextMessage(cid,29,"Voce recebeu alguns itens uteis") doAddContainerItem(bag, 2152, 50) doAddContainerItem(bag, 2647, 1) doAddContainerItem(bag, 8872, 1) doAddContainerItem(bag, 2457, 1) doAddContainerItem(bag, 2661, 1) doAddContainerItem(bag, 2525, 1) doAddContainerItem(bag, 7438, 1) setPlayerStorageValue(cid,13139,1) else return doPlayerSendTextMessage(cid,29,"Vazio") end else doPlayerSendTextMessage(cid,29,"Only Level "..config.level_min.."+") end elseif Voc == 1 or Voc == 5 then if level >= config.level_min then if QuestStatus == -1 then local bag = doPlayerAddItem(cid,3939,1) doPlayerSendTextMessage(cid,29,"Voce recebeu alguns itens uteis") doAddContainerItem(bag, 2152, 50) doAddContainerItem(bag, 2323, 1) doAddContainerItem(bag, 2188, 1) doAddContainerItem(bag, 2647, 1) doAddContainerItem(bag, 8892, 1) doAddContainerItem(bag, 2525, 1) doAddContainerItem(bag, 2661, 1) setPlayerStorageValue(cid,13139,1) else return doPlayerSendTextMessage(cid,29,"Vazio") end else doPlayerSendTextMessage(cid,29,"Only Level "..config.level_min.."+") end elseif Voc == 2 or Voc == 6 then if level >= config.level_min then if QuestStatus == -1 then local bag = doPlayerAddItem(cid,3939,1) doPlayerSendTextMessage(cid,29,"Voce recebeu alguns itens uteis") doAddContainerItem(bag, 2152, 50) doAddContainerItem(bag, 2323, 1) doAddContainerItem(bag, 2185, 1) doAddContainerItem(bag, 2647, 1) doAddContainerItem(bag, 8892, 1) doAddContainerItem(bag, 2525, 1) doAddContainerItem(bag, 2661, 1) setPlayerStorageValue(cid,13139,1) else return doPlayerSendTextMessage(cid,29,"Vazio") end else doPlayerSendTextMessage(cid,29,"Only Level "..config.level_min.."+") end end return true end feito isso salve e feche o arquivo. Agora vá na pasta data/actions/actions.xml e cole a seguinte tag abaixo: <action uniqueid="7111" script ="recompensa.lua" /> Feito isso basta abrir seu map editor e colocar o unique id no local onde o player vai clicar pra fazer a quest, seja lá o que for, um baú, uma estátua, uma parede,etc. Gostou? REP+ Analíse, critique, elogie, comente, me ajude a crescer. By Totonho 18, autor do código :smile_positivo:1 ponto -
Em vasto mundo de mistérios, existe uma pequena ilha, que também guarda grandes segredos, chamada de Rookgaard. Seus habitantes se resume a cidadãos camponeses, pescadores e comerciantes, que sobrevivem do que a ilha tem para lhes oferecer. Apesar da vida calma e tranqüila que a ilha tem a oferecer, existe uma segunda realidade que cerca a ilha até os dias atuais. Aventureiros são os que decidem encarar está segunda realidade, tendo como pagamento a experiência e um vasto conhecimento que a ilha pode oferecer. Desde pequeno, Frimzen fora um garoto divertido, justo e corajoso. Por ser filho de comerciantes, e ajudá-los na loja, Frimzen sempre tivera desconfiança do mundo lá fora, pois as histórias que ele ouvia de alguns aventureiros que passavam por lá, o deixava bastante pensativo. Certo dia, como mais um dia de trabalho qualquer, Frimzen foi abastecer os suprimentos da loja, quando um homem aparentemente velho e com uma barba longa adentrou na loja, com um sorriso de um canto à outro. A felicidade tomou conta de Frimzen, que correu em direção do velho homem. - Tio Rimla, o senhor finalmente voltou! - Gritou Frimzen. Rimla é o irmão do pai de Frimzen, Paul. Rimla seu havia partido para aperfeicçoar os conhecimentos de uma linguagem antiga, uma linguagem que foi esquecida há muito tempo, A Linguagem Fict. Rimla era um Druida que se importava com as criaturas que existia em Rookgaard, porém a convivência entre humanos e as criaturas só tem piorado, desde que Banor, o Divino morreu. Era uma noite de festa, e todo o vilarejo estava presente, afinal era Rimla que estava de volta, o homem cujo conseguiu manter as ainda existentes relações com algumas criaturas, permitindo que o vilarejo fique à salvo de ataques. Era uma noite clara, onde as estrelas brilhavam bastante, e Frimzen resolveu passear pela floresta, já que a cidade toda estava em festa, e os guardas abandonaram seus postos. Frimzen nunca acreditara nas histórias de seu tio, pois no fundo, ele tinha medo. Medo de saber que existem pessoas e criaturas perversas no mundo, medo de ter medo, medo de morrer. O que viria depois da morte? Frimzen se perguntava bastante do porque nunca poder sair da vila; é tão perigoso lá fora? Foi se deixando levar durante o caminho, que Frimzen já não sabia mais onde estava. O barulho da floresta era mínimo, os sons presentes eram de alguns animais que ali estavam, e do balançar das folhas provocado pelo vento. De longe, ainda dava para ver que a cidade ainda estava comemorando a volta de Rimla. Tudo estava calmo e silencioso, até que uma lança atingiu seu braço. A descrição de tamanha dor não tem palavras. Frimzen gritou profundamente, e saiu correndo floresta adentro, sem saber mais onde estava, e isso acordou algumas criaturas que por ali estavam. O pânico já havia tomado conta de Frimzen, juntamente com um sentimento que nunca tinha sentido antes, o medo. Frimzen procurou em todas as direções, e avistou uma criatura esverdeada, que vestia um capuz azul, e carregava consigo várias lanças, além de soltar grunhidos e sons que Frimzen não conseguia assemelhar com nada que já tinha ouvido antes. A criatura segue em sua direção, acompanhado de outras criaturas esverdeadas, porém estes estavam sen lanças, e apenas com vestimentas de couro bastante velhas. Os seres que ali estavam, avançavam em sua direção, quando de repente, Frimzen escuta uma palavras estranhas, acompanhadas de uma voz familiar. - Utevo gran lux. - Disse a voz Após as palavras serem pronunciadas, um clarao de luz tomou conta daquela área, fazendo com que todas as criaturas partissem em retirada. - Você está bem? - Disse a voz. - Tio... Como você?... - Perguntou Frimzen, abismado. - É uma longa história, mas tudo o que ouviu até hoje é verdade. - Respondeu Rimla. Após isso, o susto, o medo, a felicidade e o alívio de estar vivo, contribuíram para que Frimzen desmaiasse. Frimzen não sabia, mas aquilo que ele acabara de ver, era apenas o início de algo muito vasto, e magnífico, a magia. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Bom pessoal, esse foi meu primeiro conto baseado no Tibia. Se vocês gostaram, comentem ai que eu vou dando continuidade à história. OBS: Saiu 2 tópicos porque eu tava pelo celular, peço desculpas à todos.1 ponto
-
Duvida sobre como criar uma Spell!
Night Wolf reagiu a Skulls por uma questão
Basicamente isso: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, 10000) setConditionParam(condition, CONDITION_PARAM_SKILL_MELEE, 1) setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, 1) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, 1) setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, 1) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setCombatCondition(combat, condition) local outfit = { lookType = 31 , lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookAddons = 0} function undoTransform(cid, itemid1, itemid2) if getPlayerItemCount(cid, itemid1) > 0 then local item = getPlayerItemById(cid, true, itemid1) doTransformItem(item.uid, itemid2) end end function onCastSpell(cid, var) if getPlayerItemCount(cid, 2250) > 0 then local item = getPlayerItemById(cid, true, 2250) doTransformItem(item.uid, 2502) addEvent(undoTransform, 1000, cid, 2502, 2250) doSetCreatureOutfit(cid, outfit, 1000) return doCombat(cid, combat, var) end return false end Agora tem que criar um storage pra controlar isso e adicionar um check no login.lua, se o player logar no meio da magia, quando ele entrar novamente o item retornará ao anterior. Abraços,1 ponto -
Deve ser a versão entao, pq fiz pra 1.x Faz mt tempo que não faço nada pra versões antigas. Vai ter de traduzir de 1.x pra 0.41 ponto
-
Pera, deixa eu ver se eu entendi: O player usa a magia, tudo aquilo acontece e o item x vira y? Após um tempo T y volta a ser x e os efeitos passam, correto?1 ponto
-
Nível e vocation em vez do nome do mundo em character login
SamueLGuedes reagiu a kaleudd por um tópico no fórum
blz,tamo ai1 ponto -
Dual Wield || Weapons for tfs (1.x)
kaleudd reagiu a SamueLGuedes por um tópico no fórum
Entendi, bem legal, vai ser super útil, parabéns pelo script xD.1 ponto -
Duvida sobre como criar uma Spell!
Nimaro22 reagiu a Night Wolf por uma questão
e se ele não possuir esse item 2250? a magia não irá funcionar? E se ele usar a spell e jogar fora o item 2502?1 ponto -
Pegar valores em tabela da database.
otavio101 reagiu a Night Wolf por uma questão
"Como posso pegar um valor da database e colocar em uma variável: Ex: Variavelid = Valor do id da tabela players" em geral os servidores utilizam a função db.getResult pra pegar o resultado de uma query na database, porém isso muda com a versão. "E como pegar o ultimo ID criado?" utilize a query na database SELECT * from players ORDER BY id DESC LIMIT 1 Selecionar tudo de players, ordenar por id de forma descendente e pegar só o primeiro. "Esses IDs das tabelas são gerados automaticamente em sequencia?" Depente, id do que? se for de players, sim pois eles possuem um trigger (ativador) que cada vez que uma conta é inserida o id é auto incrementado (se era 15, vira 16 no novo)1 ponto -
altere o local tempo = 2 -- Quanta horas ele vai usar o comando novamente ? ali está 2 = 2 horas. para local tempo = 168 -- Quanta horas ele vai usar o comando novamente ? ali está 168 = 1 semana.1 ponto
-
Coloque os créditos.1 ponto
-
Nível e vocation em vez do nome do mundo em character login
kaleudd reagiu a SamueLGuedes por um tópico no fórum
Nossa... muito legal, parabéns pelo script xD. só uma dúvida, funcionaria para OTC?1 ponto -
Preciso de um Swelia acc Como este!
rodrigor78 reagiu a MuriloCavalcantti por uma questão
Será que esse resolve? http://www.xtibia.com/forum/topic/195776-swelia-acc-maker-7x/1 ponto -
Mapa não mostra nada.
lokoga reagiu a Administrador por uma questão
Não é erro, é um aviso de que o mapa foi importado. Veja se o mapa ainda não aparece após clicar em ok.1 ponto -
Herói
SkyDangerous reagiu a Administrador por um tópico no fórum
Irei avaliar com a equipe @@SkyDangerous :biggrin:1 ponto -
Herói
Administrador reagiu a SkyDangerous por um tópico no fórum
No caso de mim Eu já fui da equipe, participei junto com o guh por algum tempo quando ele ficou mais ativo no fórum, ajudei o fórum tanto no suporte como no conteúdo e estou esperando meu computador novo para voltar a ficar ativo.1 ponto -
Qual Sistema Esolher ?
kaleudd reagiu a Dennyz Dias por uma questão
Assim Vlw, Tambem estou usando debian 6 gostei muito tambem so que pensei algum outro fosse bem melhor1 ponto -
Como desbugar esse mapa de poketibia?
nlalglaltlo reagiu a SamueLGuedes por uma questão
Use um RME diferente, talvez um extendido, caso sua SPR seja extendida. se você não sabe extender o RME, utilize esse Link1 ponto -
Qual Sistema Esolher ?
Dennyz Dias reagiu a kaleudd por uma questão
usei debian 6 e debian 7,os dois são muito bom,pouca diferença,recomendo debian 6 ou 7,ai fica seu critério.1 ponto -
Magia que invoca monstros por 5 segundos.
Caronte reagiu a NightmareStalker por uma questão
Uma pequena alteração no script acima, porem que pode facilitar a configuração e o entendimento do sistema. function onCastSpell(cid, var) local time = 5 local creature = { "Demon", "Demon", "Dragon" } for index, creatureName in ipairs(creature) do local monster = doSummonCreature(creatureName, getThingPos(cid)) doConvinceCreature(cid, monster) creature[index] = monster end addEvent(function() for i = 1, #creature do if isCreature(creature[i]) then doRemoveCreature(creature[i]) end end end, 1000 * time) return true end1 ponto -
Herói
Piabeta Kun reagiu a Caronte por um tópico no fórum
Realmente, e é por isso que ainda estamos reavaliando, e você está contribuindo com a reavaliação1 ponto -
Herói
MuriloCavalcantti reagiu a Henrique Moura por um tópico no fórum
pelo amor de deus né cara acabou com o titulo1 ponto -
Herói
Piabeta Kun reagiu a Administrador por um tópico no fórum
Se sugerir alguns nomes, dos que foram removidos para avaliação ou dos que nunca tiveram o cargo, teremos o prazer de avaliar. Estes dias de análises percebi junto com meus colegas da equipe, que algumas coisas precisam ser reescritas e seguidas de outra forma, graças às opiniões dos membros.1 ponto -
OpenTibia e o Socialismo
Skulls reagiu a Administrador por um tópico no fórum
Nightmare, reveja alguns conceitos, eu já não consigo entender o que você está querendo dizer, e algumas coisas que você está falando atualmente não fazem sentido pra mim. De qualquer forma, estou no meio do muro, quero compreender os dois lados de uma maneira sólida, peço que não transformem essa discussão em uma briga, ou terei que fechar o tópico.1 ponto -
Cargo Heroi
Danihcv reagiu a NightmareStalker por um tópico no fórum
Só acho que se removeu os conteúdos, deveria perder os Reps...1 ponto -
Global 10/11.5 + OtherWorld + Hearth of Destruction Quest+ Eventos
Piabeta Kun reagiu a jvcasarin por um tópico no fórum
@@lokoga Se não me engano, é no accountmanagement.php Se não for lá, vc tem que editar o lvl e exp dos samples na database. Boa sorte1 ponto -
Spell de 'Dbuff'
Administrador reagiu a Skulls por uma questão
addDamageCondition(CONDITION_FIRE, rounds, time, value)1 ponto -
[DUVIDA] Nessa spell
Night Wolf reagiu a Caronte por uma questão
Cara você não pode dar espaços em variáveis. Variáveis são uma só palavra. essas variáveis que você criou: demon sumor best summon as duas não funcionarão corretamente... O que nós usamos para dar espaço nas variáveis é _ (underline) , logo sua variável ficaria assim: demon_sumor best_summon Também usamos o esquema de letras maiúsculas, como você vê nas funções Lua: demonSumor bestSummon Toma a spell, veja se tem mais algum erro (dei uma olhada só superficial) function onCastSpell(cid, var) local removeTime = 60 local summons = getCreatureSummons(cid) local MaximoSummon = 4 if (#summons == MaximoSummon) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você Já tem 4 Summons.") end if( #summons < MaximoSummon) then local anyPos, pos = {x = 0, y = 0, z = 0}, getCreaturePosition(cid) local toPos = { {x = pos.x + 1, y = pos.y, z = pos.z}, {x = pos.x - 1, y = pos.y, z = pos.z}, {x = pos.x, y = pos.y + 1, z = pos.z}, {x = pos.x, y = pos.y - 1, z = pos.z} } if getPlayerVocation(cid) == 6 then local demon_summor = doSummonCreature("Summon Master", pos) doConvinceCreature(cid, demon_summor) setCreatureMaxHealth(demon_summor, getCreatureMaxHealth(cid)) doCreatureAddHealth(demon_summor, getCreatureMaxHealth(cid)) setCreatureMaxMana(demon_summor, getCreatureMaxMana(cid)) doCreatureAddMana(demon_summor, getCreatureMaxMana(cid)) doChangeSpeed(demon_summor, getCreatureBaseSpeed(cid)) doSetCreatureOutfit(demon_summor, getCreatureOutfit(cid), -1) end if getPlayerVocation(cid) == 7 then local best_summon = doSummonCreature("best summon", pos) doConvinceCreature(cid, best_summon) setCreatureMaxHealth(best_summon, getCreatureMaxHealth(cid)) doCreatureAddHealth(best_summon, getCreatureMaxHealth(cid)) setCreatureMaxMana(best_summon, getCreatureMaxMana(cid)) doCreatureAddMana(best_summon, getCreatureMaxMana(cid)) doChangeSpeed(best_summon, getCreatureBaseSpeed(cid)) doSetCreatureOutfit(best_summon, getCreatureOutfit(cid), -1) end end return true end Também editei a função table.maxn(), para pegar o número de indexes da sua tabela, basta colocar # na frente do nome dela, assim: #tabela Também vi que sua magia ainda não tá pronta. Quando estiver, que tal postar aqui? Com certeza terá meu REP + Aaaaah, mais uma coisinha, seria legal você criar uma função para isso, pois você tá repetindo um número muito grande de linhas... vou mostrar como: function createSummon(cid, summon, pos) local summonCid = doSummonCreature(summon, pos) doConvinceCreature(cid, summonCid) setCreatureMaxHealth(summonCid, getCreatureMaxHealth(cid)) doCreatureAddHealth(summonCid, getCreatureMaxHealth(cid)) setCreatureMaxMana(summonCid, getCreatureMaxMana(cid)) doCreatureAddMana(summonCid, getCreatureMaxMana(cid)) doChangeSpeed(summonCid, getCreatureBaseSpeed(cid)) doSetCreatureOutfit(summonCid, getCreatureOutfit(cid), -1) return true end function onCastSpell(cid, var) local removeTime = 60 local summons = getCreatureSummons(cid) local MaximoSummon = 4 if (#summons == MaximoSummon) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você Já tem 4 Summons.") end if(#summons < MaximoSummon) then local anyPos, pos = {x = 0, y = 0, z = 0}, getCreaturePosition(cid) local toPos = { {x = pos.x + 1, y = pos.y, z = pos.z}, {x = pos.x - 1, y = pos.y, z = pos.z}, {x = pos.x, y = pos.y + 1, z = pos.z}, {x = pos.x, y = pos.y - 1, z = pos.z} } if getPlayerVocation(cid) == 6 then createSummon(cid, "Summon Master", pos) end if getPlayerVocation(cid) == 7 then createSummon(cid, "Best Summon", pos) end end return true end Se der erro posta aqui...1 ponto -
Elorien Server baseado em Senhor dos Anéis
Administrador reagiu a grafit123 por um tópico no fórum
Obrigado pelos comentários!!! O servidor está bem legal e graças a Deus está enchendo!! Vale apena dar uma conferida1 ponto -
^^ nem quero sair do lixo pda pois trabalhar com sourcers é complicado e minha equipe é: eu, eu e eu ^^ entao to de boa com pda só mas msm assim reputei valeu pela contribuçao1 ponto
-
Pera aí, esqueci de uma coisa, as portas já tem um arquivo. vá na pasta others/doors.lua em baixo de: function onUse(cid, item, fromPosition, itemEx, toPosition) , e coloque isso if item.uid == 1234 then local items = { --[Quantidade] = ITEMID, [10] = 2160, [2] = 2148, } for count, id in pairs(items) do if getPlayerItemCount(cid, id) < count then doPlayerSendTextMessage(cid,20, "Voce nao tem "..(count - getPlayerItemCount(cid, id)).." ".. getItemNameById(id).." para passar.") doSendMagicEffect(fromPosition, CONST_ME_POFF) return false end end doorEnter(cid, item, toPosition) return true end Na porta você deve colocar uniqueId 1234, você pode alterar no script o 1234 para outro, e colocar no remeres esse outro... o player só passará se tiver todos os items da tabela, seguindo o exemplo...1 ponto
-
Perfect nick system 100%
Drakopoulos reagiu a Kydrai por um tópico no fórum
Precisa remover o break da função luaDoCreatureSetNick para o nome ser enviado para todos os jogadores na tela. E também tem que arrumar o que a função lua irá retornar, no caso acho que seria bom um false ou true. O certo seria assim: int32_t LuaScriptInterface::luaDoCreatureSetNick(lua_State* L) { //doCreatureSetNick(cid, nick) ScriptEnviroment* env = getEnv(); std::string nick = popString(L); Creature* creature = env->getCreatureByUID(popNumber(L)); if (creature) { SpectatorVec list; g_game.getSpectators(list, creature->getPosition()); Player* player = NULL; creature->Nick = nick; for (SpectatorVec::const_iterator it = list.begin(); it != list.end(); ++it) { if (player = (*it)->getPlayer()) { player->sendCreatureNick(creature); } } lua_pushboolean(L, true); } else { lua_pushboolean(L, false); } return 1; }1 ponto -
[Fechado] Lista de servidores derivados (SERVIDORES NOVOS, PFV, MANDEM MP OU MANDEM O TÓPICO DO SERVIDOR)
Sickcunt reagiu a FlamesAdmin por um tópico no fórum
Adicionado ao tópico: Pokemon Dash v10(Revolution) by valakas ------ Adicionado ao tópico: Dragon Ball - DBRelated 1.2 + Site + Data + Sources posted by AnimalPak ------ Adicionado ao tópico: Pokémon Draw (Linux) by Sickcunt1 ponto -
aew galera sou novo aqui vamos la vo postar um movements, que so passa pela position se tiver tal level. ex: so passa pela position x:100 y:50 z:7 se tiver level 300+ Va em movements/scripts e crie um bloco de notas e renomei para level.lua. Depois abra o bloco de notas e bota isso abaixo: function onStepIn(cid, item, position, fromPosition) level = 300 if getPlayerLevel(cid) < level then doTeleportThing(cid, fromPosition, true) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_RED) doPlayerSendCancel(cid,"Somente level " .. level .. " ou mais podem passar aqui.") end return TRUE end Depois Va em movements.xml e bote: <movevent type="StepIn" uniqueid="13550" event="script" value="level.lua"/> para edita o level que passa pela position se vai em movements/scripts level.lua na parte (level: 300) você edita o level que você deseja. para edita a animação quando você não tem level para passar, nessa parte (doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_RED) a na parte MAGIC_RED e o brilho vermelho você pode botar azul ou outro ex;MAGIC_BLUE. tambem pode edita o texto quando você não tem level para passar, nessa parte (doPlayerSendCancel(cid,"Somente level " .. level .. " ou mais podem passar aqui.") Você so mexe na parte:"somente pra la>" e tambem não mexa na parte "..level.." edite ex: você não passar Por aqui so "..level.." passa. se você tiver mapeditor, click com o botão direito no chão va em (propriedades) ai na unique bote (13550) vlw, Galera Aqui Foi Meu Primeiro poster Qualquer erro me avisem deixem comentarios porfavor By: whither1 ponto
-
Monstros se matando
Caronte reagiu a Night Wolf por uma questão
Rapaz, se for 0.3~0.4 vc tem uma gama infinita de creaturescripts pra brincar.. onAttack onFollow onTarget Experimenta cada um deles com return false e verifica qual que impede o monstro de seguir o player. Não sei se vou levar advertencia por postar link de outros fóruns mas não tem como eu copiar todo o contéudo que eu escrevi lá aqui. To meio sem tempo pra ficar abrindo sv e fazendo testes, mas prometo q se vc não conseguir eu vou fazer de tudo pra tentar algo aqui também. Boa sorte amigo, e se conseguir, por favor compartilhe a solução ^^-1 pontos