Jump to content
×
×
  • Create New...

C++ - Ajouter les Effets sur les Costumes


Recommended Posts

Centre de Téléchargement

Hidden Content

    Give reaction to this post to see the hidden content.
( Interne )

Plop,

 

J'ai vue que certains avait des problèmes avec l'ajout d'effets sur leurs costumes, je vous ai fait un petit tuto rapido :p, bien-sur ce n'est pas la méthode la plus optimisé etc etc mais elle marche.

 

Alors on a besoin des fichiers suivant : InstanceBase.h  InstanceBase.cpp  playersettingmodule.py

 

Ouvrez votre instanceBase.h (qui est dans vos sources client)

Cherchez:

EFFECT_BODYARMOR_SPECIAL2,

En dessous mettez:

EFFECT_BODYCOSTUME,

C'est le nom de variable qui va nous servir a attribué un effet a nos costumes

!! une variable = un effet !!

 

!! Maintenant mettez votre souris sur la variable EFFECT_BODYCOSTUME

vous allez voir un petit message du style: enum CInstanceBase::<unnamed>::EFFECT_BODYCOSTUME =25

retenez bien ce nombre on en aura besoin plus tard !!

 

Enregistrez instanceBase.h on en a plus besoin

 

 

 

Ouvrez votre instanceBase.cpp(toujours dans vos sources client)

Cherchez:

		if (pItem->GetSubType() == CItemData::ARMOR_BODY)
		{
			m_armorRefineEffect = EFFECT_REFINED+EFFECT_BODYARMOR_REFINED7+refine-7;
			__AttachEffect(m_armorRefineEffect);
		}
		break;

Apres le break; revenez a la ligne et collez ce code:

	case CItemData::ITEM_TYPE_COSTUME:
		if (pItem->GetSubType() == CItemData::COSTUME_BODY)
		{
			DWORD vnum = pItem->GetIndex();

			if (41517 == vnum)
			{
				__AttachEffect(EFFECT_REFINED + EFFECT_BODYCOSTUME);
			}
		}
		break;

De sorte a ce que sa ressemble à ça:

		if (pItem->GetSubType() == CItemData::ARMOR_BODY)
		{
			m_armorRefineEffect = EFFECT_REFINED+EFFECT_BODYARMOR_REFINED7+refine-7;
			__AttachEffect(m_armorRefineEffect);
		}
		break;
	case CItemData::ITEM_TYPE_COSTUME:
		if (pItem->GetSubType() == CItemData::COSTUME_BODY)
		{
			DWORD vnum = pItem->GetIndex();

			if (41517 == vnum)
			{
				__AttachEffect(EFFECT_REFINED + EFFECT_BODYCOSTUME);
			}
		}
		break;

if (41517 == vnum) veut dire si l'id est égal a 41517(Costume à crocs+) alors on lui attribue un effet ici sa sera effect_refined + notre effet

Enregistrez instanceBase.cpp et vous pouvez compilé vos sources client

 

Ensuite on va ouvrir playersettingmodule.py (qui est dans votre dossier root)

Cherchez: 

chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+20, "Bip01", "D:/ymir work/pc/common/effect/armor/armor-4-2-2.mse")

En dessous on va coller le code suivant en changeant  ""votre nombre"" et ""le chemin de votre effet"" par votre nombre et votre chemin bien-sur :

chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED + votre nombre, "Bip01", "d:/ymir work/le chemin de votre effet")

votre nombre = le nombre qui c'est affiche au passage de la souris dans notre instanceBase.h

le chemin de votre effet = le chemin de votre effet ^^^^^^^^

Ce code renseigne le chemin de l'effet a notre variable 

Enregistrer, repacker et c'est parti ! 

Noubliez pas de mettre votre nouveau lanceur ^^

 

 

 

Petite bonus,

Pour rajouter plusieurs effet on devra crée plusieurs variable EXEMPLE :

EFFECT_BODYCOSTUME,
EFFECT_BODYCOSTUME_1,
EFFECT_BODYCOSTUME_2,
EFFECT_BODYCOSTUME_N,

Une variable = un effet

 

Pour rajouter un effet a plusieurs costume EXEMPLE:

if (41517 == vnum || 41518 == vnum || 41519 == vnum)
			{
				__AttachEffect(EFFECT_REFINED + EFFECT_BODYCOSTUME);
			}

Ou si vous voulez ajouter l'effet a 10 costumes qui se suivent (id parlant) on pourra faire EXEMPLE:

if (41517 <= vnum && vnum <= 41530)
			{
				__AttachEffect(EFFECT_REFINED + EFFECT_BODYCOSTUME);
			}

Ici tout les costumes de l'id 41517 à 41530 auront l'effet (EFFECT_REFINED + EFFECT_BODYCOSTUME)

 

Pour rajouter plusieurs effet sur un costume EXEMPLE:

if (41517 == vnum)
			{
				__AttachEffect(EFFECT_REFINED + EFFECT_BODYCOSTUME + EFFECT_BODYCOSTUME_1 + EFFECT_BODYCOSTUME_N);
			}

 

Et enfin pour finir ajouté plusieurs effet different sur plusieurs costumes different on va répéter notre condition if EXEMPLE:

		if (41517 == vnum)
		{
			__AttachEffect(EFFECT_REFINED + EFFECT_BODYCOSTUME);
		}
		if (41555 == vnum)
		{
			__AttachEffect(EFFECT_REFINED + EFFECT_BODYCOSTUME_N);
		}
		if (41590 == vnum)
		{
			__AttachEffect(EFFECT_REFINED + EFFECT_BODYCOSTUME_N);
		}

 

Voilà maintenant vous pouvez ajouter vos effets sur vos costumes

 

ps : c'est mon premier tuto si y'a des choses mal expliquer ou  a modifier dites le moi

ps2 : je suis loin d'être expert c++ donc si on peu optimiser ce code dites le moi aussi 

  • Funky Emulation 1
  • J'adore 2
Link to comment
Share on other sites

  • Replies 3
  • Created
  • Last Reply

Top Posters In This Topic

  • Developer

Merci pour ta contribution!

 

Cela dit, pourquoi procéder par l'utilisation de vNums ? Si on veut rajouter 200 costumes avec une tranche d'IDs différents,

on va devoir rajouter 200 conditions ? :P Le mieux serait de rajouter un flag par effet, et rajouter le flag aux costumes désirés

dans l'item_proto. C'est plus propre au niveau du code et plus facile à gérer en cas d'ajout de costumes ou d'effets !

Link to comment
Share on other sites

Il y a 5 heures, iryzz a dit :

ps2 : je suis loin d'être expert c++ donc si on peu optimiser ce code dites le moi aussi

Il y a 5 heures, iryzz a dit :

bien-sur ce n'est pas la méthode la plus optimisé

 

Oui on peut le faire comme ça mais je ne sais pas le faire du moins je me suis pas intéresser a ce sujet âpres c'est sur que mettre des effets a 200 costumes c'est surement pas ici que ce trouve la réponse :D

 

Mais je pense néanmoins que ce mini tuto peut aider des gens a comprendre le fonctionnement costume+effet  :P 

 

 

Link to comment
Share on other sites

  • Developer

Oui ;).

 

Si quelqu'un veut se pencher sur mon idée, il le fera. Personnellement ce système d'effet ne m'intéresse pas, je ne regarderai

pas plus loin :p. Sinon je l'aurais fait volontiers :).

Link to comment
Share on other sites

 Share



Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.