Xartrick
Hors ligne
Moderateur
GTAOnline Addict

C & Pawn Programmer
Messages: 1206
|
 |
« Répondre #45 le: 28 Mai 2011 à 13:50:10 » |
|
Dommage, je ne peux pas participé, je suis vraiment très occupé ! J'essayerais de poster le code de l'exercice facile .
|
|
|
|
|
Journalisée
|
|
|
|
|
|
cristab
Hors ligne
Admin V.I.P
GTAOnline Legend

Messages: 7331
|
 |
« Répondre #47 le: 08 Juin 2011 à 23:24:10 » |
|
demain je tente de poster les 3Codes pour te soulager 
|
|
|
|
|
Journalisée
|
|
|
|
Xolokos
PAWN/XHTML/CSS
Hors ligne
GTAOnline Big Member

IA n'est rien comparé a la stupidité naturel.
Messages: 486
|
 |
« Répondre #48 le: 05 Juillet 2011 à 21:44:40 » |
|
Donc voilà le code avec les Statistiques. Le Pastebin de l'exercice de Gilux.
|
|
|
|
« Dernière édition: 06 Juillet 2011 à 11:46:26 par Xolokos »
|
Journalisée
|
|
|
|
Gilux
Hors ligne
GTAOnline Addict

Messages: 1296
|
 |
« Répondre #49 le: 22 Juillet 2011 à 15:05:38 » |
|
Merci à toi (Désolé du retard xD) 
|
|
|
|
|
Journalisée
|
|
|
|
Vellric
Hors ligne
Petit nouveau

Messages: 9
|
 |
« Répondre #50 le: 02 Septembre 2011 à 04:33:33 » |
|
Salut,
Donc je crois qu'ici est la meilleure place où poster pour ce que je veux ^^'
J'aimerais quelque chose dans le même genre que ce sujet, qui m'a l'air 'mort', enfin je ne sais pas si Gilux l'a oublié ou quoi que ce soit, mais bon ^^
Donc en gros, je ne sais pas vraiment mon niveau de codage du pawn, mais j'ai assez de difficulté avec la création de commande. Quand il s'agit de modifier des commandes pour qu'elles fassent X ou Y chose ou changer ses conditions, c'est de la rigolade. En gros, je suis bon pour éditer du pawn, mais rendu à la création de fonctions & commandes, je suis nul et je bloque un peu, même après avoir suivi X nombre de fois je ne sais combien de tuto (dont ceux de Gilux). J'aimerais donc que des gens me donnent des exercices pour m'améliorer puis qu'ils me corrigent après, enfin un genre de cours mais ici avec vous :p, et je suis sûr que ça pourrait aider plus d'un de faire des choses du genre.
Merci d'avance de vos réponses ou de votre aide, ou si je ne suis pas à la bonne place simplement me rediriger l'erreur est humaine ^^
Précision : La commande que j'ai créé avec le plus de succès jusqu'à date est une commande très basique en me basant sur les tutoriels de Gilux
|
|
|
|
|
Journalisée
|
|
|
|
Gzsume
« J'apprends donc je suis »
Hors ligne
Team NSG
GTAOnline Fan Boy

Messages: 2113
|
 |
« Répondre #51 le: 02 Septembre 2011 à 05:54:20 » |
|
En ce qui me concerne, j'ai n'ai ni le temps, ni la motivation nécessaire pour pondre des exercices et les corrigés. Si tu es à l'aise lorsque tu édites des code source (sans rencontrer de problème avec le langage en question), mais que tu bloques sur la création de fonctions (commandes/etc) à partir de zéro, c'est que tu ne réfléchies pas assez à l'algorithme que tu dois mettre en place. Pour y remédier, je te conseille la lecture de ce tutoriel, assez instructif, plaisant à lire et bien écrit.
Tu peux également t'entraîner à écrire des algorithmes sans pour autant fournir le code qui va avec. Une fois que tu as l'algorithme devant les yeux, il est beaucoup plus facile de mettre les mains dans le cambouis. Aller, puisse qu'on est sur le topic des exercices, je t'en propose un rapidement (ça tombe bien, je m'ennuyais). On va donc dire que pour une raison X ou Y, on a besoin de créer une fonction qui détermine si l'ID d'un skin est valide ou non. La fonction devra demander un argument (à savoir, l'ID du skin à vérifier), et renverra 1 pour « vrai », sous-entendu « skin valide », et 0 pour « faux », sous-entendu « skin invalide ».
À noter que les skins vont de l'ID 0 à 299 inclus, et que les suivants sont invalides : 3, 4, 5, 6, 8, 42, 65, 74, 86, 119, 149, 208, 266, 273 et 289. Pour réaliser l'exercice, tu devras dans un premier temps écrire l'algorithme de la fonction, en réfléchissant à la logique à suivre afin de résoudre le problème posé, et dans un second temps, on passera à la pratique en écrivant notre code source. Je ne fourni pas de correction toute-faîte, je baserais mes remarques sur ce que tu produits, ce qui te permettra de mieux comprendre ce qui ne va pas (et ce qui va). Bonne chance !

|
|
|
|
|
Journalisée
|
« Dans la vie, il faut savoir transformer les citrons en limonade. »
|
|
|
Vellric
Hors ligne
Petit nouveau

Messages: 9
|
 |
« Répondre #52 le: 02 Septembre 2011 à 13:51:09 » |
|
Merci à toi je vais regarder pou faire ça et je la mettrai sur le sujet pour voir ce que ça donne ^^
|
|
|
|
|
Journalisée
|
|
|
|
Gilux
Hors ligne
GTAOnline Addict

Messages: 1296
|
 |
« Répondre #53 le: 30 Octobre 2011 à 12:39:48 » |
|
Salut ! Ça faisait longtemps que je n'avais rien posté, alors je vais m'inspirer de ce que j'ai fait hier (enfin, très tôt ce matin) pour un petit exercice  Cet exercice est plus mathématique que lié au Pawn, enfin c'est pas grave ça vous fera du bien  J'avais préparé une demande d'aide avant de réussir à le faire par moi-même :fier: Donc je remet le schéma que j'avais préparé :  Le schéma était préparé pour un système de montgolfière. C'est à dire que le joueur est dans son ballon au point A. Le ballon doit se diriger sur une distance de 5 unités (=5m) vers le FacingAngle du joueur quand celui-ci appuie sur Espace ou Majuscule selon les configs (KEY_SPRINT). C'est à dire que si le joueur est dirigé vers le nord-est, le ballon ira vers cette direction, mais il parcourra TOUJOURS 5m. Le but est ici de calculer AC et AD pour trouver les coordonnées précises du point B. Les fonctions qui pourraient vous être utiles : • GetPlayerFacingAngle • floatcos • floatsqroot Si vous n'avez pas encore la 0.3d, pas grave, n'hésitez pas à ne faire que l'algorithme si vous voulez  Bonne chance 
|
|
|
|
|
Journalisée
|
|
|
|
Ssk
Développeur d'Open SA-MP
En ligne
Sous-admin
GTAOnline Legend

Open-SA-MP - Unlimited Experience
Messages: 3725
 
|
 |
« Répondre #54 le: 30 Octobre 2011 à 13:29:52 » |
|
Comme ça ? MoveObjectFromAngle( objectid, Float:Angle, Float:Distance ) { new Float:posX = 0.0, Float:posY = 0.0, Float:posZ = 0.0; GetObjectPos( objectid, posX, posY, posZ ); posX += Distance * -floatsin( Angle ); posX += Distance * -floatcos( Angle ); MoveObject( objectid, posX, posY, posZ, 1.0 ); }
|
|
|
|
|
Journalisée
|
|
|
|
Gilux
Hors ligne
GTAOnline Addict

Messages: 1296
|
 |
« Répondre #55 le: 30 Octobre 2011 à 13:44:36 » |
|
Ça semble bon, moi j'ai mis beaucoup plus de lignes que ça par contre 
|
|
|
|
|
Journalisée
|
|
|
|
S!m
Hors ligne
Moderateur
GTAOnline Fan Boy

Messages: 2260
|
 |
« Répondre #56 le: 05 Novembre 2011 à 21:08:12 » |
|
Salut, petite erreur sasuke: posX += Distance * -floatsin( Angle ); posX += Distance * -floatcos( Angle );
Sinon c'est pas mal bon. Je ne sais pas si MoveObject retourne une valeur particulière (par exemple en cas d'objet inexistant), mais on pourrait la rendre utilisable ainsi: MoveObjectFromAngle( objectid, Float:Angle, Float:Distance ) { new Float:posX = 0.0, Float:posY = 0.0, Float:posZ = 0.0; GetObjectPos( objectid, posX, posY, posZ ); posX += Distance * -floatsin( Angle ); posY += Distance * -floatcos( Angle ); return MoveObject( objectid, posX, posY, posZ, 1.0 ); } sinon, tes montgolfières ne devraient pas pouvoir monter et descendre? Pour faire un truc plus réaliste ce serait bien de faire une matrice de vents (je parle de tableau bidimensionnel bien sur) qui dépendent de la position en x et y. On pourrait ainsi imposer le déplacement en X et Y à la montgolfière comme c'est le cas en réalité. La matrice pourrait être modifié à tous les X minutes et le joueur pourrait contrôler le bruleur de la montgolfière. Le bruleur devrait avoir un effet sur l'altitude de la montgolfière, effet retardé de quelques secondes vu le délai pour la répartition de l'air dilaté... Bref, ça devient un script intéressant. ++Sim++
|
|
|
|
|
Journalisée
|
|
|
|
Gilux
Hors ligne
GTAOnline Addict

Messages: 1296
|
 |
« Répondre #57 le: 12 Novembre 2011 à 22:35:47 » |
|
Salut, Petit corrigé rapide (Sans code, l'algorithme seul était à trouver) : Il fallait utiliser les fonction floatcos et floatsin avec le paramètre degrees (Ou Radians si vous vouliez, mais bon c'était totalement inutile...) Après, les opérations de trigonométrie faisaient le reste : Calcul du coté BD en fonction de l'angle, et application du théorème de Pythagore pour trouver AD en fonction de AB et BD. (AD² = AB² + BD²) Comme BD = CA, on connaît la distance du point C et du point D par rapport au point A, ce qui permet de trouver les bons paramètres de nouvelle position pour la fonction MoveObject !
++
|
|
|
|
|
Journalisée
|
|
|
|
|
|
Xolokos
PAWN/XHTML/CSS
Hors ligne
GTAOnline Big Member

IA n'est rien comparé a la stupidité naturel.
Messages: 486
|
 |
« Répondre #59 le: 18 Novembre 2011 à 11:49:20 » |
|
Et ben dit donc je vais devoir me remettre a la trigo' ça ma bien aidé merci.
|
|
|
|
|
Journalisée
|
|
|
|
|