Ir para conteúdo
  • 0

Comando pvp on


Pergunta

Bom pessoal, no meu otserv tenho visto muito problema com players fazendo outros pegar red por está de bot, teria como criar um comando !pvp on e !pvp off

 

Com esse comando ativado o player pode ser morto mas não pode atacar players mesmo com spells de área.

 

 

Abraço e obrigado.

Link para o comentário
https://xtibia.com/forum/topic/227890-comando-pvp-on/
Compartilhar em outros sites

15 respostass a esta questão

Posts Recomendados

  • 0

 

Talvez que seu servidor já tenha. Tente:

/pvp optional
/pvp open

No caso não é para mudar o tipo de pvp do ot lek, é para o player usar quando for upar, se eu usar isso mudo do ot todo. =/

Link para o comentário
https://xtibia.com/forum/topic/227890-comando-pvp-on/#findComment-1608926
Compartilhar em outros sites

  • 0

data/talkactions/scripts

local msg = "Agora seu sistema PvP está %s."
function onSay(cid, words, param)
local _table = {
    ["on"] = {"ativado", 1},
    ["off"] = {"desativado", 0},
}
    if _table[param:lower()] then
        local mode = _table[param:lower()]
        setPlayerStorageValue(cid, 91821, mode[2])
        doPlayerSendTextMessage(cid, 27, msg:format(mode[1]))
    end
    return true
end

data/creaturescripts/scripts

 

--[[
    Tags:
    <event type="statschange" name="PvPStats" event="script" value="nome do arquivo.lua"/>
    <event type="target" name="PvPTarget" event="script" value="nome do arquivo.lua"/> 
    <event type="login" name="PvPLogin" event="script" value="nome do arquivo.lua"/> 
]]--
 
function onTarget(cid, target)
    if isPlayer(target) and isPlayer(cid) then
        if getPlayerStorageValue(cid, 91821) < 1 then
            doPlayerSendCancel(cid, "Você está com o modo PvP desligado. Se quiser atacar outros jogadores, ative-o.")
            return false
        end
    end
    return true
end
 
function onStatsChange(cid, attacker, type, combat, value)
    if isPlayer(cid) and isPlayer(attacker) and type == STATSCHANGE_HEALTHLOSS then
        if getPlayerStorageValue(attacker, 91821) < 1 then
            doPlayerSendCancel(attacker, "Você está com o modo PvP desligado. Se quiser atacar outros jogadores, ative-o.")
            return false
        end
    end
    return true
end
 
function onLogin(cid)
    registerCreatureEvent(cid, "PvPTarget")
    registerCreatureEvent(cid, "PvPStats")
    return true
end
Editado por zipter98
Link para o comentário
https://xtibia.com/forum/topic/227890-comando-pvp-on/#findComment-1608951
Compartilhar em outros sites

  • 0

Zipter esse script é util pro meu server tb,porém eu n entendi nada,pode me explicar melhor oq é pra fazer???

vc passou o script,mas no xml? e essa creaturescript com tags do xml,login e o script em si tudo misturado???

Link para o comentário
https://xtibia.com/forum/topic/227890-comando-pvp-on/#findComment-1608965
Compartilhar em outros sites

  • 0

A única coisa que não citei foi a tag da talkaction, que achei desnecessário criar, pois pensei que o autor seria capaz de criá-la.

E há 3 funções main juntas num mesmo código (eu optei por fazer assim para não precisar criar 3 arquivos, ao invés de apenas um). Portanto, são 3 tags. Como você pôde ver, eu informei as 3 no início do código.

E, também, como você não entendeu? Ué, cria um arquivo na pasta citada com extensão .lua, e então coloque o código lá. As tags, no arquivo .xml da respectiva pasta (talkactions - talkactions.xml/creaturescripts - creaturescripts.xml).

Editado por zipter98
Link para o comentário
https://xtibia.com/forum/topic/227890-comando-pvp-on/#findComment-1608972
Compartilhar em outros sites

  • 0

 

data/talkactions/scripts

local msg = "Agora seu sistema PvP está %s."
function onSay(cid, words, param)
local _table = {
    ["on"] = {"ativado", 1},
    ["off"] = {"desativado", 0},
}
    if _table[param:lower()] then
        local mode = _table[param:lower()]
        setPlayerStorageValue(cid, 91821, mode[2])
        doPlayerSendTextMessage(cid, 27, msg:format(mode[1]))
    end
    return true
end

data/creaturescripts/scripts

--[[
    Tags:
    <event type="statschange" name="PvPStats" event="script" value="nome do arquivo.lua"/>
    <event type="target" name="PvPTarget" event="script" value="nome do arquivo.lua"/> 
    <event type="login" name="PvPLogin" event="script" value="nome do arquivo.lua"/> 
]]--
 
function onTarget(cid, target)
    if isPlayer(target) and isPlayer(cid) then
        if getPlayerStorageValue(target, 91821) < 1 or getPlayerStorageValue(cid, 91821) < 1 then
            doPlayerSendCancel(cid, "Você não pode atacar jogadores que estão com o PvP desativado.")
            return false
        end
    end
    return true
end
 
function onStatsChange(cid, attacker, type, combat, value)
    if isPlayer(cid) and isPlayer(attacker) then
        if getPlayerStorageValue(cid, 91821) < 1 or getPlayerStorageValue(attacker, 91821) < 1 then
            doPlayerSendCancel(attacker, "Você não pode atacar jogadores que estão com o PvP desativado.")
            return false
        end
    end
    return true
end
 
function onLogin(cid)
    registerCreatureEvent(cid, "PvPTarget")
    registerCreatureEvent(cid, "PvPStats")
    return true
end

 

Valeu cara, vou testar ainda hoje e já edito :D

Ainda não testei mas me tira uma dúvida por favor, no caso eu quero que o cara que esteja upando não attack outros players com spells, o que me parace que esse comando não permite o players ser atacado. Obrigado

Link para o comentário
https://xtibia.com/forum/topic/227890-comando-pvp-on/#findComment-1609687
Compartilhar em outros sites

  • 0

O jogador que desativa a opção de PvP não pode nem ser atacado, nem atacar outros jogadores.

Não tem como por para ele só não atacar os outros? Se não ele vai deixar de bot e ninguém vai matar. Se for possível é claro :D Desde já agradeço. abraço

Link para o comentário
https://xtibia.com/forum/topic/227890-comando-pvp-on/#findComment-1609703
Compartilhar em outros sites

  • 0

Funcionou direitinho amigo, muito obrigado. Podem fechar :D


OK. Editei meu comentário logo acima com o código alterado.

 

 

@EDIT

 

Só ocorreu um problema lek, não está dando para curar. =/ tem como ver isso? Obrigado

Link para o comentário
https://xtibia.com/forum/topic/227890-comando-pvp-on/#findComment-1611101
Compartilhar em outros sites

×
×
  • Criar Novo...