Ich habe 3 CLients und 3 Server, on timer event gibt es nur einen Coordinaten austauch und chat messages zu entfangen, aber beide haben erschiedene Server. Es gibt einen
DB Server der nur informationen speichert das heisst Stats , Exp, Name, Login. Der message Server Empfängt messages und leitet sie global weiter, so das sie jeder lesen kann, das konnte ich fixen. bei stats verteillung Liest und Schreibt er gleichzeitig.
Aber deine ahnung trifft zu, bei einen Klick des STR Buttons Werden mehrere informationen Gesendet und angefordert
Delphi-Quellcode:
procedure TForm1.PlusStrButtonClick(Sender: TObject);
Var SRvVal,SrvSP,Value,Pnt:Integer;
begin
if StrToint(MUSPnt.Caption) < 1 then Exit;
SRvVal:=GetInfo('STR'); // Anfordern
Value:=SRvVal+1;
try
ModiFyInfo('STR',Value); // setzen
finally
ATSTR.Caption:=IntToStr(GetInfo('STR')); // Anfordern
SRvSP:=GetInfo('APNTS'); // Anfordern
Pnt:= SRvSP -1;
try
ModiFyInfo('APNTS',Pnt);// setzen
finally
MUSPnt.Caption:=IntToStr(GetInfo('APNTS')); // Anfordern
end;
end;
globerg:=GetInfo('STR')*6; // Anfordern
globatk:=GetInfo('STR')*7; // Anfordern
globdmg:=RandomRange(globerg,globatk)-globdef;
ATKRATE.Caption:='Attack Rate: '+slinebreak+' '+IntToStr(GetInfo('STR')*6)+' ~ '+IntToStr(GetInfo('STR')*7) // Anfordern
end;
Ich werde mal schaun ob ich das einwenig verringern kann.
Beim chat habe ich das "Einfrieren" rausbekommen, der client hat sich einfach imma aufgehangen nach absenden der message, und es lag an try ... abfrage.
Aber wie soll ich ein MMOG baun, wenn der Server nach "1" client schon überfordert ist ist konsolen anwendung dafür besser?