-
Total de itens
1347 -
Registro em
-
Última visita
-
Dias Ganhos
36
Tudo que Oneshot postou
-
Estarei atualizando o sistema com alguns fixes como o da possibilidade de refinar itens agrupáveis e adicionando esta possibilidade de criar uma pedra para cada atributo. Abraços.
-
Os melhores webservers em suas melhores verções!
tópico respondeu ao Piabeta Kun de Oneshot em Websites & Layouts
Pede-se pelo menos boa gramática no cargo de Moderação. Versões -
É que depende muito de quais são os parâmetros funcionais do seu servidor nesta função: doAddPlayerBanishment(getPlayerGUID(cid), 3, (os.time() + (24 * 60 * 60)), 12, 2, "[sISTEMA ANTI-BOT]") Testei em duas revisões do The Forgotten Server 0.4.0, uma de 8.62 e outra de 8.71 e obtive total funcionalidade. Se você estiver usando um servidor diferente daqueles que testei, poste aqui, posso descobrir os parâmetros corretos nas sources, mas preciso delas. Abraços.
-
function onUse(cid, item, fromPosition, itemEx, toPosition) local combate = COMBAT_PHYSICALDAMAGE -- tipo de dano p = fromPosition local a0 = {x=p.x, y=p.y-1, z=p.z} local a1 = {x=p.x, y=p.y-2, z=p.z} local a2 = {x=p.x, y=p.y-3, z=p.z} local a3 = {x=p.x, y=p.y-4, z=p.z} local a4 = {x=p.x, y=p.y-5, z=p.z} local end1 = {x=p.x, y=p.y-6, z=p.z} local storage = 3425 -- Nao mexer local MIN_DAMAGE = 100 -- Dano minimo local MAX_DAMAGE = 500 -- Dano maximo local level = 10 -- Level necessario local UID = 1121 -- UniqueId do item local chance = 10 if getPlayerStorageValue(cid,storage) == 1 then doPlayerSendCancel(cid,"You are exhausted.") end if getPlayerLevel(cid) < level then doPlayerSendCancel(cid,"You must be level "..level..".") end if getPlayerLevel(cid) >= level and item.uid == UID and getPlayerStorageValue(cid,storage) == -1 then setPlayerStorageValue(cid,storage,1) addEvent(setPlayerStorageValue,5000,cid,storage,-1) addEvent(doSendDistanceShoot,100,fromPosition, a4, 9) addEvent(doAreaCombatHealth,100,a0, combate, a0, 0, -MIN_DAMAGE, -MAX_DAMAGE, 2) addEvent(doAreaCombatHealth,200,a1, combate, a1, 0, -MIN_DAMAGE, -MAX_DAMAGE, 2) addEvent(doAreaCombatHealth,300,a2, combate, a2, 0, -MIN_DAMAGE, -MAX_DAMAGE, 2) addEvent(doAreaCombatHealth,400,a3, combate, a3, 0, -MIN_DAMAGE, -MAX_DAMAGE, 2) addEvent(doAreaCombatHealth,500,a4, combate, a4, 0, -MIN_DAMAGE, -MAX_DAMAGE, 2) addEvent(doCreateItem,600,1294,1,end1) if math.random(1, 100) > chance then doCreateItem(1294, end1) end addEvent(doSendMagicEffect,600,end1,44) end return TRUE end
-
AGORA PODE POSTAR TUDO EM CAPS LOCK NO TOPICO É
tópico respondeu ao Powerzin de Oneshot em Lixeira Pública
É isso que devia ser feito, usar esse filtro apenas para idiotas que usassem Caps Lock em tudo no titulo do tópico. -
Bugs corrigidos e broadcast adicionado. Abraços.
-
Pronto, achei o problema, estava na função mesmo. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_BURSTARROW) setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0) local area = createCombatArea({ {1, 1, 1}, {1, 3, 1}, {1, 1, 1} }) setCombatArea(combat, area) local function getPlayerWeaponId(cid) -- By Oneshot local ret = 0 for slot = 6, 5, -1 do local item = getPlayerSlotItem(cid, slot) if item.itemid > 0 and isInArray({1, 2, 3, 5}, getItemInfo(item.itemid).weaponType) then ret = item.itemid break end end return ret end function onUseWeapon(cid, var) if getPlayerWeaponId(cid) == 7438 then doCombat(cid, combat, var) return true end doPlayerSendCancel(cid, "You cannot use this arrow with this ordinary bow.") return false end Sobre o consumo da munição mesmo com a arma incorreta, só com alterações nas sources para ficar legal. Ou você pode colocar para adicionar o item, logo abaixo da mensagem de erro. doPlayerAddItem(cid, 2546, 1) Mas aí só ficaria legal mesmo com um autostack, senão a munição seria removida e o item pararia na mochila ou no chão por exemplo.
-
Já disse, não é possível.
-
Aulas Básicas Com O Sr. Iunix: 2# Lógica, Algorítimos E Organização
tópico respondeu ao iunix de Oneshot em Tutoriais de Scripting
Bom tutorial, espero que a sequência de aulas continue. Gostei da tirinha também. Mas aproveita e esculhamba o título logo: Aulas Básicas com o Senhorito iuniX. Abraços. -
Baixável? Se sim, link, por favor.
-
Então, cara, tenho apenas uma mínima ideia de qual possa ser o problema. O problema pode ser qualquer função interna usada na composição da minha função getPlayerWeaponId(cid) e para resolver, eu preciso do nome correto do servidor global que você usa para ver como ele funciona e porque ele não está retornando um itemid correto.
-
A linha que eu passei acima tem que ser retirada. Por curiosidade, que servidor você usa?
-
No caso, você tirou a linha do ID 2432 do weapons.xml, parecida com essa? <melee id="2432" level="35" unproperly="1" event="function" value="default"/> Mas não deixe de tentar com outro tipo de item que seja bow.
-
Isso que dá copiar um script apenas para ganhar reputação. Não sabe explicar como instalar o script com eficiência para funcionar corretamente. Do jeito que o Darkhaos fez, só é possível usar o sistema com MySQL. Abraços.
-
Não é possível, esses tipos de atributos só podem ser configurados no items.xml,não é possível criar um item que modifique eles. Só criando um atributo falso e um script que se baseie nele, como o Aluccard fez. Mas se você usar vários itens com reflexão, a taxa acumula sim.
-
Não agora que estou um tanto ocupado, mas se você quiser, você pode criar itens que refletem coisas pelo items.xml sem precisar de scripts secundários. Por exemplo, vou pegar a magic plate armor, de ID 2472. <item id="2472" article="a" name="magic plate armor"> <attribute key="description" value="An enchanted gem glows on the plate armor." /> <attribute key="weight" value="8500" /> <attribute key="armor" value="17" /> <attribute key="slotType" value="body" /> </item> Supondo que eu quero que ela reflita 10% de todos os tipos de dano, faço isso: <item id="2472" article="a" name="magic plate armor"> <attribute key="description" value="An enchanted gem glows on the plate armor." /> <attribute key="weight" value="8500" /> <attribute key="armor" value="17" /> <attribute key="reflectpercentall" value="10"/> <attribute key="reflectchanceall" value="100"/> <attribute key="slotType" value="body" /> </item> Assim ela terá 100% de chance de refletir 10% de todos os tipos de dano. Lembrando que só funciona se estiver registrado no movements.xml. Abraços.
-
Bom, não tenho ideia do que seja então, aqui ele adiciona normal a quantidade de skill configurada. Creio que os freezes são normais, principalmente se você não tiver grande quantidade de RAM e um processador rápido. Tente com um personagem de teste, novo, criado do zero. Abraços.
-
Posta para mim, o Item ID 2432 do seu items.xml.
-
Random Newfag appeared!
-
É só agora notei que seu erro tem nada a ver com o que eu fiz. No caso o servidor acusa que a função não existe. Vou tentar criar um sistema parecido sem usar mods, pois eu odeio eles. Abraços.
-
Essa função está errada function getItemReflectPercent(itemid) return getItemAttribute(itemid, "reflectPercent") end Como ela está, ela retorna apenas atributos únicos de itens, e caso eles não existam, retorna nil. Fiz algumas modificações nela e no script: function getItemReflectPercent(item) local reflectPercent = getItemAttribute(item.uid) or getItemInfo(item.itemid).reflectPercent return reflectPercent or 0 end <?xml version="1.0" encoding="UTF-8"?> <mod name="Reflect System" version="0.1" author="Aluccard" contact="" enabled="yes"> <description> Script que funciona para refletir danos para as creatures que o atacar. </description> <event type="login" name="regReflectDamage" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid,"ReflectDamage") return true end ]]></event> <event type="statschange" name="ReflectDamage" event="script"><![CDATA[ local slotPos = {CONST_SLOT_NECKLACE, CONST_SLOT_FEET, CONST_SLOT_HEAD} function onStatsChange(cid, attacker, type, combat, value) local reflectPercent = 0 local dmg = value local playerPos = getCreaturePosition(cid) local attackerPos = getCreaturePosition(attacker) for i = 1, #slotPos do if getPlayerSlotItem(cid, slotPos[i]).uid > 1 then if getItemReflectPercent(getPlayerSlotItem(cid, slotPos[i])) then reflectPercent = reflectPercent + getItemReflectPercent(getPlayerSlotItem(cid, slotPos[i])) end end end if reflectPercent > 0 then dmg = math.ceil(-value*((100-reflectPercent)/100)) if (dmg < 0) then doCreatureAddHealth(cid, dmg) doSendAnimatedText(playerPos, -dmg, COLOR_RED) doSendMagicEffect(playerPos, 0) else doSendMagicEffect(playerPos, 3) end dmg = math.ceil(-value*(reflectPercent/100)) if (dmg < 0) then doCreatureAddHealth(attacker, dmg) doSendAnimatedText(attackerPos, -dmg, COLOR_RED) doSendDistanceShoot(playerPos, attackerPos, CONST_ANI_SMALLHOLY) end else return true end end]]></event> </mod> Não estou certo se irá funcionar. Abraços.
-
Nessa linha: doPlayerAddSkill(cid, config.skillName, config.skillAmount, true) Troque o true por false. Abraços.
-
Crie um arquivo chamado skillstone.lua em data/actions/scripts, cole o conteúdo passado acima. Adicione a seguinte linha no actions.xml <action itemid="ID_DO_ITEM" event="script" value="skillstone.lua"/>
-
Coloque as duas funções do script no seu arquivo 050-function.lua em data/lib
-
pedido Pedra Que Refina Item E Aumenta % De Cura
pergunta respondeu ao roriscrave de Oneshot em Scripts
Não é possível. Abraços.
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.