Ir para conteúdo

Jeanzim

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Obrigado
    Jeanzim deu reputação a Rusherzin em (Resolvido)Hotkeys em portugues..   
    Yup, é na source. Game.cpp.
     
    if(count == 1) sprintf(buffer, "Using the last %s...", it.name.c_str()); else sprintf(buffer, "Using one of %d %s...", count, it.pluralName.c_str());  
  2. Obrigado
    Jeanzim deu reputação a WooX em (Resolvido)setplayerlookdirection?   
    doCreatureSetLookDir(cid,dir)  
  3. Obrigado
    Jeanzim deu reputação a marcot em Dosetcreatureoutfit valendo rep+++   
    Pode dar uma testada nessa versão do script?
    local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA) setCombatParam(combat, COMBAT_PARAM_USECHARGES, true) local area = createCombatArea(AREA_SQUARE1X1) setCombatArea(combat, area) function onGetFormulaValues(cid, level, skill, attack, factor) local skillTotal, levelTotal = skill + attack, level / 5 return -(skillTotal * 0.5 + levelTotal), -(skillTotal * 1.5 + levelTotal) end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") function onCastSpell(cid, var, target) mninja = {lookType = 117, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3} fninja = {lookType = 117, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3} enemy_mninja = {lookType = 117, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3} enemy_fninja = {lookType = 117, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3} target = getCreatureTarget(cid) if target == 0 then transformAroundPos (cid, nil, enemy_mninja, enemy_fninja) else transformAroundPos (cid, getCreaturePosition (target), enemy_mninja, enemy_fninja) end if getPlayerSex (cid) == 0 then doSetCreatureOutfit (cid, mninja, 500) else doSetCreatureOutfit (cid, fninja, 500) end return doCombat (cid, combat, var) end function transformAroundPos (cid, centerPos, male, female) for i = 0, 2 do for j = 0, 2 do initialPos = getCreaturePosition(getCreatureTarget(cid)) if centerPos == nil then initialPos = getEpicenterPos (cid) doSendMagicEffect (initialPos, 35) end initialPos.x = initialPos.x - 1 initialPos.y = initialPos.y - 1 thingPos = initialPos thingPos.x = thingPos.x + i thingPos.y = thingPos.y + j thingPos.stackpos = 255 thing = getThingfromPos(thingPos) thing = thing.uid if isPlayer (thing) then if getPlayerSex (thing) == 0 then doSetCreatureOutfit (thing, male, 500) else doSetCreatureOutfit (thing, female, 500) end elseif isCreature (thing) then doSetCreatureOutfit (thing, male, 500) end end end end function getEpicenterPos (cid) playerDirection = getCreatureLookDirection(cid) skillPos = getCreaturePosition (cid) if playerDirection == NORTH then skillPos.y = skillPos.y - 1 elseif playerDirection == EAST then skillPos.x = skillPos.x + 1 elseif playerDirection == SOUTH then skillPos.y = skillPos.y + 1 elseif playerDirection == WEST then skillPos.x = skillPos.x - 1 end return skillPos end  
  4. Obrigado
    Jeanzim deu reputação a Storm em (Resolvido)Spell com posição heelp   
    Ele se refere a função print ; geralmente é usada para retornar um valor no executável ;
     
    function onCastSpell(cid, var) print(var) -- a function printa o valor da variaval var e a retorna na distro end  
  5. Obrigado
    Jeanzim deu reputação a marcot em (Resolvido)Spell com posição heelp   
    Acho que os principais pontos que você teria que trabalhar nesse script são a posição, já que a posição modificada é esta diagonal do personagem:

    Para ser a posição à direita do personagem você incrementa somente a coordenada X.
    Outro pronto é trabalhar no retorno dos callbacks LUA, quando você utiliza getPlayerTarget, caso o jogador tenha um target ele receberá um objeto, que no caso é o que ele está targetando, seja uma criatura, um player, etc. e você fez a seguinte comparação:
    if target == false then Caso o jogador não tenha um target, a função retorna 0. Caso você tenha dúvidas sobre o que a função te retorna, dê um print para aparecer no console o que você possui na variável, isso também é bem útil no debug, pra saber se uma determinada parte do script está sendo utilizada ou não.
    Exemplo :

    No teste acima o jogador não tinha um target
     
    Sempre que você abrir uma função/if/etc. deixe tudo que está dentro alinhado para a direita e certifique-se que o end está alinhado com com seu respectivo if ou function, isso facilita MUITO a leitura de um código. Exemplo tirado de uma source:

    No código acima você consegue identificar claramente onde começa e termina um bloco, além de saber o que faz parte de cada um
  6. Obrigado
    Jeanzim deu reputação a Storm em (Resolvido)Spell com posição heelp   
    Primeiro , sempre que for colocar um código no fórum , utilize a ferramenta Code.
     
    Segundo , não há necessidade dessas variáveis todas na function , somente as principais ( No caso cid e var)
    function onCastSpell(pos, target, targetpos, posdireita, cid) Terceiro , você não declarou o valor das variáveis Combat e Combat1

    Quarto , você errou nessa parte
    else if targetpos == posdireita then bloco end O correto é
     
    elseif targetpos == posdireita then bloco end  
    o código ficaria assim do jeito correto ; 
     
    function onCastSpell(cid, var) local pos = getCreaturePosition(cid) local target = variantToNumber(var) local targetpos = getCreaturePosition(target) local posdireita = {x= pos.x + 1, y= pos.y + 1, z = pos.z} if not target then return doCombat(cid, combat1, var) elseif targetpos == posdireita then return doCombat(cid, combat, var) end end  
  7. Obrigado
    Jeanzim deu reputação a marcot em Dosetcreatureoutfit valendo rep+++   
    Você pode pegar o target atual do player com:
    target = getCreatureTarget(cid) E depois setar uma outfit temporária pra esse target com:
    doSetCreatureOutfit (target, fninja, 500) Dentro do código ficaria algo como:
    local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA) setCombatParam(combat, COMBAT_PARAM_USECHARGES, true) local area = createCombatArea(AREA_SQUARE1X1) setCombatArea(combat, area) function onGetFormulaValues(cid, level, skill, attack, factor) local skillTotal, levelTotal = skill + attack, level / 5 return -(skillTotal * 0.5 + levelTotal), -(skillTotal * 1.5 + levelTotal) end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") function onCastSpell(cid, var, target) mninja = {lookType = 117, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3} fninja = {lookType = 117, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3} enemy_mninja = {lookType = 117, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3} enemy_fninja = {lookType = 117, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3} target = getCreatureTarget(cid) if getPlayerSex(cid) == 0 then doSetCreatureOutfit(cid, mninja, 500) else doSetCreatureOutfit(cid, fninja, 500) end if getPlayerSex(target) == 0 then doSetCreatureOutfit (target, enemy_mninja, 500) else doSetCreatureOutfit (target, enemy_fninja, 500) end return doCombat(cid, combat, var) end  
  8. Obrigado
    Jeanzim deu reputação a xWhiteWolf em New Library v. 1.2   
    Fala galera, hoje vim trazer pra vocês uma nova biblioteca de funções que eu venho desenvolvendo, pretendo ir atualizando esse tópico constantemente sempre adicionando funções novas e explicando a utilização delas. Algumas funções que eu coloquei aqui estão presentes na OTAL também, porém algumas eu fiz pequenas correções de forma que essa lib poderia facilmente substituir a OTAL sem grandes problemas (pelo menos se você utilizava apenas as funções básicas da otal)
    Todas as funções que não tem -- nome do autor do lado dela foram feitas por mim, xWhiteWolf ou Night Wolf (NW). O restante delas são créditos dos devidos autores, apenas coloquei pois considero funções vitais no server de cada um. Crie um arquivo em data/lib chamado 075 - White Wolf Functions.lua e coloque o seguinte código dentro:



     
    Agora eu vou explicar oque cada função faz porque de nada adianta lançar uma lib e não explicar oque ela faz não é mesmo? hahaha
    Obs inicial: quando uma função tiver em seus parametros um [] significa que oque está dentro do colchetes não é um parâmetro obrigatório.



    Como usar: doShowTimeByPos(cid, getCreaturePosition(cid), 20, 20)
    Irá fazer uma contagem regressiva na posição que o player se encontra começando de 20 e mandando a mensagem na mesma cor da fala dos monstros.
    Essa função é bem útil em actions/spells para fazer contagem de tempo em runas como a magic wall e ver quanto tempo falta pra magic wall sumir)

     
    Obs: Espero que ajude bastante pessoas a entender sobre funções, eu utilizei cid como o principal uid das funções nos exemplos mas você pode muito bem utilizar outros uids, fica a critério seu.

    Qualquer dúvida comentem abaixo que eu vou tentar ajudar da melhor maneira.
    Ahhh, isso daí foi testado em 8.54 mas deve funcionar em quase todas as versões que tenham as funções básicas do TFS. 

    EDIT: Pessoal, agora é sério, essa lib tem fácil umas 600 linhas, das quais umas 500 eu devo ter codado sozinho (na mão, linha por linha). Eu tive todo o trabalho de testar cada uma delas e oque eu peço é o mínimo de gratidão e respeito. Se eu te ajudei clique em Gostei, se você tiver alguma dúvida eu to me colocando a disposição de responder qualquer coisa relacionada ao tópico, mesmo que você não saiba nem oque é uma lib apenas venha aqui e escreva sua dúvida.

    EDIT 2: Duas novas funções adicionas, espero que gostem!

    EDIT 3: Três novas funções adicionadas juntamente com suas respectivas explicações.
  9. Obrigado
    Jeanzim deu reputação a gabriel28 em (Resolvido)Algum Scripter ajuda?   
    @Jeanzim Testa:
     
     
  10. Obrigado
    Jeanzim deu reputação a marcot em (Resolvido)Script baseado em getPlayerLookDir   
    Aqui está o script corrigido:
    local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) setCombatArea(combat,createCombatArea({{1}, {0}, {0}, {2}})) local combat_2 = createCombatObject() setCombatParam(combat_2, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat_2, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA) setCombatParam(combat_2, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY) setCombatFormula(combat_2, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) setCombatArea(combat_2,createCombatArea({{1}, {0}, {0}, {2}})) function onCastSpell(cid, var) direction = getCreatureLookDirection(cid) if direction == SOUTH then doCombat (cid, combat, var) elseif direction == NORTH then doCombat (cid, combat_2, var) else return false end return true end Para cada IF que você inicia você tem que ter um END fechando, e você pode usar e abusar das constantes setadas no global, você não precisa usar as direções como números.
  11. Obrigado
    Jeanzim deu reputação a gabriel28 em (Resolvido)Algum Scripter ajuda?   
    @Jeanzim 
     
     
  12. Gostei
    Jeanzim deu reputação a xWhiteWolf em Spell que anda e tira dano   
    remove essa linha doCreatureSetNoMove(cid, true)

Informação Importante

Confirmação de Termo