Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
Connexion avec identifiant, mot de passe et durée de la session

 
avancée

254730 Messages dans 14037 Fils de discussion- par 6623 Membres - Dernier membre: Magicien

24 Mai 2012 à 14:37:58
GTAOnline.frSan Andreas MultiplayerScripting SA-MP [Pawn center] (Modérateurs: S!m, Xartrick)Besoin d'aide (tres) précise
Pages: [1]   Bas de page
Imprimer
Auteur Fil de discussion: Besoin d'aide (tres) précise  (Lu 254 fois)
0 Membres et 2 Invités sur ce fil de discussion.
Nico_Torres
Hors ligne Hors ligne

Petit nouveau
*

Messages: 29


« le: 05 Août 2009 à 19:41:13 »

Bonjour a tous, depuis maintenant 2 heures, je suis en train de lire les tutos du wiki de gta online, jusqu'ici tout va bien, enfin, jusqu'à que j'arrive a la parti des "Define",


La parti, d'accord, je comprend tout ( je crois )
La parti 2.1, sa peut aller, je comprend pas tout...
Le reste m'échappe complétement, j'ai beau relire je comprend pas les Float, ( pareil pour string... )


Est ce que quelqu'un d'entre vous pourrais m'expliquer en detail ce que font les define, comment les utiliser ect...

_____________________________________________________________________________________________________________________________________________________


Aussi, je comprend pas le ''public" et le "return'', merci de m'expliquer !





Je vous remerci beaucoup d'avance, bonne soirée !
 
Journalisée

Cordialement,
Nico Torres,
Noob en script et tout ce qui va avec =D

~~ Besoin d'aide ~~
hardcoder
Hors ligne Hors ligne

Criminel entrainé
*

Messages: 61


« Répondre #1 le: 05 Août 2009 à 21:11:35 »

Les #define dans Pawn sont très utiles. Il est difficile d'expliquer tout ce qui est possible de faire avec, mais je vais essayer.

Avec, il est possible de faire des options de compilation, ou bien des fonctions qui ne peuvent pas être scriptées 'normalement', mais l'usage le plus courant est la simple substitution de texte, ce qui permet de ne pas avoir à modifier dans tout le script une certaine valeur.

Les #define ne sont pas compilées. Ce sont des directives du précompilateur (appellé aussi préprocesseur).


Un exemple de substitution:
Code: (pawn)
#define MESSAGE_TEST "Test un deux un deux"

public OnPlayerConnect(playerid)
{
    SendClientMessage(playerid, 0xFFFFFFFF, MESSAGE_TEST);
    return false;
}

public OnPlayerSpawn(playerid)
{
    SendClientMessage(playerid, 0xFFFFFFFF, MESSAGE_TEST);
    return false;
}
Au moment de la précompilation, ce script va se transformer en:
Code: (pawn)
public OnPlayerConnect(playerid)
{
    SendClientMessage(playerid, 0xFFFFFFFF, "Test un deux un deux");
    return false;
}

public OnPlayerSpawn(playerid)
{
    SendClientMessage(playerid, 0xFFFFFFFF, "Test un deux un deux");
    return false;
}
C'est très utile si tu utilise plusieurs fois le même message dans ton script. Si tu veux changer le message, tu n'as qu'a changer la #define, au lieu de changer partout dans le script.




Un exemple d'option de compilation:
Code: (pawn)
//#define OPTION

public OnFilterScriptInit()
{
    #if defined OPTION
        print("OPTION est défini, ce message va donc apparaitre dans la console");
    #endif
}

Si tu teste ce script, tu verra que le message n'apparait pas dans la console. Pour qu'il apparaisse, tu devra enlever les // devant la #define.




Maintenant un exemple de fonction qu'il est trèèès compliqué de reproduire avec du code normal:
Code: (pawn)
new g_message[128];

#define SendClientMessageEx(%1,%2,%3) \
{\
    format(g_message,sizeof g_message,%3);\
    SendClientMessage(%1,%2,g_message);\
}
Les '\' signifient que la define continue sur la ligne suivante.

Maintenant, tu peut l'utiliser comme ceci:
Code: (pawn)
SendClientMessageEx(playerid, 0xFFFFFFFF, "Tu roule à %d km/h et tu as %d €", Vitesse[playerid], Monnaie[playerid]);
Journalisée
Nico_Torres
Hors ligne Hors ligne

Petit nouveau
*

Messages: 29


« Répondre #2 le: 05 Août 2009 à 22:36:03 »

Salut, merci de ta réponse, j'ai donc quelque questions, dans le premiere script, pourquoi avoir, OnPlayerSpawn & OnPlayerConnect ? On PEUX en enlever un des deux ?
Je ne comprend pas le Print ect, le tuto de wiki gta online est t-il complet, car je ne crois pas tout avoir compris :|, new g_message aussi je ne sais pas ce que c'est, format: pareil,
Ensuite, le derniere code, si on met sa dans un Gm, sa fera quoi ?
Car un systeme d'amende c'est pas bête, mais j'aimerais le créer moi même, je vais avoir besoin d'un #Define de quoi ?
Journalisée

Cordialement,
Nico Torres,
Noob en script et tout ce qui va avec =D

~~ Besoin d'aide ~~
Ssk
Développeur d'Open SA-MP
Hors ligne Hors ligne


Sous-admin
GTAOnline Legend
*

Open-SA-MP - Unlimited Experience

Messages: 3731


WWW



sasuke78200

« Répondre #3 le: 05 Août 2009 à 22:56:52 »

bon je vais un peu t aider

en faite le new g_message[256]; est une variable ( array ou string) cette variable est particuliere grace a son [256] ce 256 veut dire un chose,
c' est quel alloue une quantité de memoire de 256 bit ( si c' est ca enfin je l espere ) pour y stocker des information( des chiffres et des lettres ).

Voila pour le array

il y a ensuite les variable normal qui se presente comme cela

new variable;

ces variables la peuvent uniquement stocker des chiffre entier.

et puis il y a les float qui se presente comme cela

new Float:variable;

ces variables la stocke des chiffre decimal ( entier ou pas ).

Puis voila tout et pour les onplayerconnect et onplayerspawn il vaut mieu les laisser
Journalisée






Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog
Nico_Torres
Hors ligne Hors ligne

Petit nouveau
*

Messages: 29


« Répondre #4 le: 05 Août 2009 à 23:09:16 »

Je comprend pas...
Journalisée

Cordialement,
Nico Torres,
Noob en script et tout ce qui va avec =D

~~ Besoin d'aide ~~
cristab
Hors ligne Hors ligne


Admin V.I.P
GTAOnline Legend
*

Messages: 7333


« Répondre #5 le: 05 Août 2009 à 23:20:22 »

Voila un site assez complet sur ce que tu demande mais il est en anglais comme la progrmation PAWN ce fait en anglais

http://wiki.sa-mp.com/wiki/Category:Scripting_Callbacks

http://wiki.sa-mp.com/wiki/Category:Tutorials

http://wiki.sa-mp.com/wiki/Scripting_Basics


Le pawn center de gtaonline est toujour en cours de construction et ne peu donc pas etre complet le soucis de t'expliquer tout ce que tu veut savoir sur un post me parrait trop long a ecrire comme a lire essaie avec les lien ci dessus
Journalisée

Lychaos
Hors ligne Hors ligne


Tueur en série
*

Disciple de Cristab|Apprend le PAWN

Messages: 168


« Répondre #6 le: 05 Août 2009 à 23:34:51 »

Ben pendant qu'on discute de tuto, j'en avais vu un qui aider a modifier(ou crée) un DM
Et heu ,j'avais eu des soucis mais maintenant que je m'y suis remit, si quelqu'un retrouve le tuto sa s'rait cool ^^

Bonne soirée
Journalisée

---
++Lychaos Ster++
Darth Pawn
Que le code soit avec nous

~~Connaisseur PAWN~~
~~Connaisseur xHTML/CSS~~
~~Connaisseur PHP/MySQL~~


En projet pour un Assaut

-- Serveur Assaut, multi GM, braquage de banque, attaque de l'Area51 avec objectif -> En cours !
---
Nico_Torres
Hors ligne Hors ligne

Petit nouveau
*

Messages: 29


« Répondre #7 le: 06 Août 2009 à 10:23:40 »

Je lis pas l'anglais  Triste
Mais merci quand même
Journalisée

Cordialement,
Nico Torres,
Noob en script et tout ce qui va avec =D

~~ Besoin d'aide ~~
Pages: [1]   Haut de page
Imprimer
Aller à:  

Theme créé par padexx et modifié par GTAOnline.fr
Page générée en 0.171 secondes avec 21 requêtes.
Forum GTAOnline.fr 2.0 | Design par : Lalu et GtaManiac
Merci a toute la communaute pour son support !
Copyright © 2004-2012 - GTAOnline.fr | GTAPro.com | Contact