Spillet Travian

Tags:    delphi

<< < 12 > >>
Hej der ude, er ved at lave et lill spil. Men mangler lidt kode. :/

Vis nogle af jer kender browser spillet travian.dk så får man et antal resurser hvert time, også selv om man er offline. Mener det er noget med den gemmer den tid hvor man lukker ud og så den tid man logger på tror jeg, men ved det sku ik. :/

Så spøgsmålet går ud på at i mit spil får jeg ca 100 træ hvert time, også selv om jeg ikke har programmet åbnet. :)

Håber i forrstår ellers kan i spøge ind.

Mange tak. :)



12 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 7 karma
Sorter efter stemmer Sorter efter dato
Backend = hvad end kode du måtte have, der gør alt det brugeren ikke ser. (meget løs definition)

til sådan en slags spil, ville jeg nok (hvis det var mig der skulle lave det) have en backend på serveren, iform af noget serverside kode, (herunder en database) som foretog alle de her udregninger for mig, forbinde til den via en eller anden forudlavet protokol (eksempelvis med en masse XML som output, alle Google's API osv.)

og så få serveren til at udregne det på baggrund af login/logud tidspunkt i databasen :)

Men hvis du gerne vil gøre det i Delphi, skal du have fat i TDateTime klassen, som indeholder dato og tidspunkt.

dato samt klokken lige nu, kan fås ved at benytte "now". ex:
Fold kodeboks ind/udKode 
.

Hvis du benytter din ftp som "database", skal du så ha gemt logud tidspunkt i den fil du henter :)

og så kan du gøre alle følgende:

Fold kodeboks ind/udKode 




Ide.

Du kan se hvornår personen logger ud, og når personen så logger ind igen så tager du de to tidspunkter og finder ud af hvor mange timer der er imellem og så er det jo bare

Træ * timer og så give det til spilleren



Hvilket spørgsmål?



Hvoran kan jeg så stadig få de 100 træ hvert time selv om programmet ikke er åbnet. :)



Hey Dennis,
er det bare singleplayer eller henter den det fra en backend af en art?

Travian og lignende har en backend der kan beregne det hver time, ved predefinerede scripts.



Nej alle data køre over min ftp server. Ved ik helt hva du mener med backend, men du er inde på noget af det rigtige. :)



Jaa det er det jeg mener, men koden leder jeg efter. :)



ahh okay, der kan jeg så ikke hjælpe kender nemlig ikke til Delphi.



Har du noget kode indtilvidre?? Vis du har, så prøv at poste det.
Gemmer du info om de forskellige brugere i en Database? For vis du gør, skal du bare skrive hvornår personen sidst har være online til databasen når personen logger ud. Så kan du læse det tal fra databasen og holde det op mod hvad klokken er.

Nu kender jeg ikke til Delphi, men jeg vil gætte på at det har nogle klaser og funktioner til at arbejde med datoer og tidspunkter, som du kan finde i dokumentationen.

Generelt, vis du mangler en funktion eller datatype(klasse) til noget, eksempel vis en klasse til at indeholde en dato og en funktion der retunere antallet af timer der er gået mellem to datoer, så kig i dokumentationen

Vis du ikke kan finde ud af de ting, så bliver det nok en MEGET stor udfordring at lave det spil du gerne vil lave.



Okay det ser godt ud. :)
Vis jeg skal gemme tien er det så:

procedure TForm3.Button1Click(Sender: TObject);
begin
logoutTime:= Now;
end;

og vis jeg skal loade den er det:

function calcWood(login,logout:TDateTime):Int64
begin
result:= dateUtil.HoursBetween(logout,login) * woodPerHour;
end;

men det virker ik. :/ Hvordan få jeg tiden lavet om til en fil.? :/





<< < 12 > >>
t