Proposer des courses : Différence entre versions
Ligne 38 : | Ligne 38 : | ||
Informations nécessaires: | Informations nécessaires: | ||
− | * Fichier image en | + | * Fichier image en PNG de 720x480 pixels de dimension et nommé xxxxx.png (xxxxx=N° de la course idraces, voir plus loin) qui servira pour la vignette d'annonce. C'est une photo ou un schéma résumant le parcours. |
* Un fichier texte (xxxxx.txt où xxxxx est idraces, voir plus loin): | * Un fichier texte (xxxxx.txt où xxxxx est idraces, voir plus loin): | ||
** Coordonnées décimales du départ, des WP et de l'arrivée. | ** Coordonnées décimales du départ, des WP et de l'arrivée. |
Version du 27 mars 2011 à 19:05
Cette page a besoin d'être complétée à partir des renseignements du forum
Sommaire
Qui peut proposer une course ? Quelles sont les conditions ?
Tout le monde peut proposer une course. Le forum peut vous aider si vous avez des difficultés techniques.
Il faut être conscient :
- que proposer une course va beaucoup plus vite que de la courir ! Ce ne sont donc pas les stocks de course qui manquent, et il est possible que votre course mette du temps à arriver en ligne (suivant les autres courses déjà programmées).
- que le comité de course de Vlm essaye de gérer un équilibre entre le nombre de course, la compétition, la diversité, etc... (d'ou le point précédent).
- que le comité de course de Vlm peut être amené à refuser une course ou vous proposer des améliorations. De même, comme il n'est jamais trop tard pour reconnaitre son erreur, le comité de course de Vlm peut être amené a faire des modifications dans les Wp que vous avez proposé afin que la course reste "jouable". Il ne s'agit pas d'une remise en cause de votre idée, simplement d'un compromis entre créativité et jouabilité.
Il y a une page sur le wiki qui pourrait recenser les Idées de courses
Les informations nécessaires pour créer une course
- Choix Course en ligne ou course permanente (record)
- Donner un nom
- Durée du Stop&Go
- Date d'ouverture de la ligne de départ
- Date de fermeture de la ligne de départ
- Fermeture de la ligne d'arrivée
- Type de bateau voir Polaires
- Qualification (lien vers la course de qualification)
- L'image (la carte) qui résume la course
- la fréquence de mise à jour (1min ou 5min)
- les instructions de courses particulières (blackout,etc..)
Recommandations
- Utiliser le blackout avec parcimonie
- Pensez que le type de porte "sens de passage" et "pas de demi tour" sont complémentaires (Voir plus bas les options sur les portes)
A quel format ?
D'après le post Phille Comment créer une course, ... et à qui envoyer les info. et le post de sterwenn PUBLICATION DE COURSES, Voici ce qu'il me faut...
Informations nécessaires:
- Fichier image en PNG de 720x480 pixels de dimension et nommé xxxxx.png (xxxxx=N° de la course idraces, voir plus loin) qui servira pour la vignette d'annonce. C'est une photo ou un schéma résumant le parcours.
- Un fichier texte (xxxxx.txt où xxxxx est idraces, voir plus loin):
- Coordonnées décimales du départ, des WP et de l'arrivée.
- Nom de la regate (choix libre)
- Type de bateau qui a une polaire dans VLM : http://wiki.virtual-loup-de-mer.org/index.php/Les_bateaux
- Penalité pour échouement en minutes (Le fameux stop and go)
- Date et heure du départ
- Fermeture ligne de départ
- Fermeture de la course en % du temps du gagnant
- Durée entre vac (1 ou 5 minutes) selon type de parcours (si il y a des passages entre les cailloux = 1 minutes)
- Le fichier texte doit être encodé en UTF-8. Utilisez un outil comme PSPAD pour vous en assurer.(ou Notepad++)
Exemple de fichier xxxxx.txt
# LA COURSE Route de Fantaisie.
delete from races where idraces = 20090228; insert into races (idraces, racename, started, deptime, closetime, startlat, startlong, racetype, boattype, firstpcttime, qualifying_races, coastpenalty, bobegin, boend, vacfreq) values (20090228, "Route de Fantaisie", 0, 1235826000, 1235826000+3600, 22105, 114088, 0, "boat_C5v2", 200, "", 3600, 1235826000, 1235826000+4*3600, 5);
# Les WAYPOINTS
delete from waypoints where idwaypoint = 2009022801; delete from waypoints where idwaypoint = 2009022802; delete from waypoints where idwaypoint = 2009022803; delete from waypoints where idwaypoint = 2009022804; delete from waypoints where idwaypoint = 2009022805; delete from waypoints where idwaypoint = 2009022806; delete from waypoints where idwaypoint = 2009022807;
insert into waypoints (idwaypoint, libelle, latitude1, longitude1,latitude2,longitude2, maparea) values (2009022801, "WP1", 22031, 114014, 21984, 114120, 12), (2009022802, "Sonde", -5891, 105789, -5931, 105984, 12), (2009022803, "Sud Afrique", -34823, 20000, -34823, 20000, 10), (2009022804, "Archipel Bijagos", 11286, -16472, 11286, -16472, 8), (2009022805, "Manche", 49960, -5201, 48571, -4706, 8), (2009022806, "Mer du Nord", 51110, 1328, 50869, 1581, 8), (2009022807, "Finish", 51445, 747, 51520, 783, 12);
# Les liens COURSE/WAYPOINTS
delete from races_waypoints where idraces = 20090228;
insert into races_waypoints ( idraces, wporder, idwaypoint, wpformat, laisser_au, wptype) values (20090228,1,2009022801,0,999,"Classement"), (20090228,2,2009022802,0,999,"Classement"), (20090228,3,2009022803,1,0,"Classement"), (20090228,4,2009022804,1537,80,"Classement"), (20090228,5,2009022805,0,999,"Classement"), (20090228,6,2009022806,0,999,"Classement"), (20090228,7,2009022807,0,999,"Finish");
delete from races_instructions where idraces=20090713;
insert into races_instructions ( idraces, instructions, flag) values (20090713, "http://www.virtual-winds.com/forum/index.php?showtopic=6093", 13);
- EXPLICATIONS:
- LA COURSE 20090228 Route de Fantaisie.
idraces: N° de la course = date de départ année-mois-jour (sans les - )ici 28 fev 2009
racename : nom de la course (entre guillemets)
started : 0 ou 1 … 0 = pas encore partie ... toujours mettre 0 car sinon certains fichiers ne seront pas initialisés.
deptime : date et heure du départ en Unix Epoch time = nombres de secondes depuis le 1er Janvier 1970 … http://www.epochconverter.com/
closetime : date de fermeture de la ligne de départ
startlat : latitude du point de départ
startlong : longitude du point de départ
coordonnées en degrés décimaux avec 3 décimales … valeurs positives pour Nord et Est et valeur négatives pour Sud et Ouest (par exemple : 45°30min N soit 45.5 on met donc 45500)
racetype : 0 = course en ligne, 1 = course permanente
boattype : type de bateau (voir liste : http://virtual-loup-de-mer.org/Polaires/ )
firstpcttime : durée max de la course en % du temps du vainqueur en général 50 pour une course en ligne et 200 = 3 fois le temps du vainqueur pour une course permanente
qualifying_races : en cas que cette course soit une qualif pour une course future
coast_penalty : temps de Stop & Go en cas d’échouement en secondes, 3600 = 1 heure
bobegin et boend : début et fin du BlackOut en Epoch Time
vacfreq : fréquence des vac 1 ou 5 minutes
PS: si pas de BlackOut, ne pas mentionner bobegin et boend ni leurs valeurs.
- Les WAYPOINTS
chaque valeur est terminée par une virgule "," et un ordre par un point/virgule ";"
Les « delete from …. » servent à effacer tout WP qui aurait le même N° dans la BD de VLM
idwaypoint : N° du waypoint >>> N° de la course + 01, 02, …
libelle : nom du WP
latitude1 … longitude2 : lat et long des 2 points du WP (pour les portes) et pour un WP à point unique les lat et long doivent être identiques
maparea : le facteur zoom pour visualiser le WP à partir du tableau de bord (les N°en haut à droite du tableau de bord)
séparer chaque WP par une virgule et à la fin un point/virgule
- Les liens COURSE/WAYPOINTS
Le delete from sert à effacer un tableau existant (du même nom)
Les valeurs : (N° de la course, ordre de passage du WP, laisser_au, type).La valeur laisser_au(relevé)sera de
999 = pour WP avec 2 points ou de 0 à 360 pour laisser WP à point unique au cap xxx (relevé (laisser_au)) c'est à dire que pour passer au nord d'un Way-Point il faut le relever (le voir) au sud 180°sur le compas du bateau
type : Classement ou Finish (entre guillemets)
La valeur pour wpformat est calculée en faisant la somme de ses composants:
"WP_TWO_BUOYS", 0
"WP_ONE_BUOY", 1
"WP_ICE_GATE_N", 16
"WP_ICE_GATE_S", 32
"WP_ICE_GATE_E", 64
"WP_ICE_GATE_W", 128
"WP_CROSS_CLOCKWISE", 256
"WP_CROSS_ANTI_CLOCKWISE", 512
"WP_CROSS_ONCE", 1024
Donc pour anti-clockwise + cross-once + one-buoy : 512 + 1024 + 1 = 1537
WP_Two_Buoys = porte (2 bouées)
WP_One Buoy = bouée unique (avec relevé)
Ice_gate= Porte des glaces "N" = faut être vu au moins une fois dans son Sud, "S" = faut être vu au moins une fois dans son Nord (les "E" et "W" ne sont pas encore utilisés)
Clockwise = sens des aiguilles
Anti_Clockwise = contre-sens des aiguilles
Cross_Once = passage unique
Le sens ou contre-sens des aiguilles est par rapport à la 1ère bouée de la porte = "latitude1, longitude1" !
insert into waypoints (idwaypoint, libelle, latitude1, longitude1,latitude2,longitude2, maparea)
races_instructions : lien vers les IC de la course sur le forum de la Taverne.
(à crée par un admin ou un mod de la Taverne)
- OUTIL POUR CRÉER DES PARCOURS (merci à JP « John-Pet) http://www.virtual-winds.com/tcv/VLM_parcours.zip
Il faut avoir la TCV installée sur votre ordinateur et il faut mettre l’exécutif dans un nouveau répertoire (par exemple c:\VLM parcours\VLM_parcours.exe).
Double-clic pour centrer la carte sur un point et puis zoomer.Clic-droit (garder enfoncé) et déplacer le curseur pour dessiner une ligne et avoir les coordonnées début et fin de la ligne ainsi que sa longueur.
Vous aurez les mêmes cartes que sur VLM donc très facile pour trouver les coordonnées des WP et le facteur zoom (ne pas oublier que la mini carte de WP fait 800x600 pixels … attention si vous avez un grand écran)
Les outils pour aider à la création de course
Carte de base : http://flatplanet.sourceforge.net/maps/natural.html
EPOC Converter : http://www.epochconverter.com/
John-Pet définition de parcours : http://www.virtual-winds.com/tcv/VLM_parcours.zip
(A compléter, Cf. Forum)
Ou / A qui envoyer cette proposition ?
Discutez en par courriel à vlm (arobase) virtual-winds.com et via le forum pour bénéficier de l'expertise et des idées de tous.
Annexe
Détail
- 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)laisser vide
ne pas utiliser20090913
La Moqueca de PeixeChallenge 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 qualifying race : Liste des course qualificatives à une course (une seule suffit si plusieurs sont précisées). Ex. 20071021 20071022 20071023 20071024 20071025 (multikawa 2007) ou une seule (ex. TRANSQUAD2 avait TRANSQUAD1 en qualif). Il suffit 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 devrait quitter la base de données. depend_on : liste des courses qu'il faut obligatoirement avoir terminée (toutes) pour prendre part à une autre. ==> non implémenté pour l'instant, le code n'est pas complêt et est en commentaire dans lib/phpcommon/functions.php. Ne pas utiliser.
idchallenge : pour classements au temps cumulé. (pas nécessaire, Droopy fait très bien ce travail). maxboats : c'est pour faire des courses limitées en nombre d'inscrits (ex :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. 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 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 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émoriser à la foi.Il y a maintenant : "vacfreq", qui indique la durée des vacations en minutes. (alors que le getinfo retourne l'info en secondes) - 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 ou Finish. Icegate et nosail zonesont 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.
- 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 |
Un extrait des tables :
+----------+---------------------------------------------------------------------------------+---------+------------+-----------+----------+----------------+------------+----------+--------------+-----------+------------------+-------------+--------------+---------+-------+----------+-------+---------+
| idraces | racename | started | deptime | startlong | startlat | boattype | closetime | racetype | firstpcttime | depend_on | qualifying_races | idchallenge | coastpenalty | bobegin | boend | maxboats | theme | vacfreq |
+----------+---------------------------------------------------------------------------------+---------+------------+-----------+----------+----------------+------------+----------+--------------+-----------+------------------+-------------+--------------+---------+-------+----------+-------+---------+
| 20081102 | Belfast - Man - Ouessant - Les Sables d'Olonne **QUALIF Vent des Globes** | -1 | 1225530000 | -5867 | 54658 | boat_Imoca2008 | 1225533600 | 0 | 10 | NULL | | NULL | 1800 | 0 | 0 | 0 | NULL | 5 |
| 20081103 | Lisboa - Ouessant<->Aber Ildut - Les Sables d'Olonne **QUALIF Vent des Globes** | -1 | 1225738800 | -9134 | 38704 | boat_Imoca2008 | 1225742400 | 0 | 150 | NULL | | NULL | 900 | 0 | 0 | 0 | NULL | 5 |
| 20081109 | Le Vent Des Globes | -1 | 1226232120 | -1790 | 46473 | boat_Imoca2008 | 1226836800 | 0 | 50 | 0 | | NULL | 10800 | 0 | 0 | 0 | NULL | 5 |
| 20090913 | La Moqueca de Peixe | -1 | 1252843200 | -1352 | 46036 | boat_Mono650 | 1252886400 | 0 | 50 | NULL | | NULL | 1800 | 0 | 0 | 0 | NULL | 5 |
| 20091003 | La Moqueca de Peixe 2 | 0 | 1254567600 | -16940 | 32610 | boat_Mono650 | 1254610800 | 0 | 50 | NULL | | NULL | 1800 | 0 | 0 | 0 | NULL | 5 |
+----------+---------------------------------------------------------------------------------+---------+------------+-----------+----------+----------------+------------+----------+--------------+-----------+------------------+-------------+--------------+---------+-------+----------+-------+---------+
+----------+---------+------------+------------+-------------------------+
| idraces | wporder | idwaypoint | laisser_au | wptype |
+----------+---------+------------+------------+-------------------------+
| 20081102 | 1 | 2008110201 | 999 | classement |
| 20081102 | 2 | 2008110202 | 999 | classement |
| 20081102 | 3 | 2008110203 | 999 | classement |
| 20081102 | 4 | 2008110204 | 999 | Finish |
| 20081103 | 1 | 2008110301 | 999 | classement |
| 20081103 | 2 | 2008110302 | 999 | classement |
| 20081103 | 3 | 2008110303 | 999 | Finish |
| 20081109 | 1 | 2008110911 | 999 | Atlantic IceGate |
| 20081109 | 2 | 2008110901 | 999 | Cape of Good Hope |
| 20081109 | 3 | 2008110912 | 999 | Kergelen IceGate |
| 20081109 | 4 | 2008110902 | 999 | Heard Island |
| 20081109 | 5 | 2008110913 | 999 | West Australian IceGate |
| 20081109 | 6 | 2008110903 | 999 | Cape Leuwin |
| 20081109 | 7 | 2008110914 | 999 | East Australian IceGate |
| 20081109 | 8 | 2008110915 | 999 | New-Zealand IceGate |
| 20081109 | 9 | 2008110916 | 999 | West Pacific IceGate |
| 20081109 | 10 | 2008110917 | 999 | East Pacific IceGate |
| 20081109 | 11 | 2008110904 | 999 | Cape Horn |
| 20081109 | 12 | 2008110905 | 999 | Finish |
| 20090913 | 1 | 2009091301 | 999 | Finish |
| 20091003 | 1 | 2009100301 | 999 | Finish |
+----------+---------+------------+------------+-------------------------+
- les utilisateurs renseignent actuellement directement en SQL et transmettent à Phille, libellé de l'IC, n°topic créé par Phille.
[~]$ 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 | |
+------------------+--------------+------+-----+---------+----------------+
Améliorer les performances : 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.