OK, wenn das weiterhilft kann ich das gerne machen.
Nicht über die komischen Variablennamen wundern, das wird ein kleines Spiel
Delphi-Quellcode:
procedure THauptmenu.Gegnerangriff_timerTimer(Sender: TObject); //Gegnerangrifftimer
begin
aufbauphase:= aufbauphase+1;
if aufbauphase=3 then Begin
randomize;
angriff:= random(11);
if angriff<=5 then Begin
//Einheiten vor Kampf anzeigen
TSchlacht.spielerrittervorschlacht_edit.text:= IntToStr(spielerritter);
TSchlacht.spielerritterstufeinschlacht_edit.text:= IntToStr(ritterstufe);
TSchlacht.spielerbogenvorschlacht_edit.text:= IntToStr(spielerbogen);
TSchlacht.spielerbogenstufeinschlacht_edit.text:= IntToStr(bogenstufe);
TSchlacht.spielerzaubervorschlacht_edit.text:= IntToStr(spielerzauber);
TSchlacht.spielerzauberstufeinschlacht_edit.text:= IntToStr(zauberstufe);
TSchlacht.computerrittervorschlacht_edit.text:= IntToStr(computerritter);
TSchlacht.computerbogenvorschlacht_edit.text:= IntToStr(computerbogen);
TSchlacht.computerzaubervorschlacht_edit.text:= IntToStr(computerzauber);
//Gesamt STR,DEF
spielerritterstr:= spielerritterstr*spielerritter;
spielerritterdef:= spielerritterdef*spielerritter;
spielerbogenstr:= spielerbogenstr*spielerbogen;
spielerbogendef:= spielerbogendef*spielerbogen;
spielerzauberstr:= spielerzauberstr*spielerzauber;
spielerzauberdef:= spielerzauberdef*spielerzauber;
computerritterstr:= computerritterstr*computerritter;
computerritterdef:= computerritterdef*computerritter;
computerbogenstr:= computerbogenstr*computerbogen;
computerbogendef:= computerbogendef*computerbogen;
computerzauberstr:= computerzauberstr*computerzauber;
computerzauberdef:= computerzauberdef*computerzauber;
//Ergebnisberechnung
spielerkampfbonus:= 1;
computerkampfbonus:= 1;
spielergewinn:= false;
if spielerritter<>computerritter then if spielerritter>computerritter then spielerkampfbonus:= spielerkampfbonus+0.01
else computerkampfbonus:= computerkampfbonus+0.01;
if spielerbogen<>computerbogen then if spielerbogen>computerbogen then spielerkampfbonus:= spielerkampfbonus+0.01
else computerkampfbonus:= computerkampfbonus+0.01;
if spielerzauber<>computerzauber then if spielerzauber>computerzauber then spielerkampfbonus:= spielerkampfbonus+0.01
else computerkampfbonus:= computerkampfbonus+0.01;
spielergesamtstr:=round((spielerritterstr+spielerbogenstr+spielerzauberstr)*spielerkampfbonus);
spielergesamtdef:=round((spielerritterdef+spielerbogendef+spielerzauberdef)*spielerkampfbonus);
computergesamtstr:=round((computerritterstr+computerbogenstr+computerzauberstr)*computerkampfbonus);
computergesamtdef:=round((computerritterdef+computerbogendef+computerzauberdef)*computerkampfbonus);
if spielergesamtdef>computergesamtdef then
spielergesamtstr:=spielergesamtstr+spielergesamtdef-computergesamtdef
else
computergesamtstr:=computergesamtstr+computergesamtdef-spielergesamtdef;
if spielergesamtstr>computergesamtstr then Begin
punkte:= punkte+ round((spielergesamtstr-computergesamtstr)/100);
computerritter:= 0;
computerbogen:= 0;
computerzauber:= 0;
spielergewinn:=true; end
else Begin
punkte:= punkte- round((computergesamtstr-spielergesamtstr)/100);
spielerritter:= 0;
spielerbogen:= 0;
spielerzauber:= 0;
end;
//überlebende Einheiten
if spielergewinn=true then Begin
spielerritter:= round((100-(computergesamtstr/spielergesamtstr*100))*spielerritter/100);
spielerbogen:= round((100-(computergesamtstr/spielergesamtstr*100))*spielerbogen/100);
spielerzauber:= round((100-(computergesamtstr/spielergesamtstr*100))*spielerzauber/100);
end
else Begin
computerritter:= round((100-(spielergesamtstr/computergesamtstr*100))*computerritter/100);
computerbogen:= round((100-(spielergesamtstr/computergesamtstr*100))*computerbogen/100);
computerzauber:= round((100-(spielergesamtstr/computergesamtstr*100))*computerzauber/100);
end;
//Einheiten nach Schlacht anzeigen
TSchlacht.spielerritternachschlacht_edit.text:= IntToStr(spielerritter);
TSchlacht.spielerbogennachschlacht_edit.text:= IntToStr(spielerbogen);
TSchlacht.spielerzaubernachschlacht_edit.text:= IntToStr(spielerzauber);
TSchlacht.computerritternachschlacht_edit.text:= IntToStr(computerritter);
TSchlacht.computerbogennachschlacht_edit.text:= IntToStr(computerbogen);
TSchlacht.computerzaubernachschlacht_edit.text:= IntToStr(computerzauber);
schlacht.showmodal;
end;
end;
end;