
ae fabio se preocupa em programar ele, e eu tento aprender o que eu to lendo aki no livro q catei

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.
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);
}
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);
}
Código: Selecionar todos
#include <string>
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