-
Total de itens
1347 -
Registro em
-
Última visita
-
Dias Ganhos
36
Tudo que Oneshot postou
-
Acho que com edição nas sources no player.cpp, na parte do Account Manager. Ou você pode colocar needpremium="1", mas aí jogadores Premium iriam poder escolher a vocação :x
-
O Que Você Acha Sobre "marketplace" No Xtibia.com!
tópico respondeu ao Administrador de Oneshot em Noticias
Acho sim interessante a criação de um mercado no fórum, porém não deveria ser do modo "Anuncie seu produto para vender", mas sim "Anuncie você", traduzindo você iria criar meio que um portfolio no fórum e o portfolio ficaria visível para a comunidade enquanto você colaborasse com a comunidade com tutoriais e diferentes conteúdos. Assim, além da comunidade receber conteúdo, o programador, scripter, mapper ou spriter poderia receber contatos de gente interessada em serviços privados, trabalhando como freelancer. -
Não, você teria que usar setPromotionLevel(cid, 1), a não ser que a vocation 13 seja outra promoção de alguma vocação, aí sim será setPromotionLevel(cid, 2)
-
PRONTO, GALERA! A nova versão do Forge System (Agora Advanced Forge System) saiu quentinha do forno. Nova formatação de tópico com um sistema ainda melhor de configurar. Em breve vídeo de demonstração
-
Se você colocar o fromvoc igual ao ID da própria vocação, o sistema entende que é uma vocação inicial e que pode ser escolhido pelo Account Manager.
-
Isso acontece porque Falcon Killer está com fromvoc="13" e o personagem não tem promotion igual a 1 no banco de dados. Ou você coloca o fromvoc do Falcon Killer para 14 ou então coloca promotion igual a 1 no personagem. A mesma coisa acontece se você coloca: /attr vocation 5 O personagem fica com a vocação Master Sorcerer, mas se sair e voltar ao jogo, vira Sorcerer. Abraços.
-
Veja por favor se o personagem que está a executar a magia não possui valores absurdos em alguma skill ou maglevel.
-
Eu testei todas antes de postar, então o problema é o servidor. Enfim, você pode esperar por outra pessoa fazer os scripts. Veja se você não esqueceu de fechar alguma chave no spells.xml. Abraços.
-
Compartilhe mais da sua sabedoria, Beeki. Se você tivesse falado antes ou feito um tutorial igual, eu não teria que ficar lendo o outfits.cpp para fazer um desse tema. Seria muito interessante que você procure fazer a lição de casa antes de vir desmerecer o trabalho dos outros.
-
local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} local items = {12285, 12286, 12287} local staff = 12288 local storage = 88776 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 onGreetCallback(cid) local status = getCreatureStorage(cid, storage) if status == -1 then talkState[cid] = 0 npcHandler:setMessage(MESSAGE_GREET, "What do you want, |PLAYERNAME|?") elseif os.time() < status then npcHandler:setMessage(MESSAGE_GREET, "Wait more ".. math.ceil((status - os.time())/60) .." minutes, |PLAYERNAME|!") npcHandler:releaseFocus(cid) else npcHandler:setMessage(MESSAGE_GREET, "Here it is! The great ".. getItemNameById(staff) ..".") doPlayerAddItem(cid, staff, 1) doCreatureSetStorage(cid, storage, -1) end return true end function onCreatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end if msgcontains(msg, "staff") and talkState[cid] == 0 then npcHandler:say("So do you have the three pieces to create the staff?", cid) talkState[cid] = 1 end if talkState[cid] == 1 then if msgcontains(msg, "yes") then local match = true for _, item in ipairs(items) do if getPlayerItemById(cid, true, item).uid == 0 then match = false break end end if match == true then for _, item in ipairs(items) do doPlayerRemoveItem(cid, item, 1) end npcHandler:say("Alright! Come back in ten minutes and the staff shall be made.", cid) doCreatureSetStorage(cid, storage, os.time() + 600) else npcHandler:say("Sorry, but you don't have all the items I need.", cid) end elseif msgcontains(msg, "no") then npcHandler:say("Alright then.") talkState[cid] = 0 end end return true end npcHandler:setCallback(CALLBACK_GREET, onGreetCallback) npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, onCreatureSayCallback) npcHandler:addModule(FocusModule:new()) Sinta-se a vontade para traduzir. Não curto muito NPCs em português. Fiz ele com os dez minutos para dar o item.
-
Estou trabalhando em uma atualização massiva desse sistema, melhorando muito o código, então qualquer erro será consertado em breve Abração.
-
OUTFITS Atributos e Configurações Olá, pessoal. Muitas pessoas não sabem, mas você pode adicionar vários bônus às outfits diretamente pelo outfits.xml, sem precisar de nenhum creaturescript que eventualmente possa dar lag em um servidor com muitos jogadores. Com este tutorial, você aprenderá a configurar vários tipos de bônus e até especificar se são necessários addons para ativar esses bônus. Para começar, vou colar abaixo o conteúdo de um outfits.xml do The Forgotten Server trunk.r3884 (0.4.0), vamos trabalhar em cima dele: <?xml version="1.0"?> <outfits> <outfit id="1"> <list gender="0" lookType="136" name="Citizen"/> <list gender="1" lookType="128" name="Citizen"/> </outfit> <outfit id="2"> <list gender="0" lookType="137" name="Hunter"/> <list gender="1" lookType="129" name="Hunter"/> </outfit> <outfit id="3"> <list gender="0" lookType="138" name="Mage"/> <list gender="1" lookType="130" name="Mage"/> </outfit> <outfit id="4"> <list gender="0" lookType="139" name="Knight"/> <list gender="1" lookType="131" name="Knight"/> </outfit> <outfit id="5" premium="yes"> <list gender="0" lookType="140" name="Noblewoman"/> <list gender="1" lookType="132" name="Nobleman"/> </outfit> <outfit id="6" premium="yes"> <list gender="0" lookType="141" name="Summoner"/> <list gender="1" lookType="133" name="Summoner"/> </outfit> <outfit id="7" premium="yes"> <list gender="0" lookType="142" name="Warrior"/> <list gender="1" lookType="134" name="Warrior"/> </outfit> <outfit id="8" premium="yes"> <list gender="0" lookType="147" name="Barbarian"/> <list gender="1" lookType="143" name="Barbarian"/> </outfit> <outfit id="9" premium="yes"> <list gender="0" lookType="148" name="Druid"/> <list gender="1" lookType="144" name="Druid"/> </outfit> <outfit id="10" premium="yes"> <list gender="0" lookType="149" name="Wizard"/> <list gender="1" lookType="145" name="Wizard"/> </outfit> <outfit id="11" premium="yes"> <list gender="0" lookType="150" name="Oriental"/> <list gender="1" lookType="146" name="Oriental"/> </outfit> <outfit id="12" premium="yes" default="0"> <list gender="0" lookType="155" name="Pirate"/> <list gender="1" lookType="151" name="Pirate"/> </outfit> <outfit id="13" premium="yes" default="0"> <list gender="0" lookType="156" name="Assassin"/> <list gender="1" lookType="152" name="Assassin"/> </outfit> <outfit id="14" premium="yes" default="0"> <list gender="0" lookType="157" name="Beggar"/> <list gender="1" lookType="153" name="Beggar"/> </outfit> <outfit id="15" premium="yes" default="0"> <list gender="0" lookType="158" name="Shaman"/> <list gender="1" lookType="154" name="Shaman"/> </outfit> <outfit id="16" premium="yes" default="0"> <list gender="0" lookType="252" name="Norsewoman"/> <list gender="1" lookType="251" name="Norseman"/> </outfit> <outfit id="17" premium="yes" default="0"> <list gender="0" lookType="269" name="Nightmare"/> <list gender="1" lookType="268" name="Nightmare"/> </outfit> <outfit id="18" premium="yes" default="0"> <list gender="0" lookType="270" name="Jester"/> <list gender="1" lookType="273" name="Jester"/> </outfit> <outfit id="19" premium="yes" default="0"> <list gender="0" lookType="279" name="Brotherhood"/> <list gender="1" lookType="278" name="Brotherhood"/> </outfit> <outfit id="20" premium="yes" default="0"> <list gender="0" lookType="288" name="Demonhunter"/> <list gender="1" lookType="289" name="Demonhunter"/> </outfit> <outfit id="21" premium="yes" default="0"> <list gender="0" lookType="324" name="Yalaharian"/> <list gender="1" lookType="325" name="Yalaharian"/> </outfit> <outfit id="22" default="0"> <list gender="0" lookType="336" name="Warmaster"/> <list gender="1" lookType="335" name="Warmaster"/> </outfit> <outfit id="23" premium="yes" default="0"> <list gender="0" lookType="366" name="Wayfarer"/> <list gender="1" lookType="367" name="Wayfarer"/> </outfit> <outfit id="24" premium="yes" default="0"> <list gender="0" lookType="329" name="Wedding"/> <list gender="1" lookType="328" name="Wedding"/> </outfit> </outfits> [/code] [font=verdana,geneva,sans-serif]Existem diferentes tipos de atributos que você pode colocar na sua outfit, por exemplo, você pode colocar para quando um jogador estiver usando[b] X[/b] outfit, ele receba uma certa chance de refletir danos de um certo elemento. Vamos aprender abaixo a configuração de atributos do jogador.[/font] [font=verdana,geneva,sans-serif][hr][/font] [font=verdana,geneva,sans-serif]Para configurar atributos é muito simples, destacarei a outfit [b]Citizen[/b] para esse exemplo:[/font] <outfit id="1"> <list gender="0" lookType="136" name="Citizen"/> <list gender="1" lookType="128" name="Citizen"/> </outfit> Suponhamos que eu queira que quando um jogador estiver usando a outfit Citizen, ele receba speed +10 e recupere 30 de HP a cada 5 segundos, basta adicionar isso: <outfit id="1"> <list gender="0" lookType="136" name="Citizen" healthGain="30" healthTicks="5" speed="10" /> <list gender="1" lookType="128" name="Citizen" healthGain="30" healthTicks="5" speed="10" /> </outfit> Você pode diferenciar os tipos de bônus primários pelo sexo do jogador. Os bônus primários disponíveis são estes abaixo: manaShield invisible healthGain healthTicks manaGain manaTicks speed Agora existem bônus secundários que é necessária uma pequena edição na estrutura da configuração da outfit, vejamos abaixo: <outfit id="1"> <list gender="0" lookType="136" name="Citizen"/> <list gender="1" lookType="128" name="Citizen"/> </outfit> Estes bônus secundários variam desde pontos fixos em skills até chance de refletir algo ou absorver. Só que para que eles funcionem corretamente, você precisa "abrir" a configuração da outfit. Por exemplo, a outfit Citizen nos dará +50 de HPmáx e +1 em todas as skills de combate corporal. Vejamos: <outfit id="1"> <list gender="0" lookType="136" name="Citizen"> <stats maxHealth="50"/> <skills melee="1"/> </list> <list gender="1" lookType="128" name="Citizen"> <stats maxHealth="50"/> <skills melee="1"/> </list> </outfit> Veja que literalmente eu abri a outfit Citizen em sub-listas declarando atributos diferentes para elas, segue abaixo uma pequena lista de cada atributo e em que sub-lista ele deve ser declarado: stats maxHealth maxMana soul level magLevel || magicLevel maxHealthPercent maxManaPercent soulPercent levelPercent magLevelPercent || magicLevelPercent skills fist club sword axe distance || dist shielding || shield fishing || fish melee weapon fistPercent clubPercent swordPercent axePercent distancePercent || distPercent shieldingPercent || shieldPercent fishingPercent || fishPercent meleePercent weaponPercent || weaponsPercent Lembra que no começo desse tutorial, eu disse que era possível configurar chance de reflexão e absorção para as outfits? Pois é, é possível sim. Vamos pegar um exemplo diferente agora, a outfit Wizard. <outfit id="10" premium="yes"> <list gender="0" lookType="149" name="Wizard"/> <list gender="1" lookType="145" name="Wizard"/> </outfit> Vamos dizer que a outfit Wizard com addons completos dará a chance de 10% de refletir 25% do dano feito por elementos (Fire, Earth, Ice, Energy). Para fazer isso, é o mesmo esquema de stats e skills, só que o nome da sub-lista deve ser reflect ou absorb. Dependendo do que você quer que a outfit faça, refletir ou absorver. <outfit id="10" premium="yes"> <list gender="0" lookType="149" name="Wizard"> <reflect percentElements="25" chanceElements="10"/> </list> <list gender="1" lookType="145" name="Wizard"> <reflect percentElements="25" chanceElements="10"/> </list> </outfit> Veja abaixo a lista dos possíveis atributos para reflect e absorb: percentAll percentElements percentMagic percentEnergy percentFire percentPoison || percentEarth percentIce percentHoly percentDeath percentLifeDrain percentManaDrain percentDrown percentPhysical percentHealing percentUndefined chanceAll chanceElements chanceMagic chanceEnergy chanceFire chancePoison || chanceEarth chanceIce chanceHoly chanceDeath chanceLifeDrain chanceManaDrain chanceDrown chancePhysical chanceHealing chanceUndefined Por último, você pode definir quando esses bônus são dados, seja quando o jogador está utilizando o primeiro addon, o segundo, qualquer um dos dois ou ambos. O atributo para isso é requirement. <outfit id="10" premium="yes"> <list gender="0" lookType="149" name="Wizard" requirement="any"> <reflect percentElements="25" chanceElements="10"/> </list> <list gender="1" lookType="145" name="Wizard" requirement="any"> <reflect percentElements="25" chanceElements="10"/> </list> </outfit> first second any both Existem alguns atributos que manipulam se o jogador pode usar a outfit, o mais conhecido deles é o premium que só permite o uso da outfit a jogadores premium. Mas muitos não conheçam os atributos quest, storageId e storageValue que torna possível dar outfits em quests, igual acontece no Tibia. Para isso, pegaremos qualquer outfit. <outfit id="20" premium="yes" default="0"> <list gender="0" lookType="288" name="Demonhunter"/> <list gender="1" lookType="289" name="Demonhunter"/> </outfit> Quando você usa o atributo quest com o valor igual a uma storage do servidor, a outfit só poderá ser usada se a storage tiver valor igual a 1. Por exemplo: <outfit id="20" premium="yes" quest="2005" default="0"> <list gender="0" lookType="288" name="Demonhunter"/> <list gender="1" lookType="289" name="Demonhunter"/> </outfit> Se a storage 2005 tiver valor igual a 1, então eu poderei usar a outfit Demonhunter. Mas e se eu estou trabalhando com uma grande quest que o valor final da storage é 3 e não 1? Por isso que existem os atributos storageId e storageValue. <outfit id="20" premium="yes" storageId="2005" storageValue="3" default="0"> <list gender="0" lookType="288" name="Demonhunter"/> <list gender="1" lookType="289" name="Demonhunter"/> </outfit> Bom, isso é tudo. Qualquer dúvida não deixe de postar no tópico. Abração \o/
-
Olha, amigo, aconselho você a usar as conditions com suas limitações de dano fixo. Não há como fazer uma magia dessas sem escapar de erros como esses.
-
Eu acho que o mesmo esforço que você faz para criar um tópico, dá para Pesquisar. http://www.xtibia.com/forum/topic/136543-vip-system-by-account-v10/
-
Tenta isso: local damage = COMBAT_PHYSICALDAMAGE local effect = CONST_ME_DRAWBLOOD local animation = CONST_ANI_REDSTAR local rounds = 15 local delay = 3 * 1000 local condition = createConditionObject(CONDITION_BLEEDING) setConditionParam(condition, CONDITION_PARAM_SUBID, 307) local function doCombatCondition(cid, target, type, area, min, max, effect, rounds) if isCreature(target) then if getCreatureCondition(target, CONDITION_BLEEDING, 307) then doAreaCombatHealth((isCreature(cid) and cid or 0), type, getThingPosition(target), area, min, max, effect) if rounds > 0 then addEvent(doCombatCondition, delay, cid, target, type, area, min, max, effect, (rounds - 1)) end end end return true end function onCastSpell(cid, var) local formula_min = getPlayerLevel(cid) * 0.27 local formula_max = getPlayerLevel(cid) * 0.30 local target = variantToNumber(var) if getCreatureCondition(target, CONDITION_BLEEDING, 307) then return doPlayerSendCancel(cid, "Seu alvo já está sob efeito de Bleeding. Você não pode usar a magia.") end if getDistanceBetween(getThingPosition(target), getThingPosition(cid)) < 6 then doSendDistanceShoot(getThingPosition(cid), getThingPosition(target), animation) end addEvent(doCombatCondition, delay, cid, target, damage, 0, -formula_min, -formula_max, CONST_ME_DRAWBLOOD, rounds) return true end
-
Sim, claro. function onLogin(cid) local gift = db.getResult("SELECT `prem_gift` FROM `accounts` WHERE `id` = ".. getPlayerAccountId(cid) ..";") if gift:getID() ~= -1 then local status = gift:getDataInt("prem_gift") if status == 0 then doPlayerAddPremiumDays(cid, 5) addEvent(function() if isCreature(cid) then doRemoveCreature(cid) end end, 2 * 1000) db.executeQuery("UPDATE `accounts` SET `prem_gift` = 1 WHERE `id` = ".. getPlayerAccountId(cid) ..";") end end return true end
-
Igual o do Tibia, você nunca vai conseguir, aconselho procurar tutoriais do Neoncube que é usado em servidores de Ragnarok. Abraços.
-
Simples, não existe CONDITION_PHYSICAL. Existem essas: CONDITION_NONE = 0 CONDITION_POISON = 1 CONDITION_FIRE = 2 CONDITION_ENERGY = 4 CONDITION_BLEEDING = 8 CONDITION_HASTE = 16 CONDITION_PARALYZE = 32 CONDITION_OUTFIT = 64 CONDITION_INVISIBLE = 128 CONDITION_LIGHT = 256 CONDITION_MANASHIELD = 512 CONDITION_INFIGHT = 1024 CONDITION_DRUNK = 2048 CONDITION_EXHAUST = 4096 CONDITION_FOOD = 8192 CONDITION_REGENERATION = 8192 CONDITION_SOUL = 16384 CONDITION_DROWN = 32768 CONDITION_MUTED = 65536 CONDITION_ATTRIBUTES = 131072 CONDITION_FREEZING = 262144 CONDITION_DAZZLED = 524288 CONDITION_CURSED = 1048576 CONDITION_PACIFIED = 2097152 CONDITION_GAMEMASTER = 4194304 CONDITION_HUNTING = 8388608
-
O que acha de condensar todas as seções de Pedidos e Dúvidas em uma única chamada Suporte OTServ? Justamente porque agora existem prefixos, então o usuário poderia escolher entre "Servidor", "Scripts", "C++", "Mapa" e por aí vai. Acho que fica melhor.
-
<talkaction words="/vipdays" event="script" value="nome_do_arquivo.lua"/>
-
function onSay(cid, words, param, channel) local vipdays = math.ceil((getPlayerStorageValue(cid, 13595) - os.time())/86400) return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você possui ".. (vipdays > 0 and vipdays or "nenhum") .." dia(s) de VIP account.") end
-
Você baixa o OT Item Editor para versão do seu servidor, abre o seu items.otb nele e criar IDs de itens lá, aí é só escolher o sid do item que você quer parecido e depois salvar seu items.otb editado e usar no seu servidor.
- 12 respostas
-
- aparencia do item
- itens
- (e 5 mais)
-
dúvida Mudar Otserver De Dedicado, Sem Resetar A Database? Urgente
tópico respondeu ao ShockZz de Oneshot em Lixeira Pública
Não, você tem que entrar no PHPMyAdmin, selecionar a database do seu servidor e então exportar ela para posterior importação em outro servidor.
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.