Aller au contenu


Photo

NTR Plugin


  • Veuillez vous connecter pour répondre
88 réponses à ce sujet

Posté 22 mars 2016 - 00:59

#41
Arkhelios

Arkhelios

    Sunriseur

  • Members
  • PipPip
  • 193 messages

Salut all, quelqu'un saurait m'expliquer pourquoi dès que je lance le plugin ntr puis ACNL , j'ai ça a chaque fois (quand je lance juste le menu de ntr en jeu ou bien quand j'essai avec un game plugin)

 

 

http://image.noelsha...097310385-n.jpg

 

 

1458604862-12596187-210722452628612-1097

 

Edit: ouf j'ai enfin réussi : j'avais des fichiers pas à jours....

 

 

Par contre je suis en train d'essayer de faire un game menu, si quelqu'un peut m'éclairer comment ajouter ces codes :

 

DD000000 00000201
D3000000 10000000
25FBEDD0 00000012
25FBEDD1 00000021

 

(par exemple) j'ai trouver une vidéo ou dans les commentaires ils disent qu'il faut tout mettre sur une ligne mais ça ne fonctionne pas (pas de fichier cheat.plg créer) et lorsque je met des lignes dans ce sytle :

 

 

// freeze the value
void freezeCheatValue() {
    if (cheatEnabled[0]) {
        WRITEU16(0xDD000000, 0x00000201);
    }
    if (cheatEnabled[1]) {
        WRITEU16(0xD3000000, 0x10000000);
    }
    if (cheatEnabled[2]) {
        WRITEU16(0x25FBEDD0, 0x00000012);
    }
    if (cheatEnabled[3]) {
        WRITEU16(0x25FBEDD1, 0x00000021);
    }
    
    // TODO: handle your own cheat items
}

 

Ma 3DS crash lorsque j'appuie sur A dans me game plugin...


Modifié par Arkhelios, 22 mars 2016 - 02:12.

  • Retour en haut

Posté 22 mars 2016 - 02:22

#42
natho18

natho18

    Sunriseur elite

  • Members
  • PipPipPipPip
  • 1 087 messages
  • Sexe:Male
  • Lieu:Languedoc-Rousillon
C'est normal, ton code n'est pas bon.

Essaie celui-la:

void cheat()
{
	WRITEU8(0x15FBEDD0, 0x12);
	WRITEU8(0x15FBEDD1, 0x21);
}

void freezeCheatValue() 
{
	if (cheatEnabled[0]) 
	{
		cheat();
	}
} 
 
  • Retour en haut

Posté 22 mars 2016 - 02:33

#43
Arkhelios

Arkhelios

    Sunriseur

  • Members
  • PipPip
  • 193 messages

Salut natho, merci une fois de plus :P

 

 

 

 Je vais essayé merci

 

Edit: super ça fonctionne ! Maintenant je vais faire pareil pour tous les slots


Modifié par Arkhelios, 22 mars 2016 - 02:38.

  • Retour en haut

Posté 22 mars 2016 - 03:05

#44
natho18

natho18

    Sunriseur elite

  • Members
  • PipPipPipPip
  • 1 087 messages
  • Sexe:Male
  • Lieu:Languedoc-Rousillon
:hello:

Avec plaisir. Ravi que ça fonctionne ! :)
  • Retour en haut

Posté 22 mars 2016 - 03:13

#45
Arkhelios

Arkhelios

    Sunriseur

  • Members
  • PipPip
  • 193 messages

:) Encore une petite question, est-il possible de raccourcir mon code ?

 

Actuellement j'ai ça pour 16 slot :

 

 

    WRITEU8(0x15FBEDD0, 0x12);
    WRITEU8(0x15FBEDD1, 0x21);
    WRITEU8(0x15FBEDD4, 0x12);
    WRITEU8(0x15FBEDD5, 0x21);
    WRITEU8(0x15FBEDD8, 0x12);
    WRITEU8(0x15FBEDD9, 0x21);
    WRITEU8(0x15FBEDDC, 0x12);
    WRITEU8(0x15FBEDDD, 0x21);
    WRITEU8(0x15FBEDE0, 0x12);
    WRITEU8(0x15FBEDE1, 0x21);
    WRITEU8(0x15FBEDE4, 0x12);
    WRITEU8(0x15FBEDE5, 0x21);
    WRITEU8(0x15FBEDE8, 0x12);
    WRITEU8(0x15FBEDE9, 0x21);
    WRITEU8(0x15FBEDEC, 0x12);
    WRITEU8(0x15FBEDED, 0x21);
    WRITEU8(0x15FBEDF0, 0x12);
    WRITEU8(0x15FBEDF1, 0x21);
    WRITEU8(0x15FBEDF4, 0x12);
    WRITEU8(0x15FBEDF5, 0x21);
    WRITEU8(0x15FBEDF8, 0x12);
    WRITEU8(0x15FBEDF9, 0x21);
    WRITEU8(0x15FBEDFC, 0x12);
    WRITEU8(0x15FBEDFD, 0x21);
    WRITEU8(0x15FBEE00, 0x12);
    WRITEU8(0x15FBEE01, 0x21);
    WRITEU8(0x15FBEE04, 0x12);
    WRITEU8(0x15FBEE05, 0x21);
    WRITEU8(0x15FBEE08, 0x12);
    WRITEU8(0x15FBEE09, 0x21);
    WRITEU8(0x15FBEE0C, 0x12);
    WRITEU8(0x15FBEE0D, 0x21);
}
 

 

l'item 1221 si possible réduire de moitié?


  • Retour en haut

Posté 22 mars 2016 - 03:25

#46
natho18

natho18

    Sunriseur elite

  • Members
  • PipPipPipPip
  • 1 087 messages
  • Sexe:Male
  • Lieu:Languedoc-Rousillon
Essaie celui-ci:

void cheat()
{
	int i;
	u32 address;

	address = 0x15FBEDD0;
	for (i = 0; i < 16; i++)
	{
		WRITEU16(address, 0x2112);
		address += 4;
	}
}

void freezeCheatValue()
{
	if (cheatEnabled[0])
	{
		cheat();
	}
} 
 
  • Retour en haut

Posté 22 mars 2016 - 03:29

#47
Arkhelios

Arkhelios

    Sunriseur

  • Members
  • PipPip
  • 193 messages

Je vais essayer merci, et pour ajouter d'autres menus je suit le même schema ? car j'ai reproduit ce que tu m'as dis plus haut à la lettre avec une autre action (juste pour testé) et ça refuse de me créer le cheat.plg

 

Pas facile quand on touche pas à ça ^^


Modifié par Arkhelios, 22 mars 2016 - 03:30.

  • Retour en haut

Posté 22 mars 2016 - 03:36

#48
natho18

natho18

    Sunriseur elite

  • Members
  • PipPipPipPip
  • 1 087 messages
  • Sexe:Male
  • Lieu:Languedoc-Rousillon
Colle ton code, je vais te dire ce qui ne va pas.

Le C possède une syntaxe et des règles assez strictes, si on ne les connait pas ce peut être très pénible de coder quoi que ce soit. ;)
  • Retour en haut

Posté 22 mars 2016 - 15:26

#49
Arkhelios

Arkhelios

    Sunriseur

  • Members
  • PipPip
  • 193 messages

(pour le moment je n'ai pas encore essayer le dernier code que tu m'as donner)

 

 

mais avec celui juste avant (ou je demande si c'est possible de raccourcir , en gros j'ai appliquer 2 fois la même chose :

 

void cheat(0)
{
    WRITEU8(0x15FBEDD0, 0x12);
    WRITEU8(0x15FBEDD1, 0x21);
    WRITEU8(0x15FBEDD4, 0x12);
    WRITEU8(0x15FBEDD5, 0x21);
    WRITEU8(0x15FBEDD8, 0x12);
    WRITEU8(0x15FBEDD9, 0x21);
    WRITEU8(0x15FBEDDC, 0x12);

 

}

 

void cheat(0)
{
    WRITEU8(0x15FBEDD0, 0x12);
    WRITEU8(0x15FBEDD1, 0x21);
    WRITEU8(0x15FBEDD4, 0x12);
    WRITEU8(0x15FBEDD5, 0x21);
    WRITEU8(0x15FBEDD8, 0x12);
    WRITEU8(0x15FBEDD9, 0x21);
    WRITEU8(0x15FBEDDC, 0x12);

 

pour donner un exemple.. après je tente diverses choses, mais c'est vrai que sans connaissances :P


  • Retour en haut

Posté 22 mars 2016 - 16:38

#50
natho18

natho18

    Sunriseur elite

  • Members
  • PipPipPipPip
  • 1 087 messages
  • Sexe:Male
  • Lieu:Languedoc-Rousillon

Si j'ai bien compris tu crées deux fonctions de même nom ?

Il faut que tes fonctions aient des noms differents:

void nomdefonction1() 
{
  //ce que la fonction doit faire
}

void nomdefonction2() 
{
  //ce que la fonction doit faire
}

void nomdefonction3() 
{
  //ce que la fonction doit faire
}
Et tu appelles tes fonctions comme cela:
nomdefonction1();
nomdefonction2();
nomdefonction3();
Donc pour assigner une fonction a une entrée dans le menu:
void freezeCheatValue()
{
	if (cheatEnabled[0])
	{
		nomdefonction1();
	}
	if (cheatEnabled[1])
	{
		nomdefonction2();
	}
	if (cheatEnabled[2])
	{
		nomdefonction3();
	}
} 

  • Retour en haut

Posté 22 mars 2016 - 19:37

#51
Arkhelios

Arkhelios

    Sunriseur

  • Members
  • PipPip
  • 193 messages

Super natho ça fonctionne, grâce à toi une fois encore !

 

J'ai encore une petite question, est- ce que avec ce code ci que tu m'as donner plus haut :

 

 

void cheat()
{
    WRITEU8(0x15FBEDD0, 0x12);
    WRITEU8(0x15FBEDD1, 0x21);
}

void freezeCheatValue()
{
    if (cheatEnabled[0])
    {
        cheat();
    }
}

 

Je peut faire correspondre plusieurs entrées de la même manières ? Ou alors il vaut mieux que je reste sous forme de liste pour que ça soi plus simple pour moi ? Et aussi lorsque dans le game plugin, je clique sur une entrée, y'a t-il moyen de faire en sorte que ça soi un "clique unique" de sorte à ce que par exemple ça me remette pas constamment les objets dans l'inventaire si activé, ou alors, que lorsque je clique sur une autre entrée , la première entrée soi décochée automatiquement ? Désolé je ne sais pas si c'est clair, si jamais dis moi j'essayerai d'être plus explicite :)


  • Retour en haut

Posté 22 mars 2016 - 19:45

#52
natho18

natho18

    Sunriseur elite

  • Members
  • PipPipPipPip
  • 1 087 messages
  • Sexe:Male
  • Lieu:Languedoc-Rousillon
Pour désactiver un cheat après utilisation:
void    disableCheat(u32 index)
{
	cheatEnabled[index] = 0;
	updateCheatEnableDisplay(index);
}

void cheat()
{
	WRITEU8(0x15FBEDD0, 0x12);
	WRITEU8(0x15FBEDD1, 0x21);
}

void cheat2()
{
	//DO stuff
}

void freezeCheatValue()
{
	if (cheatEnabled[0])
	{
		cheat();
		disableCheat(0);
	}
	if (cheatEnabled[1])
	{
		cheat2();
		disableCheat(1);
	}
}
Par contre je ne comprend pas ta question avec plusieurs entrées et la même manière ?
  • Retour en haut

Posté 22 mars 2016 - 20:46

#53
Arkhelios

Arkhelios

    Sunriseur

  • Members
  • PipPip
  • 193 messages

Merci, en fait je voulais simplement demander si je pouvais répeter ce code

 

void cheat()
{
    int i;
    u32 address;

    address = 0x15FBEDD0;
    for (i = 0; i < 16; i++)
    {
        WRITEU16(address, 0x2112);
        address += 4;
    }
}

 

Pour toutes les entrées afin de gagner de la place dans mon fichier, ou si il fallait encore faire des modifs ; si il faut faire des modifs il vaudrait mieux que je reste sous le format de ligne qui fonctionne très bien malgré que ça rallonge un peu le fichier


  • Retour en haut

Posté 22 mars 2016 - 20:56

#54
natho18

natho18

    Sunriseur elite

  • Members
  • PipPipPipPip
  • 1 087 messages
  • Sexe:Male
  • Lieu:Languedoc-Rousillon
Et bien ce code est l'équivalent de ton long code. Il écrit le cheat dans les 16 slots. ;)
  • Retour en haut

Posté 22 mars 2016 - 21:27

#55
Arkhelios

Arkhelios

    Sunriseur

  • Members
  • PipPip
  • 193 messages

Oui mais je veux dire, si je rajoute d'autres codes, je peut duppliqué ce code en changeant uniquement les valeurs (en gardant des noms différents comme tu m'as indiqué plus haut) et ça roule?


  • Retour en haut

Posté 22 mars 2016 - 21:43

#56
natho18

natho18

    Sunriseur elite

  • Members
  • PipPipPipPip
  • 1 087 messages
  • Sexe:Male
  • Lieu:Languedoc-Rousillon
Oui à condition que la logique soit la même.
Par exmple mon code fait une boucle de 16 itération, et à chaque itération la valeur de address vaut adress + 4;

Si c'est là même chose pour tes autres codes tu peux utiliser la même, sinon il te faut la modifier, tu modifies (i < X) X par le nombre de répetition que tu veux faire, et (address += Y;) Y par la valeur à ajouter à la variable address.

Et bien sur tu modifies 0xXXXX par la valeur à écrire. ;)
  • Retour en haut

Posté 23 mars 2016 - 12:46

#57
Arkhelios

Arkhelios

    Sunriseur

  • Members
  • PipPip
  • 193 messages

Super , tout fonctionne, dernière question après je t'embête plus ^^

 

Comment faire pour ajouter un titre à un menu , genre :

 

 

-----------------    Monnaie ------------------          <--- ça

 

[X] 100k

[  ]  200k

.....

 

 

---------------- Monnaie 2 -------------------


  • Retour en haut

Posté 23 mars 2016 - 13:02

#58
natho18

natho18

    Sunriseur elite

  • Members
  • PipPipPipPip
  • 1 087 messages
  • Sexe:Male
  • Lieu:Languedoc-Rousillon
Pas de soucis, tu ne m'embête pas du tout.

Tu as juste à faire une entrée avec ce que tu veux afficher. Attention par contre de bien penser à le compter lorsque tu définis tes fonctions.

Exemple:
 
void    initCheatMenu()
	{
		initMenu();
		addMenuEntry("-----------------    Monnaie ------------------ ");
		addCheatMenuEntry("100 k");
		addCheatMenuEntry("200 k");
		addMenuEntry("-----------------    Monnaie 2 ------------------ ");
		addCheatMenuEntry("10000 k");
		addCheatMenuEntry("20000 k");
		updateMenu();
	}
	void freezeCheatValue()
	{
		if (cheatEnabled[0]) //<--- Titre, donc pas de fonctions associée
			disableCheat(0);
		if (cheatEnabled[1])
		{
			monney100k();
			disableCheat(1);
		}
		if (cheatEnabled[2])
		{
			monney200k();
			disableCheat(2);
		}
		if (cheatEnabled[3]) //<--- Titre, donc pas de fonctions associée
			disableCheat(3);
		if (cheatEnabled[4])
		{
			monney10000k();
			disableCheat(4);
		}
		if (cheatEnabled[5])
		{
			monney20000k();
			disableCheat(5);
		}
	}
Et il faut mettre à jour la fonction display:
	void updateCheatEnableDisplay(id) 
	{
		if(gamePluginMenu.buf[gamePluginMenu.offsetInBuffer[id]] == '[' && gamePluginMenu.buf[gamePluginMenu.offsetInBuffer[id + 2]] == ']')
			gamePluginMenu.buf[gamePluginMenu.offsetInBuffer[id] + 1] = cheatEnabled[id] ? 'X' : ' ';
	}

  • Retour en haut

Posté 23 mars 2016 - 20:23

#59
Arkhelios

Arkhelios

    Sunriseur

  • Members
  • PipPip
  • 193 messages

Okay merci j'essai ça ^^

 

Par contre une chose ,

 

pour ce type de code :

 

void cheat2()
{
 int i;
    u32 address;

    address = 0x15FBEDD0;
    for (i = 0; i < 16; i++)
    {
        WRITEU16(address, 0x2112);
        address += 4;
    }
}
 

 

Si je veut ajouter en plus du 2112, par exemple 0x3380, mais que je veut que le 2112 s'arrete on va dire au slot 4 (ou autre peut importe) pour en gros formé une ligne d'items, une autre ligne d'items, etc , pas un seul item identique, y'a moyen de faire ça en un seul code ou alors c'est forcément une entrée un code par rapport à adresse += ?


Modifié par Arkhelios, 23 mars 2016 - 20:23.

  • Retour en haut

Posté 23 mars 2016 - 21:34

#60
natho18

natho18

    Sunriseur elite

  • Members
  • PipPipPipPip
  • 1 087 messages
  • Sexe:Male
  • Lieu:Languedoc-Rousillon
Si j'ai bien compris ce que tu veux, voilà un exemple de code:
void cheat2()
{
	int i;
	u32 address;

	address = 0x15FBEDD0;
	for (i = 0; i < 4; i++)
	{
		WRITEU16(address, 0x2112);
		address += 4;
	}
	for (i = 0; i < 4; i++)
	{
		WRITEU16(address, 0x3380);
		address += 4;
	}
} 
 
  • Retour en haut




1 utilisateur(s) li(sen)t ce sujet

0 invité(s) et 1 utilisateur(s) anonyme(s)