Discussion:Proposer des courses
- Créer une course :
- ajouter une ligne dans "races"
Description de la course idraces int(11) racename varchar(255) started int(11) deptime bigint(14) startlong int(11) startlat int(11) boattype varchar(255) closetime bigint(20) racetype int(11) firstpcttime bigint(20) depend_on int(11) qualifying_races text idchallenge text coastpenalty int(11) bobegin bigint(20) boend bigint(20) maxboats int(11) theme varchar(30) vacfreq tinyint(4) 20091103 YYYYMMDD du depart
laisser videLa Moqueca de Peixe 2 0 1254560401 (le 3/11/09 à 11:00 UTC) -1352 46036 Mono650 1254733216 (fermeture du départ le 5/11/09 à 11:00 UTC) 0 = course en ligne
1 = course permanente200
ex. 200% max du temps du vainqueur (course en ligne = 50, course qualif = 25, permanente = 200)20090913
????La Moqueca de Peixe
????Challenge mini 650 2010 1200
20 minutes1254733216
début du blackout1254819639
début du blackout de 24h200 flashy 1 coordonnées : à multiplier par 1000, ex. 46036 = 46.036 N - les ICs sont facultatives
Instructions de courses idraces int(11) instructions
textflag int(11) 20091103
laisser vide6173
num topic Taverne
laisser vide13 - ajouter N lignes de waypoints
waypoints idwaypoint
int(20)latitude1
doublelongitude1
doublelatitude2
doublelongitude2
doublelibelle
doublemaparea
double2009110301 -3876 -38397 -3876 -38397 Noronha 8 2009110302 -13050 -32300 -13200 -32300 Salvador de Bahia - Sud 12 coordonnées : à multiplier par 1000, ex. -3876 = 3.876 S - Ordonnancer les N waypoints sur la course (administrateur)
enchainement des waypoints idraces
int(11)wporder
int(11)idwaypoint
int(20)laisser_au
int(11)wptype
varchar(32)20091103
ou laisser vide1 2009110301 270
passer Norohna à l'ouestclassement 20091103
ou laisser vide2 2009110302 999 finish line laisser_au : si dans table waypoints : latitude1 = latitude2 ET longitude1 = longitude2 alors le wp est de type laisser_au wptype : peut prendre les valeurs Classement, Icegate ou Finish
- ajouter une ligne dans "races"
--- Schema extrait de http://dev.virtual-loup-de-mer.org/vlm/browser/trunk/base/schemas/races_tables.sql RACES, WAYPOINTS, RACES_WAYPOINTS, races_instructions
- Créer une course,
- ajouter une ligne dans "races"
- ajounter N lignes dans "waypoints" (une par waypoint)
- faire la relation 1,N (intégrant l'ordonnancement des WP) dans races_waypoint
- la table races_instructions est facultative
TABLE | INFORMATIONS | COMMENTAIRES |
---|---|---|
`races` |
`idraces` int(11) NOT NULL auto_increment, `racename` varchar(255) NOT NULL default , `started` int(11) NOT NULL default '0', `deptime` bigint(14) default NULL, `startlong` int(11) NOT NULL default '0', `startlat` int(11) NOT NULL default '0', `boattype` varchar(255) default NULL, `closetime` bigint(20) default NULL, `racetype` int(11) default NULL, `firstpcttime` bigint(20) default NULL, `depend_on` int(11) default NULL, `qualifying_races` text, `idchallenge` text, `coastpenalty` int(11) default '0', `bobegin` bigint(20) default '0', `boend` bigint(20) default '0', `maxboats` int(11) default '0', `theme` varchar(30) default NULL, 'vacfreq' tinyint(4) default 5, PRIMARY KEY (`idraces`) | |
`races_instructions` |
`idraces` int(11) default NULL, `instructions` text, `flag` int(11), KEY (`idraces`) | |
`waypoints` |
`idwaypoint` int(20) NOT NULL default '0', `latitude1` double default NULL, `longitude1` double default NULL, `latitude2` double default NULL, `longitude2` double default NULL, `libelle` varchar(255) default NULL, `maparea` int(11) default '10', PRIMARY KEY (`idwaypoint`) | |
`races_waypoints` |
`idraces` int(11) NOT NULL default '0', `wporder` int(11) NOT NULL default '0', `idwaypoint` int(20) default NULL, `laisser_au` int(11) default NULL, `wptype` varchar(32) default NULL, PRIMARY KEY (`idraces`,`wporder`) |
si dans table waypoints : latitude1 = latitude2 ET longitude1 = longitude2 alors le wp est de type laisser_au |
- les utilisateurs renseignent actuellement directement en SQL et transmettent à Phille, libellé de l'IC, n°topic créé par Phille.
---
je préparerai un jour une description de ces paramètres propre sur le wiki, mais en attendant, je te maile ce que j'ai en tête :-)
Icegate et nosail zone, on les code à la main. Je fais des scripts qui pistent les canotes qui sont du mauvais côté. Icegate et nosail zone sont des "règles de controle" mises en oeuvre "en dehors/parallèle du moteur VLM", mais ne figurent pas dans le script de création d'une course en base de données.
bobegin et boend, ce sont des dates, exprimées comme deptime et closetime à la façon "secondes depuis Epoch": elle introduisent le début d'un blackout et la fin de celui-ci. On peut en mettre plusieurs, par exemple un par jour, mais pour cela, il faut que j'automatise la modif de bobegin et boend par un petit script et c'est facile à faire. On peut par exemple imaginer qu'une course se déroulant autour du meridien 0 soit automatiquement mise en blackout entre 20UTC et 6UTC tous les jours, ça ferait un peu "il fait nuit donc on ne voit pas les concurents". La table "races" peut en mémoriser1 à la fois, donc s'il y en a 1 tous les jours, je fais un script qui le met en place tous les jours avec le nouvel horaire de début et fin, un peu comme les règles de controle des "gates".
qualifying_races : liste des course qualificatives à une course (une seule suffit si plusieurs sont précisées).
depend_on : liste des courses qu'il faut obligatoirement avoir terminée (toutes) pour prendre part à une autre. ==> pas implémenté pour l'instant, le code n'est pas complêt et est en commentaire dans lib/phpcommon/functions.php.
==> je vais préparer un challenge "boatsitting autorisé", dans lequel les participants de la dernière course auront forcément terminé toutes les étapes précédentes. Une espèce de course d'usure, avec départ le mercredi par exemple. (une sorte de "course des estuaires"... avec des étapes courtes et longues. A la course 002 aura la "001" en qualifying_races. Il suffira en fait de faire un chainage et que le qualifying_races de l'une mentionne uniquement la course précédente. Ainsi, pas besoin du depend_on, qui à mon avis devrait quitter la base de données !
Si tu te souviens des courses "Kawa", et les "transquad", elles étaient comme ça : TRANSQUAD2 avait TRANSQUAD1 en qualif mais pour faire la multikawa, il fallait avoir fini une des 20071021 20071022 20071023 20071024 20071025. Donc, qualifying_races pour la multikawa valait "20071021 20071022 20071023 20071024 20071025"
idchallenge : c'est pour le jour om c'est directement VLM qui sortira des classements au temps cumulé. C'est pas nécessaire, Droopy fait très bien ce travail.
maxboats : c'est pour faire des courses limitées en nombre d'inscrits (on avait fait une course comme ça :le postlogue de Cap Istambul (80906), qui avait d'ailleurs la 80905 en qualifying_races
Le theme : c'est pour forcer un theme pour tous les joueurs d'une course. On peut le choisir dans les préférences lorsque cela n'est pas précisé au niveau de la course, mais le choix "positionné dans la course" est prioritaire sur celui du joueur si la course émet un choix. Ainsi, pour le trophée Bateaux, on avait tous le même thème, et un même bateau inscrit dans une autre course "après", retrouvait le thème de son choix.
Pour la 956, on a forcé l'utilisation du theme "oceanexpress_newyork_lorient" ==> Le Theme, c'est le nom d'une feuille de style pour looker l'interface.
Il y a maintenant : "vacfreq", qui indique la durée des vacations en minutes. (alors que le getinfo retourne l'info en secondes)
Et c'est tout dans la table "races", dont la description est la suivante : Dans la colonne "NULL", c'est YES si la valeur peut être omise, ou NO s'il faut forcément la fournir. Dans la colonne "Default" toute valeur non précisée dans le script prendra la valeur "par défaut" indiquée : tinyint, int ou bigint, c'est de l'entier (int(11) c'est sur 11 chiffres maxi) varchar, c'est de al chaine de caractères de longueur au maximum celle précisée (tout caractère du clavier, et attention aux "apostrophes", qui doivent être mis entre guillemets) text, c'est pareil, mais ça peut être un roman en terme de longueur.
[0:fmicaux@tupai(22:33:05)~]$ mysql -e "desc races"
+------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------+--------------+------+-----+---------+----------------+
| idraces | int(11) | NO | PRI | NULL | auto_increment |
| racename | varchar(255) | NO | | | |
| started | int(11) | NO | | 0 | |
| deptime | bigint(14) | YES | | NULL | |
| startlong | int(11) | NO | | 0 | |
| startlat | int(11) | NO | | 0 | |
| boattype | varchar(255) | YES | | NULL | |
| closetime | bigint(20) | YES | | NULL | |
| racetype | int(11) | YES | | NULL | |
| firstpcttime | bigint(20) | YES | | NULL | |
| depend_on | int(11) | YES | | NULL | |
| qualifying_races | text | YES | | NULL | |
| idchallenge | text | YES | | NULL | |
| coastpenalty | int(11) | YES | | 0 | |
| bobegin | bigint(20) | YES | | 0 | |
| boend | bigint(20) | YES | | 0 | |
| maxboats | int(11) | YES | | 0 | |
| theme | varchar(30) | YES | | NULL | |
| vacfreq | tinyint(4) | YES | | 5 | |
+------------------+--------------+------+-----+---------+----------------+
Comme on (surtout Spf et Papa) cherche à améliorer les performances, (moi, j'ai plus le temps), on devrait supprimer la colonne depend_on (on l'utilisera sans doute jamais, en fait) et la colonne idchallenge un jour. Ne pas prendre la peine de les valoriser, donc.