Ir para conteúdo

[Beta] Duel System V1.1


Lucasbaragatti

Posts Recomendados

TUTORIAL DUEL SYSTEM PARA POKEMON

 

Passos: (São 6)

1 - Recursos Necessários

2 - Instalar as funções na source

3 - Adicionar os controles na source

4 - Compilar a source

5 - Instalar o controle no servidor

6 - Configurando duelconfig.xml

RECURSOS NECESSÁRIOS (DOWNLOADS)

StiansDevCppRepack v2 - Clique para baixar

KronoX Duel Repack v1.1 - Clique para baixar

Ter sua source(distro) em mãos - Download Versão 8.54 -

 

Versões

 Versão v1.0 : Versão Inicial do sistema
Versão v1.1 : Tentativa de correção de bugs no Party.cpp

 

INSTALANDO AS FUNÇÕES NECESSÁRIAS NA SOURCE

 

Abra sua source(distro) no Dev-C++. PS (Se seu SO for windows 7 abra-o como administrador)

Vá ao arquivo luascript.cpp

Depois da linha:

lua_register(m_luaState,"doPlayerJoinParty",LuaScriptInterface::luaDoPlayerJoinParty);

Adicione:

//doPlayerLeaveParty(cid)

lua_register(m_luaState,"doPlayerLeaveParty",LuaScriptInterface::luaDoPlayerLeaveParty);

 

E depois da linha:

int32_t LuaScriptInterface::luaDoPlayerJoinParty(lua_State* L)

Adicione:

int32_t LuaScriptInterface::luaDoPlayerLeaveParty(lua_State* L)

{

//doPlayerLeaveParty(cid)

ScriptEnviroment* env = getEnv();

 

Player* player = env->getPlayerByUID(popNumber(L));

if(!player)

{

errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND));

lua_pushboolean(L, false);

}

g_game.playerLeaveParty(player->getID());

lua_pushboolean(L, true);

return 1;

}

Após isso abra o arquivo luascript.h

Depois da linha:

static int32_t luaDoPlayerJoinParty(lua_State* L);

Adicione:

static int32_t luaDoPlayerLeaveParty(lua_State* L);

 

 

ADICIONANDO OS CONTROLES NA SOURCE

Em seu Dev-C++ com sua source carregada navegue no canto esquerdo até encontrar um arquivo chamado Party.cpp .

Clique com o lado direito nesse Party.CPP e clique em "Remove File" .

Feito isso vá na aba Project , clique em Add to project e selecione o arquivo chamado Party.CPP que se encontra dentro do KronoX Duel Repack(Seção Downloads), e de Abrir.

 

 

COMPILANDO SUA SOURCE

Após fazer todos os passos anteriores vá na aba File e Clique Em Save All.

Após isso aperte CTRL + F11 e aguarde até que sua source seja compilada.

 

 

INSTALANDO CONTROLE NO SERVIDOR

 

Abra a pasta data/creaturescripts e abra o arquivo creaturescripts.xml

Abaixo de <creaturescripts> Adicione:

<event type="think" name="duelsys" event="script" value="duel.lua"/>

<event type="death" name="dueldie" event="script" value="dueldie.lua"/>

Depois, onde está localizado esse creaturescripts.xml tera uma pasta chamada scripts.

Abra essa pasta e abra o arquivo login.lua.

Nesse arquivo depois da linha:

registerCreatureEvent(cid, "onPrepareDeath")

Adicione:

registerCreatureEvent(cid, "duelsys")

Salve e feche o arquivo.

Nessa mesma pasta tera um arquivo chamado logout.lua. Abra ele.

Apos a linha:

function onLogout(cid, forceLogout)

Adicione:

function getDuelConfig(name)

local configFile = io.open('data/creaturescripts/scripts/duelconfig.xml','r')

if not configFile then

return 100

end

local maximo = configFile:read(-1):lower():match(''..name..'='..name:lower()..'')

data:close()

return maximo

end

local battlex = getDuelConfig('battleStorage')

if getPlayerStorageValue(cid, battlex) == 1 then

doPlayerSendTextMessage(cid, 27, "Sorry, you cant logout if you are in a duel!")

return false

end

Salve e feche o arquivo.

 

Após isso abra a pasta data/actions/scripts e abra o arquivo goback.lua (nome provavel do seu goback). OBS: Se tiver mais de um arquivo de goback (great ball/master etc..) repita este processo a seguir em todos eles.

 

Procure por registerCreatureEvent(creature, "DiePoke") ou algo parecido com registerCreatureEvent(ALGO QUE NÃO SEJA CID, ALGO QUE PAREÇA COM DIE)

Após ter localizado esta linha adicione na linha de baixo:

registerCreatureEvent(O QUE ESTA AQUI NA LINHA DE CIMA,"dueldie")

Atenção: Mude esse O QUE ESTA AQUI NA LINHA DE CIMA pelo que aparece escrito ali na linha de cima ("ALGO QUE NÃO SEJA CID" escrito em azul, você ira pelo que tiver em seu server)

OBS: Ficará MAIS OU MENOS assim -> registerCreatureEvent(creature, "dueldie")

 

Depois disso, na parte que volta o pokemon para a pokebola ( geralmente onde tem doRemoveCreature ):

Adicione na linha abaixo:

setPlayerStorageValue(cid,93000,50)

Salve e feche o arquivo.

 

Após isso copie os arquivos duelsys.lua , dueldie.lua e duelconfig.xml que estão no KronoX Duel Repack e coloque eles na pasta data/creaturescripts/scripts.

 

 

 

CONFIGURANDO SEU DUELCONFIG.XML (BETA)

vá na pasta data/creaturescripts/scripts e abra o arquivo duelconfig.xml com o bloco de notas.

Atenção: Este arquivo não pode ser editado, com excessão da função usablePokes.

O Erro da versão BETA é que ainda não se pode escolher o número de pokemons na batalha, pois esse número é editado no arquivo duelconfig.xml.

Para escolher o tanto de pokes que irá usar por duelo , nesse arquivo, basta mudar a opção usablePokes=3 para usablePokes=NumeroDePokes

Lembrando que não pode ser mais que 6 e que o carry system do server deve ser por cap.

 

 

 

 

 

 

 

 

 

 

 

Como usar:

Apenas Clique com ctrl e lado direito no adversário e clique em "Invite to party" (Que pode ser modificado no client).

 

Como sair do duelo:

Apenas Clique com ctrl e lado direito em VOCÊ e clique em "Leave Party" (Que pode ser modificado no client).

 

 

É isso aí, não tá perfeito mas jajá a gente chega lá!

Créditos: Stians pelo stians devcpp repack (DevC++ pra tibia) e Lucasbaragatti (eu) por fazer o sistema e postar aqui no XTibia. ;D

 

Gostou? Dê REP+ , não cai o dedo =P

 

 

Qualquer erro no sistema favor postar aqui! Obrigado!

Editado por LucasBrt
Link para o comentário
Compartilhar em outros sites

  1. No caso da versão 8.54 -> source http://otland.net/su...&peg=96&isdir=1

e que kero ja com as funçoes do meu ot :S [do pfield v2 ou do wolfvr]

 

Aí você teria que falar com alguem dos criadores e ver se eles te desponibilizam a source. =X

Tenta aí, talvez você consegue happy.png

Link para o comentário
Compartilhar em outros sites

Da esse erro, quando eu tento compilar!

../luascript.cpp:8362: error: expected initializer before "int32_t"
../luascript.cpp:8363: error: expected declaration before '}' token

make.exe: *** [obj//luascript.o] Error 1

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...