Yuri RGSS Mod
Salut, récemment je me suis entrepris dans le codage de certaines modification (plus des ajouts) du RGSS1.
J'ai codé un petit exécutable qui crée plein de fonctions qui servent à rien dans le RGSS1 mais qui comme sont codés en c++ sont plus rapides :b (On supprime par exemple les créations d'Array pour récupérer la position de la souris.)
C'est pour le moment destiné à RMXP, je réfléchirais plus tard à un portage pour VX.Ace.
Les fonctions
Input
Input.mx Récupérer la position X de la souris dans la fenêtre de jeu.
Input.my Récupérer la position Y de la souris dans la fenêtre de jeu.
Input.kpress?(vk_key) Vérifier si la touche virtuelle vk_key est appuyé.
Exemple : Input.kpress?(65) va retourner true si A est appuyé.
Input.ktrigger?(vk_key) Vérifie si vk_key présente un front descendant.
Input.ktrigged?(vk_key) Pareil que ktrigger?
Input.ktrigger2?(vk_key) Vérifie si vk_key présente un front montant.
Input.kreleased?(vk_key) Pareil que ktrigger2?
Input.CapsLocked? Vérifie si vous gueulez.
Input.NumLocked? Vérifie si le pad numérique est activé.
Input.ScrollLocked? Vérifie si le scroll de la console est verrouillé.
Input.GetKeyboardState Retourne un string contenant le data retourné par GetKeyboardState()
Input.GetKeyboardState(string) Retourne true si ça a réussit à copie le data retourné par GetKeyboardState() dans le string.
Note: Il y a deux variables d'instance dans le module Input : @mx et @my, elle contiennent les valeurs retourné par mx() et my().
Input.update_joy=(bool) Active ou désactive la mise à jour des JoyPad.
Input.update_joy? Retourne si oui ou non Input.update va mettre à jour les Joypad.
Input.set_checkJoyCaps_condition(nb) Change le délais utilisé pour mettre à jour les 16 caps des JoyPads.
Input.getJoyError(id) Retourne l'erreur du id[sup]ème[/sup] Joypad, souvent Input::JOYERR_PARMS pour les joypad pas encore branchés.
Input.getJoyName(id) Retourne la pseudo description du JoyPad x)
Input.getJoyDeltaX(id) Retourne la différence entre Xmax et Xmin sur l'axe X du joypad.
Input.getJoyDeltaY(id)
Input.getJoyDeltaZ(id)
Input.getJoyDeltaR(id)
Input.getJoyDeltaU(id)
Input.getJoyDeltaV(id)
Input.getJoyNumButton(id) Retourne le nombre de boutons présents sur le Joypad.
Input.jpress?(id,key) Vérifie si la touche key du JoyPad id est pressé.
Input.jtrigger?(id,key) Si elle présente un front descendant.
Input.jtrigger2?(id,key) Si elle présente un front montant
Input.jtrigged?(id,key)
Input.jreleased?(id,key)
Input.jcurrentKey(id) Retourne la touche pressé actuellement.
Input.jAxeX(id) Retourne la position de l'axe X. (-(Xmax-Xmin)...(Xmax-Xmin))
Input.jAxeY(id)
Input.jAxeZ(id)
Input.jAxeR(id)
Input.jAxeU(id)
Input.jAxeV(id)
Input.jHasZ(id) Vérifie si le JoyPad a un axe Z.
Input.jHasR(id)
Input.jHasU(id)
Input.jHasV(id)
Input.jAxeX!(id) Retourne la position de l'axe X. (-1, 0 ou 1)
Input.jAxeY!(id)
Input.jAxeZ!(id)
Input.jAxeR!(id)
Input.jAxeU!(id)
Input.jAxeV!(id)
Input::MMSYSERR_NODRIVER
Input::MMSYSERR_INVALPARAM
Input::MMSYSERR_BADDEVICEID
Input::JOYERR_UNPLUGGED Le JoyPad a été débranché.
Input::JOYERR_PARMS Soit aucun JoyPad n'est branché ici, soit la mise à jour a fait de la merde
Note : Si vous débranché un JoyPad, vous serez obligé de le rebrancher à l'endroit où il a été débranché... Les manettes seraient fidèle. *fuit*
Graphics
Graphics.width Retourne la largeur de l'écran (relative au resize_screen).
Graphics.height Retourne la hauteur de l'écran.
Graphics.resize_screen(width,height) Redimensionne l'écran sans le bouger.
Graphics.resize_screen(width,height,true) Redimensionne l'écran en le centrant.
Graphics.snap_to_bitmap Fait une capture d'écran dans un Bitmap, comme en RGSS2 :3
Socket
Socket.new(family,type,protocol)
Socket.connect(hostname,port)
Socket.send(str)
Socket.recv(size) La socket se ferme si le data reçut fait 0 byte : "If the connection has been gracefully closed, the return value is zero." (à partir de 0.0.0.4b)
Socket.recv(buffer)
Socket.closed?
Socket.close
Socket.listen(nb_sock)
Socket.accept
Socket.bind(hostname,port)
Socket.shutdown(how)
Socket::AF_UNSPEC
Socket::AF_INET
Socket::AF_IPX
Socket::AF_APPLETALK
Socket::AF_NETBIOS
Socket::AF_INET6
Socket::AF_IRDA
Socket::AF_BTH
Socket::SOCK_STREAM
Socket::SOCK_DGRAM
Socket::SOCK_RAW
Socket::SOCK_RDM
Socket::SOCK_SEQPACKET
Socket::IPPROTO_ICMP
Socket::IPPROTO_IGMP
Socket::BTHPROTO_RFCOMM
Socket::IPPROTO_TCP
Socket::IPPROTO_UDP
Socket::IPPROTO_ICMPV6
Socket::IPPROTO_RM
Socket::SOMAXCONN
Socket::SD_RECEIVE
Socket::SD_SEND
Socket::SD_BOTH
SocketError
L'erreur dans les sockets.
TCPSocket
TCPSocket.new(hostname,port)
TCPSocket.readable?
TCPSocket.send(str)
TCPSocket.recv(size)
TCPSocket.recv(buffer)
TCPSocket.closed?
TCPSocket.close
TCPSocket.shutdown(how)
TCPServer
TCPServer.new(hostname,port)
TCPServer.accepting?
TCPServer.send(str)
TCPServer.recv(size)
TCPServer.recv(buffer)
TCPServer.closed?
TCPServer.close
TCPServer.listen(nb_sock)
TCPServer.accept
TCPServer.shutdown(how)
C'est tout ce que j'ai fait pour les fonctions ajoutés :3
Téléchargement
Version 0.0.0.4
From MediaFire
Version 0.0.0.4b
From MediaFire
Comment l'utiliser
Il faudra mettre la ligne suivant dans le tout premier script pour activer toute les fonctions ajoutés :
1
| init_rgss_mod() if Kernel.private_method_defined?(:init_rgss_mod) |
Et lancer le jeu avec YuriRGSSMod.exe (Renommez en Game.exe si ça vous fait chier avec RMXP :b)
Quand vous comptez redistribuer votre jeu et que vous utilisez ce programme, renommez l'exe et modifiez le titre de la fenêtre en modifiant le seul string contenu dans les StringTable de l'executable :3
L'archive encodée RGSS doit porter le même nom que le programme, de même pour le fichier ini si vous utilisez des RTPs.
Note: Le débug est désactivé que si il y a une archive RGSSAD encodée.
Crédits
Dahrkael - The topic that gave me the motivation to program this
Enterbrain - The RGSS.
Microsoft - Winmm, User32, Kernel32, WinSock etc…
Nuri Yuri - YuriRGSSMod.exe
Mot de la fin
Si vous avez des suggestions ou des remarques à faire là dessus, je suis ouvert :3
J'ai mis ça ici car je le considère comme un projet bien que ce ne soit pas un jeu, vous êtes libres de déplacer dans la section adéquat si elle existe :b
PS : J'ai testé qu'avec le matériel que j'ai chez moi donc j'ai aucune idée de la compatibilité avec les manettes XBox and co x) (Mon frère n'a pas le cordon, fichues manettes sans fil :<)
|