sábado, 11 de fevereiro de 2012

Adcionar Pet No Server


Aplicativos utilizados:

Observações:
ALGUMAS FUNÇÕES PODEM SER DIFERENTES DO BGC PARA A SEASON 1, OU SEJA, SERÁ NECESSARIO REMOVE-LAS ( COMENTA-LAS ) ou ACHAR ALGUMA FUNÇÃO SIMILAR E UTILIZA-LÁ.
- Os procedimentos abaixo feitos foram realizados em um servidor caseiro com cliente season 1 inalterado, ou seja os arquivos a serem editados podem variar, caso o cliente que você utilize esteja com os arquivos editados no main.exe.
- Existem mascotes como o Chester que possuem efeitos que devem ser colocados no pettemplate, cujo não irei explicar no tutorial, mas explorando será facil para você por.
- Existem mascotes como o Catbot que são bastantes complexos e não basta apenas adapta-los simplesmente, sendo que possa ser necessario fazer gambiarras no petaction.lua para o mesmo funcionar quase que perfeitamente.
- Isso é apenas um tutorial, vocês terão que ir estudando e testando seus mascotes por que não é tão facil quanto pode parecer.
- Crie um arquivo de texto em branco para adicionar informaçoes cruciais durante a edição.
- Após uma recente mudança, criar mascotes ficou mais complexo, como é demonstrado no tutorial abaixo já que é necessario fazer mais edições.
- Descobrir o nome original do mascote e seu codinome, é questão de logica e busca.
- É necessario pegar as imagens das cartas/skills e particulas nos arquivos de textura do cliente.
• Particulas:
- Arquivos Texture\particle\particleX.kom
• Cartas:
- Arquivos Texture\sbtaXX.kom

Arquivos manipulados ( cliente season 1 ):
Stage\str_p.stg ( arquivo de texto )
Stage\gcnewmapparticle.stg
Stage\script.kom:
- datafiles.lua
- enum.stg
- fireinfo.stg
- sort_p.stg
- petaction.lua
- pettemplate.stg
- sound.stg
E claro, os arquivos do pet.

Arquivos manipulados ( cliente season xaus / hiro ):
Stage\str_br.stg ( arquivo de texto )
Stage\char_script.kom:
- DamageOld.stg
Stage\script.kom:
- sound.stg
Stage\particle_script.kom:
- gcnewmappartie.stg ou arquivo do pet.
Stage\pettemplate.kom:
- Arquivo do pet.
ResSet ou Sound:
Todos arquivos ( para os sons do pet )
Texture\particle\:
- Todos arquivos.

E claro, os arquivos do pet².

Tutorial:
0 - Antes de tudo, crie uma pasta com o nome do pet, e nesta pasta você deverá colocar os arquivos do pet que você irá coletar tais como: texturas, esqueletos, frames, arquivos de som e particulas.
1 - ID do Pet, Template ( pettemplate.stg ):
1.1. Todo Pet possui um id de sistema que pode ser definido pelo usuario, esse id serve para estabelecer o 'template' e 'ações' do mascote junto ao cliente, você deve estabelecer o id de acordo à ordem ja existente no pettemplate.stg, como segue na imagem abaixo:



1.2. A Template é referente aos dados do mascote tais como descrição, nome, modo de apresentação, mesh's, texturas, frames e etc..., abaixo segue o template do Mascote Diabinho em uma imagem comentada e o codigo do mesmo Pet no BGC construido de maneira diferente é claro.



1.2. Enquanto no BGC o arquivo pet_devil.stg ( encontrado no pettemplate.kom ) possui uma estrutura bem diferente, que terá que ser adaptada ( obvio ), com a mesma estrutura que foi apresentada acima do Mascote Diabinhomas com todos valores e dados editados em relação ao mascote em questão a ser adicionado.


PetTemplate[17] = {};
template = SPetTemplate();
template.iPetID = 17;
0;
template.dwGoodsID =
template.iPromotion = 13879; template.fScale = 0.55;
.fDistY = 0.1;
template
template.fDistX = 0.15; templat e.fNameHeight = -0.07; template.iNameID = 3954;
e:AddDesc( PET_DESC_FIRST, 3962 );
templ
template:AddDesc( PET_DESC_SHOP, 3961 ); templa tate.fResultScale = 0.15; template:SetAxisCorrectionX( 0.0 );
Z( 0.0 );
template.iMaxEvolutionLev
template:SetAxisCorrectionY( 0.0 ); template:SetAxisCorrectio nel = 0; template.iItemDescID = -1; template:AddMent( PET_MENT_HUNGRY, 500, 3958 );
00, 3956 );
template:AddMent( PET_MENT_MYINFO,
template:AddMent( PET_MENT_MYINFO, 500, 3955 ); template:AddMent( PET_MENT_MYINFO, 5500, 3957 ); template:AddMent( PET_MENT_ROOM, 500, 3955 ); template:AddMent( PET_MENT_ROOM, 500, 3956 );
nt( PET_MENT_FEEDING_3000, 500, 1730 );
templ
template:AddMent( PET_MENT_ROOM, 500, 3957 ); template:AddMent( PET_MENT_SHOP, 500, 3961 ); template:AddM eate:AddMent( PET_MENT_FEEDING_6000, 500, 1730 ); template:AddMent( PET_MENT_HUNGRY_ZERO, 500, 3959 ); template:AddMent( PET_MENT_LEVELUP, 500, 3960 );
, "pet_tex017_0_devil.dds", "pet_tex017_0_showroom.dd
template:AddMent( PET_MENT_CHAR_LEVELUP, 500, 1713 ); template:AddMent( PET_MENT_FIRST_MEETING, 500, 3962 ); template:PushMeshInfo( "pet017_0_devil.p3m "s", CARTOON_PETS ); template:PushSoundInfo( 293 ); template:PushSoundInfo( 292 ); template:PushSoundInfo( 36 ); template:PushSoundInfo( 665 ); template:PushSoundInfo( 666 ); template.SkillGP = 13880;
Motion = "pet017_0_08.frm",
template.SkillCash = 13881; PetTemplate[17][0] = {}; PetTemplate[17][0]._class = template; PetTemplate[17][0]._skill = { [13881] = 13880, [13880] = { [PetMotion.ATTACK] = { Action = function ( iPlayer, iFrame ) local Pet = g_MyD3D:GetPet(iPlayer, 0); --Ŭ·¡½º¸¦ ¹Þ¾Æ¿É´Ï´Ù. if( iFrame == 45 ) then Pet:PlaySound( 11, 0 );
iPlayer, iFrame )
local Pet = g_MyD3D:GetPe
Pet:AddDamage( DT_DEVILPET, 0 , 0.1, 0); end end }, [PetMotion.TELEPORT_READY] = { Motion = "pet017_0_10.frm", Action = function (t(iPlayer, 0); --Ŭ·¡½º¸¦ ¹Þ¾Æ¿É´Ï´Ù. local dwMaxFrame = Pet:GetNumFrame(Pet.iMotion); if( Pet.iFrame == dwMaxFrame - 10 ) then Pet:AddParticle( "pet-teleport_1", 0, 0 );
= function ( iPlayer, iFrame )
local Pet = g_
Pet:AddParticle( "pet-teleport_2", 0, 0 ); Pet:PlaySound( 293, 0 ); end end }, [PetMotion.TELEPORT_ARRIVE] = { Motion = "pet017_0_11.frm", Actio nMyD3D:GetPet(iPlayer, 0); --Ŭ·¡½º¸¦ ¹Þ¾Æ¿É´Ï´Ù. if( Pet.iFrame == 1 ) then Pet:PlaySound( 292, 0 ); end end }, },
}




1.3. Salve o arquivo e mantenha-o aberto.

2 - Sons do mascote:
2.1. Primeiramente, abra o sound.stg do BGC, e então procure pelos arquivos de som tendo como referencia os ids que estão nopet_devil.stg ( NO CASO DO PET USADO NESSE TUTORIAL ) e copie as linhas para um arquivo de texto a parte:
Código:
Exemplo do arquivos de som usados pelo Diabinho como demonstrado no pet_devil.stg:
template:PushSoundInfo( 293 ); template:PushSoundInfo( 292 );
mplate:PushSoundInfo( 666 );
template:PushSoundInfo( 36 ); template:PushSoundInfo( 665 ); t
e
2.2. Abaixo segue um exemplo de como estará o 'arquivo a parte' após coletar todas informações referentes para o arquivo de texto:
Código:
{ ID = "293", FILENAME = "Pet_Teleport_Out_Effect.wav", },
{ ID = "292", FILENAME = "Pet_Teleport_In_Effect.wav", },
FILENAME = "Cupid_Atk1.wav", },
{ ID =
{ ID = "36", FILENAME = "MDash.wav", }, { ID = "665",
"666", FILENAME = "Cupid_Boom.wav", },
2.3. Agora que ja temos o nome de arquivo, iremos verificar se os mesmos ja existem no sound.stg do nosso cliente cujo qual o mascote esta sendo adicionado, caso o arquivo ja exista, não iremos adiciona-lo novamente e iremos remover do arquivo à parte os dados referentes ao som, deixando apenas o seguinte como mostra o exemplo, pois os ids dos sons deverão ser mudados nos arquivos que contem os ids como se fossem do BGC:
Código:
id bgc = meu novo id para o som no meu cliente
36 = 36
2.4. Agora iremos somar os novos ids ao total do nosso sound.stg:





2.5. Agora iremos adicionar os arquivos ao sound.stg, sendo que os ids deverão ser em ordem crescente,:
Código:
No caso, adicionei assim ao final do arquivo:
SOUND671 = { FILENAME = "Pet_Teleport_Out_Effect.wav", }
SOUND672 = { FILENAME = "Pet_Teleport_In_Effect.wav", }
{ FILENAME = "Cupid_Boom.wav", }
SOUND673 = { FILENAME = "Cupid_Atk1.wav", } SOUND674
=
2.6. Como os ids mudaram, é claro que terei que substituir os mesmos no pettemplate.stg e os demais arquivos que serão editados, colocando os novos ids, levando em consideração o id anterior referente ao mesmo arquivo de som, ou seja os ids ficarão ( exemplo no pettemplate.stg ):
Código:
De:
Sound =
{
293, 292, 36, 665, 666,
};
Para: Sound = {
4,
};
671, 672, 36, 673, 6
7
2.7. Salve o arquivo e mantenha-o aberto.

3. PetSkill.lua:
3.1. A parte do PetSkill.lua é bastante simples como mostra a imagem abaixo, sendo que você só terá que adicionar os mesmos referentes aos ids dos ataques do mascote, sim, aqueles que tem no pettemplate.stg.






3.2. Salve o arquivo e feche-o.

4. PetAction.lua:
4.1. Cada pet possui 17 conjuntos de frames, sendo que esses conjuntos de frames são referentes a ações, e essas ações são designadas no arquivo PetAction.lua que serve para definir ataques e etc como mostra a imagem:






4.2. Abaixo segue uma lista das ações e seus id's que tambem podem ser encontradas no petaction.lua:
Código:
WAIT = 0;
MOVE = 1;
;
JUMP_UP =
JUMP_READY = 2 3; JUMP_DOWN = 4;
= 6;
LO
START = 5; WIN SE = 7; ATTACK = 8;
0;
TELEPORT_ARRIVE =
MAGIC = 9; TELEPORT_READY = 111; ROOM = 12; SHOP = 13;
_ACTION = 16;
MOVE
JUMP_LAND = 14; GAME_LOADING = 15; SHO
P_END = 17;
4.3. Para construir as ações do seu mascote, basta ir no template do seu mascote no bgc, copiar as ações e em um arquivo a parte, colar e adapta-lo, abaixo segue um exemplo.
De:
Código:
[PetMotion.ATTACK] = {
Motion = "pet017_0_08.frm",
Action = function ( iPlayer, iFrame )
local Pet = g_MyD3D:GetPet(iPlayer, 0); --Ŭ·¡½º¸¦ ¹Þ¾Æ¿É´Ï´Ù.
if( iFrame == 45 ) then
);
Pet:AddDamage( DT_D
Pet:PlaySound( 11, 0EVILPET, 0 , 0.1, 0); end end },
10.frm",
Action = function
[PetMotion.TELEPORT_READY] = { Motion = "pet017_0 _ ( iPlayer, iFrame ) local Pet = g_MyD3D:GetPet(iPlayer, 0); --Ŭ·¡½º¸¦ ¹Þ¾Æ¿É´Ï´Ù.
if( Pet.i
local dwMaxFrame = Pet:GetNumFrame(Pet.iMotion); Frame == dwMaxFrame - 10 ) then Pet:AddParticle( "pet-teleport_1", 0, 0 );
( 293, 0 );
end
end
},
Pet:AddParticle( "pet-teleport_2", 0, 0 ); Pet:PlaySoun d [PetMotion.TELEPORT_ARRIVE] = { Motion = "pet017_0_11.frm", Action = function ( iPlayer, iFrame )
Pet:PlaySound( 292, 0 );
end
local Pet = g_MyD3D:GetPet(iPlayer, 0); --Ŭ·¡½º¸¦ ¹Þ¾Æ¿É´Ï´Ù. if( Pet.iFrame == 1 ) then end
},
Para: 
Código:
function Pet_Action14_0_8(iPlayer, iFrame)
local Pet = g_MyD3D:GetPet(iPlayer, 0); --Ŭ·¡½º¸¦ ¹Þ¾Æ¿É´Ï´Ù.
if( iFrame == 45 ) then
);
Pet:AddDamage( DT_D
Pet:PlaySound( 11, 0EVILPET, 0 , 0.1, 0); end end
local Pet = g_MyD3D:GetPet(iPl
function Pet_Action14_0_10(iPlayer, iFrame) ayer, 0); --Ŭ·¡½º¸¦ ¹Þ¾Æ¿É´Ï´Ù.
(Pet.iMotion);
if( Pet.iFrame == dw
local dwMaxFrame = Pet:GetNumFram eMaxFrame - 10 ) then Pet:AddParticle( "pet-teleport_1", 0, 0 );
t:PlaySound( 293, 0 );
end
end
end
Pet:AddParticle( "pet-teleport_2", 0, 0 ); P e function Pet_Action14_0_11(iPlayer, iFrame) local Pet = g_MyD3D:GetPet(iPlayer, 0); --Ŭ·¡½º¸¦ ¹Þ¾Æ¿É´Ï´Ù.
if( Pet.iFrame == 1 ) then Pet:PlaySound( 292, 0 ); end
end
4.4. Agora copie o que foi adaptado, vá e cole no fim do petacion.lua, logo apos caso falte alguma ação, pegue em outro mascote as ações restantes ( com o mesmo numero de ação ) e mude o id e coloque em ordem junto ao que foi adaptado.
4.5. Lembre-se de mudar os sons de acordo ao id dos novos sons equivalentes ( olhe a função PlaySound, e veja que tem o mesmo id, então é só substituir caso seja necessário ).
4.6. Salve o arquivo e mantenha-o aberto. 

5. Enum.stg:
5.1. O enum.stg tem a utilidade de enumerar diversos valores do jogo, mas isso não vou explicar aqui, o importante é que os danos do mascotes ( como será mostrado na imagem abaixo ), primeiramente devem ser adicionados nesse arquivo, levando em consideração a ordem crescente de numeros.






5.2. Mas como indentificar os danos? é bem simples, basta no petaction do mascote em questão verificar as palavras que sejam relacionadas a uma função que contenha damage ( ex: AddDamage ) e essa constante comece com DT.
5.3. Salve o arquivo e mantenha-o aberto.

6. FireInfo.stg:
6.1. Primeiramente iremos alterar o valor do MAX_DAMAGE_NUM para o novo valor total, acrescentado o valor dos damages novos (no meu caso é 1 ).
Exemplo:
Código:
De:
ireInfo =
F{
MAX_DAMAGE_NUM = 753,
MAX_DAMAGE_TEX_NUM = 194,
} Para: FireInfo = {
754,
MAX_DAMAGE_TEX_
MAX_DAMAGE_NUM =NUM = 194,
}
6.2. Agora vá até o final do arquivo e crie o seguinte codigo ( no meu caso é FireInfo753 por que o id do unico damage do diabinho é 753 ):
Código:
FireInfo753 =
{
}
6.3. Agora no DamageOld.stg do BGC iremos procurar pelo dano do pet, tendo como referencia o nome dele, no caso do diabinho tive o seguinte resultado:
Código:
Damage[DT_DEVILPET] = {
--DT_DevilPet
55,
ENABLE_DAMAGE
START_LIFE = 2 = TRUE,
_X = 0.07,
SCALE_Y_PE
START_SCAL ER_X = 0.5, START_LOCATE_X = 0.1,
_X = 0.0250000,
START_LOCATE_Y = 0, SPEE D DAMAGE_SOUND = 6,
A_ONETIME_DAMAGE,
AGIC_EFF = 108,
MMAG
DAMAGE_FLAG = DA_HIT_LIGHT + DIC_TIME = 2.0, TEXTURE = 210, DAMAGETO_MONSTER = -24,
TTACKDIR_UP,
PUSH_X_TO_MONSTER = 0.01,
ATTACK_TYPE_TO_MONSTER = ATTACKTYPE_NORMAL, ATTACK_DIR_TO_MONSTER = APUSH_Y_TO_MONSTER = 0.0,
}
6.4. Agora iremos montar esse codigo dentro do fireinfo como mostra abaixo:
Código:
FireInfo753 =
{
--DT_DevilPet
START_LIFE = 255,
ENABLE_DAMAGE = TRUE,
TART_SCALE_X = 0.07,
SSCALE_Y_PER_X = 0.5,
.1,
START_LOCATE_Y =
START_LOCATE_X = 00, SPEED_X = 0.0250000,
DAMAGE_FLAG = DA_HIT_LIGHT +
DAMAGE_SOUND = 6, DA_ONETIME_DAMAGE, MAGIC_EFF = 108, MAGIC_TIME = 2.0,
ATTACK_T
TEXTURE = 210, DAMAGETO_MONSTER = -0.024, YPE_TO_MONSTER = ATTACKTYPE_NORMAL,
_UP,
PUSH_X_TO_MONSTER = 0.01,
PU
ATTACK_DIR_TO_MONSTER = ATTACKDI RSH_Y_TO_MONSTER = 0.0,
}
6.5. Salve o arquivo e mantenha-o aberto.

7. str_p.stg:
7.1. Copie os valores do sort_br.stg do BGC referente aos valores de texto do mascote do pettemplate.stg
7.2. Salve o str_p.stg e feche-o.

8. sort_p.stg:
8.1. Adicione ao sort a carta e as tecnicas especiais do mascote.
8.2. Salve o sort e feche-o.

9. gcnewmapparticle.stg:
9.1. Você deverá coletar os nomes das particulas que o pet utiliza, mas como identificar? basta no petaction e no fireinfo do mascote em questão verificar as palavras que sejam relacionadas a uma função que contenha particle ( ex: AddParticle ).
9.2. Agora verifique no gcnewmapparticle.stg do seu Grand Chase se as particulas em questão existem, caso não voce deverá repassar os particle info do gcnewmapparticle.stg do bgc ( ou do particle file script do pet ) para o seu gcnewmapparticle.stg.
9.3. Salve o arquivo e feche-o.

10. Arquivos:
10.1. Agora você deverá coletar os arquivos de som, os arquivos de particula e os arquivos de pets e colar na pasta cuja qual será criada o kom a partir dessa pasta que conterá os arquivo do pet.
10.2. Você deverá renomear os arquivos do pet que contenham a extensão frm, exemplo:
Código:
pet017_0_09.frm para pet0ID_0_09.frm
exemplo do diabinho:
pet017_0_09.frm para
pet014_0_09.frm
10.2. Adicione no DataFiles.lua o caminho do arquivo kom que contem os arquivos do mascote.
10.3. Comprima o script.kom e o arquivo kom do pet, coloque-o em seus respectivos diretorios.
10.4. Enjoy.

Creditos:
Yondaime12

quarta-feira, 12 de outubro de 2011

Novo Programa de Ligar o GCServer

Bom, venho aqui hoje disponibilizar um programa que já existia antes no ramo de Mu, Aí eu peguei ele e editei 100% e está totalmente funcional Para ligar servidor de Grand Chase.

Vantagens do Programa: quando você liga o servidor não fica aquele monte de janelas na sua barra de tarefas.
Ele detecta se algum programa ficou off e o re-liga automaticamente.
Liga Rápido.
Prático e fácil de usar.


Modo de usar: Extraia e ponha na pasta do server do seu GC, execute o programa e click em Start
Agora só esperar ele ligar tudo ^^


Foto :
ADICIONANDO Coisas para o programa ligar ( ex: GameServer )
Bom, para o post ficar completo vou ensinar a add startáveis no programa passo à passo

1°: Abra o LauncherServerMu.ini



2º: Veja esses nomes entre [ ]
[captions] = Nome do programa
[paths] = Pasta onde o arquivo .exe que vai ser ligado está (Ex: GameServer\]
[exenames] = Nome do arquivo .exe que o launcher vai ligar (Ex: GameServer.exe)
[parametrs] = Deixe em branco (Pois em mu online Precisa colocar alguns ips mas pra server de gc não)
[waitintervals] = Tempo entre um arquivo e outro ligar (recomendo por 500)
[needrestart] = Verificar se o programa está off e ligar ele de novo (Se sim: YES , se não: NO)
[main] =
enableautorestart=1
restartinterval=1
ipadd=127.0.0.1 <- Seu ip
[LauncherMU] = É configurável pelo launcher, clicando em configurações depois de abrir ele

3º: Exemplo de como add um startável (algo pra ligar)
v0v=
v1v=
v2v=
v3v=
v4v=
v5v=
v6v= Veja o último número entre v e v (Nesse caso é o 6) aí em baixo você add o número depois de 6 entre v e v
v7v= Ficando assim (v7v=)
Depois do sinal de = (igual) você coloca a informação do startável

Lembrando que já vem tudo configurado para o programa ligar tudo. Essa parte do turorial será usada caso você queira ligar algo a mais no programa como um GuildServer ou um segundo GameServer
Caso esteja algum ip desconfigurado ou algo configurado errado, o programa vai ficar ON e depois OFF

Espero ter ajudado, logo mais faço um vídeo tutorial
Creditos : ~webenevides

Download: CLICK Aqui para baixar o programa

Extraindo e Compactando arquivos KOM + Link P3M

Tutoriais do Topico e Downloads:

Passo 1: Download dos arquivos
Passo 2: Aprenda a descompactar o arquivo .KOM
Passo 3: Editando os arquivos do arquivo .KOM
Passo 4: Aprenda a compactar os arquivos em um arquivo .KOM de novo


Download dos arquivos

Python 2.6 (Site Oficial)
Extractor .KOM (SendSpace)
Compactor .KOM(SendSpace)



Aprenda a descompactar o arquivo .KOM
__________________________________________

1º: Crie uma pasta na área de trabalho com o nome do arquivo .KOM que você deseja editar. EX: se você quiser editar o Script.KOM o nome da pasta devera ser apenas script

2º: Dos arquivos que você baixou e extraiu, instale o python, logo após va na pasta KomExtractor, copie os 2 arquivos que estão nela e cole-os nas pasta que você criou na área de trabalho. lembre-se de passar o arquivo .KOM que você deseja alterar para a pasta que foi criada na área de trabalho. Os arquivos .KOM se encontram dentro da pasta Stage dentro da pasta onde esta instalado seu Grand Chase
3º: Agora execute o arquivo KomExtractor.bat, ao inicar ele ira pedir para você escrever o nome do arquivo .KOM que você deseja editar (você deve apenas escrever o nome sem o .KOM)




4º: Após escrever aperte Enter, em mais ou menos 2 seg ele ira descompactar,
após descompactar o programa ora perguntar se você deseja descompactar mais algum arquivo (eu aconselho ir apenas 1 por 1), se quiser descompactar mais algum arquivo escreva "0" e aperte Enter, caso contrario escreva "1" e aperte Enter.


Editando as sprites ou arquivos do arquivo .KOM
________________________________________

Vocês devem ter visto que na pasta que vocês criaram na área de trabalho esta com dezenas de outros arquivos,
esses são os arquivos que estavam dentro do arquivo .KOM, neles é onde se faz as edições, abra-os em bloco de notas, e faça qualquer modificação, mas lembre-se de sempre fazer um BACKUP dos arquivos script, você deve modificar e sempre observar o que mdua no Grand Chase, o BACKUP é muito importante pois os scripts podem gerar grandes mudanças/erros ao jogo.

PS: Se você extrair o arquivo playertemplate.KOM, obtera arquivos onde você faz modificações nos chars.
Vamos dizer que você abra o arquivo (que você extraiu do arquivo playertemplate) formnephilim, nele por exemplo você faz modificações da força, velocidade etc...
podendo fazer o Jump and speed hack ~By Samusamu~
Resigzed Image


Faça modificações do tipo sempre observando o que ocorre no jogo!


Aprenda a compactar os arquivos em um arquivo .KOM de novo
__________________________________________________ ___________

Após criar uma variedade de arquivos, você deve compacta-los de volta após a edição correto?
1º: Na área de trabalho crie outra pasta, com o nome "Arquivos", dentrod esta pasta que você criou, crie outra pasta com nome de "KOM".
2º: Pegue os arquivos Kom_create2 e o Kompact e ponha-os na pasta Arquivos que você criou.
3º: Os arquivos que você editou (após extrair o arquivo .KOM) devem ser postos na pasta KOM, dentro da pasta Arquivos que você criou.
4º: Execute o arquivo Kompact que esta na pasta "Arquivos", abrira uma tela perguntando em que pasta estão os arquivos para serem compactados.




5º: Após escrever o nome da pasta, aperte Enter, aparecerá outra tela,
perguntando o nome do arquivo .KOM que você deseja compactar,
como no exemplo escolhemos o "Script.KOM" para ser extraidos, escreveremos "Script"
para ser compactado.



5º: Após escrever o nome aperte Enter, o arquivo sera compactado, ai o programa perguntara se deseja compactar algo mais (aconselho fazer todo o processo com apenas 1 arquivo .KOM senão pode embolar todos), escreva 0 para Sim e 1 para Não

6º: Pronto seu arquivo editado esta compactado e pronto para ser usado,
o arquivo que você compactou deve ser usado para substituir o que existe na pasta do Grand Chase.
''________________________''________________________''________________________''
Ou Se preferir pode usar este modo...



Ele salva o arquivo *.kom na pasta komfiles e a pasta que ele compacta é a komfolder,ele extrai os arquivos para onde esta o conversor!
Download Kom Converter 1.1 All Languages

PS: Os arquivos explicando estão dentro do arquivo,em 2 linguagens Portugues e Ingles assim como o conversor!
PS²: Ele tambem necessita de ter o Phyton Instalado!
By : ~Jacques

Criando um Editor de DataFiles no Delphi 7

Bom, Hoje pela noite estava sem nada para fazer é um amigo me pediu para eu ensinar a ele a como criar um editor de datafiles, eu ensinei ele a criar é logo depois me deu vontade de criar uma vídeo aula ensinando , já que tenho certeza que muitas pessoas querem criar um editor de datafiles ou de outros arquivos..

Bom sem mais conversa ai está a vídeo aula :
Pequeno tutorial para algumas pessoas que não entenderam :

Adicione 1 Memo1.
2 Edit
1 Button
2 Labels.

Ponha o codico no Button 1.

O resto você ver na vídeo aula, é se você não conseguir criar, procure um medico urgente.

Créditos : ~DarkHero

Aumentando a Head do sortp

Vou Encinar a vocês como almentar a head do sortp segue a imagem .

Caso o Sortp exceda o maximo de itens só liberar na head





vou explicar
Quando o Sortp está cheio de itens e voce abre o jogo ..
o jogo da erro de enviar e não enviar

Ai para resolver o problema tem que almentar a HEAD do sortp . mostrado na imagem acima .

Creditos : ~hehetri

Alterando O Tempo De Diário E Pontos Ganhos Diariamente/Semanalmente

Tutorial muito simples , que ensina a alterar o tempo para marcar diário e alterar a quantia de pontos ganha por dia e por semana .
Primeiro vá na pasta onde estão suas server files.
Abra a Pasta Game Server.
Localize o arquivo "Config_server.lua"
Abra-o
localize as seguintes linhas:



--Calendar system( gcpoint )
SimLayer.m_dwAccUpdateTime = 60 * 1000 -- ´Þ·Â °»½Å ½Ã°£ ms
SimLayer.m_nAttendTime = 90 -- Ãâ¼® ÀÎÁ¤ ½Ã°£, ´ÜÀ§:ºÐ
SimLayer.m_nGCPointDay = 100 -- ÀÏÀÏ Ãâ¼®½Ã Áö±ÞµÇ´Â Áö¾¾Æ÷ÀÎÆ®(ÀÓ½Ã)
SimLayer.m_nGCPointWeek = 100 -- ÁÖ°³±Ù½Ã Áö±ÞµÇ´Â Áö¾¾Æ÷ÀÎÆ®(ÀÓ½Ã)
Agora vamos editar.
Aonde está 90 você vai colocar o tempo para marcar o diário,
lembrando que tem que estar em minutos , ou seja 90 minutos
igual a 1 h e 30 min. Ou seja se quiser que fique 2 horas coloque 120
Nas linhas onde tem 100 , é os pontos que serão ganhos , na primeira linha
que tem 100


SimLayer.m_nGCPointDay = 100 // aqui é os pontos que serão ganhos diariamente.
e na segunda linha que tem 100

SimLayer.m_nGCPointWeek = 100 // aqui é os pontos que serão ganhos semanalmente ( quando marcar diário a semana toda )
Pronto. ^^

Créditos : ~Mizuki