Aller au contenu

Certains Véhicules Font Planter ?


yohannc

Messages recommandés

Bonjour par là,

Ca fait un moment que je n'ai pas fais un tour par ici.

Y a quelques jours je me suis remotivé pour "débugguer mon mod" qui est injouable pour l'instant (crash des clients au hasard au bout de 20 min max).

J'avais déjà posté un topic > http://www.macreacity.com/index.php?showtopic=31547.

Je n'avais pas eu de réponses permettant de régler mon problème (merci quand même pour les propositions :frim: ).

J'ai donc passé quelques heures à trouver mon problèmes (j'ai fais une macro pour écrire à chaque ligne de code "SendClientMessage(0, COLOR_GREEN, "ligneDebugX");" afin de m'afficher la dernière ligne exécutée, j'arrivais à chaque fois en fin de fonction, donc aucune aide à ce niveau.

J'ai remarqué que j'ai 2 types de crash.

Le premier type c'est lors d'une collision, ça peut crasher de temps en temps, et uniquement quand le serveur et le client sont sur le même pc (ce que j'ai cru remarquer).

Le deuxieme type de crash c'est au départ d'un round (dans mon mod entre chaque round on se déplace d'un endroit à un autre de la carte). Quand la caméra arrive à 50m du véhicule ça arrive de temps en temps que ça crash (des fois 1 joueur crash, des fois plusieurs d'un coup).

J'en ai donc conclu que ça pourrait venir des véhicules, j'utilise le pickup défoncé (id 605) et le van avec un hotdog sur le toi.

Ce qui m'a fait pensé que ça pouvais venir des véhicules c'est que comme par hasard c'est au moment où on est assé proche du véhicule et aussi parce que le skin du véhicule varie (pour le pickup des fois il y a des bidons derriere et des fois c'est une palette...). J'imagine que ce skin est géré côté client (ce qui pourrait expliquer les plantages aléatoire côté clients si certains skins sont mauvais).

 

Donc est ce que quelqu'un aurait trouvé la liste des id de véhicules à ne pas utiliser ?

J'aimerai aussi savoir si vous connaissez des véhicules assez lent (pour faire des courses poursuites c'est toujours mieux quand la cible va moins vite, sachant qu'il est impossible de ralentir un véhicule par un script, si ce n'est en désactivant les commandes temporairement du joueurs, ce qui n'est pas terrible).

Merci de votre coopération ;) .

 

PS : Lorsque ce mod fonctionnera sans plantages, je pourrai le distribuer si ça intéresse du monde, c'est surtout un mod pour jouer en lan, qui met direct dans l'action. Je peu toujours poster une vidéo sur youtube.

Modifié par yohannc
Lien vers le commentaire
Partager sur d’autres sites

Comme véhicule lent tu a la manana ^^ Buffalo, lowrider qui est lente mais pas trop quand même ;)

 

Sinon pour tes bugs, as tu réglé les warnings ?? Parce que dans ton topics précédent ou tu avais le même problème de bugs, tu avais 365 warnings. C'est beaucoup trop, je me répète mais bon. Il faut que tu les règles, les fixes, pour ne plus avoir ces warnings !! Quand ta 3 faute a un contrôl, c'est passable encore, la note sera bonne, mais si tu as 20 fautes, la, la note chute, c'est exactement pareil pour le script, moins tu as de warnings, mieux c'est :) Si tu as besoin d'un coup de main tu peut m'envoyer par MP ton msn, je sera a disposition.

Lien vers le commentaire
Partager sur d’autres sites

Déjà, merci d'avoir répondu ;)

En ce qui concerne les véhicules, je ne pense pas que l'erreur vienne de là finalement. J'ai fais un nouveau test, au lieu de faire apparaitre 1 véhicule, j'en faisait apparaitre 20 d'un coup, ça ne plantait pas plus souvent.

Et sinon en ce qui concerne les warning, non je ne les ai pas corrigé, j'étais sûr de moi (à ce niveau) mais maintenant que je suis à cour d'idées, je vais modifier le code pour les enlever. Je vous tiendrais au courant, et sinon je vais tester ces véhicules.

Merci ;)

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Désolé pour le délais de réponse, joyeux noyel et bonne année au passages ;)

 

Je connaissais pas pastebin, si j'ai bien cru comprend ça doit être ça :

http://pastebin.com/m40c274d1

 

Donc voilà, bon courage ^^. (Y a pas mal de trucs qu'on pourrait corriger m'enfin bon...), tu peux toujours regarder au niveau de la caméra, j'ai fais en sorte que quand quelqu'un n'est pas en train de jouer le round, en appuyant sur le bouton droit de la souris ou le bouton gauche ca regarde un autre joueur (chose qui ne marche pas).

Mais ça ne plante pas lorsque l'on change de caméra, donc il faut plutôt chercher ailleurs.

Modifié par yohannc
Lien vers le commentaire
Partager sur d’autres sites

Alors, voila tiens j'ai corrigé ce que je pouvais il te reste 9 warnings, que je n'est pas réussi a retirer ^^

 

http://pastebin.com/f18933c4b

 

copie colle ce qui est en bas de la page du lien ci dessus dans la fenêtre blanche.

 

Voila ;) Je ne pas corriger autre chose que tes warnings mais je pense qu'ils vont surement faire mieux marcher ton Gm, peut être pas complètement mais déjà mieux ;)

 

a++

Lien vers le commentaire
Partager sur d’autres sites

Je les avais déjà corrigés, et ça ne fonctionnait toujours pas, et comme c'était plus sâle je t'avais donc envoyé le code non corrigé.

Mais là tu l'a corrigé et il est pas plus sâle ^^ (pour les tableau contenant les spawn je les avais cassé en 2 en séparant float et int).

Donc merci quand même, je récupère ce code.

Je referai un test quand même.

Lien vers le commentaire
Partager sur d’autres sites

J'ai testé ton code mais le problème c'est qu'au final le mod ne se lance plus ^^. Enfin on peu s'y connecter mais au début de n'importe quel round ça plante puisque tu as supprimé tous les skins de véhicules. Dans le tableau spawnFlic de 7 colonnes il y a toutes les infos pour créer un véhicule.

Sinon effectivement je n'ai pas tout scripté, j'avais récupéré le mod manhuntlv. Donc oui c'est en partie à cause de ça que j'ai par exemple recréé une variable qui existait déjà, mais aussi et surtout parce que je n'ai pas vraiment étudié ce que je voulais faire en fonctionnalités dans mon mod. Je m'y étais mis direct, sachant que c'était mon premier mod.

Mais c'est domage qu'il n'existe pas de débuggeur pour ça.

Ca serait cool de pouvoir coder un mod en java, là je serai motivé pour tout refaire :rolleyes: .

 

Lien vers le commentaire
Partager sur d’autres sites

Alors les véhicules ne se créent plus parce que, comme tu la dit, les ID sont plus la, alors solution très simple ^^ :

 

tu créé un nouveau tableau avec tes ID et voila :P

 

Ba comme je l'avais dis plus haut j'avais déjà tout corrigé le code, en séparant les tableau en 2. Et en mettant les float en Float. Mais ça plantait toujours au même endroit. Donc comme ça ne vient pas de là, je garde l'ancien code (avec des warnings) qui est plus lisible.

Tant que c'est pas des erreurs ça va rien faire, genre une mauvaise indentation ça créé un warning, mais le compilateur s'en fou. Là il doit tout traduire en float automatiquement ou je sais pas comment. Mais si jamais ça créait vraiment des erreurs, ça planterait dès le début.

Lien vers le commentaire
Partager sur d’autres sites

Tu ne comprend pas :

 

Float et float ce n'est pas pareil dans Pawno

 

Float défini une valeur ( Float:vie; pour récupérer la vie d'un perso par exemple et la stoker dans le petit mot "vie")

et

float qui est une valeur défini d'origine (float:123.5,159.8,15987.56; pour un SetPlayerPos par exemple)

 

tu ne peut pas te permettre de mélanger les deux, car ton code devient encore plus foireux.

La tes warnings en plus ne sont pas des loseIdentation mais des

 

argument type mismatch

 

ce qui n'est absolument pas la même chose aussi. Ces warnings t'indique qu'a la ligne marquée entre parenthèse il manque, ou il y a en trop, des informations. Dans ton cas il y en avait en trop, les ID des véhicules.

 

Les warnings sont des messages que beaucoup de personnes ne prennent pas au sérieux car il ne font pas beaucoup changer le code, hors la, comme c'est des informations qui sont essentielles a ton code, les warnings ne peuvent que faire foirer ton code.

Donc c'est a toi de voir, ton code marche peut être mieux avec les warnings, mais tu ne t'es pas donné la peine de voir exactement ce qui cloche une fois les warnings résolus. Je t'es juste rendu ton code corrigé, rien de plus, mais j'ai vu BEAUCOUP de choses a changer, car inadaptées a ton besoin.

Le copié collé c'est vraiment pas super pour le pawn, tu devrais le savoir

 

:s

 

a++

Lien vers le commentaire
Partager sur d’autres sites

argument type mismatch [...] Ces warnings t'indique qu'a la ligne marquée entre parenthèse il manque, ou il y a en trop, des informations. Dans ton cas il y en avait en trop, les ID des véhicules.

 

Je répondrais que non, ce warning veut dire que le type est pas bon, et ça j'avais compris, et au bout d'une heure ou 2 j'avais enfin compris qu'il fallait écrire Float avec F majuscule au lieu de float. Par contre j'arrive pas à comprendre la différence, même avec ton exemple, je ne l'ai pas encore vu dans aucun code.

 

Et sinon l'erreur qui dit qu'il manque ou qu'il y a des informations en trop c'est "number of arguments does not match definition" et ce n'est pas un warning mais une erreur, et forcément là le compilateur ne reconnais pas le constructeur choisit je n'avais dnc pas mis l'id de véhicule en trop.

 

J'aurai aimé savoir les choses inadaptées à mon besoin, si tu t'en rappelle de tête comme ça, va pas t'embêter à tout reparcourir le code.

:) .

 

Je sais que le copier coller c'est pas super mais pour commencer au début c'est difficile quand pawno est tout vide^^. Et quand on voit que des fonctions font ce que l'on cherche, on les prend toute entière (en comprenant le code bien sûr, j'ai jamais rien collé sans comprendre), le plus gros problème c'est d'avoir mis certains variables et d'en avoir mis de nouvelles sans me rappeler des anciennes, du coup ça fou le bordel.

 

PS : Effectivement mon code n'est pas propre, et très loin d'être parfait, mais là j'ai l'impression que l'erreur ne vienne pas vraiment de moi. Le plantage ne survient pas lors de l'exécution d'une ligne de mon code (ça j'en suis sûr à 100%) mais les autre mods ne plantent pas, donc ça vient de mon code...

Modifié par yohannc
Lien vers le commentaire
Partager sur d’autres sites

Je répondrais que non, ce warning veut dire que le type est pas bon, et ça j'avais compris, et au bout d'une heure ou 2 j'avais enfin compris qu'il fallait écrire Float avec F majuscule au lieu de float. Par contre j'arrive pas à comprendre la différence, même avec ton exemple, je ne l'ai pas encore vu dans aucun code.

 

Et sinon l'erreur qui dit qu'il manque ou qu'il y a des informations en trop c'est "number of arguments does not match definition" et ce n'est pas un warning mais une erreur, et forcément là le compilateur ne reconnais pas le constructeur choisit je n'avais donc pas mis l'id de véhicule en trop.

 

J'aurai aimé savoir les choses inadaptées à mon besoin, si tu t'en rappelle de tête comme ça, va pas t'embêter à tout reparcourir le code.

:) .

 

Je sais que le copier coller c'est pas super mais pour commencer au début c'est difficile quand pawno est tout vide^^. Et quand on voit que des fonctions font ce que l'on cherche, on les prend toute entière (en comprenant le code bien sûr, j'ai jamais rien collé sans comprendre), le plus gros problème c'est d'avoir mis certains variables et d'en avoir mis de nouvelles sans me rappeler des anciennes, du coup ça fou le bordel.

 

PS : Effectivement mon code n'est pas propre, et très loin d'être parfait, mais là j'ai l'impression que l'erreur ne vienne pas vraiment de moi. Le plantage ne survient pas lors de l'exécution d'une ligne de mon code (ça j'en suis sûr à 100%) mais les autre mods ne plantent pas, donc ça vient de mon code...

 

 

argument type mismatch, réfléchi, on a enlever une donnée de la ligne et ça a marché ;)

je suis d'accord pour ton "number of arguments" etc...

 

Les choses inadaptés, en premier lieux, l'IDENTATION !!! Après je me souvient plus de trop, des variables qui pourraient être enlevées, modifier etc... Mais j'ai plus le code sur mon PC faudrait que je le reprenne sur le pastbin ^^

Lien vers le commentaire
Partager sur d’autres sites

on a enlever une donnée de la ligne et ça a marché ;)

Quelle donnée ? Les seules que je me souviens que ta enlevé c'est l'id du véhicule et la 2eme couleur. Ca virait les warning puisque ces 2 valeurs étaient des entiers et elles étaient mises dans un tableau de type float. Si tu vérifie tu verra que mon tableau contient 7 cases, que j'initialisais bien ces 7 cases et que la fonction createVehicle prend 7 paramètre (id du veh, posX,posY,poZ, rot, color1, color2) et que lorsque j'appelle la fonction (ligne 799 et 813) je passe les 7 cases du tableau (enfin sur le code que j'ai envoyé j'avais mis -1 pour la 2eme couleur, comme dans le gamemod cng, au lieu de la 7eme case du tableau, j'avais pensé que le plantage pouvais venir de là.)

 

Sinon pour l'indentation il n'y a pas d'erreur, enfin si tu regarde le pastbin oui, pastbin en a fait une vraie boucherie, mais si mon code était réellement comme ça j'aurai eu autant de warnings que de lignes :).

Lien vers le commentaire
Partager sur d’autres sites

Sinon essaye de mettre 8 a la place de ton 7 dans tes tableau, peut être que ça vient de la aussi.

Ca ne vient pas de là puisque si il manquait une case au tableau il y aurait une erreur à la compilation. Sinon imaginons qu'il n'y avait pas d'erreur, il serait alors quand même impossible de jouer un round, le mod planterai dès la création d'un véhicule.

J'ai corrigé le code proprement cette fois, il y a 0 warnings, et pas une ligne de code en plus, mais j'ai toujours pas eu le temps de le tester.

http://pastebin.com/m138ed299

A un endroit j'ai mais int: devant une variable, j'espère que ça marche.

Lien vers le commentaire
Partager sur d’autres sites

Bon j'ai testé vite fait déjà juste pour voir si je peu jouer au moins 1 round, et en faite ça plante direct, donc j'ai remplacé int par floatround et là c'est bon. Mais là j'ai le bug des collisions pour empêcher ça faut que je lance le serveur sur un autre pc, donc je testerai ce week end peu être.

Lien vers le commentaire
Partager sur d’autres sites

Ok, donc ton problème est presque résolu ??

Ba j'ai 2 formes de plantages dans mon mod :

La première dont j'ai la solution, ça plante de temps en temps lors de collisions avec les murs, pour pas que ça plante il faut juste que je lance le serveur sur un autre pc.

Le 2ème type de plantage, celui pourquoi je fais le topic, dont je n'ai toujours pas la solution, c'est lorsque la caméra arrive à environ 50 mètres du véhicule au début d'un round. (Un round peu se passer d'un côté de la map et le suivant à l'autre côté, entre les 2 rounds, les véhicules sont détruit, et de nouveaux sont créés de l'autre côté, puis nos personnages téléportés). Tu peu essayer mon mod de toute façon, le code du premier pastbin marche bien (j'avais mis le temps de chaque round de 5 sec au lieu de 300, pour passer plus rapidement d'un round à l'autre, et donc pour augmenter les risques de plantages).

Lien vers le commentaire
Partager sur d’autres sites

Enfin !!!

J'ai trouvé d'où venait le problème.

En faite comme je le disais avant, à chaque début de round, une voiture est crée quelque part et on y est téléporté dedans.

Je m'étais dis que c'était le changement de caméra qui pouvais faire foirer. J'ai donc téléporté le personnage au dessus de la voiture mais ça ne changait rien.

J'ai essayé après de ne pas créer de voiture. Et là miracle plus de problème. J'ai donc pensé au faite que ce qui faisait planté c'était une histoire de chargement de véhicule trop rapide en même temps que les décors, enfin un truc bizare. Donc du coup le fonctionnement est :

1 - Lorsqu'un round se finit, on est téléporté sur un autre site.

2 - 1 seconde après, le véhicule se créé a côté de nous

3 - On est mis dans le véhicule

 

Avant quand je faisais mes tests (j'ai mis des rounds de 5 sec pour voir plus souvent des transitions), ça plantait au bout de 2 minutes grand maximum, là j'ai testé pendant 30 min aucun plantage.

Donc enfin victoire :)

Maintenant je vais pouvoir le continuer, ajouter de nouveaux site, débugger la caméra et peu etre, ajouter des fonctionnalités. Et si quelqu'un est intéressé il suffira de me le dire ici (je lis pas mes mp).

Lien vers le commentaire
Partager sur d’autres sites

J'ai besoin d'aide (pour changer ^^).

Est-il possible de récupérer l'id du siège où est assis un joueur ?

En faite, je voudrai pouvoir téléporter un joueur dans une voiture où il y a déjà quelqu'un.

 

- Je sais comment savoir le nombre de personnes dans une même voiture.

- Je sais comment savoir si la personne conduit ou est en passager.

- Je sais comment téléporter un joueur dans un véhicule qui ne possède aucun passager ou alors dans un véhicule qui n'a pas de conducteur.

 

Mais imaginons que le joueur veuille aller dans une voiture (de 4 places) où il y a déjà un conducteur et 1 passager, je le téléporte sur quel siège ?

La fonction getPlayerState peut renvoyer :

2 : Player is driver of a vehicle

3 : Player is passenger of a vehicle

 

Mais il faudrait que ce soit plus détaillé.

 

(la fonction putPlayerInVehicle demande l'id du siège (0 1 2 ou 3))

 

EDIT : Je viens de penser à 2 solutions, mais c'est trop du "bricolage" je ne les utiliserai pas :

- Téléporter le mec en passager sur le 1 siège passager, prendre les autre passager et les mettre sur les siège 2 et 3, du coup ils vont changer de place sans s'en rendre compte...bof bof

- Téléporter le mec en passager sur le 1 siège passager, récupérer la distance entre lui et les autre passager, et si elle est de 0 ou très faible alors c'est qu'il est assis au même endroit. Problème, si la voiture avance vite et qu'il se passe un petit temps entre les 2 récupérations de position, la fonction va croire qu'ils sont assis sur des places différentes, donc pas fiable.

Modifié par yohannc
Lien vers le commentaire
Partager sur d’autres sites

PutPlayerInVehicle(playerid, 0(conducteur), 1(passager avant), 2(passager arrière), 3(passager arrière));

 

ça te parle plus ? ^^

 

tu fait une condition qui retourne plusieurs nombre, si le jouer est en position 1, bah tu le met en 2, s'il est en 2 tu le met en 3 et s'il est en 3 tu met un message comme quoi la voiture est pleine !! ^^

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

Chargement
×
×
  • Créer...