******************************
* Liste des modifications *
* du code de Blood For Honor *
* effectuer par Marc CORDIER *
******************************
*------------*
| 08/12/1999 |
*------------*
==========> WORLDCRAFT
=>Création du fichier "halflife-bfh.fgd" pour la gestion des entités spécifiques à BFH:
-Ajout des entités "func_temple" & "func_forge".
=>Création de la librairie de prefab BFH:
-Ajout des préfab du temple et de la forge avec leurs entités respectives.
=>Création d'une map de test "vide.bsp":
-Ajout d'un temple contenant "func_temple".
-Ajout d'une forge contenant "func_forge".
==========> MP.DLL
=>Création de "bfh_entitys.cpp", pour la gestion des entités spécifiques à BFH:
-Ajout des fonctions de gestion des entités "func_temple" & "func_forge".
=>Modification de "player.h", pour la gestion de multiple menu:
-Ajout de la variable membre "m_iCurentMenu".
-Ajout de définition de type MENU_
-Ajout des prototypes des functions virtuels de gestion des Menus de la
Forge et du Temple.
=>Modification de "player.cpp":
-Ajout des functions virtuels de gestion des Menus de la forge et du temple.
=>Modification de "client.cpp", pour la gestion de multiple menu:
-Reprise des modifications du menu de ClientCommand faite par Ertai pour
gérer les réponses aux menus de la forge et du temple.
*------------*
| 09/12/1999 |
*------------*
==========> MP.DLL
=>Modification de "crossbow.cpp", pour la gestion du Zoom multiple:
-Ajout de la variable membre "m_iZoomLvl".
-Modification de la fonction SecondaryAttack() pour incorporer les 4 niveaux
de Zoom
=>Modification de "player.h":
-Modification des menus du temple et de la forge pour que leur choix 1 fonctionne
(Donne de la vie dans le temple et de l'armure a la forge)
NOTE: j'ai utilisé max_healf pour le temple et maximum 100 pour l'armure.
Il faudrait penser à faire une table contenant les caractéristiques
des différentes classes.
*------------*
| 10/12/1999 |
*------------*
==========> MP.DLL
=>Modification de "client.cpp", pour la gestion des Skin multiples:
-Modification de la fonction ClientPrecach(), j'ai viré tous les RECACHE_MODEL
pour les skin BFH et j'ai replacé celui réservé au "player.mdl" que le jeu utilise.
=>Modification de "multiplay_gamerules.cpp", pour la gestion des Skin multiples:
-Modification de la fonction PlayerSpawn() j'ai enlevé tous les PRECACHE_MODEL.
Les skin sont chargés avec la fonction g_engfuncs.pfnSetClientKeyValue
(Sans aucun precache).
*------------*
| 11/12/1999 |
*------------*
==========> MP.DLL
=>Création de "bfh_playerclasse.h", pour la gestion des perso. spécifiques à BFH:
-Création de "CBFHClasse", CLASS (C++) de base des classes de perso.
-Ajout des 4 premières Classes (Guerrier, Mage, Amazone, Arbalétrier).
-Ajout de toutes les définitions de base des règles du jeu (Fonctions et prix des objets)
=>Modification de "multiplay_gamerules.cpp", pour la gestion des Classes:
-Modification de la fonction PlayerSpawn() en utilisant la CLASS CBFHClasse
=>Modification de "player.h", pour la gestion des sous (p.o.):
-Ajout de la variable membre "m_iPieceDor".
-Ajout d'un pointer "m_pClasse" de type "CBFHClasse".
-Modification de MenuTemple et MenuForge pour incorporer les règles d'achat des Sorts,
Fioles, Armures et réparations d'habits... (En utilisant "CBFHClasse")
NOTE: Pour modifier les règles du jeu (équilibrage) il suffit de changer les
valeurs des #define dans le fichier bfh_playerclasse.h.
Pour les Armes de départ donner au perso, modifier bfh_playerclasse.cpp.
*------------*
| 13/12/1999 |
*------------*
==========> MP.DLL
=>modification de tout les .cpp des armes de BFH, y'avait une grosse erreur qui faisait qu'il n'y avait
pas d'animation. Les animations étaient réglées sur une animation spécifique mais inexistante!
Re routage sur "crawbar".
*------------*
| 14/12/1999 |
*------------*
==========> WORLDCRAFT
-Création de la map HardCastel à partir de mes prefab de chateau-fort, ainsi que de celles du temple
et de la forge.
-Modification des textures, pour prendre le maximum dans les .wad BFC
*------------*
| 15/12/1999 |
*------------*
==========> MP.DLL
-Modification de teamplay_gamerules.cpp pour que le joueur touche des pièces d'or lorsqu'il tue
un autre joueur.
-Modification de la fonction IPointsForKill dans 'Multiplay' et 'teamplay' _gamerules.cpp
*------------*
| 16/12/1999 |
*------------*
==========> MP.DLL
-Implémentation du niveau d'expérience du joueur (MenuClasse à la fin de player.cpp).
-Modification de toutes les armes de corps à corps pour la gestion de leur usure.
-Modification de toutes les armes de corps à corps pour la gestion des longueurs (weapon.h).
-Modification et amélioration des menus de la forge et du temple.
NOTE:
Pour modifier les règles du jeu (équilibrage) il suffit de changer les #define dans le fichier weapon.h :
-USURE: NOMDELARME_DEFAULT_LIVE
-LONGUEUR: NOMDELARME_LENGHT
*------------*
| 17/12/1999 |
*------------*
==========> MP.DLL
-Modification de tous les noms des fichiers des armes en bfh-NomArme.cpp
pour les retrouver plus facilement.
-Intégration de toutes les armes de BFH, encore non intégré.
-Modification des différents 'GetGameDescription' pour qu'ils retournent
"BFH Deathmatch" ou "BFH Teamplay" selon les cas. (...gamerules.cpp)
*------------*
| 17/12/1999 |
*------------*
==========> MP.DLL
-Modification de bfh-daguev.cpp, la dague de venin fonctionne maintenant.
*------------*
| 24/12/1999 |
*------------*
* NDCF (Note Du Coder Fou):
* DING DONG NOYEUX JOEL ;)
==========> WORLDCRAFT
=>Modification du fichier "halflife-bfh.fgd" pour la gestion des entités spécifiques à BFH:
-Ajout de l'entité "func_sas".
=>Modification de la librairie de prefab BFH:
-Modification des préfab du temple et de la forge pour ajout de leurs
entités func_sas à leurs portes
==========> MP.DLL
=>Création de la classe CSAS
-Modification
-Modification de tout les menu pour leur adaptation à la nouvelle classe CSAS
(Entité func_sas).
==========> Half-Life
-Test en réseau local puis correction de bug mineurs dans les menu.
*------------*
| 13/01/2000 |
*------------*
=>Incorporation de SORCIER.cpp de Quark's
Modification du nom de fichier en "bfh-batonmage.cpp"
=>Modification de bfh-batonmage.cpp
-Modification le nom de ta classe CSORCIER en CBatonMage
-Modification de Spawn:
-Modification de Deploy:
-Modification de GetItemInfo:
p->pszAmmo1 = "uranium"; //mais sa ne va guère mieux que "magi"...
-Modification de tout les "v_baton.mdl" en "v_batonmage.mdl"
-ect...
=>Modification de weapons.h
Création des define suivant: Mais est-ce correcte ?
#define BATONMAGE_MAX_CARRY 50
#define BATONMAGE_DEFAULT_GIVE 5
#define BATONMAGE_MAX_CLIP 5
#define BATONMAGE_DEFAULT_GIVE 5
=>Modification de gamerules.cpp et multiplay gamerules.cpp ect...
plrDmgBatonMageNarrow = 10 ?
plrDmgBatonMageWide = 20 ?
parce que plus rien du egon n'existe dans nos sources...
=>Quark's
ça marche...
mais ça ne va pas très bien non plus...
les éclaires partent de n'importe où...
Le bâton ne devrait-il pas être fixe lors du tir ?
=> les animes font parti des .mdl normalement ?
=> sa va être coton pour l'arc...
*------------*
| 28/02/2000 |
*------------*
=>Création de bfh-batonmageBF.cpp
Je pars du RPG que je modifie à grand coup de cuillère à pot.
Les routines du déplacement de la rocket (think) sont trop complexes pour ma simple boule de feu.
Je simplifie à mort. Après plusieurs heures de recherche j'arrive a quelque chose de sympa.
Le sprite de fumée blanche est remplacer par celui du feu.
En jouant sur pev->effect la rocket est maintenant lumineuse !
*------------*
| 29/02/2000 |
*------------*
=>Travaux sur bfh-batonmageBF.cpp
J'ai senti tout de suite que je tenais le bon bout !!! Je fabrique un tir secondaire lançant
3 boules.Il faut travailler avec les vecteurs globaux comme gpGlobals->v_forward ou
gpGlobals->v_up, gpGlobals->v_right et non pas avec des vecteur relatif au monde
comme Vector(x,y,z) dans le tutorial "3 bolts for the crossbow". Et oui tout est relatif !
=>Travaux sur bfh-batonmage.cpp
Contrairement au rpg ou au crossbow, cette arme ne lance pas de projectile. J'ai beau
tourner et retourner le problème dans tous les sens, je ne trouve pas ce qui cloche. De toute
façon plus je compare cette arme ou le egon de Valve aux autres, plus je trouve que tout
est écrit à l'envers.
*------------*
| 07/03/2000 |
*------------*
=>Travaux sur bfh-batonmageBF.cpp
Après avoir remanier le model dans tous les sens sous Milkshape. J'incorpore enfin ma jolie
boule de feu. J'ai même fait une petite texture avec Paint Shop, style lave. Après une journée
de réglage du fichier .QC pour compiler le model (smd + bmp vers mdl) j'obtiens enfin une
boule centrée.
Note : Il faut absolument créer une séquence d'animation, fixe, mais qui positionne le model.
*------------*
| 08/03/2000 |
*------------*
=>Travaux sur bfh-batonmageBF.cpp
Après avoir remanier encore une fois le model dans tous les sens et retouché la texture après
une autre journée de réglage du fichier .QC pour compilé le model à la bonne taille et plusieurs
essais dans le monde, (avec des boules qui se déplacent au ralentie !!!) J'obtiens enfin une boule
juste de la taille de la traînée de flammes, avec une texture relativement sympathique. Le sprite
de feu se retrouve texturer à l'envers. J'apprends donc aussi à modifier les sprites du jeu.
Une fois extraites, je flip les frames de la flamme, (Waou ! Une allitération en f !) et j'incorpore
mon sprite "FlipFire.spr".
*------------*
| 09/03/2000 |
*------------*
=>Travaux sur bfh-batonmageBF.cpp
Les images du sprite "flipfire" ne semble pas nécessaire, l'animation n'est pas jouer.
Il faudra que je pense à faire le .spr avec une seule image.
=>Travaux sur bfh-batonmage.cpp
En rentrant de chez la nourrice, j'attaque le source de ce satané egon. Bien décidé à en découdre
j'attaque un matche à bras le corps avec cette arme de daube qui utilise une des fonctions programmables
du moteur nommée: "Beams" Et c'est bien là, la clef du problème. Le gars de Valve (et donc Quark's aussi)
à utiliser un Beams de type PointEndEntity(). Après recherche, ce type de rayon se trouve partir d'un point
passer en paramètre et finir attacher à une entité dont on lui passe juste le numéro d'index.
La programmation de ce type de rayon se trouve donc inverser, Le beam part de la zone visée pour
remonter vers le joueur. Ne trouvant pas comment passer l'index de l'arme, je me trouve coincer.
En effet, après avoir corriger un gros bug de Valve (la position de fin du rayon n'est pas mit à jour
dans la fonction Think() du rayon !
Je me retrouve avec un rayon qui part (fini en fait ;) du centre du joueur, ce n'est vraiment pas chouette !
Pour rendre tous cela plus jolie, je modifie donc le source pour utiliser un Beam de type PointsInit(),
je peu ainsi lui passer des vecteurs comme origine et terminaison, c'est bien, je retombe sur mes pattes,
maintenant il est comme les autres armes, mais inverser !
Je n'ai ensuite qu'à modifier que la position de fin, celle de l'arme au lieu de celle du joueur via
pPlayer->Entindex(). Et a cette même fin je rattache un jolie sprite de flare animé.
("flare6.spr", merci sprView...)
*---------********---------*
| 12/03/2000 au 23/03/2000 |
*----------******----------*
-Correction de tout un tas de détails sur les Bâtons de mage.
-Correction de bugs lier aux essais en ligne. (Menu & divers affichage)
-Implémentation plus profonde de l'utilisation du niveau du joueur
=> dommage modifier
=> Boule de feu plus rapide
=> plus de vie, plus d'armure, plus de mana
-Niveau du joueur codé par palier au lieu de proportionnel
(cf: CBasePlayer :: CalcPlayerLvL(int lvl) )
du lvl 0 à 5; 1 frag pour monter d'un lvl
du lvl 5 à 10; 2 frag pour monter d'un lvl
du lvl 10 à 15; 3 frag pour monter d'un lvl
et ainsi de suite
*------------*
| 23/03/2000 |
*------------*
==========> MP.DLL (client.cpp + player.cpp)
-Après avoir coder rapidement la touche spéciale (Enfin rapidement : 1h, mais tout en causant avec Shock par ICQ),
Je déplace le zoom, jusqu'alors placer dans les routines de l'arbalète (bfh-crossbow.cpp) vers celle de la touche
spéciale (CbasePlayer::Special).
-je modifie aussi le fichier "half-life\BFH\gfx\shell\kb_act.lst d'une ligne afin de pouvoir choisir sa propre touche
spéciale.
-Après essai, le zoom me force à modifier de nouveau toutes les armes(1h30)...
-il faut en effet "couper" le zoom lors de la sélection d'une arme, ainsi que lors de son rechargement. Pour permettre
de ressortir rapidement du zoom avec toute arme, je rajoute une fonction Reload à toutes celles qui n'en ont pas.
-Ensuite je retrouve un tutorial sur le Bersek(1h), de notre cher Ertai, que j'avais télécharger et ranger depuis
longtemps et je l'incorpore : La touche spéciale avec le zoom et le bersek fonctionne maintenant.
*---------********---------*
| 23/05/2000 au 30/05/2000 |
*----------******----------*
==========> MP.DLL
-Modification de player.cpp pour la gestion des grisée dans les menu ("$") Modification de l'ensemble des menus
pour avoir des menus intelligents qui s'adapte aux caractéristiques du joueur.
-Modification de player.cpp et weapon.h :
Incorporation d'un grappin "freehands" d'après les sources de EvilClone trouvés sur le site web "Wavelenght".
Je l'adapte pour fonctionner avec la touche BFH: "Spéciale".
-Modification de bfh-batonmage.cpp et bfh-batonmageBF.cpp :
GetItemInfo(ItemInfo *p) => Correction pour une gestion correcte avec ManaMax
-Modification de bfh-daguev.cpp :
Correction dans CDAGUEV::Swing pour que la dague consomme de la Mana, et ce, uniquement lorsqu'elle touche
un autre joueur. La dague ne fournie plus de venin lorsqu'il n'y a plus de Mana.
-Modification de player.cpp :
Correction de la gestion des soins du Mage dans CBasePlayer::Special()
==========> CLIENT.DLL
-Modification de menu.cpp pour la gestion des grisée dans les menu ("$")
-Création de MANA.cpp et de la Classe CHUDMana pour la gestion de l'affichage de la Mana
-Modification de Hud.cpp et Hud.h pour la gestion de la mana
-Modification de battery.cpp et Health.h pour la un affichage personnaliser BFH
==========> AUTRES FICHIERS
-Modification de sprites/hud.txt
Pour corriger les sprites de l'affichage de la Mana, dans le hud.
-Modification de half-life\BFH\gfx\shell\kb_act.lst et kb_def.lst
Pour la gestion des slot 6 à 9 (pour les menus)
*------------*
| 31/05/2000 |
*------------*
Des petits réglages...
==========> MP.DLL
-Création de skill.cfg :
Bien que ce fichier ne serve pratiquement que pour le "single player game", ainsi mis à jour,
il enlève les messages d'erreur "** GetSkillVar got a zero for ... **" au lancement de BFH (en mode développeur).
-Petit correction de game.cpp :
Le mage ne possède plus qu'un seul bâton en début de partie.
Le bâton d'éclairé jusqu'au level 5 puis ensuite le bâton Boules de feu
-Modification de player.cpp :
Modification de CBasePlayer::Soin, Berzek et Special pour amélioration et réglage
(Exemple: le sort de soin stop maintenant, si le joueur n'a plus de mana).
Modification de CBasePlayer::UpdateClientData maintenant l'udapte de la Mana peu placer ON ou OFF
l'affichage de la Mana grâce au flag HIDEHUD_MANA (et ce, selon les caractéristiques du joueur bien sur).
Au paravent, l'affichage restait lorsque l'on passait d'un mage a un guerrier, par exemple.
==========> CLIENT.DLL
-Modification de MANA.cpp et cl_dll.h
CHudMANA::Draw utilise le flag HIDEHUD_MANA
*------------*
| 01/06/2000 |
*------------*
==========> MP.DLL
-Nettoyage de weapon.h et player.cpp pour enlever les anciens grappins, désolé pour votre code Ertai et Quark's !
Au passage, je change la couleur de la corde en jaune, parce que bleu, pas génial pour une corde de grappin 8).
-Modification de weapon.h
Je baisse à nouveau la durée de vie des armes, un peu:
//
// Durée de vie des armes
// en nombre de coups touchant "quelque chose" (un joueur ou un mur)
//
#define BATON_DEFAULT_LIVE 40
#define DAGUE_DEFAULT_LIVE 60
#define DAGUEV_DEFAULT_LIVE 60
#define GOURDIN_DEFAULT_LIVE 50
#define PMARTEAU_DEFAULT_LIVE 100
#define SHORTSWORD_DEFAULT_LIVE 80
#define LONGSWORD_DEFAULT_LIVE 100
#define HACHE_DEFAULT_LIVE 130
#define GMARTEAU_DEFAULT_LIVE 150
-Modification de player.cpp
Modification de CBasePlayer::Soin, Berzek et Special pour amélioration des FX...
(SURPRISE!!!)
-Modification de bfh_entitys.cpp
Création d'une entité "func_killhook" (class CKillHook)
==========> WORLDCRAFT
=>Modification du fichier "halflife-bfh.fgd" pour la gestion des entités spécifiques à BFH:
-Ajout de l'entité "func_killhook" à placer devant toute zone ou l'on ne désire pas que le grappin puisse ce planter.
==========> AUTRES FICHIERS
-Modification de bfh/skill.cfg
Quelque réglage des multiplicateurs de dommages localisés (tête, bras, corps)...
*------------*
| 11/06/2000 |
*------------*
==========> CLIENT.DLL & HL.DLL
=> Mise à jours des sources du jeu pour être compatible avec le patch 1.1.0.0
=> Correction au passage de quelque bug mineurs...
*------------*
| 15/06/2000 |
*------------*
==========> HL.DLL
=> Création du système de gestion de "jours et nuit".
(utilisant les entitylight-environement et Func_killhook)
*------------*
| 17/06/2000 |
*------------*
==========> HL.DLL
=> Amélioration et optimisation du système "jour et nuit"
=> Correction d'un bug sur le calcule des level.
*---------------*
| 28&29/08/2000 |
*---------------*
==========> HL.DLL
=> Création d'une entité info_music afin que les mappeurs puisse choisir la musique de leur carte.
==========> CLIENT.DLL
=> Incorporation de l'API fmod pour jouer les musiques de Peters dans une nouvelle classe "CHudMusic".
*------------*
| 30/08/2000 |
*-----*------*
==========> HL.DLL
=> Incorporation de la gestion de l'invincibilité dans la forge et le temple avec en plus un jolie GlowShell jaune.
*-----------------*
|01 au 19/09/2000 |
*-----------------*
==========> HL.DLL
=> Retouche du jour et de la nuit. Gestion des trigger_hurt nommé "torche".
=> Info_music n'est plus nécessaire, la piste jouée et celle du CDAudioTrack
=> Incorporation d'un mode Observer et par obligation du VGUI
=> Nouvelle Variable cvar modifiable par l'utilisateur du serveur pour coupé:
-la musique
-L'invincibilité dans le temple et la forge
=> Correction du model et des sources du BatonMage Eclaire. Il fonctionne parfaitement maintenant principalement
grâce au point d'attachement incorporé au fichier .qc de compilation du model.
=> Correction et optimisation des sources en tout genre : grappin, gestion des classes, etc...
==========> CLIENT.DLL
=> Modification des sources du VGUI de TFC pour adaptation à BFH.
=> Nouvelle Variable cvar modifiable par l'utilisateur pour coupé la musique
*----*****----*
| POST BETA 1 |
*----*****----*
==========> HL.DLL
-Correction du bug de l'envoie de message entre joueur dû à une utilisation erronée de "pPlayer->ClassName".
*-----------*
|16/11/2000 |
*-----------*
==========> HL.DLL
-J'ai travaillé sur le début de gestion des règles de jeux.
Des règles de jeux différentes peuvent maintenant être initialiser par
une nouvelle entité: info_bfhgm (Info BFH Game Mode)
Fichiers gamerules.cpp et bfh_entity modifiés.
==========> WORLDCRAFT
-incorporation de la PointClass entity: info_bfhgm.
*-----------------*
|20 au 29/11/2000 |
*-----------------*
==========> HL.DLL
-Travaille principale sur teamplay_gamerules.cpp
-Mise au point des appels au VGUI teamplay
==========> HL.DLL
-Encodage d'autres entités nécessaires au Teamplay. (bfh_entitys.cpp)
-> Une entité comme "Drapeau" :
Game Object => CBaseBFHGameObj, (ainsi que CBFHGraal et CBFHEscalibur)
-> Une entité pour générer les "drapeaux"
Game Object Spawn =>CBFHGameObjSpawn
-> Une entité pour capturer les "drapeaux"
Game Object Goal =>CBFHGameObjGoal
-> Deux entités pour faire apparaître les joueurs de chaque équipe
==========> WORLDCRAFT
-Incorporation des entités:
->func_bfhgameobjspawn
->func_bfhgameobjgoal
->info_player_team1
->info_player_team2
|