Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Module qui déconne - ça sent le OHB foireux...

Par Elmo le 5/2/2003 à 11:49:32 (#3174413)

Bon alors voila quand je start mon module mon perso arrive bien dedans sans probleme après freeze total j'ai chronométré ça fait à peu près 6 secondes je me suis dit "6 secondes... le chiffre satanique de la bete...le OnHeartBeat!!! SATANERIE"

Donc ma question est: y'a moyen de lister les scripts mis en OnHeartBeat?

Par Jedaï le 5/2/2003 à 12:56:25 (#3174874)

Oui, y a deux moyens :
[list=1]
*Ne pas en mettre, ça fait tout de suite une liste plus courte ;)
*adopter une convention de nommage du type "ohb_*"

Je crois que le 2 est incontournable...:)
Si tu ne l'as pas fait, voilà une bonne occasion de rectifier cette erreur, mais pour l'instant tu vas devoir te taper tous les porteurs de script un par un, y a pas d'autres solution ( enfin si, essayer de se souvenir, mais tu risque d'en oublier...):(

Par Elmo le 5/2/2003 à 13:30:28 (#3175160)

ouaip bon bin je vais me faire un thermos de café alors...

Par Elmo le 5/2/2003 à 14:54:32 (#3175903)

question j'ai un Onheartbeat autre-part que dans la zone de démarrage est-ce que ça peut faire foireux le bidule?

Par eMRaistlin le 5/2/2003 à 15:02:21 (#3175951)

C'est une bonne question, a laquelle j'aurais aimer repondre NON, mais a laquelle je suis bien incapable d'affirmer plus que ce non : je ne connais pas exactement quels sont les HeartBeat executes, et ceux squi ne le sont pas...

Toute facon, fais un test, tu verra bien...

Par Delphinea le 5/2/2003 à 16:25:27 (#3176709)

Sur mon module j'utilise les On_Hearthbeat des portes de la ville (pour ouvrir et fermer les boutiques selon les horaires d'ouverture), et ça ne ralenti en rien. (ça ramait déjà avant ça :D )
Du moment qu'on n'exagère pas en mettant trop de choses dans ces scripts, ça passe, faut pas non plus en faire un emplacement tabou où il ne faut jamais rien mettre.
Si vraiment ton module plante à cause de ça, c'est que tu as mis beaucoup trop de choses dedans, sinon ça peut venir également d'autre part, on n'a pas beaucoup d'infos pour émettre un diagnostic :)

Par Jedaï le 5/2/2003 à 19:39:30 (#3178436)

Mais non Delphinea, on sait bien que les OnHeartbeat c'est pas tabou, ça peut même être la meilleure solution dans certains cas (très très rares... ;) ), mais de toutes façon il faudrait vraiment qu'il en ait mis plein pour que ça soit leur quantité qui fasse planter :o . C'est bien plus vraisemblablement une boucle infinie qui s'est glissée dans l'un d'entre eux (sale bête ! :hardos: ).

Par Elmo le 5/2/2003 à 23:13:02 (#3179910)

J'EXIGE UNE LAPIDATION PUBLIQUE AVEC DES ROCHERS!!!

je suis l'homme le plus stupide de l'univers! ma stupidité n'a d'égale que la soif de bière d'un nain c'est dire! (je sais je suis le roi de la métaphore)

en fait j'avais mal édité le fichier ARE d'une zone, résultat tout le module foirait! maintenant ça marche, en un mot: WOOT

Distribution de rochers pour tous, garanti granit, et surtout VISEZ MA TETE!

Par Elminf le 5/2/2003 à 23:21:28 (#3179968)

On a parlé de Bieres ? Sinon heureusement que Nabarus veillait sur toi Old man.... Content que ton module n'ai rien....

Par Azrael07 le 5/2/2003 à 23:23:11 (#3179978)

Mais non Delphinea, on sait bien que les OnHeartbeat c'est pas tabou, ça peut même être la meilleure solution dans certains cas


bon alors petites précisions techniques consernant le OnHeartBeat et les ressources utilisées :

il faut savoir qu'un ordinateur est ULTRARAPIDE, l'appellation 1GHz signifie que le processeur est capable de réaliser 1 000 000 000 opérations simples en 1 seconde.

Donc demander de fermer une porte toute les 6secondes (boffffffff disons une 20aine d'instructions a tout casser toutes les 6secondes), c'est vraiment pas significatif du tout. Le principal c'est d'éviter les instruction inutiles dans le OHB, placer une condition très tot dans le script pour pas qu'il continue si ca sert a rien, et le OHB ne sera alors rien de moins qu'un évenement supplémentaire très utilse. Voila, donc MODERATION, mais ne vous en privez pas, c quand meme superpratique dans de très nombreux cas ;)

Par Taern le 6/2/2003 à 19:11:02 (#3184921)

*souffle un grand coup*

Merci Azrael, je croyais bien que personne n'allait enfin éclaircir les choses.
Toutes les créatures par défaut on un OnHeartBeat, et un maousse qui plus est. Le secret réside dans l'utilisation de conditions bien placées pour éviter la surcharge.

Un "If a=b", c'est quoi après tout ? deux ou trois commandes dans le langage du processeur (assembleur). Ce qui prend, disons, une dizaine de cycle d'horloges (et encore, je prévois large parce que je connais pas exactement le fonctionnement d'un processeur). Quand on considère qu'un cycle d'horloge prend une nanoseconde dans le cas d'un pc à 1 GHz ...

Par contre, les fonctions spécifiques au jeu demandent des accès mémoire, de nombreux processus successifs (ce qui en assembleur représente plusieurs centaines de commandes). D'ou des ralentissements.

Donc ce que je dis c'est : Foutez La Paix Aux OHBé ! :hardos: :bouffon:

JOL Archives 1.0.1
@ JOL / JeuxOnLine