Ir para conteúdo
  • Cadastre-se

Normal Secure Mode Pvp não funciona


Posts Recomendados

Bom gente, segui esse tutorial sobre um pvp seguro, tipo, o player deixa a 'mãozinha' aberta, entao nenhuma magia q ele solta em area e nem com target atinge um player, e nem pode mirar no player. A parte da magia ta normal, mas quando eu fecho a 'mãozinha' e tento bater no player aparece isso aqui:

[3:0:33.226] [Error - CreatureScript Interface]
[3:0:33.228] data/creaturescripts/scripts/pvprotect1.lua:onCombat
[3:0:33.231] Description:
[3:0:33.232] data/creaturescripts/scripts/pvprotect1.lua:2: attempt to call global 'getPlayerSecureMode' (a nil value)
[3:0:33.241] stack traceback:
[3:0:33.242]    data/creaturescripts/scripts/pvprotect1.lua:2: in function <data/creaturescripts/scripts/pvprotect1.lua:1>

Lembrando que quando eu fechasse a mãozinha era pra ser possível atingir players tanto quanto ataques melees, magic e as spells em area também, mas nada afeta ainda, e mirar no player aparece o erro a cima.

Meu arquivo pvprotect1 é esse:

function onCombat(cid, target)
    if(target and isPlayer(target) and getPlayerSecureMode(cid)) then
        doPlayerSendCancel(cid, "Turn secure mode off if you really want to attack unmarked players.")
        return false
    end
    return true
end

 

Adicionei os códigos na source corretamente, segue abaixo os mesmos:

luascript.cpp

int32_t LuaInterface::luaGetPlayerSecureMode(lua_State* L)
{
    //getPlayerSecureMode(cid)
    ScriptEnviroment* env = getEnv();
    Player* player = env->getPlayerByUID((uint32_t)popNumber(L));
    if(!player)
    {
        errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND));
        lua_pushboolean(L, false);
    }
    else
        lua_pushnumber(L, player->getSecureMode());
 
    return 1;
}

int32_t LuaInterface::luaGetPlayerFightMode(lua_State* L)
{
    //getPlayerFightMode(cid)
    ScriptEnviroment* env = getEnv();
    Player* player = env->getPlayerByUID((uint32_t)popNumber(L));
    if(!player)
    {
        errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND));
        lua_pushboolean(L, false);
    }
    else
        lua_pushnumber(L, player->getAttackFactor());
 
    return 1;
}

luascript.h

//getPlayerFightMode(cid)
static int32_t luaGetPlayerFightMode(lua_State* L);
//getPlayerSecureMode(cid)
static int32_t luaGetPlayerSecureMode(lua_State* L);

 

@Vodkart

@Absolute

@zipter98

@Fir3element

 

Obrigado desde ja ^^

 

 

Edit: Esse é o link do tópico do sistema pvp

https://otland.net/threads/securemode-pvp-system.128600/

 

Editado por Sekk (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Consegui resolver registrando isso no luascript.cpp também:

//getPlayerSecureMode
	lua_register(m_luaState, "getPlayerSecureMode", LuaInterface::luaGetPlayerSecureMode);

	//getPlayerFightMode
	lua_register(m_luaState, "getPlayerFightMode", LuaInterface::luaGetPlayerFightMode);

 

E também no creaturescripts, só usei isso:

function onCombat(cid, target)
    if (target and isPlayer(target) and getPlayerSecureMode(cid) == 0) then
			doPlayerSendCancel(cid, "Turn secure mode off if you really want to attack unmarked players.")
			return false
        elseif (target and isPlayer(target) and getPlayerSecureMode(cid) == 1) then
			return true
	end
return true
end

obrigado ao @robi123

 

Mas estou com outro problema:

Se algum player pegar skull(white, red ou black) ele ainda n pode ser atacado se a mão estiver aberta, preciso fechá-la para atacar e também quando um player ataca alguem que tenha skull, ele não pega pz(espadas vermelhas cruzadas), e n sei como arrumar isso... Preciso da ajuda de vcs ^^

Ja tentei deixar o script desse modo, só uma gambiarra pra ter uma noção, ta mal feito, se funcionasse eu melhoraria um pouco ele, mas não funcionou, veja:

function onCombat(cid, target)
    if (target and isPlayer(target) and getPlayerSecureMode(cid) == 0) then
			doPlayerSendCancel(cid, "Turn secure mode off if you really want to attack unmarked players.")
			return false
        elseif (target and isPlayer(target) and getPlayerSecureMode(cid) == 1) then
			return true
		elseif (target and isPlayer(target) and getPlayerSecureMode(cid) == 0 and getCreatureSkullType(target) == SKULL_WHITE) then
			return true
		elseif (target and isPlayer(target) and getPlayerSecureMode(cid) == 0 and getCreatureSkullType(target) == SKULL_RED) then
			return true
		elseif (target and isPlayer(target) and getPlayerSecureMode(cid) == 0 and getCreatureSkullType(target) == SKULL_BLACK) then
			return true
	end
return true
end

E nem assim:

function onCombat(cid, target)
    if (target and isPlayer(target) and getPlayerSecureMode(cid) == 0) then
			doPlayerSendCancel(cid, "Turn secure mode off if you really want to attack unmarked players.")
			return false
        elseif (target and isPlayer(target) and getPlayerSecureMode(cid) == 1) then
			return true
		elseif (getPlayerSecureMode(cid) == 0 and getCreatureSkullType(target) == SKULL_WHITE) then
			return true
		elseif (getPlayerSecureMode(cid) == 0 and getCreatureSkullType(target) == SKULL_RED) then
			return true
		elseif (getPlayerSecureMode(cid) == 0 and getCreatureSkullType(target) == SKULL_BLACK) then
			return true
	end
return true
end

 

@xWhiteWolf @Fir3element @Vodkart podem ajudar?

Link para o post
Compartilhar em outros sites
3 horas atrás, ManoTobira disse:

function onCombat(cid, target)
if isPlayer(target) and getPlayerSecureMode(cid) == 0 and getCreatureSkullType(target) == 0 then
return false
end

return true
end

 

parte está funcional, mas o player que ataca o pk não pega pz :/

Link para o post
Compartilhar em outros sites
4 horas atrás, Sekk disse:

 

parte está funcional, mas o player que ataca o pk não pega pz :/

Acredito que isso não tenha nenhuma relação com o script já que a única função dele é evitar os ataques a jogadores sem pk caso o fightmode esteja desativado

Link para o post
Compartilhar em outros sites
20 horas atrás, ManoTobira disse:

Acredito que isso não tenha nenhuma relação com o script já que a única função dele é evitar os ataques a jogadores sem pk caso o fightmode esteja desativado

Procurei por scripts que setam pz locked no player mas n deu certo :/

 

Tentei com

doPlayerSetPzLocked(cid)
doPlayerSetPzLocked(cid, true)
doPlayerSetPzLocked(cid, locked) -- o luascript.cpp do meu tfs fala que é assim

Mas nenhum funciona, por enquanto deixei o script assim, não deu certo mas n indica nenhum erro:

function onCombat(cid, target)

if isPlayer(target) and getPlayerSecureMode(cid) == 0 and getCreatureSkullType(target) == 0 then
	return false
end
if getCreatureSkullType(target) > 0 then
    doPlayerSetPzLocked(cid, locked)
end
	return true
end

@xWhiteWolf @Vodkart @Fir3element @zipter98

Link para o post
Compartilhar em outros sites
Em 24/04/2017 ás 20:58, Sekk disse:

Procurei por scripts que setam pz locked no player mas n deu certo :/

 

Tentei com


doPlayerSetPzLocked(cid)
doPlayerSetPzLocked(cid, true)
doPlayerSetPzLocked(cid, locked) -- o luascript.cpp do meu tfs fala que é assim

Mas nenhum funciona, por enquanto deixei o script assim, não deu certo mas n indica nenhum erro:


function onCombat(cid, target)

if isPlayer(target) and getPlayerSecureMode(cid) == 0 and getCreatureSkullType(target) == 0 then
	return false
end
if getCreatureSkullType(target) > 0 then
    doPlayerSetPzLocked(cid, locked)
end
	return true
end

@xWhiteWolf @Vodkart @Fir3element @zipter98

qual tfs testada?

Link para o post
Compartilhar em outros sites
  • 1 month later...

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 Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo