• 04 Juin 2026, 16:46:48


Auteur Sujet: Erreur pawn v0.2.1  (Lu 3752 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne GTK_dadou

  • Une régle d'or ne jamais énerver un GTK
  • *
  • Tueur en série
  • Gestion du serveur GTK
  • Messages: 151
    • Voir le profil
    • GTK_Team
Erreur pawn v0.2.1
« le: 27 Juin 2007, 14:46:07 »
Bonjour a tous

Je vous expose mon probleme:
J'avait fait un script rpg (lvdmod) sout la version 0.1 de sa-mp il y avait aucun erreur [Pawn compiler 3.2.3664  Copyright (c) 1997-2006, ITB CompuPhase]
Mais depuit que la version v0.2.1 a vu je jour il a falut pour moi faire passer ce mode en v0.2.1 (comme vous l'avez fait pour vos server).
Et j'ai téléchargé le server et j'ai compilé avec le pawno du server v0.2.1 et j'ai récolter un grand nombre de "WARNING" voici un exemple.
C:\DOCUME~1\dadou.TITANIUM\Bureau\samp-server-0.2.1-win32\gamemodes\rpg.pwn(4667) : warning 235: public function lacks forward declaration (symbol "SendPlayerFormattedText")
C:\DOCUME~1\dadou.TITANIUM\Bureau\samp-server-0.2.1-win32\gamemodes\rpg.pwn(4674) : warning 235: public function lacks forward declaration (symbol "SendAllFormattedText")
C:\DOCUME~1\dadou.TITANIUM\Bureau\samp-server-0.2.1-win32\gamemodes\rpg.pwn(4713) : warning 235: public function lacks forward declaration (symbol "FuelDown")
C:\DOCUME~1\dadou.TITANIUM\Bureau\samp-server-0.2.1-win32\gamemodes\rpg.pwn(4722) : warning 235: public function lacks forward declaration (symbol "FuelRefill")
C:\DOCUME~1\dadou.TITANIUM\Bureau\samp-server-0.2.1-win32\gamemodes\rpg.pwn(4739) : warning 235: public function lacks forward declaration (symbol "CheckGas")

J'ai remarqué que sa avait un rapport avec les fonction "public"
public FuelDown() {
public FuelRefill(playerid) {
public CheckGas() {

Et pour continué j'ai aussi 2 erreur que je comprent pas non plus :
C:\DOCUME~1\dadou.TITANIUM\Bureau\samp-server-0.2.1-win32\gamemodes\rpg.pwn(4079) : error 025: function heading differs from prototype
C:\DOCUME~1\dadou.TITANIUM\Bureau\samp-server-0.2.1-win32\gamemodes\rpg.pwn(4115) : error 025: function heading differs from prototype

ET sa prenvien de cet 2 ligne:
public OnPlayerStateChange(playerid, newstate, oldstate, i) {
public OnGameModeInit(i,q) {

Si vous avez une petit ideé sa serait simpas Merci d'avance   ;)
a bientot


Hors ligne spykerc8

  • *
  • 'The GTAOnline.fr GodFather'
  • Messages: 3821
    • Voir le profil
    • http://www.gtaonline.fr
Re : Erreur pawn v0.2.1
« Réponse #1 le: 27 Juin 2007, 15:14:21 »
Les fonctions public doivent être déclarées avant d'être utilisées

Code: (C++) [Sélectionner]
forward FuelDown();
forward FuelRefill(playerid);
forward CheckGas();


~ Leader honoraire de la FsK Team ~ -
~ Membre honoraire de la PCP Team ~

Co-fondateur de GTAO - Retraité de la communauté

"Nous ne sommes rien, soyons tout !"


Hors ligne At1x

  • *
  • Criminel
  • Messages: 28
    • Voir le profil
Re : Erreur pawn v0.2.1
« Réponse #2 le: 27 Juin 2007, 15:41:18 »
Salut.
Pour tes warnings il faut bien mettre un forward pour chaque nouvelle fonction qui n'est pas intégrée par défaut.
Sinon pour tes deux erreurs enfait tu ne peux pas modifier la syntaxe des fonctions par défaut donc par exemple quand tu veux utiliser la variable "i"(qui normalement coreespond a tout les joueurs sur le serveur) il faut que tu utilises la condition :

for(new i=0;i<MAX_PLAYERS;i++) {
// Tes instructions utilisant la variable "i" ici
}

Si tu nous disais a quoi correspond la variable "q" on pourrait t'aider mais je connais pas cette variable.
Conclusion : on ne peut pas modifier les CallBacks par défaut.
« Modifié: 27 Juin 2007, 15:54:22 par At1x »

Hors ligne spykerc8

  • *
  • 'The GTAOnline.fr GodFather'
  • Messages: 3821
    • Voir le profil
    • http://www.gtaonline.fr
Re : Re : Erreur pawn v0.2.1
« Réponse #3 le: 27 Juin 2007, 16:16:43 »
Sinon pour tes deux erreurs enfait tu ne peux pas modifier la syntaxe des fonctions par défaut donc par exemple quand tu veux utiliser la variable "i"(qui normalement coreespond a tout les joueurs sur le serveur) il faut que tu utilises la condition :

for(new i=0;i<MAX_PLAYERS;i++) {
// Tes instructions utilisant la variable "i" ici
}

Conclusion : on ne peut pas modifier les CallBacks par défaut.

- "i" ne désigne pas nécessairement les joueurs. Il s'agit plutôt d'une convention qui dit qu'on utilise i dans les boucles pour incrémenter un Int ou une variable, ça peut servir à tout autre chose, et tu peux prendre j si ça te chante... :D
- C'est juste, c'est pour ça que c'est mieux de prendre ses petites mains et de coder ses propres fonctions :)


~ Leader honoraire de la FsK Team ~ -
~ Membre honoraire de la PCP Team ~

Co-fondateur de GTAO - Retraité de la communauté

"Nous ne sommes rien, soyons tout !"


Hors ligne At1x

  • *
  • Criminel
  • Messages: 28
    • Voir le profil
Re : Erreur pawn v0.2.1
« Réponse #4 le: 27 Juin 2007, 16:19:31 »
Je sais mais enfait elle est principalement utilisée pour désigner tous les joueurs d'un serveur c'est pour sa que je dis sa ^^.

Oui c'est toujours mieux de coder ses propres fonctions d'ailleurs la je dois enfaire une pour savoir si un slot d'arme est vide ou pas  :dry.
« Modifié: 27 Juin 2007, 16:58:49 par At1x »

Hors ligne GTK_dadou

  • Une régle d'or ne jamais énerver un GTK
  • *
  • Tueur en série
  • Gestion du serveur GTK
  • Messages: 151
    • Voir le profil
    • GTK_Team
Re : Erreur pawn v0.2.1
« Réponse #5 le: 27 Juin 2007, 21:14:12 »
lol vous prenez pas le tete pour si peux je vous explique en fait le "i" et le "q" sa sere a fait fonctione mon speedometre enfin je croi car c'est assez complique  :blink

Bon voici le code en entier pour le I et le Q:

Je vous mais tout sur le pastebin ici = http://pastebin.gtaonline.fr/pastebin.php?show=13
Merci de votre aide   :D
« Modifié: 27 Juin 2007, 21:19:52 par [S.A.T.K]dadou »


Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Erreur pawn v0.2.1
« Réponse #6 le: 28 Juin 2007, 10:14:28 »
C'est bien tenté Dadou mais malheureusement, tu n'as pas le droit de modifier la prototype de la fonction OnGameModeInit.
c'est public OnGameModeInit () et pas autre chose.

Donc pour ton i et ton q, pourquoi est-ce que tu ne les déclares pas tout simplement dans la fonction elle même avec le ligne :

new i, q;

juste après le ligne :

public OnGameModeInit() {

Ou carrement mettre le new dans la ligne for comme c'est fait à d'autre endroit dans ton script :

for(new q=0;q<MAX_PLAYERS;q++) {

De toutes façons, cette fonction n'est appelée qu'une fois par le serveur SA-MP (on demarrage de ton mod donc au lancement du serveur et après chaque "gmx").


Courtesy of GtaManiac

Hors ligne GTK_dadou

  • Une régle d'or ne jamais énerver un GTK
  • *
  • Tueur en série
  • Gestion du serveur GTK
  • Messages: 151
    • Voir le profil
    • GTK_Team
Re : Erreur pawn v0.2.1
« Réponse #7 le: 28 Juin 2007, 16:56:54 »
C'est bon je vous remerci de votre aide je n'ai plus d'erreur, Mais parcontre il me reste 1 warning
C:\DOCUME~1\dadou.TITANIUM\Bureau\Server RPG\gamemodes\SRC\rpg.pwn(4685) : warning 217: loose indentation

Voici la ligne 4685
SetTimer("MoneyGrubScoreUpdate", 1000, 1);
Merci d'avance est a bientot Merci de m'avoir éclaré 

 :cheers
« Modifié: 28 Juin 2007, 17:02:45 par [S.A.T.K]dadou »


Hors ligne spykerc8

  • *
  • 'The GTAOnline.fr GodFather'
  • Messages: 3821
    • Voir le profil
    • http://www.gtaonline.fr
Re : Erreur pawn v0.2.1
« Réponse #8 le: 28 Juin 2007, 17:22:13 »
Il faut respecter les colones dans le code, c'est tout.
Ca permet d'avoir un code ultra lisible et qui s'exécute correctement :)


~ Leader honoraire de la FsK Team ~ -
~ Membre honoraire de la PCP Team ~

Co-fondateur de GTAO - Retraité de la communauté

"Nous ne sommes rien, soyons tout !"


Hors ligne GTK_dadou

  • Une régle d'or ne jamais énerver un GTK
  • *
  • Tueur en série
  • Gestion du serveur GTK
  • Messages: 151
    • Voir le profil
    • GTK_Team
Re : Erreur pawn v0.2.1
« Réponse #9 le: 29 Juin 2007, 11:37:58 »
ok merci bien j'ai reussi a compile mon rpg bon je me remet au boulot

merci beaucoup a bientot  :D

PS: spykerc8 sa serait bien si tu pouvais allez ici = http://www.gtaonline.fr/forums/index.php/topic,1049.0.html
car j'ai fait une demande de recrutement, qui date du 2 juin, c'était juste pour savoir ce qu'il en etait
Merci bien +++ et bon jeux.

EDIT: je vourais aussi savoir comment ajouter des vehicule dans les interieurs j'ai essaye sa LinkVehicleToInterior(ID vehicule ,IDinterieur); mais sa ne fonctionne pas le vehicule est invisible  :(

 :jesors
« Modifié: 30 Juin 2007, 15:31:16 par [S.A.T.K]dadou »