Inscrit le: 11 Fév 2011 Messages: 2151 Sujets: 114 Spécialité en worldedit: Chasser le Dragon, puis l'exterminer proprement avec une petite cuillère et une poêle.
Posté le: 09/12/11 21:40 Sujet du message:
Brainlessbob a écrit:
Tirlititi président ! C'est clairement le meilleur niveau WE qui participe au projet ( désolé pour l'amour propre des autres ).
Et qu'est ce que tu fait de moi, le futur vainqueur du concours de sorts F2J n°2 et de la mythique Zephyr Competition #9 sur thw ?
Sinon, avec tout ce que j'ai dit précédemment, ça paraît clair que Tirli doit être le "Capitaine en Second" du navire qui est notre projet. _________________
Moi je suis en pleine semaine blanche :/ (on en fait même en seconde chez nous... ) mais bientôt les vacances de Noël qui vont me permettre de travailler sur la map com'.
Dracorb donne pas signe de vie mais je pense qu'il revient ce week-end, si ce n'est pas le cas il faudrait que Tir ou moi commence a prendre en charge le projet.
Le fait que vous commencez a discutez des héros, des creeps, de l’expérience me convient mais je trouve sa limite de crée 3 topics pour ça.
Aussi j'aimerais vous demandez de na pas proposez des choses trop concrètes mais plutôt des idées car sinon cela fait plus discussion que débat (oui il y a une différence ).
Donc pour les topics je demanderai aussi de respecter une certaine charte :
exemple : [Débat] Les Héros et leurs Systèmes
Et de même pour l’intérieure de ces topics: je pense que comme nous avons déjà 2 topics avec une charte que je trouve assez sympas ( je me fait de la pub ).
et d’éviter d'en poster 36 sur trop de sujet on pourrait regrouper ça dans des topics plus globaux.
Comme la dit Tir on devrait se retrouver ou sur skype ou pendant le medlay. Cela multipliera notre production par 2.
Donc pour le moment je propose sur débattre sur les systèmes CORE de notre map. Comme cela nous aurons une progression logique et non dispersées. _________________
Inscrit le: 21 Fév 2010 Messages: 1785 Sujets: 22 Spécialité en worldedit: La modestie Médailles: 1 (En savoir plus...)
Posté le: 09/12/11 22:41 Sujet du message:
Petite avancé du système de dialogue et j'ai fait un petit système que j'ai appelé "LightTrail" (je vous laisse voir un exemple). Les déclos sont en mode désactivé mais ils sont utilisés quand même. Ils sont là pour montrer comment on se sert des librairies.
Je vais faire des fichiers qui permettront d'avoir ces actions en GUI sans doute demain (surtout celles pour les dialogues).
Par contre, j'ai pas l'impression qu'on puisse changer facilement la couleur des traînés. Heureusement que la taille du modèle est proche de 0. _________________
Inscrit le: 21 Fév 2010 Messages: 1785 Sujets: 22 Spécialité en worldedit: La modestie Médailles: 1 (En savoir plus...)
Posté le: 11/12/11 13:04 Sujet du message:
Petits fichiers qui permettront aux adeptes du GUI d'utiliser certaines fonctions de mes librairies :
TriggerDataAddon.txt TriggerStringsAddon.txt
(Il faut faire "Click droit -> Enregistrer la cible du lien sous".)
Il faut placer ces fichiers dans le dossier "jassnewgenpack5d\umswe" (vous pouvez faire un backup des fichiers qui y sont déjà), activer umswe dans le JNGP et bien sûr importer les librairies que j'ai faites (y'a une map sur dropbox).
Normalement, y'a pas de problème mais si vous en avez, dites-le moi.
Les fonctions personnalisées sont dans des catégories libellées "Custom".
Je rajouterai des fonctions au fur et à mesure mais je pense que j'uploaderai ces fichiers sur dropbox à l'avenir. _________________
Inscrit le: 11 Fév 2011 Messages: 2151 Sujets: 114 Spécialité en worldedit: Chasser le Dragon, puis l'exterminer proprement avec une petite cuillère et une poêle.
Inscrit le: 11 Fév 2011 Messages: 2151 Sujets: 114 Spécialité en worldedit: Chasser le Dragon, puis l'exterminer proprement avec une petite cuillère et une poêle.
Posté le: 02/01/12 15:10 Sujet du message:
Oui ^^
Mais bon, CRAZYRUSSIAN n'est pas le seul icon maker qui a un très bon niveau. _________________
Inscrit le: 21 Fév 2010 Messages: 1785 Sujets: 22 Spécialité en worldedit: La modestie Médailles: 1 (En savoir plus...)
Posté le: 08/01/12 15:58 Sujet du message:
Je suis en train de faire le système de projectiles. Il permettra au minimum :
- d'associer un élément au projectile,
- de contrôler les dommages,
- d'avoir un système de collision avec d'autres projectiles, des boucliers et des unités (l'effet de la collision pouvant être géré : une flèche qui rentre en collision avec une boule de feu s’enflammerait et gagnerait des dommages feu, par exemple),
- de choisir un mouvement pour le projectile parmi une série de mouvements prédéfinis (mais dont on peut augmenter la liste),
- d'inclure un système de déviation : certains projectiles contourneront les alliés pour ne pas les toucher,
- d'inclure un système de perturbation aléatoire de la trajectoire lorsque la magie est mal maitrisée.
On pourra mettre des projectiles aussi bien sur les attaques que sur les sorts, mais il vaudra mieux limiter le nombre de projectiles qui apparaissent en même temps (sur mon ordi, le LightTrail va jusqu'à 40 unités sans lag et je pense que ce sera à peu près pareil pour les projectiles).
Voilà, ça vous donnera peut-être des idées de sort. J'hésite encore à mettre une collision avec les destructibles (pas avec les doodads en tous cas) parce que les arbres, par exemple, ont une forme différente selon le modèle et même selon la variation du modèle. Ça me parait difficile à faire.
Inscrit le: 21 Fév 2010 Messages: 1785 Sujets: 22 Spécialité en worldedit: La modestie Médailles: 1 (En savoir plus...)
Posté le: 14/01/12 17:49 Sujet du message:
Vila, je l'ai bien entamé (il est sur dropbox avec un déclo de test).
Je peux malheureusement pas tout convertir pour que ce soit utilisable en GUI. Je vois pas comment on pourrait définir des fonctions interfaces.
De toutes façons, il va falloir passer par une période d'apprentissage mais j'espère qu'elle ne sera pas trop dure ^^.
En gros, il y a plusieurs étapes dans la création d'un projectile :
- On définit en initialisation un prototype de projectile, de type ProjectileData, qui contient des données invariantes, comme le modèle du projectile, son élément, etc...
- Lorsqu'une unité lance un sort (pour le moment, un projectile ne peut pas remplacer une attaque basique, mais ça va venir), on créer un projectile, de type Missile, et on lui associe son lanceur et ses dommages.
- Directement après, on donne un mouvement au projectile. Pour le moment, il n'y a qu'un mouvement possible, mais j'en rajouterai. Vous pouvez aussi me demander d'en faire si vous avez des idées de mouvement sympa.
- C'est tout. Ce qui se passe lorsque le projectile touche un missile est décidé dans l'étape 1 grâce aux fonctions interfaces.
Les fonctions interfaces sont des prototypes de fonctions que l'on peut utiliser comme argument ou comme variable. Par exemple, vous choisissez la fonction qui est lancée lorsque le projectile touche une unité :
Jass:
function interface UnitCollision takes Missile m,unit u returns boolean
m est le projectile qui touche l'unité et u est l'unité touché. Le type Missile est une structure avec tous ses champs publics : vous pouvez directement y accéder avec une syntaxe du type "m.damages". Toutes les fonctions qui prennent un Missile et une unité en argument peuvent être utilisées lorsqu'on demande une donnée de type "UnitCollision". Créer un ProjectileData demande donc une fonction comme ça (et une autre pour la collision entre 2 missiles).
Vous pourrez difficilement comprendre le système en regardant juste le déclo de test, il faut tester le résultat en jeu et avoir ça sous les yeux aussi :
Secret:
Function interfaces:
--------------------
private function interface MovementFunc takes integer index returns boolean
- Takes the index of a movement set of datas and move Dummy[index] using the other parameters. Always return false.
private function interface EndCondition takes integer index returns boolean
- Takes the index of a movement set and find if the movement should end or not. Returns true to end the movement. For missiles, this function is handled internally.
private function interface UnitCollision takes Missile m,unit u returns boolean
- Code executed when a missile hits an unit. Returns true if it destroys the missile. Beware that casters are often hitted when the missile is launched.
private function interface MissileCollision takes Missile m1,Missile m2 returns boolean
- Same as above but for the other missiles.
private function interface MissileCode takes Missile m returns boolean
- Executable code with the function RunMissileCode. It returns true if you want to destroy the enumed missile.
API:
----
function NewProjectileData takes integer projType,string modelpath,UnitCollision hit,MissileCollision mhit returns ProjectileData
- Define a projectile prototype. Once you created it, you can edit its fields (see its definition below for the field list).
function NewMissile takes unit caster,ProjectileData d,real damages returns Missile
- Define a new launchable missile using a projectile prototype. You should call a Movement function on a missile as soon as you created it.
function MissileSetModel takes Missile m,string modelpath returns nothing
- Properly change a missile model.
function MissileChangeDamages takes Missile m,real newDamages,integer newType returns nothing
- Change missile's damage datas. You must use this function inside a MissileCollision code but you can just edit fields anywhere else.
function RunMissileCode takes MissileCode callback returns nothing
- Run a code for every moving missile.
function MissileChargeUnit takes Missile m,unit target,real speed,real zarc,real zRotSpeed,real xyarc,real xyRotSpeed,boolean followTarget returns nothing
- Define basic movement for a missile. arcs are the angle at launch in degrees and RotSpeeds are the maximum rotation speeds in degrees/second.
function MissileChargePos takes Missile m,real x,real y,real speed,real zarc,real zRotSpeed,real xyarc,real xyRotSpeed returns nothing
- Same as above but target a point.
function ChargeMovementGetAngleSpeed takes real startingAngle,real distance,real speed returns real
- In MissileChargeUnit and MissileChargePos, this calculates the rotation speeds needed for the missile to just fall on distance.
- For instance :
- call MissileChargeUnit(m, target, 600, 40, ChargeMovementGetAngleSpeed(40,DistanceBetweenUnits(m.caster,target),600), 0, 0, false)
- It will make a perfect crescent between m.caster and the position of the target at launch.
Désolé, mais le jass, c'est que de l'anglais .
Je n'ai pas fait non plus le système de bouclier et je voudrais savoir combien/quels types élémentaires de missile on devrait mettre (j'ai mis perçant comme type, pour les flèches, donc c'est assez large).
Toutes les heures sont au format GMT + 1 Heure Aller à la page Précédente1, 2, 3, 4, 5, 6, 7, 8Suivante
Page 7 sur 8
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum