SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)
Hilfe Community Kalender Heutige Beiträge Suchen

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 26.12.2004, 11:52:54
joker joker ist offline
Junior Member
 
Registriert seit: May 2003
Beiträge: 201
kampfsstem (browser game)

hallo, ich arbeite grad an einem browsergame, wo der grundcode fast fertig ist, jetzt möchte ich mich an das kampfsystem ranwagen, das prinzip steht auch schon, aber ich weis nicht wie ich die datenbank strukturieren sollte um best möglich mit dieser dann zu arbeiten, um genau zu sein gehts um die einheiten die der user in den kampf schickt, wie sollte man dies in der db speichern, also die id und die anzahl des jeweiligen militärs typ, wenns nur ein tp wäre, wärs recht sympel, aber da es verschiedende einheiten typen gibt weis ich mom nicht wie ich dafür am besten die db strukturiere...

hoffe jemmand kann mir ein denkanstoss geben :=)
Mit Zitat antworten
  #2  
Alt 26.12.2004, 12:15:03
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
Spalten:
id
typ
anzahl
Mit Zitat antworten
  #3  
Alt 26.12.2004, 12:23:46
joker joker ist offline
Junior Member
 
Registriert seit: May 2003
Beiträge: 201
also du meinst so:
id,vonuserid, militaerid, anzahl, zuuserid, dauer

so werden dann schnell mal für ein angriff 10-15 zeilen beansprucht, dachte es gäbe irgendwie auch noch ne andere bessere lösung...

danke :)

Geändert von joker (26.12.2004 um 12:27:36 Uhr)
Mit Zitat antworten
  #4  
Alt 27.12.2004, 15:50:04
Benutzerbild von Matt
Matt Matt ist offline
Member
 
Registriert seit: Mar 2002
Ort: Port 80, localhost-city, 127/0/0/1
Beiträge: 878
du könntest natürlich auch für jeden einheitentyp eine spalte verwenden. Das ist zwar unschön, aber für Browserspielesysteme mitunter empfehlenswert (vor allem, wenn ein hoher andrang herrscht)
Das hat vor allem den nachteil, dass du die Tabelle verändern müsstest, um eine neue Einheit hinzuzufügen. Und wenn da wirklcih viele leute dran spielen ist das... Da viele dieser Spiele allerdings ohnehin in "Runden" gespielt werden (also alle paar monate wird zurückgesetzt) ist das kein so großes problem, da du beim nächsten reset einfach die funktionen einbauen könntest. (so macht es planetarion beispielsweise)

ich habe aber eine andere idee.. die benötigt zwar viel speicherplatz, hat allerdings einige features für dich:

Stell dir das so vor: Jeder Spieler hat eine Armee. Das ist die summe aller seiner Leute, die er kämpfen lassen kann. Nun will er aber nur einen Teil seiner Leute in den Kampf schicken. Dazu hebt er aus seiner Armee eine Truppe aus.


Die Armeen werden nun "Richtig" schön relational gespeichert, also:

Code:
tbl armies
----------
userId
UnitTypeId
UnitCount
und dann mit einer zweiten tabelle

Code:
tbl unittypes
-------------
UnitTypeId
Name
Hitpoints
Strength
Armor
Range
(oder was auch immer)
Da ist mal alles drin gespeichert was er hat. Wenn er nun seine Leute in die Schlacht schickt, bildet er eine Truppe - und sagt wie viele einheiten welches typs dabei sind.
Die Tabelle sähe ungefähr so aus:

Code:
tbl troops
----------
troopId
ownerId
target //wohin sie müssen
started //wann sie losgegangen sind
unit1Count
unit2Count
unit3Count
unit4Count
.
.
.
Nun jedesmal wenn jemand eine Truppe losschickt, wird der Eintrag in die Tabelle troops gemacht. Damit hast du jetzt die anzahl der leute, die zu dem gegner unterwegs sind, und weisst wann sie losgegangen sind (also wann sie dort ankommen)

In dem kampf hast du somit leicht zugriff auf die beteiligten Truppen und deren eigenschaften (du musst ja nur alle einheitentypen abfragen, die beteiligt sind) und wenn der kampf vorbei ist, wird die Truppe wieder aufgelöst und der eintrag verschwindet.
Somit wäre die tabelle also nicht so groß und du könntest sie in der laufzeit ändern.

Hier aber ist das risiko, da ich keine ahnung habe, wie viele kämpfe so durchschnittlich ausgetragen werden, bin ich mir nicht sicher, wie groß das risiko ist, dass diese tabelle doch SEHR gross ist (beispielsweise Planetarion wenn du das kennst, was dort gekämpft wurde, war unglaublich)
Mit Zitat antworten
  #5  
Alt 27.12.2004, 21:28:12
joker joker ist offline
Junior Member
 
Registriert seit: May 2003
Beiträge: 201
naja, bei meinem spiel wird nicht so viel gekämpft, aber wenn gekämpft wird dan richtig, das soll heißen alleine kämpft nirmand da er keine change hat, ca pro allianz wird 1-2 mal ein angriff gestarted und die restliche zeit wird taktik gemacht, daher wird nicht soviel gekämpft, aber wenn das gleich mit 10-20 leuten...

ich glaub ich benutzte erstmal eine tabelle wo ich pro angriff für jeden einheiten typ ein eintrag mache und mit hilfe der spalten target und left_time diese beim auslesen zusammenführe, wäre glaub ich das praktischte.

Strength und Armor,bzw AP und VP zusammenzuzählen für jeden kampf wäre schwachsinnig da so ja jedes kampfsystem ist :P das geht ja nicht das 12000 steinwerfer ein trägerschiff zerstören kann :)
Mit Zitat antworten
  #6  
Alt 28.12.2004, 21:13:20
joker joker ist offline
Junior Member
 
Registriert seit: May 2003
Beiträge: 201
hallo, nun ist der grundcode vom kampfsystem fertig, aber ich hab mal ne frage:

der user hat die möglichkeit von verschiedenden einheiten eine selbstdefinierte anzahl von den jeweiligen einheitentp mit in den kampfzuschicken. das formular wird je nach verfügbaren einheiten automatisch generiert.

wenn der user das formular nun abschickt weis ich ja nicht genau welche einheiten er mitgeschickt hat um es auszulesen, wie wurdet ihr das handhaben, meine idee wäre in die tabelle für die eigenschaften der einheiten zu gehen und in einer whileschleife alle ids auszulesen ( ids werden mit dem formular mit verschickt ) und dan schauen ob diese id mitgeschuickt wurde und wenn ja bearbeiten, dan nechste id überprüfen.

oder gibt es eine bessere möglichkeit?
Mit Zitat antworten
  #7  
Alt 08.01.2005, 16:07:28
viper13 viper13 ist offline
Anfänger
 
Registriert seit: Dec 2004
Beiträge: 32
ist deine datenbank bei einem free-hoster?
Mit Zitat antworten
  #8  
Alt 09.01.2005, 09:45:59
joker joker ist offline
Junior Member
 
Registriert seit: May 2003
Beiträge: 201
NEin!
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:46:47 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt