Tudo que xBen postou
-
COMBAT_PARAM_TYPE
@CreatServer vá na source do servidor em game.cpp tu aperta ctrl+f e procure por COMBAT_FIREDAMAGE até achar case COMBAT_FIREDAMAGE: { textColor = TEXTCOLOR_ORANGE; magicEffect = MAGIC_EFFECT_HITBY_FIRE; break; } em magicEffect = MAGIC_EFFECT_HITBY_FIRE; tu muda pro efeito que você quer no combat, pode usar numero também o numero do effect e tal se ajudei REP +
-
(Resolvido)[AJUDA] Script para ganhar pokemon como recompensa de quest
Ta faltando uma função no teu server, não sei se vai funcionar mas adicione isso em alguma lib pode ser na 000-const não mecho com servidor de pokemon, peguei essa função aqui no forum, mas vi que é do pda function addPokeToPlayer(cid, pokemon, boost, gender, ball, unique) --alterado v1.9 \/ peguem ele todo... local genders = { ["male"] = 4, ["female"] = 3, [1] = 4, [0] = 3, [4] = 4, [3] = 3, } if not isCreature(cid) then return false end local pokemon = doCorrectString(pokemon) if not pokes[pokemon] then return false end local GENDER = (gender and genders[gender]) and genders[gender] or getRandomGenderByName(pokemon) local btype = (ball and pokeballs[ball]) and ball or isShinyName(pokemon) and "shinynormal" or "normal" local happy = 250 if (getPlayerFreeCap(cid) >= 6 and not isInArray({5, 6}, getPlayerGroupId(cid))) or not hasSpaceInContainer(getPlayerSlotItem(cid, 3).uid) then item = doCreateItemEx(11826) else item = addItemInFreeBag(getPlayerSlotItem(cid, 3).uid, 11826, 1) end if not item then return false end doItemSetAttribute(item, "poke", pokemon) doItemSetAttribute(item, "hp", 1) doItemSetAttribute(item, "happy", happy) doItemSetAttribute(item, "gender", GENDER) doSetItemAttribute(item, "hands", 0) doItemSetAttribute(item, "description", "Contains a "..pokemon..".") doItemSetAttribute(item, "fakedesc", "Contains a "..pokemon..".") if boost and tonumber(boost) and tonumber(boost) > 0 and tonumber(boost) <= 50 then doItemSetAttribute(item, "boost", boost) end if unique then doItemSetAttribute(item, "unique", getCreatureName(cid)) end if (getPlayerFreeCap(cid) >= 6 and not isInArray({5, 6}, getPlayerGroupId(cid))) or not hasSpaceInContainer(getPlayerSlotItem(cid, 3).uid) then doPlayerSendMailByName(getCreatureName(cid), item, 1) sendMsgToPlayer(cid, 27, "You are already holding six pokemons, so your new pokemon was sent to your depot.") end if (isShinyName(pokemon) or (boost and tonumber(boost) and tonumber(boost) >= 10)) and pokeballs["shiny"..btype] then doTransformItem(item, pokeballs["shiny"..btype].on) else doTransformItem(item, pokeballs[btype].on) end return true end
-
Regen sem food
@Tryaron pode passar os ids das vocations ? bom refiz a função e coloquei um exemplo de como fazer cada vocation ter um regen especifico ai é só você acerta function regen(cid, percent_health, percent_mana, time) if not isCreature(cid) then return true end doCreatureAddHealth(cid, percent_health) doCreatureAddMana(cid, percent_mana) addEvent(regen, time*1000, cid, percent_health, percent_mana, time) end -------------------------------- abaixo coloca no login.lua if getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 2 then regen(cid, 10, 50, 2) elseif getPlayerVocation(cid) == 3 or getPlayerVocation(cid) == 4 then regen(cid, 20, 30, 2) end
-
Regen sem food
Claro que é, só criar uma função que fica adicionando hp ou mana x tempo no login fiz uma funçãozinha aqui simples, tu adiciona na LIB e coloca no login tipo regen(cid, 100, 5) -- vai adicionar 100 de mana e hp a cada 5 segundos , se ajudei rep+ function regen(cid, percent, time) if not isCreature(cid) then return true end doCreatureAddHealth(cid, percent) doCreatureAddMana(cid, percent addEvent(regen, time*1000, cid, percent, time) end
-
Ao logar forçar use comando
@Caronte não é que vai bugar, só não vai dar certo
-
(Resolvido)(PEDIDO/DÚVIDA SCRIPTING) Sobre a mensagem que aparece após o personagem upar tal skill.
Ta aí amigo, espero ter ajudado local skillMsgs = { [SKILL_FIST] = "You advanced in fist fighting. ["..getPlayerSkill(cid, SKILL_FIST).."]", [SKILL_CLUB] = "You advanced in club fighting. ["..getPlayerSkill(cid, SKILL_CLUB).."]", [SKILL_SWORD] = "You advanced in sword fighting. ["..getPlayerSkill(cid, SKILL_SWORD).."]", [SKILL_AXE] = "You advanced in axe fighting. ["..getPlayerSkill(cid, SKILL_AXE).."]", [SKILL_DISTANCE] = "You advanced in distance fighting. ["..getPlayerSkill(cid, SKILL_DISTANCE).."]", [SKILL_SHIELD] = "You advanced in shielding. ["..getPlayerSkill(cid, SKILL_SHIELD).."]", [SKILL_FISHING] = "You advanced in fishing. ["..getPlayerSkill(cid, SKILL_FISHING).."]", [SKILL__MAGLEVEL] = "You advanced in magic level. ["..getPlayerMagLevel(cid).."]" } function onAdvance(cid, skill, oldlevel, newlevel) if(skillMsgs[skill]) then doCreatureSay(cid, skillMsgs[skill], TALKTYPE_MONSTER) end return true end
-
COMBAT_PARAM_TYPE
@CreatServer pra criar um novo combat é na source do servidor e provavelmente o Combat_Firedamage ta com a sprite alterada por isso sai o efeito de agua, oque tu pode fazer 1 criar 1 combat,no lua e executa um statschange toda vez que esse combat for chamado, ou então tu pode usar outro como o physical espero ter ajudado
- (Resolvido)Ajuda: como fazer task uma única vez
-
[ShowOff] -- Shinobi World Online // xBen
@izac ximenes - estamos atualizando o servidor e fazendo coisa nova
-
[ShowOff] -- Shinobi World Online // xBen
Olá, sou o benegrip do shinobi world hoje vim mostrar a pequena cdbar que nós criamos para os jutsus, ela só mostra os jutsus que o usuario já aprendeu e cada jutsu tem 5 niveis, e dependendo do nivel o cooldown pode diminuir ou aumentar, diferente das cdBar de pokemon e tudo mais, essa só server pra ver o tempo que o jutsu esta pronto novamente, pois ela é executada quando é usado algum jutsu no caso action.
- Modificar Spell Direcional
- Modificar Spell Direcional
-
Modificar Spell Direcional
daria pra fazer de uma forma mais facil, mas como você quer esse script ta ai local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -10.2, 1, -10.2, 1) arr1 = { {0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 3, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, } local area1 = createCombatArea(arr1) setCombatArea(combat1, area1) local function onCastSpell1(parameters) return isPlayer(parameters.cid) and doCombat(parameters.cid, combat1, parameters.var) end function onCastSpell(cid, var) local p = getCreaturePosition(cid) local x = { [0] = {x=p.x+2, y=p.y-1, z=p.z}, [1] = {x=p.x+4, y=p.y+1, z=p.z}, [2] = {x=p.x+2, y=p.y+4, z=p.z}, [3] = {x=p.x-1, y=p.y+1, z=p.z} } local y = { [0] = 6, -- /\ [1] = 6, -- >> [2] = 6, -- \/ [3] = 6 -- << } pos = x[getCreatureLookDirection(cid)] eff = y[getCreatureLookDirection(cid)] doSendMagicEffect(pos, eff) doCreatureSay(cid, "Katon Gokakyu no Jutsu", TALKTYPE_MONSTER) doCombat(cid, combat1, var) local parameters = { cid = cid, var = var} addEvent(onCastSpell1, 100, parameters) return TRUE end
-
Erro Ao Sumonar
não sei se vai da certo mas tente isso function onCastSpell(cid, var) local pos = getPlayerPosition(cid) local maxsummon = 5 -- numero máximo de summons local possible = { {x = pos.x, y = pos.y - 2, z = pos.z, stackpos = 0}, {x = pos.x, y = pos.y + 2, z = pos.z, stackpos = 0}, {x = pos.x - 2, y = pos.y, z = pos.z, stackpos = 0}, {x = pos.x + 2, y = pos.y, z = pos.z, stackpos = 0}, {x = pos.x - 2, y = pos.y - 1, z = pos.z, stackpos = 0}, {x = pos.x + 2, y = pos.y - 1, z = pos.z, stackpos = 0}, {x = pos.x + 2, y = pos.y + 1, z = pos.z, stackpos = 0}, {x = pos.x - 2, y = pos.y + 1, z = pos.z, stackpos = 0}, {x = pos.x - 1, y = pos.y - 2, z = pos.z, stackpos = 0}, {x = pos.x + 1, y = pos.y - 2, z = pos.z, stackpos = 0}, {x = pos.x + 1, y = pos.y + 2, z = pos.z, stackpos = 0}, {x = pos.x + 2, y = pos.y - 2, z = pos.z, stackpos = 0}, ---- {x = pos.x, y = pos.y - 1, z = pos.z, stackpos = 0}, {x = pos.x, y = pos.y + 1, z = pos.z, stackpos = 0}, {x = pos.x - 1, y = pos.y, z = pos.z, stackpos = 0}, {x = pos.x + 1, y = pos.y, z = pos.z, stackpos = 0}, {x = pos.x - 1, y = pos.y + 1, z = pos.z, stackpos = 0}, {x = pos.x - 1, y = pos.y - 1, z = pos.z, stackpos = 0}, {x = pos.x + 1, y = pos.y - 1, z = pos.z, stackpos = 0}, {x = pos.x + 1, y = pos.y + 1, z = pos.z, stackpos = 0}, {x = pos.x, y = pos.y, z = pos.z, stackpos = 0}, ------ {x = pos.x - 1, y = pos.y + 2, z = pos.z, stackpos = 0} } local mobs = { -- monstros que serão sumonados (coloque o nome deles) [1] = "Pain Um", [2] = "Pain Dois", [3] = "Pain Tres", [4] = "Pain Quatro", [5] = "Pain Cinco" } summonpos = 1 local ppos = getCreaturePosition(cid) local cpos = getClosestFreeTile(cid, ppos) for k = 1, #mobs do alert = false local summons = getCreatureSummons(cid) if #summons < maxsummon then for i = 1, #possible do if isWalkable(possible[i], true, false, true) then summonpos = possible[i] end end if summonpos ~= 0 then if #summons >= 1 then for j = 1, #summons do if getCreatureName(summons[j]):lower() == string.lower(mobs[k]) then alert = true end end end if alert == false then doConvinceCreature(cid, doCreateMonster(mobs[k], cpos)) doSendMagicEffect(pos, 12) doSendMagicEffect(summonpos, 111) else doPlayerSendCancel(cid, "....") doSendMagicEffect(pos, 2) end else doPlayerSendCancel(cid, "Nao tem Espaço para Sumonar Os Pain's.") doSendMagicEffect(pos, 2) return true end else doSendMagicEffect(pos, 2) doPlayerSendCancel(cid, "Voce Ja Tem Os "..maxsummon.." Pain's.") break end end end
-
Erro Ao Sumonar
Eremin, isso é obvio não tem como sumunar um monstro nessas condiçoes, teria que fazer uma checagem
-
Bug no Clean
@Mr.Void clean é assim mesmo amigo
-
Erro Ao Sumonar
@Eremin crie o monstro Edo Tobirama na pasta monster, está faltando ele por isso esta dando esse erro
-
Sistema dodger e critical saindo no utamo AJUDA?
gahenna poste o script por favor Bom como eu já sei oque é e provavelmente eu não estarei aqui mais tarde vá no script procure por: If type == STATSCHANGE_HEALTHLOSS then -- algo do tipo e ai tu coloca assim: If type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS caso não consiga post o script que depois arrumo pra você, abraço!
-
Mensagem a cada 30 min.
@ArthurRibeiro vá na pasta globalevents dentro da pasta data, copie algum arquivo lua de outro script renomeie para globalmessage.lua, depois disso abra-o e coloque esse script lá dentro salva e fecha, depois abra globalevenst.xml e coloca essa tag lá, salva e fecha e pronto
-
Mensagem a cada 30 min.
<globalevent name="globalmessage" interval="3000" script="globalmessage.lua"/> nas strings ali tu coloca as mensagens que você quer
-
Professor WhiteWolf Me Ajuda Com Sistema Do Meu Spells.XML Scripits
@cutitu provavelmente as distro 7.81 não tem essa possibilidade, no caso teria que adicionar na source e tudo mais, daria um bom trabalho e eu tenho quase certeza que você não tem a source do seu servidor então oque você quer é impossivel
-
Dúvida como por tempo na script
Use addEvent amigo
- Efeito errado pra UP
-
[PEDIDO] Ativar/Desativar Magias
Amigo, respondi um topico parecido esses dias e bom tem um jeito que seria por storage é só setar a storage na hora que iniciar o evento para 1 e setar para 0 quand o player dslogar , ou morrer no evento ou sair dele. setPlayerStorageValue(cid, 2000, 1) -- exemplo ai na spell tu adiciona isso: tu adiciona essa função na lib