Auteur Sujet: [FAIT] Regression Bdd Waad335  (Lu 3433 fois)

Hors ligne Branruz

  • Développeurs
  • Grand Marechal
  • ****
  • Messages: 4718
  • Calif à la place du Calif
Pas urgent, mais a faire:

- ya des gardes qui se deplace en fesant des petits sauts de kangourou
- On se fait attaquer dans un sanctuaire par des gens dans la ville basse à Shattrath
- Ya des vagabonds qui se battent entre eux dans la ville basse à Shattrath
- Des accents (?) à la place de certains caractères dans les noms (saloperie de convert auto)
(Test avec H2 et Ally )

Note: C'est le report de 2 joueurs qui sont revenu sur mon serveur  8)

Pour le reste (a part quelques petits plantage serveur lié a un Démo furieux....)
Les spells fonctionnent carrément mieux pour les attaques et/ou les auras
Quelques GOs (sans spell) qui ne fonctionne pas (ou mal ?, certain ne fonctionne qu'au 2ieme try)

ce fut une bonne idée de remettre mon serveur online gniark
(meme si ya qd meme des trucs qui marche pas encore je trouve ca cool^^)


« Modifié: 26 juin 2011, 18:22:31 par Branruz »

Hors ligne B.B.

  • Développeurs
  • Hero Member
  • ****
  • Messages: 735
  • www.terre-ysera.com
    • Ysera || Royaume blizzlike
- Ya des vagabonds qui se battent entre eux dans la ville basse à Shattrath

Ca rajoute une dose de vie (et de réalisme) des clochard qui se battent entre eux non?  :P :P
Compilateur: Microsoft Visual Studio 2010 Professionnel
---------------------------
Cordialement, B.B.

Hors ligne Branruz

  • Développeurs
  • Grand Marechal
  • ****
  • Messages: 4718
  • Calif à la place du Calif
Citer
Ca rajoute une dose de vie (et de réalisme) des clochard qui se battent entre eux non
Oui c'est ce que j'ai répondu mais vo mieux pas s'approcher....  ;D

Hors ligne Randdrick

  • Administrator
  • Connetable
  • *****
  • Messages: 6568
  • Grand Calif
    • W.A.A.D - WoW Ascent Arbonne DB
Bah rien de bien terrible alors ! je m'attendais à une catastrophe moi. Et puis les vagabonds ont eu peu trop bu à mon avis !

PS : Un gps m'arrangerai bien pour me rendre directement vers l'endroit qui merde.

Citer
- ya des gardes qui se deplace en fesant des petits sauts de kangourou
Euh, ou ça ?
« Modifié: 02 mai 2011, 19:58:51 par Randdrick »
Le cerveau est l'organe le moins utilisé par l'être humain...

Hors ligne Branruz

  • Développeurs
  • Grand Marechal
  • ****
  • Messages: 4718
  • Calif à la place du Calif
Bah pour les vagabons, en fait, je rejoint BB, fo les laisser tel quels

Citer
- ya des gardes qui se deplace en fesant des petits sauts de kangourou
J'ai cru que tu l'avait vu, la quete du baton de dantheol, lorsque le garde passe le pont
il fait des saut de kangourou...

Hors ligne Randdrick

  • Administrator
  • Connetable
  • *****
  • Messages: 6568
  • Grand Calif
    • W.A.A.D - WoW Ascent Arbonne DB
Oui, je l'ai vu. je l'ai corrigé au niveau de la DB, j'ai pas commit c'est tout.
Le cerveau est l'organe le moins utilisé par l'être humain...

Hors ligne Branruz

  • Développeurs
  • Grand Marechal
  • ****
  • Messages: 4718
  • Calif à la place du Calif
SVP Messieurs........

Les zones de texte, quelque soit les tables NE DOIVENT PAS ETRE (NULL)

Il n'est pas possible de "securiser" toute les zones de lecture au niveau du core
sans en ralentir le fonctionnement...

La base doit être clean à ce niveau la, pitié pour le codeur...  8)

Les zones de texte, c'est "" et pas (NULL), ce n'est pas pareil du tout....

Crash du core si on discute avec le mauvais npc ;)

Citation de: requete sql, Modif des npc_text
update npc_text set text1_0 = '' where text1_0 is NULL;
update npc_text set text2_0 = '' where text2_0 is NULL;
update npc_text set text3_0 = '' where text3_0 is NULL;
update npc_text set text4_0 = '' where text4_0 is NULL;
update npc_text set text5_0 = '' where text5_0 is NULL;
update npc_text set text6_0 = '' where text6_0 is NULL;
update npc_text set text7_0 = '' where text7_0 is NULL;


* Branruz ferait bien cuire une brochette  *
    * de Randdrick/Franck au barbecue *
          * avec quelques poivrons *
             

Hors ligne Randdrick

  • Administrator
  • Connetable
  • *****
  • Messages: 6568
  • Grand Calif
    • W.A.A.D - WoW Ascent Arbonne DB
Branruz a un serveur en carton et un CORE en papier ! :-* :-*

C'est pas nous qui nous amusons à mettre NULL dans les champs.
Si le CORE plante au moindre NULL qu'il rencontre, ou va t-on ?
Le cerveau est l'organe le moins utilisé par l'être humain...

Hors ligne Branruz

  • Développeurs
  • Grand Marechal
  • ****
  • Messages: 4718
  • Calif à la place du Calif
Citation de: Randdrick
C'est pas nous qui nous amusons à mettre NULL dans les champs.
Ben c qui alors ?? Je conseille fortement de faire les corrections ds la base...

Citation de: Randdrick
Si le CORE plante au moindre NULL qu'il rencontre, ou va t-on ?
Depuis ke je code Ascent (ou bidouille) je n'ai jamais eu de probleme de crash suite à une
zone de texte NULL dans la base. La raison : il n'y avait pas de zone de texte NULL avant car
le core n'a jamais été prévu pour charger ce genre de zones de textes, c'est comme ca ke je le sais.

Base et core que j'utilise depuis maintenant 3 ans (eh oui déja mdr)

Mon serveur est ouvert depuis 1 semaine environ, 3 crash par jour en moyenne.
Hier soir je matte un des crashs du jour: je tombe sur 2 crash lié à un chargement de champs npc_text
'text_1_0' : Valeur du pointeur lu au chargement = NULL au lieu de texte vide.

D'ailleurs, pour un champ texte dans mysql, tu peux faire soit "Set NULL" soit "Empty texte".

En gros, je le redis, il ne faut AUCUN champ texte (NULL) dans la base mais des champs "Texte vide"

Si j'insiste c'est que j'ai testé ce fait! (la reprise du core date de 2ans et demi,
jamais je n'avais eu de crash à cause de ca
Le nombre de joueur en meme temps à un moment etait d'une 15n avant la 309,
actuellement j'en ai seulement 2 reguliers depuis une semaine et 2 crash à cause de ca...

Le debug de 2 joueurs regulier vo bcp plus ke les debugs locaux et spécialisé que
l'on peut fairechacun de notre coté Randdrick...

Je dis ca je dis rien....le core devient du carton si la base est en carton aussi  ;)
Un core solide requiert une base solide et sans faille (on l'avait à une époque pour la base ;) )



Hors ligne B.B.

  • Développeurs
  • Hero Member
  • ****
  • Messages: 735
  • www.terre-ysera.com
    • Ysera || Royaume blizzlike
pourquoi ne pas changer le champ d'attribution par défaut que donne la DB à ces colonnes? (pour le coup de la DB clean)

sinon pourquoi ne pas tenter de gérer ces cas de figure dans le core aussi? un programme quel qu'il soit ne doit pas pouvoir envisager et parer tout les cas de figure?

Voila 1 partout balle au centre comme ca je ne me fait pas lyncher :P
Compilateur: Microsoft Visual Studio 2010 Professionnel
---------------------------
Cordialement, B.B.

Hors ligne Branruz

  • Développeurs
  • Grand Marechal
  • ****
  • Messages: 4718
  • Calif à la place du Calif
Citation de: BB
sinon pourquoi ne pas tenter de gérer ces cas de figure dans le core aussi? un programme quel qu'il soit ne doit pas pouvoir envisager et parer tout les cas de figure?
Oui j'avais commencé a le faire mais y'en a partout, pis j'me suis dis "Si la base est clean comme elle le devrait ya pas de raison"
Ca marche comme ca depuis le debut, bon....pas de champ texte NULL (sans lyncher personne arf...c'est pas mon intention 8) )

Hors ligne Randdrick

  • Administrator
  • Connetable
  • *****
  • Messages: 6568
  • Grand Calif
    • W.A.A.D - WoW Ascent Arbonne DB
Citer
(sans lyncher personne arf...c'est pas mon intention Cool )
Ah bon ?

Voici la structure de la base Npc_text, et ce depuis 2008. La structure de la DB n'a jamais changée. Et pour ceux qui en doute, j'ai encore une base de 2008 !

Faudra donc m'expliquer pourquoi d'un coup la base est pourrie !!!

Citer
--
-- Definition of table `npc_text`
--

DROP TABLE IF EXISTS `npc_text`;
CREATE TABLE `npc_text` (
  `entry` int(10) unsigned NOT NULL DEFAULT '0',
  `prob0` float NOT NULL DEFAULT '0',
  `text0_0` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `text0_1` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `lang0` int(10) unsigned NOT NULL DEFAULT '0',
  `em0_0` int(10) unsigned NOT NULL DEFAULT '0',
  `em0_1` int(10) unsigned NOT NULL DEFAULT '0',
  `em0_2` int(10) unsigned NOT NULL DEFAULT '0',
  `em0_3` int(10) unsigned NOT NULL DEFAULT '0',
  `em0_4` int(10) unsigned NOT NULL DEFAULT '0',
  `em0_5` int(10) unsigned NOT NULL DEFAULT '0',
  `prob1` float NOT NULL DEFAULT '0',
  `text1_0` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `text1_1` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `lang1` int(10) unsigned NOT NULL DEFAULT '0',
  `em1_0` int(10) unsigned NOT NULL DEFAULT '0',
  `em1_1` int(10) unsigned NOT NULL DEFAULT '0',
  `em1_2` int(10) unsigned NOT NULL DEFAULT '0',
  `em1_3` int(10) unsigned NOT NULL DEFAULT '0',
  `em1_4` int(10) unsigned NOT NULL DEFAULT '0',
  `em1_5` int(10) unsigned NOT NULL DEFAULT '0',
  `prob2` float NOT NULL DEFAULT '0',
  `text2_0` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `text2_1` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `lang2` int(10) unsigned NOT NULL DEFAULT '0',
  `em2_0` int(10) unsigned NOT NULL DEFAULT '0',
  `em2_1` int(10) unsigned NOT NULL DEFAULT '0',
  `em2_2` int(10) unsigned NOT NULL DEFAULT '0',
  `em2_3` int(10) unsigned NOT NULL DEFAULT '0',
  `em2_4` int(10) unsigned NOT NULL DEFAULT '0',
  `em2_5` int(10) unsigned NOT NULL DEFAULT '0',
  `prob3` float NOT NULL DEFAULT '0',
  `text3_0` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `text3_1` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `lang3` int(10) unsigned NOT NULL DEFAULT '0',
  `em3_0` int(10) unsigned NOT NULL DEFAULT '0',
  `em3_1` int(10) unsigned NOT NULL DEFAULT '0',
  `em3_2` int(10) unsigned NOT NULL DEFAULT '0',
  `em3_3` int(10) unsigned NOT NULL DEFAULT '0',
  `em3_4` int(10) unsigned NOT NULL DEFAULT '0',
  `em3_5` int(10) unsigned NOT NULL DEFAULT '0',
  `prob4` float NOT NULL DEFAULT '0',
  `text4_0` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `text4_1` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `lang4` int(10) unsigned NOT NULL DEFAULT '0',
  `em4_0` int(10) unsigned NOT NULL DEFAULT '0',
  `em4_1` int(10) unsigned NOT NULL DEFAULT '0',
  `em4_2` int(10) unsigned NOT NULL DEFAULT '0',
  `em4_3` int(10) unsigned NOT NULL DEFAULT '0',
  `em4_4` int(10) unsigned NOT NULL DEFAULT '0',
  `em4_5` int(10) unsigned NOT NULL DEFAULT '0',
  `prob5` float NOT NULL DEFAULT '0',
  `text5_0` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `text5_1` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `lang5` int(10) unsigned NOT NULL DEFAULT '0',
  `em5_0` int(10) unsigned NOT NULL DEFAULT '0',
  `em5_1` int(10) unsigned NOT NULL DEFAULT '0',
  `em5_2` int(10) unsigned NOT NULL DEFAULT '0',
  `em5_3` int(10) unsigned NOT NULL DEFAULT '0',
  `em5_4` int(10) unsigned NOT NULL DEFAULT '0',
  `em5_5` int(10) unsigned NOT NULL DEFAULT '0',
  `prob6` float NOT NULL DEFAULT '0',
  `text6_0` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `text6_1` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `lang6` int(10) unsigned NOT NULL DEFAULT '0',
  `em6_0` int(10) unsigned NOT NULL DEFAULT '0',
  `em6_1` int(10) unsigned NOT NULL DEFAULT '0',
  `em6_2` int(10) unsigned NOT NULL DEFAULT '0',
  `em6_3` int(10) unsigned NOT NULL DEFAULT '0',
  `em6_4` int(10) unsigned NOT NULL DEFAULT '0',
  `em6_5` int(10) unsigned NOT NULL DEFAULT '0',
  `prob7` float NOT NULL DEFAULT '0',
  `text7_0` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `text7_1` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `lang7` int(10) unsigned NOT NULL DEFAULT '0',
  `em7_0` int(10) unsigned NOT NULL DEFAULT '0',
  `em7_1` int(10) unsigned NOT NULL DEFAULT '0',
  `em7_2` int(10) unsigned NOT NULL DEFAULT '0',
  `em7_3` int(10) unsigned NOT NULL DEFAULT '0',
  `em7_4` int(10) unsigned NOT NULL DEFAULT '0',
  `em7_5` int(10) unsigned NOT NULL DEFAULT '0',
  UNIQUE KEY `entry` (`entry`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='NPC System';
Le cerveau est l'organe le moins utilisé par l'être humain...

Hors ligne Branruz

  • Développeurs
  • Grand Marechal
  • ****
  • Messages: 4718
  • Calif à la place du Calif
oui je sais, on a tous la meme...

a-tu des champs texte = (NULL) dans ta table npc_text ?

"select * from npc_text where text1_0 is null;" genre ......

NB: Le truc chiant avec l’écriture c'est qu'il n'y a pas le ton  8)

Hors ligne Randdrick

  • Administrator
  • Connetable
  • *****
  • Messages: 6568
  • Grand Calif
    • W.A.A.D - WoW Ascent Arbonne DB
Je sais pas. J'ai pas allumé mon serveur ce soir. Je regarderai ça demain.

Je vérifierai la structure de la DB aussi, mais pour moi elle n'a pas changé. Quoiqu'il en soit, ça peut en effet expliquer les crash du CORE, mais pas les problèmes des textes qui ne sont pas renvoyés par les gardes de Silvermoon ( ou Lune d'argent ) alors que ces derniers existent désormais dans la DB, par contre.
Le cerveau est l'organe le moins utilisé par l'être humain...

Hors ligne Branruz

  • Développeurs
  • Grand Marechal
  • ****
  • Messages: 4718
  • Calif à la place du Calif
Citation de: Randdrick
je vérifierai la structure de la DB aussi, mais pour moi elle n'a pas changé
Ce n'est pas la structure de la DB qui posent problème mais les données contenu....

Citation de: Randdrick
Quoiqu'il en soit, ça peut en effet expliquer les crash du CORE, mais pas les problèmes des textes qui ne sont pas
renvoyés par les gardes de Silvermoon ( ou Lune d'argent ) alors que ces derniers existent désormais dans la DB
Ben toutes les zones de textes sont prises en compte niveau client, le serveur les envoies toutes je veux dire....
(Rempli ou pas) c'est peut-etre lié si une est à null....

Citation de: npc_text
update npc_text set text1_0 = '' where text1_0 is NULL;
update npc_text set text2_0 = '' where text2_0 is NULL;
update npc_text set text3_0 = '' where text3_0 is NULL;
update npc_text set text4_0 = '' where text4_0 is NULL;
update npc_text set text5_0 = '' where text5_0 is NULL;
update npc_text set text6_0 = '' where text6_0 is NULL;
update npc_text set text7_0 = '' where text7_0 is NULL;