[SDK] L'endurance dans un jeu, c'est cool

1 Réponses • 548 Vues

Eurons

Mappeur

Comment créer un système d'endurance sous SDK ?
Leikt et moi-même vous présentons un système d'endurance crée spécifiquement pour SDK, ce tutoriel n'est que la première partie d'un système bien plus vaste.
Ce système est destiné à ceux qui voudraient créer un RPG, Pokémon ou non, plus "immersif".

Niveau requis : Avoir un minimum de bases, même si nous avons rendu le tout digeste et compréhensible à l’extrême, il n'est pas à la portée de tout le monde de pouvoir créer ceci.

Avant toute chose, veuillez ajouter ce script en dessous de "placez vos scripts après" et nommez-le à votre bon vouloir.


"Le Script d'endurance"
#Leikt, Eurons, Yuri sont a citer dans vos crédits pour l'utilisation de ce système d'endurance.
#Correction lié à un soucis en cbt par Yuri
module PFM
    class Pokemon_Party
    # <FR> Modifier le numéro après '=' pour définir le numéro de l'interrupteur du système d'endurance
    # <EN> Modify the number after '=' to define stamina system's switch
    STAMINA_SYSTEM_SWITCH = 159
    # <FR> Modifier le numéro après '=' pour définir le maximum d'endurance
    # <EN> Modify the number after '=' to define the stamina's maximum value
    STAMINA_MAX = 1000
        attr_accessor :stamina_steps
        alias stamina_initialize initialize
        def initialize(battle=false, starting_language = "fr")
            stamina_initialize(battle, starting_language)
            @stamina_steps = 0
        end
        alias stamina_increase_steps increase_steps
        def increase_steps
            if $game_switches[STAMINA_SYSTEM_SWITCH]
              stamina_change(1)
            end
            return stamina_increase_steps
        end
 
        def stamina_reset
            @stamina_steps = 0
        end
 
        def stamina_change(amount, maximum = STAMINA_MAX)
            if amount > 0
                @stamina_steps = [@stamina_steps + amount, maximum].min
            else
                @stamina_steps = [@stamina_steps + amount, 0].max
            end
        end
    end
end

Vient ensuite la création des évents communs, il va vous falloir réserver trois de vos emplacements, en effet, je me suis permis de tout automatiser à l’extrême et d'optimiser du mieux que je pouvais (faut dire que Leikt aime bien qd c'est optimisé au mieux è_é)

Passons à la création des interrupteurs et des variables nécessaires au bon fonctionnement de ce système :

Un interrupteur que l'on nommeras "Endurance" et un interrupteur que l'on nommera "épuisement", le premier servira à activer le script et à activer le premier évent commun et le deuxième activera l'évent de retour une fois que le héro aura dépensé tous ses points d'endurance.

Ceci étant fait, veuillez maintenant créer deux variables, une que l'on nommera "Endurance_MSG" qui servira à notifier le joueur de son état et une variable que l'on nommera "retour" qui permettra de créer des points de retours en cas de "fatigue extrême du joueur".

Et pour finir, veuillez ajouter ces images à votre dossier "pictures", elles servirons à notifier visuellement l'état du joueur.
http://www.mediafire.com/file/4t21ngm5ydez68s/Barres_endurance.rar

Pour éviter l'abus de screen et pour que ce soit compréhensible, voici un petit shareX vous présentant les trois évents communs :


Dans le première évent, vous afficherez tout simplement les images servant à notifier le joueur visuellement de son état selon la détection des pas faits.
Pour afficher l'évent des msg, n'oubliez pas de rendre égale la variable des msg et de faire appeler l'évent tout en bas de la page.
Pour ce qui est de l’interrupteur épuisement, il sert à lancer le troisième évent et d’enchaîner un soin du héros.

Pour le deuxième évent, nous afficherons des messages prévenant le joueur selon son état et de quand vous, le développeur avez décidé de les lui notifier. Pour ce qui est de la ligne "party.stamina_change(1)", nous ajoutons un à la variable des pas gérés par le script, tout simplement pour éviter que le msg ne se rejoue en boucle tant que le joueur n'a pas bougé.  La variable msg = 0 fait le même taff mais n'est pas à négliger.

Nous voici donc à la dernière étape, nous allons ici tout simplement activer le reset de l'endurance/fatigue du joueur mais aussi le téléporter à la dernière zone que vous aurez initialisé grâce à la variable "retour" et nous réactiverons le système dans la foulée, n'oubliez pas d’effacer l'image "fond" que vous utiliserez lors de la TP.

Voilà, nous avons finis pour cette première partie, la prochaine consistera à rendre le tout plus "immersif" avec un système de cuisine et de camps de repos. N'oubliez pas d’équilibrer les valeurs en fonction de votre jeu.

Crédits requis :
créateurs du système : Eurons, Leikt
Conseils : Yuri, SMB64

« Modifié: 15 août 2018, 16:28:01 par Eurons ?? »

"Apprendre à nager à quelqu'un en le noyant, c'est ma passion dans la vie." - Eurons, 2018
Rey approuve,

Fonctionnalité Outil Tuto Script PSDK Tuto Making

Eurons

Mappeur

Bonsoir, le script causant un bug en combat, il vient d'être mit à jour, il vous faut donc le mettre à jour si vous l’utilisez.
"Apprendre à nager à quelqu'un en le noyant, c'est ma passion dans la vie." - Eurons, 2018
Rey approuve,

There was an error while thanking
Thanking...