Ce tutorial s'adresse au debutant et ne necessite aucun prerequis (mais connaitre un peu la prog ca aide :P)
je ne parlerais que des concept utile pour programmer sous RunUo. Si je n'entre pas dans les detail ou que j'emploi des terme pas super technique c'est fait expres. Si j'oublie des chose ben n'hesitez pas a completer :P
PS : je ne suis pas un prof donc vous attendais pas a des merveille :P
1. Les classc'est THE truc a bien comprendre avant de commencer :)
une class est une sorte de "super variable" ou de "mini programe" a l'interieur de votre programe (et donc a ces variable a lui ces procedure etc).
une class NE PEUT PAS etre utilisé directement. imaginez vous que c'est un moule (ou un plan) qui permet de crée des objet.
en regle general sous RunUo une class sera un modele pour crée un item, un mobile etc etc.
ex : si votre programe est une plan de construction de voiture votre class sera le plan de construction de l'autoradio par example.
1.1 notion (rapide) d'objetdans la suite de ce tuto je parlerais d'objet.
crée un objet c'est rendre une class "réel" (ca ira mieux apres l'example :P)
pour pouvoir utiliser une class il faut TOUJOURS cree un objet.
ex :
reprenons notre plan d'autoration. on met ce plan dans une machine qui peut construire l'autoradio. a chaque fois qu'on appuye sur un bouton de la machine un nouvel "objet" autoradio en sort.
2. le constructeurle constructeur est une procedure qui est appeller a chaque fois que vous cree un objet (a chaque fois qu'on appuye sur le bouton de la machine dans l'ex precedent)
quelque regle pour le constructeur :
- un constructeur est toujours public
- un constructeur a le meme nom que la class
regle en plus dans runUo :
- si votre constructeur apartient a un item,mobile etc (un truc qui existe reellement ingame) vous devez rajouter : "[Constructable]" juste avant.
3. public, private kesako ?ces 2 mots definisse la porté d'une variable ou d'une class.
public = la variable/class peut etre appeller depuis n'importe ou dans le programe.
private = la variable/class ne peut etre appeller que de la class directement au dessus
4. Notion d'heritage ex : reprenons toujours notre autoradio. si vous voulez cree un nouveau type d'autoradio vous avez 2 choix :
- soit refaire entierement un autoradio (pas bieeen)
- soit reprendre le 1er et le modifier. (bieeeen)
si vous choisisser le 2eme choix on dira alors que le 2eme autoradio "herite" du 1er
concretement cela veux dire qu'une classe A qui herite d'une B aura toute les variable,procedure etc de la class B (voir l'example)
dans RunUo pour faire court :
tout les item herite de la classe de base : Item
tout les mobile herite de la classe de base : Mobile
tout les target herite de la classe de base : Target
etc
mais les dev de RunUo on pensez a nous et on crée plen de class de base pour nous eviter de refaire a chaque fois toute les procedure (pour savoir laquel utilisé il faut sois regarder la doc de RunUo, sois regarder quel class les item semblable utilisé etc. c'est a voir au cas par cas)
PS : regarder l'arborecence des fichier de RunUo peut aussi aider a trouver une classe de base.
5. l'overridingl'overridding c'est en fait redefinir une fonction deja existante dans la class dont on a herité
ex :
si on reprend nos 2 autoradio.
imaginons que notre 1er autoradio a un bouton A.
on veut changer la fonction de ce bouton dans le 2eme autoradio. on va donc "overrider" la fonction : OnClickSurLeBouton A (voir l'example plus bas ca sera clair :P)
A. Example recapitulatif nous allons crée un baton.
en regardant la doc de RunUo on peut voir qu'une class : BaseStaff existe. on va donc l'utiliser
en regardant encore la doc (oui ca sert ;)) on vois que le constructeur de BaseStaff est de la forme :
| CODE |
| (ctor) BaseStaff( int itemID ) |
on commence donc notre class :
| CODE |
public class NotreBaton : BaseStaff { [Constructable] public NotreBaton : base( 0xDF1 ) { } }
|
explication :
pour faire heriter notre class on ecrit : ": BaseStaff" quand on la declare.
le ": base" dans la declaration du constructeur signifie qu'on utilise le constructeur de la classe de base (ici BaseStaff)
maintenant si on veut que notre baton envoi un message "blabla" quand on double click dessus on va utilisé l'ovveriding.
on rajoute apres notre constructeur :
| CODE |
public override void OnDoubleClick( Mobile LePj) { LePj.SendMessage("blabla"); } |
on "redefinie" ce qui se passe quand on doubleclick en fait.
vala digerer deja tout ca. je continuerai ce Tuto avec (De)Serialize,comment crée physiquement l'objet in game et les fonction plus tard :P
j'espere avoir etais clair :)