• 06 Juillet 2025, 07:49:52


Auteur Sujet: [En Attente] [2] Quelques questions  (Lu 1083 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Abdelhakim

  • *
  • Nouveau
  • Messages: 14
    • Voir le profil
[En Attente] [2] Quelques questions
« le: 22 Février 2011, 11:13:23 »
Débutant en Pawn

Je créé un second poste dans le même but : Augmenter mon savoir dans l'univers du Pawn !
Grâce à vous j'ai pu réussir pas mal de script, parfois compliqué mais je n'osais plus demander parce que j'avais compris à quel point il fallait que je cherche seul.
Mais parfois je ne trouve pas ce qu'il me faut, dans ce cas là : je viens vous demander un peu d'aide et explication.

[ 1 ]
----------------------------------------------------
J'ai réussi à créé une faction " Gardien ", mais dans l'optique du RP le Gardien possède une Radio. (/r)
Hors je ne sais pas faire un script d'envoi de message et lecture pour certaine personne. Je pensais faire la commande /r [Texte] depuis une fonction qui serait SendClientMessageToGardien(COLOR,cmdtext[]); Mais je ne sais pas créer de fonction, là encore vous pourrez m'aider dans ma quête d'apprentissage. A moins que vous n'ayez une autre idée moins compliqué, ou plus facile à comprendre/manipuler, je suis ouvert à vos propositions !

----------------------------------------------------


[ 2 ]
----------------------------------------------------
Est-il possible de ne pouvoir taper une commande, que si le joueur est sur un pickup ? Moi je pense que oui, mais je ne sais pas vraiment le faire.
Qu'on me fouette si il existe déjà une fonction pour le faire, car j'ai cherché mais sans succès  >:(.

----------------------------------------------------

[ 3 ]
----------------------------------------------------
Je n'arrive pas à trouver la fonction qui permet d'écrire un texte dans le jeu. Je m'explique : on prend un pickup on le met devant une porte pour dire qu'on peut rentrer dans le bâtiment, mais pour préciser le nom du bâtiment on met un texte sur le pickup (ou à coté).
Vosu voyez de quoi je veux parler ? Si non, je posterai un screen de l'exemple !

----------------------------------------------------

« Modifié: 22 Février 2011, 11:18:44 par Abdelhakim »

Hors ligne Gilux

  • *
  • Mafioso
  • GOOBY PLS
  • Messages: 2209
    • Voir le profil
Re : [En Attente] [2] Quelques questions
« Réponse #1 le: 22 Février 2011, 11:25:08 »
Salut,

1 ==> Pour créer une fonction, c'est simple : Tu dois utiliser l'opérateur "stock".
Comme ceci :
Code: (Pawn) [Sélectionner]
stock Nom(playerid)
{
      new Name[MAX_PLAYER_NAME];
      GetPlayerName(playerid,Name,sizeof(Name));
      return Name;
}

Cette fonction permet de récupérer le nom directement et de l'utiliser directement dans une phrase formatée.
Pour ton problème, créer une fonction est un peu inutile, tu peux faire une condition dans le style :

if(IsPlayerGardien)
{
    
SendClientMessage(playerid,color,message[]);
}


2 ==> *sort le fouet* Non je plaisante.  :ninja Mais maintenant, tu peux créer toi même la fonction en combinant IsPlayerInRangeOfPoint avec la position du pickup :P
Si tu n'y arrives pas après quelques essais, je te montrerai comment faire. Tu peux voir un exemple de fonction dans le tuto de Syg (Quelques règles de base pour mieux scripter).

3==> Si c'est ce que je pense c'est Create3DTextLabel  :happy

Bonne chance !  ;)

Hors ligne Abdelhakim

  • *
  • Nouveau
  • Messages: 14
    • Voir le profil
Re : [En Attente] [2] Quelques questions
« Réponse #2 le: 22 Février 2011, 11:59:13 »
Encore une fois de plus, merci à toi Gilux (:

1) Le IsPlayerGardien(playerid) est une fonction je suppose ? Et elle n'est pas implanté dans Pawno ?

2) J'ai pas vraiment compris quand tu parlais de " combinaison ". Je comprends mieux avec des exemples .

3) Je l'avais déjà utilisé, mais sans succès.
Et aussi, j'ai remarqué un truc :

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


(En bas de Pawno quand je clique sur Create3DTextLabel à Droite.)

Lequel est le bon ?
Peux-tu me montrer un exemple s'il t'y plait ? x)

Hors ligne Gilux

  • *
  • Mafioso
  • GOOBY PLS
  • Messages: 2209
    • Voir le profil
Re : [En Attente] [2] Quelques questions
« Réponse #3 le: 22 Février 2011, 12:20:27 »
1) Pour l'histoire du gardien, quelle variable montre la faction (ou le job, désolé mais moi et le RP ça fait 2 ^^) ? On peut justement créer la fonction IsPlayerGardien à partir de la variable.
Du genre :

stock IsPlayerGardien
(playerid)
{
      if(
Job[playerid] == 4// Disons que 4 c'est le gardien x)
      
{
           return 
true// On retourne "true" (Vrai).
      
}
}


Donc, en l'utilisant ça pourrait faire :

if(IsPlayerGardien)
{
    
// Action à faire
}


2) J'ai scripté ça vite fait.

stock IsPlayerOnAPickup
(playerid,Float:X,Float:Y,Float:Z)
{
      if(
IsPlayerInRangeOfPoint(playerid,1,X,Y,Z)) // Si le joueur est à moins d'1 unité du Pickup
      
{
          return 
true// On retourne "true"
      
}
}


C'est le même principe que pour le gardien.


3) C'est celle du Wiki qui est bonne.

++


Hors ligne Abdelhakim

  • *
  • Nouveau
  • Messages: 14
    • Voir le profil
Re : [En Attente] [2] Quelques questions
« Réponse #4 le: 22 Février 2011, 12:38:56 »
1) Merci je n'ai rien à redire, mais le but de la fonction c'est de mit repérer. Puisque pour le moment il n'y a qu'une faction, mais imagine y en a 5 ou 6, dure de s'y retrouver. Or là je sais que la fonction ne concerne que les Gardiens.

2) Comment dois-je utiliser la fonction sur un CreatePickup ? Puisque je pense avoir une dizaine de Pickup. [Edit 16h22 : C'est bon j'ai trouvé !]

3) Merci de ta réponse, mais son utilisation me parait compliquée. Un exemple ? [Edit 16h22 : Toujours en attente de réponse.]
« Modifié: 22 Février 2011, 16:22:44 par Abdelhakim »

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : [En Attente] [2] Quelques questions
« Réponse #5 le: 27 Février 2011, 03:36:06 »
Citation de: Gilux
1 ==> Pour créer une fonction, c'est simple : Tu dois utiliser l'opérateur "stock".

stock est seulement utiliser pour ne pas avoir d'erreur de non-utilisation d'une fonction.

public Fonction()
{

}

Fonction()
{

}

stock Fonction()
{

}

...

Citation de: Gilux
2 ==> *sort le fouet* Non je plaisante.   Mais maintenant, tu peux créer toi même la fonction en combinant IsPlayerInRangeOfPoint avec la position du pickup
Si tu n'y arrives pas après quelques essais, je te montrerai comment faire. Tu peux voir un exemple de fonction dans le tuto de Syg (Quelques règles de base pour mieux scripter).

*Sort le fouet* (je plaisante également). Il existe déjà une fonction évènementiel pour cela, OnPlayerPickUpPickup.