ae fabio se preocupa em programar ele, e eu tento aprender o que eu to lendo aki no livro q catei
[C] DooM ARENA! (Launcher)
- Fabio914
- Mensagens: 1757
- Registrado em: Dom Mai 21, 2006 4:38 pm
- Localização: Sampa/Sanca
- Idade: 34
- Contato:
Doom ARENA v.0.3!
Já testei a versão 0.3 (daquele source) e está funfando tudo 100% (ao menos a parte de Windows está , pois a de Linux eu ainda não testei).
Segue aqui o download da ultima versão:
Download (RAR 1.3MB)
Esta versão conta com um pequeno mapa (que era pra ser o meu mapa do RU) deathmatch, vocês podem testar algumas das novas funções do launcher com ele , como a gravação de demos!
Changelog
- Pode-se carregar configs.
- Pode-se habilitar o modo open-gl para apenas aquela execução (se este já não estiver habilitado)
- E pode-se gravar e carregar demos (mesmo de jogos online)
Screenshot

Com esta versão do Doom Arena já é possivel jogar os futuros mapas DM do D3onGZD online!
Já testei a versão 0.3 (daquele source) e está funfando tudo 100% (ao menos a parte de Windows está , pois a de Linux eu ainda não testei).
Segue aqui o download da ultima versão:
Download (RAR 1.3MB)
Esta versão conta com um pequeno mapa (que era pra ser o meu mapa do RU) deathmatch, vocês podem testar algumas das novas funções do launcher com ele , como a gravação de demos!
Changelog
- Pode-se carregar configs.
- Pode-se habilitar o modo open-gl para apenas aquela execução (se este já não estiver habilitado)
- E pode-se gravar e carregar demos (mesmo de jogos online)
Screenshot

Com esta versão do Doom Arena já é possivel jogar os futuros mapas DM do D3onGZD online!
-
Rico
- Mensagens: 2354
- Registrado em: Dom Set 10, 2006 11:49 am
- Localização: Atrás do DU0
- Idade: 33
- Contato:
Re: DooM ARENA! (Launcher)
Fabio914 escreveu:Doom ARENA
Hoje a tarde eu não estava com nada melhor pra fazer então eu desenvolvi um pequeno launcher para DOS que , assim como o ZDL , executa wads em modos offline e online. Ele é um programinha muito util pra quem deseja jogar online com GZDoom e ZDoom e tem dificuldades com isso.
Hj de tarde também não tinha coisa melhor para fazer. Então eu pensei: eu já atualizei meu Linux, ele está perfeito para programação, acho que vou voltar ao projeto meio que esquecido por alguns, mas não por mim!
Como eu sei que ninguém aqui usa Linux, e eu hávia prometido uma versão para Linux. Aqui está!
<pre>
Código: Selecionar todos
#include <stdio>
#include <stdlib>
// DOOM ARENA! v.0.2
// Criado por Fabio914
// Versão Linux: R1c0
int main()
{
char sp[20]; // source port
char players[10]; //numero de jogadores 1 - offline 2 ou mais , online
char host[10]; //modo de operação : cliente ou servidor
char mode[10]; //deathmatch 1 , coop/sp 0
char srvip[50]; //ip do servidor
char iwad[20]; //iwad
char pwad01[20]; //pwad
char pwad02[20];
char pwad03[20];
char pwad04[20];
char warp[20]; //warp
char optimized[10]; //otimização
char time[10]; //timelimit
char skill[10]; //skill
char frag[10]; //fraglimit
char fvar[50];
char svar[50];
int i=0;
printf("** **** **** *** *** \n");
printf("* ** * * * * * * * * \n");
printf("* ** * * * * * ** * \n");
printf("* * * * * * * * \n");
printf("* * * * * * * * * * \n");
printf("* * * * * * * *** * \n");
printf("* * * * * * * * * * \n");
printf("* ** **** **** * * * * \n");
printf("* ** * * * * \n");
printf("** * * * \n");
printf("* * * \n");
printf(" ** \n \n");
printf("Doom ARENA Launcher! v.0.2\nBy Fabio914\nLinux Version by R1c0");
FILE *fp;
fp = fopen("gen.txt","r");
if (fp == NULL)
{
printf("Error : Error while reading file!\n\n");
exit(2);
}
while(fscanf(fp,"%s %s",fvar,svar)!=EOF)
{
if(strcmp(fvar,"sourceport")==0)
{
strcpy(sp,svar);
i++;
}
else if(strcmp(fvar,"players")==0)
{
strcpy(players,svar);
i++;
}
else if(strcmp(fvar,"host")==0)
{
strcpy(host,svar);
i++;
}
else if(strcmp(fvar,"serverip")==0)
{
strcpy(srvip,svar);
i++;
}
else if(strcmp(fvar,"mode")==0)
{
strcpy(mode,svar);
i++;
}
else if(strcmp(fvar,"iwad")==0)
{
strcpy(iwad,svar);
i++;
}
else if(strcmp(fvar,"pwad01")==0)
{
strcpy(pwad01,svar);
i++;
}
else if(strcmp(fvar,"pwad02")==0)
{
strcpy(pwad02,svar);
i++;
}
else if(strcmp(fvar,"pwad03")==0)
{
strcpy(pwad03,svar);
i++;
}
else if(strcmp(fvar,"pwad04")==0)
{
strcpy(pwad04,svar);
i++;
}
else if(strcmp(fvar,"opt")==0)
{
strcpy(optimized,svar);
i++;
}
else if(strcmp(fvar,"timelimit")==0)
{
strcpy(time,svar);
i++;
}
else if(strcmp(fvar,"warp")==0)
{
strcpy(warp,svar);
i++;
}
else if(strcmp(fvar,"skill")==0)
{
strcpy(skill,svar);
i++;
}
else if(strcmp(fvar,"fraglimit")==0)
{
strcpy(frag,svar);
i++;
}
else if (i == 15)
{
break;
}
}
fclose(fp);
//Escrevendo Script
FILE *fd;
fd = fopen("run_me.sh","w");
printf("\nStatus : Generating SCRIPT");
fprintf(fd,"./%s",sp);
fprintf(fd," -iwad %s",iwad);
fprintf(fd," -file %s %s %s %s ",pwad01,pwad02,pwad03,pwad04);
if (strcmp(skill,"0")==0 || strcmp(skill,"1")==0 || strcmp(skill,"2")==0 || strcmp(skill,"3")==0 || strcmp(skill,"4")==0 )
{
fprintf(fd," -skill %s ",skill);
}
if (strcmp(players,"2")==0 || strcmp(players,"3")==0 || strcmp(players,"4")==0)
{
if (strcmp(host,"0")==0 && strcmp(optimized,"0")==0)
fprintf(fd," -join %s",srvip);
else if (strcmp(host,"0")==0 && strcmp(optimized,"1")==0)
fprintf(fd," -join %s -dup 2 -netmode 1",srvip);
else if (strcmp(host,"1")==0 && strcmp(optimized,"0")==0)
fprintf(fd," -host %s",players);
else if (strcmp(host,"1")==0 && strcmp(optimized,"1")==0)
fprintf(fd," -host %s -dup 2 -netmode 1",players);
}
if(strcmp(mode,"1")==0)
fprintf(fd," -deathmatch -nomonsters +set sv_cheats 1");
if(strcmp(warp,"none")!=0)
fprintf(fd," -warp %s",warp);
if(strcmp(time,"none")!=0)
fprintf(fd," -timer %s",time);
if(strcmp(frag,"none")!=0 && strcmp(frag,"0")!=0)
fprintf(fd," +set fraglimit %s",frag);
fclose(fd);
printf("\nStatus : SCRIPT generated!");
system("./run_me.sh");
printf("\nStatus : Finished!\n");
exit(1);
}E estou tentando melhorá-lo para que tenha apenas uma variável pwad que leia todos numa linha só. Fabio se puder ajudar
Traduzindo, to tentando deixar o programa mais leve do que já é e liberar mais pwads para o launcher. (Mais leve é menos memória alocada ou seja separada pro programa)
Caso alguém esteja interessado no programa já compilado aqui está
DOOM ARENA LINUX
Editado pela última vez por Rico em Qua Set 03, 2008 8:08 pm, em um total de 1 vez.
- Fabio914
- Mensagens: 1757
- Registrado em: Dom Mai 21, 2006 4:38 pm
- Localização: Sampa/Sanca
- Idade: 34
- Contato:
Na verdade eu já tinha feito uma versão para Linux...
Alias , esse seu código está identico ao que eu tinha feito meses atrás... Veja ai em cima...
Código: Selecionar todos
#include <stdio>
#include <stdlib>
// DOOM ARENA! v.0.3 (linux version)
int main()
{
char sp[20]; // source port
char players[10]; //numero de jogadores 1 - offline 2 ou mais , online
char host[10]; //modo de operação : cliente ou servidor
char mode[10]; //deathmatch 1 , coop/sp 0
char srvip[50]; //ip do servidor
char iwad[20]; //iwad
char pwad01[20]; //pwad
char pwad02[20];
char pwad03[20];
char pwad04[20];
char warp[20]; //warp
char optimized[10]; //otimização
char time[10]; //timelimit
char skill[10]; //skill
char frag[10]; //fraglimit
char opengl[10]; //open-gl (apenas gzdoom)
char cfg[20]; //config
char demo[20]; //r para gravar , l para ler
char demof[50]; //arquivo demo a ser lido ou gravado
char fvar[50];
char svar[50];
int i=0;
printf("** **** **** *** *** \n");
printf("* ** * * * * * * * * \n");
printf("* ** * * * * * ** * \n");
printf("* * * * * * * * \n");
printf("* * * * * * * * * * \n");
printf("* * * * * * * *** * \n");
printf("* * * * * * * * * * \n");
printf("* ** **** **** * * * * \n");
printf("* ** * * * * \n");
printf("** * * * \n");
printf("* * * \n");
printf(" ** \n \n");
printf("Doom ARENA Launcher! v.0.3\nBy Fabio914\n");
FILE *fp;
fp = fopen("gen.txt","r");
if (fp == NULL){
printf("Error : Error while reading file!\n\n");
exit(2);
}
while(fscanf(fp,"%s %s",fvar,svar)!=EOF){
if(strcmp(fvar,"sourceport")==0){
strcpy(sp,svar);
i++;
}
else if(strcmp(fvar,"players")==0){
strcpy(players,svar);
i++;
}
else if(strcmp(fvar,"host")==0){
strcpy(host,svar);
i++;
}
else if(strcmp(fvar,"serverip")==0){
strcpy(srvip,svar);
i++;
}
else if(strcmp(fvar,"mode")==0){
strcpy(mode,svar);
i++;
}
else if(strcmp(fvar,"iwad")==0){
strcpy(iwad,svar);
i++;
}
else if(strcmp(fvar,"pwad01")==0){
strcpy(pwad01,svar);
i++;
}
else if(strcmp(fvar,"pwad02")==0){
strcpy(pwad02,svar);
i++;
}
else if(strcmp(fvar,"pwad03")==0){
strcpy(pwad03,svar);
i++;
}
else if(strcmp(fvar,"pwad04")==0){
strcpy(pwad04,svar);
i++;
}
else if(strcmp(fvar,"opt")==0){
strcpy(optimized,svar);
i++;
}
else if(strcmp(fvar,"timelimit")==0){
strcpy(time,svar);
i++;
}
else if(strcmp(fvar,"warp")==0){
strcpy(warp,svar);
i++;
}
else if(strcmp(fvar,"skill")==0){
strcpy(skill,svar);
i++;
}
else if(strcmp(fvar,"fraglimit")==0){
strcpy(frag,svar);
i++;
}
else if(strcmp(fvar,"opengl")==0){
strcpy(opengl,svar);
i++;
}
else if(strcmp(fvar,"config")==0){
strcpy(cfg,svar);
i++;
}
else if(strcmp(fvar,"demo")==0){
strcpy(demo,svar);
i++;
}
else if(strcmp(fvar,"demof")==0){
strcpy(demof,svar);
i++;
}
else if (i == 19){
break;
}
}
fclose(fp);
//Escrevendo BAT
FILE *fd;
fd = fopen("run_me.sh","w");
printf("\nStatus : Generating BAT");
fprintf(fd,".\%s",sp);
fprintf(fd," -iwad %s",iwad);
fprintf(fd," -file %s -file %s -file %s -file %s ",pwad01,pwad02,pwad03,pwad04);
if (strcmp(skill,"0")==0 || strcmp(skill,"1")==0 || strcmp(skill,"2")==0 || strcmp(skill,"3")==0 || strcmp(skill,"4")==0 ){
fprintf(fd," -skill %s ",skill); }
if (strcmp(players,"2")==0 || strcmp(players,"3")==0 || strcmp(players,"4")==0){
if (strcmp(host,"0")==0 && strcmp(optimized,"0")==0)
fprintf(fd," -join %s",srvip);
else if (strcmp(host,"0")==0 && strcmp(optimized,"1")==0)
fprintf(fd," -join %s -dup 2 -netmode 1",srvip);
else if (strcmp(host,"1")==0 && strcmp(optimized,"0")==0)
fprintf(fd," -host %s",players);
else if (strcmp(host,"1")==0 && strcmp(optimized,"1")==0)
fprintf(fd," -host %s -dup 2 -netmode 1",players);
}
if(strcmp(mode,"1")==0)
fprintf(fd," -deathmatch -altdeath -nomonsters +set sv_cheats 1");
if(strcmp(warp,"none")!=0)
fprintf(fd," -warp %s",warp);
if(strcmp(time,"none")!=0)
fprintf(fd," -timer %s",time);
if(strcmp(frag,"none")!=0 && strcmp(frag,"0")!=0)
fprintf(fd," +set fraglimit %s",frag);
if(strcmp(opengl,"1")==0 && strcmp(sp,"gzdoom")==0){
fprintf(fd," -opengl");
}
if(strcmp(cfg,"none")!=0)
fprintf(fd," -config %s",cfg);
if(strcmp(demo,"r")==0){
fprintf(fd," -record %s",demof);
}
else if(strcmp(demo,"l")==0){
fprintf(fd," -playdemo %s",demof);
}
fclose(fd);
printf("\nStatus : BAT generated!");
system(".\run_me.sh");
printf("\nStatus : Finished!");
exit(1);
}-
Rico
- Mensagens: 2354
- Registrado em: Dom Set 10, 2006 11:49 am
- Localização: Atrás do DU0
- Idade: 33
- Contato:
eu juro que não copiei!
eu perdi minha tarde hj para passar, eu peguei a versão 0.2 e fiz para linux, tanto que se vc prestar atenção não há a variável opengl
entendeu?
foi tudo na unha
blz, mas minha proposta de fazer apenas uma variavel para as pwads espero que ainda esteja de pé!
vou tá compilando o novo código
Edit:
Erro 1
Ae Fabio, como eu sou rapido e tava com o professor (defensor de linux \o/) e programador C/C++ (e como o_O) mesmo o codigo sendo praticamente igual do windows ele mesmo assim não compila 100% mesmo tendo stdio e stdlib eles nao incluem alguns comandos como strcmp, strcpy, entao ele me falo, falto uma coisinha,
isso faz com que inclua tudo 
Erro 2
vc inverteu as barras, mesmo que vc axe q eh inutil e nao faz diferença, no linux FAZ SIM, vou dar um exemplo pq!
Uma pasta com nome : lol e outra com LOL são pastas totalmente diferentes. entao de uma barra '\' e '/' faz diferença
então acerta seu código \o
eu perdi minha tarde hj para passar, eu peguei a versão 0.2 e fiz para linux, tanto que se vc prestar atenção não há a variável opengl
entendeu?
foi tudo na unha
blz, mas minha proposta de fazer apenas uma variavel para as pwads espero que ainda esteja de pé!
vou tá compilando o novo código
Edit:
Erro 1
Ae Fabio, como eu sou rapido e tava com o professor (defensor de linux \o/) e programador C/C++ (e como o_O) mesmo o codigo sendo praticamente igual do windows ele mesmo assim não compila 100% mesmo tendo stdio e stdlib eles nao incluem alguns comandos como strcmp, strcpy, entao ele me falo, falto uma coisinha,
Código: Selecionar todos
#include <string>Erro 2
vc inverteu as barras, mesmo que vc axe q eh inutil e nao faz diferença, no linux FAZ SIM, vou dar um exemplo pq!
Uma pasta com nome : lol e outra com LOL são pastas totalmente diferentes. entao de uma barra '\' e '/' faz diferença
então acerta seu código \o
[xfire]p0br3[/xfire]
- Fabio914
- Mensagens: 1757
- Registrado em: Dom Mai 21, 2006 4:38 pm
- Localização: Sampa/Sanca
- Idade: 34
- Contato:
Mas em que trecho faltam as barras?R1c0 escreveu:Erro 2
vc inverteu as barras, mesmo que vc axe q eh inutil e nao faz diferença, no linux FAZ SIM, vou dar um exemplo pq!
Uma pasta com nome : lol e outra com LOL são pastas totalmente diferentes. entao de uma barra '\' e '/' faz diferença
então acerta seu código \o
