Ir para conteúdo
  • Cadastre-se

Derivado [Ajuda] Action use Por Vocação


Posts Recomendados

Boa Tarde Galerinha do TK Bom seguinte vim aqui pedir uma ajudinha de vocês estou com script "action" que Funciona da Seguinte Forma ao dar use nele e clicar no TARGET ele pucha o player em sua frente !

Bom script funciona perfeitamente porem eu preciso que ele esse mesmo script possa ser usado somente por uma tall determinanda vocação como no meu caso seria o " Kakuzo " então eu gostaria que somente a vocação kakuzo usa-se esse Action , Teria como alguem da uma forcinha ai ? Se Possivel Obrigado

Ai o script !

 

ppaction.lua

Link para o post
Compartilhar em outros sites
2 horas atrás, koalla1235 disse:

Boa Tarde Galerinha do TK Bom seguinte vim aqui pedir uma ajudinha de vocês estou com script "action" que Funciona da Seguinte Forma ao dar use nele e clicar no TARGET ele pucha o player em sua frente !

Bom script funciona perfeitamente porem eu preciso que ele esse mesmo script possa ser usado somente por uma tall determinanda vocação como no meu caso seria o " Kakuzo " então eu gostaria que somente a vocação kakuzo usa-se esse Action , Teria como alguem da uma forcinha ai ? Se Possivel Obrigado

Ai o script !

 

ppaction.lua

É só criar uma condição amigo, bem simples.

Spoiler

if getPlayerVocation(cid) == 4 then

     doPlayerAddItem(cid, 2384, 1)

     return true

end

 

No caso, essa parte do script que eu mandei acima, conferiria se a id ad vocação do player for 4, vai adicionar uma espada pra ele.

Ids das vocations tibia:

Spoiler

Sorcerer = 1

Druid = 2

Paladin = 3

Knight = 4

 

Mas vale ressaltar que em alguns OT's, as vocações variam, e você pode conferi-las em data/XML/vocations.xml. Assim, dentro dela vão ter vocações dentro de "<" ">", aí é só você procurar por "vocation id". Por exemplo:

Spoiler

<vocation id="1" name="Sorcerer" description="a sorcerer" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="2" gainhpamount="5" gainmanaticks="2" gainmanaamount="30" manamultiplier="1.1" attackspeed="1500" soulmax="100" gainsoulticks="120" fromvoc="1">
        <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>
        <skill fist="1.5" club="2.0" sword="2.0" axe="2.0" distance="2.0" shielding="1.5" fishing="1.1" experience="1.0"/>
    </vocation>

 

Espero tê-lo ajudado, e se eu realmente te ajudei, não se esqueça de me REPUTAR XD

(EU TINHA POSTO NAO SE ESQUEÇA DE ME REPOTAR FPOAEKFPOASKFOPEAFPOOPFKAPOKFPOASDKFOPASKPO)

Editado por SoyColombiaa (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
28 minutos atrás, SoyColombiaa disse:

É só criar uma condição amigo, bem simples.

  Ocultar conteúdo

if getPlayerVocation(cid) == 4 then

     doPlayerAddItem(cid, 2384, 1)

     return true

end

 

No caso, essa parte do script que eu mandei acima, conferiria se a id ad vocação do player for 4, vai adicionar uma espada pra ele.

Ids das vocations tibia:

  Mostrar conteúdo oculto

Sorcerer = 1

Druid = 2

Paladin = 3

Knight = 4

 

Mas vale ressaltar que em alguns OT's, as vocações variam, e você pode conferi-las em data/XML/vocations.xml. Assim, dentro dela vão ter vocações dentro de "<" ">", aí é só você procurar por "vocation id". Por exemplo:

  Mostrar conteúdo oculto

<vocation id="1" name="Sorcerer" description="a sorcerer" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="2" gainhpamount="5" gainmanaticks="2" gainmanaamount="30" manamultiplier="1.1" attackspeed="1500" soulmax="100" gainsoulticks="120" fromvoc="1">
        <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>
        <skill fist="1.5" club="2.0" sword="2.0" axe="2.0" distance="2.0" shielding="1.5" fishing="1.1" experience="1.0"/>
    </vocation>

 

Espero tê-lo ajudado, e se eu realmente te ajudei, não se esqueça de me reportar XD

Amigo tentei aqui é não certo ! qualquer vocação ta podendo usar ainda teria como ajustar pra min ?

Link para o post
Compartilhar em outros sites

Ok !  ta ai amigo

local intervalo = 1.5 -- tempo ate o player ser puxado (em segundos)
local exhaust = 1 -- Exhaustion entre usos do item (em segundos)
local chance = 80 -- chance em % de puxar
local itemefeito = 7860 -- item que aparece no cara que foi puxado
local falas = {"Kakuzooo !"}
local monsters = {"Bug", "Wasp", "Centipede"}
local chancebug = 0 -- chance de vir insetos junto com o jogador puxado (em porcentagem)
local chanceband = 0 -- chance de puxar um bandit quanto o puxao falhar (em porcentagem)

------ Nao altera mais nada ------
function mayNotMove(uid, block)
    return doCreatureSetNoMove(uid, block)
end

function canWalk(cid,pos)
    local abc = pos
    abc.stackpos = 253
    if doTileQueryAdd(cid, pos) == 1 and getTilePzInfo(pos) == false and isCreature(getThingFromPos(abc).uid) == false then
        return true
    end
end

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local pos1 = getCreaturePosition(cid) 
    local pos2 = getCreaturePosition(itemEx.uid)
    local poss1 = getCreatureLookPosition(cid)
    local fightcondition = createConditionObject(CONDITION_INFIGHT)
    setConditionParam(fightcondition, CONDITION_PARAM_TICKS, intervalo*1000+100)
                
    local function removeritem1(cid, item, pos, itemEx)
        local itemnapos = getTileItemById(pos2, itemefeito)
        doRemoveItem(itemnapos.uid,1)
    end
    
    local function removeritem2(cid, item, pos)
        local itemnaposs = getTileItemById(poss1, itemefeito)
        doRemoveItem(itemnaposs.uid,1)
    end

    local function doEffect(pos)
    end
     
    local tmp = getCreatureStorage(cid, 23125)
    if getCreatureStorage(cid, 23125) > os.time() then
        return doPlayerSendCancel(cid, "Você precisa esperar ".. tmp - os.time() .." segundos para usar novamente.")
    end
    
    if not isPlayer(itemEx.uid) then
        return doPlayerSendCancel(cid, "Voce so pode puxar jogadores!")
    end
        
    if itemEx.uid == cid then
        return doPlayerSendCancel(cid, "Voce nao pode usar em si mesmo.")
    end
  if getPlayerVocation(cid) == 4 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end  
    if getTilePzInfo(pos1) == true or getTilePzInfo(pos2) == true  or getTilePzInfo(poss1) == true then
        return doPlayerSendCancel(cid, "Voce nao pode puxar na protection zone!")
    end
    
    if not canWalk(cid, poss1) then
       return doPlayerSendCancel(cid, "Voce nao pode puxar ele aqui!")
    end
    
    if pos1.x ~= pos2.x and pos1.y ~= pos2.y then
        return doPlayerSendCancel(cid, "Voce nao pode puxar na diagonal!")
    end
    
    local function puxarPlayer(cid, pos, item) -- script por amoeba13
        local randomChance = math.random(1, #falas)
        doAddCondition(cid, fightcondition)
        doAddCondition(itemEx.uid, fightcondition)
        doCreatureSay(cid, falas[randomChance], TALKTYPE_ORANGE_1)
        doPlayerSetStorageValue(cid, 23125, os.time()+exhaust)
            addEvent(doTeleportThing, intervalo*1000, itemEx.uid, poss1)
            addEvent(mayNotMove, intervalo*1000, cid, false)
            addEvent(mayNotMove, intervalo*1000, itemEx.uid, false)
            addEvent(removeritem1, intervalo*1000) 
            addEvent(doCreateItem, intervalo*1000, itemefeito, 1, poss1)
            addEvent(removeritem2, intervalo*1000+1500)
            addEvent(doEffect, intervalo*1000)
            addEvent(doEffect, intervalo*1000/2)
            addEvent(doEffect, intervalo*1000/3)
            addEvent(doEffect, intervalo*1000/4)
        doCreateItem(itemefeito, 1, pos2)
        mayNotMove(cid, true)
        mayNotMove(itemEx.uid, true)
        doSendAnimatedText(pos1, "Succes!", TEXTCOLOR_GREEN)
        doPlayerSendTextMessage(itemEx.uid, 27, "Voce foi puxado pelo jogador ".. getCreatureName(cid) .."!")                    
    end -- script por amoeba13
    
    local qnts = math.random(1, 100)
    if qnts <= chance and qnts <= chancebug then
        puxarPlayer(cid) 
        local axb = math.random(1, #monsters)
        addEvent(doCreatureSay, intervalo*1000+100, itemEx.uid, "Eu nao vi que isso tinha vindo comigo...", TALKTYPE_ORANGE_1)
        addEvent(doCreateMonster, intervalo*1000+100, monsters[axb], poss1)
    elseif qnts <= chance and qnts > chancebug then
        puxarPlayer(cid)
    elseif qnts > chance and qnts <= chanceband then
        doCreateMonster("Bandit", poss1)
        doCreatureSay(cid, "Nao foi voce que eu puxei!", TALKTYPE_ORANGE_1)
        doSendAnimatedText(pos1, "Fail!", TEXTCOLOR_RED)
        doSendMagicEffect(pos1, CONST_ME_POFF)
        doPlayerSetStorageValue(cid, 23125, os.time()+exhaust)
    elseif qnts > chance then 
        doSendAnimatedText(pos1, "Fail!", TEXTCOLOR_RED)
        doSendMagicEffect(pos1, CONST_ME_POFF)
        doPlayerSetStorageValue(cid, 23125, os.time()+exhaust)
        end
    return true
end

 

Link para o post
Compartilhar em outros sites

Testa ai:

 

Spoiler

local intervalo = 1.5 -- tempo ate o player ser puxado (em segundos)
local exhaust = 1 -- Exhaustion entre usos do item (em segundos)
local chance = 80 -- chance em % de puxar
local itemefeito = 7860 -- item que aparece no cara que foi puxado
local falas = {"Kakuzooo !"}
local monsters = {"Bug", "Wasp", "Centipede"}
local chancebug = 0 -- chance de vir insetos junto com o jogador puxado (em porcentagem)
local chanceband = 0 -- chance de puxar um bandit quanto o puxao falhar (em porcentagem)

------ Nao altera mais nada ------
function mayNotMove(uid, block)
    return doCreatureSetNoMove(uid, block)
end

function canWalk(cid,pos)
    local abc = pos
    abc.stackpos = 253
    if doTileQueryAdd(cid, pos) == 1 and getTilePzInfo(pos) == false and isCreature(getThingFromPos(abc).uid) == false then
        return true
    end
end

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local pos1 = getCreaturePosition(cid) 
    local pos2 = getCreaturePosition(itemEx.uid)
    local poss1 = getCreatureLookPosition(cid)
    local fightcondition = createConditionObject(CONDITION_INFIGHT)
    setConditionParam(fightcondition, CONDITION_PARAM_TICKS, intervalo*1000+100)
                
    local function removeritem1(cid, item, pos, itemEx)
        local itemnapos = getTileItemById(pos2, itemefeito)
        doRemoveItem(itemnapos.uid,1)
    end
    
    local function removeritem2(cid, item, pos)
        local itemnaposs = getTileItemById(poss1, itemefeito)
        doRemoveItem(itemnaposs.uid,1)
    end

    local function doEffect(pos)
    end
     
    local tmp = getCreatureStorage(cid, 23125)
    if getCreatureStorage(cid, 23125) > os.time() then
        return doPlayerSendCancel(cid, "Você precisa esperar ".. tmp - os.time() .." segundos para usar novamente.")
    end
    
    if not isPlayer(itemEx.uid) then
        return doPlayerSendCancel(cid, "Voce so pode puxar jogadores!")
    end
        
    if itemEx.uid == cid then
        return doPlayerSendCancel(cid, "Voce nao pode usar em si mesmo.")
    end
    if getTilePzInfo(pos1) == true or getTilePzInfo(pos2) == true  or getTilePzInfo(poss1) == true then
        return doPlayerSendCancel(cid, "Voce nao pode puxar na protection zone!")
    end
    
    if not canWalk(cid, poss1) then
       return doPlayerSendCancel(cid, "Voce nao pode puxar ele aqui!")
    end
    
    if pos1.x ~= pos2.x and pos1.y ~= pos2.y then
        return doPlayerSendCancel(cid, "Voce nao pode puxar na diagonal!")
    end
    
    local function puxarPlayer(cid, pos, item) -- script por amoeba13
	if getPlayerVocation(cid) == 4 then
        local randomChance = math.random(1, #falas)
        doAddCondition(cid, fightcondition)
        doAddCondition(itemEx.uid, fightcondition)
        doCreatureSay(cid, falas[randomChance], TALKTYPE_ORANGE_1)
        doPlayerSetStorageValue(cid, 23125, os.time()+exhaust)
            addEvent(doTeleportThing, intervalo*1000, itemEx.uid, poss1)
            addEvent(mayNotMove, intervalo*1000, cid, false)
            addEvent(mayNotMove, intervalo*1000, itemEx.uid, false)
            addEvent(removeritem1, intervalo*1000) 
            addEvent(doCreateItem, intervalo*1000, itemefeito, 1, poss1)
            addEvent(removeritem2, intervalo*1000+1500)
            addEvent(doEffect, intervalo*1000)
            addEvent(doEffect, intervalo*1000/2)
            addEvent(doEffect, intervalo*1000/3)
            addEvent(doEffect, intervalo*1000/4)
        doCreateItem(itemefeito, 1, pos2)
        mayNotMove(cid, true)
        mayNotMove(itemEx.uid, true)
        doSendAnimatedText(pos1, "Succes!", TEXTCOLOR_GREEN)
        doPlayerSendTextMessage(itemEx.uid, 27, "Voce foi puxado pelo jogador ".. getCreatureName(cid) .."!")
	else
		doPlayerSendCancel(cid, "Desculpe, somente a vocação Kakuzo pode puxar players.")
	end
    end -- script por amoeba13
    
    local qnts = math.random(1, 100)
    if qnts <= chance and qnts <= chancebug then
        puxarPlayer(cid) 
        local axb = math.random(1, #monsters)
        addEvent(doCreatureSay, intervalo*1000+100, itemEx.uid, "Eu nao vi que isso tinha vindo comigo...", TALKTYPE_ORANGE_1)
        addEvent(doCreateMonster, intervalo*1000+100, monsters[axb], poss1)
    elseif qnts <= chance and qnts > chancebug then
        puxarPlayer(cid)
    elseif qnts > chance and qnts <= chanceband then
        doCreateMonster("Bandit", poss1)
        doCreatureSay(cid, "Nao foi voce que eu puxei!", TALKTYPE_ORANGE_1)
        doSendAnimatedText(pos1, "Fail!", TEXTCOLOR_RED)
        doSendMagicEffect(pos1, CONST_ME_POFF)
        doPlayerSetStorageValue(cid, 23125, os.time()+exhaust)
    elseif qnts > chance then 
        doSendAnimatedText(pos1, "Fail!", TEXTCOLOR_RED)
        doSendMagicEffect(pos1, CONST_ME_POFF)
        doPlayerSetStorageValue(cid, 23125, os.time()+exhaust)
        end
    return true
end

 

 

Obs.: Vai no seu arquivo data/xml/vocations.xml e procura pela vocação Kakuzo, pegue o ID dessa vocação, então volte no script do action e procure por isso:

if getPlayerVocation(cid) == 4 then

No lugar do 4, coloque o id da vocação Kakuzo.

Link para o post
Compartilhar em outros sites
6 minutos atrás, SoyColombiaa disse:

Exatamente, é como eu falei, ao invés de por "4" checando o id da vocation, põe o id que ta na vocations.xml ¬¬'

 

Se vc n viu, ele colocou exatamente oq vc disse:

if getPlayerVocation(cid) == 4 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end

 

Nem todos sabem ficar alterando scripts etc, então tem que se um pouco mais preciso na resposta mano :/

Link para o post
Compartilhar em outros sites
40 minutos atrás, Sekk disse:

 

Se vc n viu, ele colocou exatamente oq vc disse:


if getPlayerVocation(cid) == 4 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end

 

Nem todos sabem ficar alterando scripts etc, então tem que se um pouco mais preciso na resposta mano :/

Ah eu nem vi o código HEAUHSEUADHUASHEDUAS

Mas poxa, era só ler o resto que eu falei, e não só copiar meu script, @koalla1235

Link para o post
Compartilhar em outros sites
50 minutos atrás, SoyColombiaa disse:

Ah eu nem vi o código HEAUHSEUADHUASHEDUAS

Mas poxa, era só ler o resto que eu falei, e não só copiar meu script, @koalla1235

Fiz certinho oque disseram e continua mesma coisa não da erro no distro nem nada porem qualquer personagem ainda pode usar o item ...-_-

Link para o post
Compartilhar em outros sites
6 minutos atrás, koalla1235 disse:

 

Cara, é obvio que não vai dar certo, se eu exemplifiquei uma função, ainda expliquei como pegar o id da vocation certa, e você só copia e cola o meu exemplo, OBVIAMENTE vai dar errado. '-'

Link para o post
Compartilhar em outros sites
2 minutos atrás, SoyColombiaa disse:

Cara, é obvio que não vai dar certo, se eu exemplifiquei uma função, ainda expliquei como pegar o id da vocation certa, e você só copia e cola o meu exemplo, OBVIAMENTE vai dar errado. '-'

cara, se vc n viu, eu alterei o script, mas n ta funcionando ainda, então n tem nada a ver vc ter exemplificado, foi algum erro da minha edição.. pelo amor em...

Link para o post
Compartilhar em outros sites
Agora, Sekk disse:

cara, se vc n viu, eu alterei o script, mas n ta funcionando ainda, então n tem nada a ver vc ter exemplificado, foi algum erro da minha edição.. pelo amor em...

Pelo amor o que cara, o cara citou uma hora que eu falei do script dele, em que ele copiou e colou, logo, to respondendo que deu errado naquela hora, porque:

Citar

Cara, é obvio que não vai dar certo, se eu exemplifiquei uma função, ainda expliquei como pegar o id da vocation certa, e você só copia e cola o meu exemplo, OBVIAMENTE vai dar errado. '-'

 

Link para o post
Compartilhar em outros sites
14 minutos atrás, SoyColombiaa disse:

Pelo amor o que cara, o cara citou uma hora que eu falei do script dele, em que ele copiou e colou, logo, to respondendo que deu errado naquela hora, porque:

 

Cara também não sou tão burro a ponto de não saber que eu teria que mudar o id da vocação para funcionar , porem mesmo eu adicionando o primeiro id do personagem ainda outras vocações podem usar o item ..

Link para o post
Compartilhar em outros sites
Agora, koalla1235 disse:

Cara também não sou tão burro a ponto de não saber que eu teria que mudar o id da vocação para funcionar , porem mesmo eu adicionando o primeiro id do personagem ainda outras vocações podem usar o item ..

Quando eu citei o seu script, falando que não deu certo, você não tinha alterado. Manda o script ai.

Link para o post
Compartilhar em outros sites

Ta ai o Script da forma que tentei e também ja com as vocações que poderão usar o action !


local intervalo = 1.5 -- tempo ate o player ser puxado (em segundos)
local exhaust = 1 -- Exhaustion entre usos do item (em segundos)
local chance = 80 -- chance em % de puxar
local itemefeito = 7860 -- item que aparece no cara que foi puxado
local falas = {"Kakuzooo !"}
local monsters = {"Bug", "Wasp", "Centipede"}
local chancebug = 0 -- chance de vir insetos junto com o jogador puxado (em porcentagem)
local chanceband = 0 -- chance de puxar um bandit quanto o puxao falhar (em porcentagem)

------ Nao altera mais nada ------
function mayNotMove(uid, block)
    return doCreatureSetNoMove(uid, block)
end

function canWalk(cid,pos)
    local abc = pos
    abc.stackpos = 253
    if doTileQueryAdd(cid, pos) == 1 and getTilePzInfo(pos) == false and isCreature(getThingFromPos(abc).uid) == false then
        return true
    end
end

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local pos1 = getCreaturePosition(cid) 
    local pos2 = getCreaturePosition(itemEx.uid)
    local poss1 = getCreatureLookPosition(cid)
    local fightcondition = createConditionObject(CONDITION_INFIGHT)
    setConditionParam(fightcondition, CONDITION_PARAM_TICKS, intervalo*1000+100)
                
    local function removeritem1(cid, item, pos, itemEx)
        local itemnapos = getTileItemById(pos2, itemefeito)
        doRemoveItem(itemnapos.uid,1)
    end
    
    local function removeritem2(cid, item, pos)
        local itemnaposs = getTileItemById(poss1, itemefeito)
        doRemoveItem(itemnaposs.uid,1)
    end

    local function doEffect(pos)
    end
     
    local tmp = getCreatureStorage(cid, 23125)
    if getCreatureStorage(cid, 23125) > os.time() then
        return doPlayerSendCancel(cid, "Você precisa esperar ".. tmp - os.time() .." segundos para usar novamente.")
    end
    
    if not isPlayer(itemEx.uid) then
        return doPlayerSendCancel(cid, "Voce so pode puxar jogadores!")
    end
        
    if itemEx.uid == cid then
        return doPlayerSendCancel(cid, "Voce nao pode usar em si mesmo.")
    end
  if getPlayerVocation(cid) == 475 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end  
  if getPlayerVocation(cid) == 476 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end  
  if getPlayerVocation(cid) == 477 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end  
  if getPlayerVocation(cid) == 478 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end  
  if getPlayerVocation(cid) == 479 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end  
  if getPlayerVocation(cid) == 480 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end  
  if getPlayerVocation(cid) == 481 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end  
  if getPlayerVocation(cid) == 482 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end  
  if getPlayerVocation(cid) == 483 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end 
  if getPlayerVocation(cid) == 484 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end 
  if getPlayerVocation(cid) == 485 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end 
  if getPlayerVocation(cid) == 486 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end  
  if getPlayerVocation(cid) == 487 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end 
  if getPlayerVocation(cid) == 488 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end 
    if getTilePzInfo(pos1) == true or getTilePzInfo(pos2) == true  or getTilePzInfo(poss1) == true then
        return doPlayerSendCancel(cid, "Voce nao pode puxar na protection zone!")
    end
    
    if not canWalk(cid, poss1) then
       return doPlayerSendCancel(cid, "Voce nao pode puxar ele aqui!")
    end
    
    if pos1.x ~= pos2.x and pos1.y ~= pos2.y then
        return doPlayerSendCancel(cid, "Voce nao pode puxar na diagonal!")
    end
    
    local function puxarPlayer(cid, pos, item) -- script por amoeba13
        local randomChance = math.random(1, #falas)
        doAddCondition(cid, fightcondition)
        doAddCondition(itemEx.uid, fightcondition)
        doCreatureSay(cid, falas[randomChance], TALKTYPE_ORANGE_1)
        doPlayerSetStorageValue(cid, 23125, os.time()+exhaust)
            addEvent(doTeleportThing, intervalo*1000, itemEx.uid, poss1)
            addEvent(mayNotMove, intervalo*1000, cid, false)
            addEvent(mayNotMove, intervalo*1000, itemEx.uid, false)
            addEvent(removeritem1, intervalo*1000) 
            addEvent(doCreateItem, intervalo*1000, itemefeito, 1, poss1)
            addEvent(removeritem2, intervalo*1000+1500)
            addEvent(doEffect, intervalo*1000)
            addEvent(doEffect, intervalo*1000/2)
            addEvent(doEffect, intervalo*1000/3)
            addEvent(doEffect, intervalo*1000/4)
        doCreateItem(itemefeito, 1, pos2)
        mayNotMove(cid, true)
        mayNotMove(itemEx.uid, true)
        doSendAnimatedText(pos1, "Succes!", TEXTCOLOR_GREEN)
        doPlayerSendTextMessage(itemEx.uid, 27, "Voce foi puxado pelo jogador ".. getCreatureName(cid) .."!")                    
    end -- script por amoeba13
    
    local qnts = math.random(1, 100)
    if qnts <= chance and qnts <= chancebug then
        puxarPlayer(cid) 
        local axb = math.random(1, #monsters)
        addEvent(doCreatureSay, intervalo*1000+100, itemEx.uid, "Eu nao vi que isso tinha vindo comigo...", TALKTYPE_ORANGE_1)
        addEvent(doCreateMonster, intervalo*1000+100, monsters[axb], poss1)
    elseif qnts <= chance and qnts > chancebug then
        puxarPlayer(cid)
    elseif qnts > chance and qnts <= chanceband then
        doCreateMonster("Bandit", poss1)
        doCreatureSay(cid, "Nao foi voce que eu puxei!", TALKTYPE_ORANGE_1)
        doSendAnimatedText(pos1, "Fail!", TEXTCOLOR_RED)
        doSendMagicEffect(pos1, CONST_ME_POFF)
        doPlayerSetStorageValue(cid, 23125, os.time()+exhaust)
    elseif qnts > chance then 
        doSendAnimatedText(pos1, "Fail!", TEXTCOLOR_RED)
        doSendMagicEffect(pos1, CONST_ME_POFF)
        doPlayerSetStorageValue(cid, 23125, os.time()+exhaust)
        end
    return true
end

 

Link para o post
Compartilhar em outros sites
2 horas atrás, koalla1235 disse:

Ta ai o Script da forma que tentei e também ja com as vocações que poderão usar o action !



local intervalo = 1.5 -- tempo ate o player ser puxado (em segundos)
local exhaust = 1 -- Exhaustion entre usos do item (em segundos)
local chance = 80 -- chance em % de puxar
local itemefeito = 7860 -- item que aparece no cara que foi puxado
local falas = {"Kakuzooo !"}
local monsters = {"Bug", "Wasp", "Centipede"}
local chancebug = 0 -- chance de vir insetos junto com o jogador puxado (em porcentagem)
local chanceband = 0 -- chance de puxar um bandit quanto o puxao falhar (em porcentagem)

------ Nao altera mais nada ------
function mayNotMove(uid, block)
    return doCreatureSetNoMove(uid, block)
end

function canWalk(cid,pos)
    local abc = pos
    abc.stackpos = 253
    if doTileQueryAdd(cid, pos) == 1 and getTilePzInfo(pos) == false and isCreature(getThingFromPos(abc).uid) == false then
        return true
    end
end

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local pos1 = getCreaturePosition(cid) 
    local pos2 = getCreaturePosition(itemEx.uid)
    local poss1 = getCreatureLookPosition(cid)
    local fightcondition = createConditionObject(CONDITION_INFIGHT)
    setConditionParam(fightcondition, CONDITION_PARAM_TICKS, intervalo*1000+100)
                
    local function removeritem1(cid, item, pos, itemEx)
        local itemnapos = getTileItemById(pos2, itemefeito)
        doRemoveItem(itemnapos.uid,1)
    end
    
    local function removeritem2(cid, item, pos)
        local itemnaposs = getTileItemById(poss1, itemefeito)
        doRemoveItem(itemnaposs.uid,1)
    end

    local function doEffect(pos)
    end
     
    local tmp = getCreatureStorage(cid, 23125)
    if getCreatureStorage(cid, 23125) > os.time() then
        return doPlayerSendCancel(cid, "Você precisa esperar ".. tmp - os.time() .." segundos para usar novamente.")
    end
    
    if not isPlayer(itemEx.uid) then
        return doPlayerSendCancel(cid, "Voce so pode puxar jogadores!")
    end
        
    if itemEx.uid == cid then
        return doPlayerSendCancel(cid, "Voce nao pode usar em si mesmo.")
    end
  if getPlayerVocation(cid) == 475 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end  
  if getPlayerVocation(cid) == 476 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end  
  if getPlayerVocation(cid) == 477 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end  
  if getPlayerVocation(cid) == 478 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end  
  if getPlayerVocation(cid) == 479 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end  
  if getPlayerVocation(cid) == 480 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end  
  if getPlayerVocation(cid) == 481 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end  
  if getPlayerVocation(cid) == 482 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end  
  if getPlayerVocation(cid) == 483 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end 
  if getPlayerVocation(cid) == 484 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end 
  if getPlayerVocation(cid) == 485 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end 
  if getPlayerVocation(cid) == 486 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end  
  if getPlayerVocation(cid) == 487 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end 
  if getPlayerVocation(cid) == 488 then
     doPlayerAddItem(cid, 2384, 1)
     return true
end 
    if getTilePzInfo(pos1) == true or getTilePzInfo(pos2) == true  or getTilePzInfo(poss1) == true then
        return doPlayerSendCancel(cid, "Voce nao pode puxar na protection zone!")
    end
    
    if not canWalk(cid, poss1) then
       return doPlayerSendCancel(cid, "Voce nao pode puxar ele aqui!")
    end
    
    if pos1.x ~= pos2.x and pos1.y ~= pos2.y then
        return doPlayerSendCancel(cid, "Voce nao pode puxar na diagonal!")
    end
    
    local function puxarPlayer(cid, pos, item) -- script por amoeba13
        local randomChance = math.random(1, #falas)
        doAddCondition(cid, fightcondition)
        doAddCondition(itemEx.uid, fightcondition)
        doCreatureSay(cid, falas[randomChance], TALKTYPE_ORANGE_1)
        doPlayerSetStorageValue(cid, 23125, os.time()+exhaust)
            addEvent(doTeleportThing, intervalo*1000, itemEx.uid, poss1)
            addEvent(mayNotMove, intervalo*1000, cid, false)
            addEvent(mayNotMove, intervalo*1000, itemEx.uid, false)
            addEvent(removeritem1, intervalo*1000) 
            addEvent(doCreateItem, intervalo*1000, itemefeito, 1, poss1)
            addEvent(removeritem2, intervalo*1000+1500)
            addEvent(doEffect, intervalo*1000)
            addEvent(doEffect, intervalo*1000/2)
            addEvent(doEffect, intervalo*1000/3)
            addEvent(doEffect, intervalo*1000/4)
        doCreateItem(itemefeito, 1, pos2)
        mayNotMove(cid, true)
        mayNotMove(itemEx.uid, true)
        doSendAnimatedText(pos1, "Succes!", TEXTCOLOR_GREEN)
        doPlayerSendTextMessage(itemEx.uid, 27, "Voce foi puxado pelo jogador ".. getCreatureName(cid) .."!")                    
    end -- script por amoeba13
    
    local qnts = math.random(1, 100)
    if qnts <= chance and qnts <= chancebug then
        puxarPlayer(cid) 
        local axb = math.random(1, #monsters)
        addEvent(doCreatureSay, intervalo*1000+100, itemEx.uid, "Eu nao vi que isso tinha vindo comigo...", TALKTYPE_ORANGE_1)
        addEvent(doCreateMonster, intervalo*1000+100, monsters[axb], poss1)
    elseif qnts <= chance and qnts > chancebug then
        puxarPlayer(cid)
    elseif qnts > chance and qnts <= chanceband then
        doCreateMonster("Bandit", poss1)
        doCreatureSay(cid, "Nao foi voce que eu puxei!", TALKTYPE_ORANGE_1)
        doSendAnimatedText(pos1, "Fail!", TEXTCOLOR_RED)
        doSendMagicEffect(pos1, CONST_ME_POFF)
        doPlayerSetStorageValue(cid, 23125, os.time()+exhaust)
    elseif qnts > chance then 
        doSendAnimatedText(pos1, "Fail!", TEXTCOLOR_RED)
        doSendMagicEffect(pos1, CONST_ME_POFF)
        doPlayerSetStorageValue(cid, 23125, os.time()+exhaust)
        end
    return true
end

 

Qual sua TFS?

Amigo, você não está fazendo nada ali. Você está apenas dando um item, que no caso seria uma espada que eu exemplifiquei, pra cada vocation. Me fala aí, qual item você gostaria de dar use, para qual id de cada vocation?

Link para o post
Compartilhar em outros sites
1 hora atrás, SoyColombiaa disse:

Qual sua TFS?

Amigo, você não está fazendo nada ali. Você está apenas dando um item, que no caso seria uma espada que eu exemplifiquei, pra cada vocation. Me fala aí, qual item você gostaria de dar use, para qual id de cada vocation?

Use TFS 0.4  Amigo  item de Dar use ID : 7860 e queria que somente essas vocações poderem usar ela VOC ID :  475-476-477-478-479-480-481-482-483-484-485-486-487-488 ...

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por LeoTK
      Salve galera neste tópico irei postar algumas prints do mapa do servidor para quem queira acompanhar e quem sabe até utilizar de inspiração para mapear o seu NTO.
       
      #Att 11/08/2022

       
       
       
       
      Konoha (Em Desenvolvimento)
       
       
       
       
    • Por DiigooMix
      Como o título já diz, será que alguém possui sprite do hitto e se possível as transformações dele?
    • Por OmegaZero
      Olá gostaria que alguém me ajudasse com uma "scripting" não sei se é pela mesma, seria o seguinte uma determinada arma teria a chance de dar double hit e não sei oque fazer alguem poderia ajudar?

      OBS:não sei se é o local correto se não for mova, desculpe
    • Por Madarasenju
      Olá galera do Tibia King, queria por uns npc's no meu server que não tem função de trade nem nada do tipo, queria que eles só andassem como enfeite, Rep+ Pra quem me ajudar... grato desde já.
    • Por SilenceRoot
      A magia é assim o você usa a a magia e ela ficará ativado por 10 segundos, até que o inimigo lance a primeira magia ou todos de uma vez, quando ele lançar a primeira magia, ele não lhe acertará ou seja esquivando dela, e logo em seguida será teletransportado aleatoriamente ao redor do inimigo que usou.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo