Sujet n°13190
Posté par
Ku'rei le
20 Sep - 10:53 (2013)Titre :
Pokémon Script Project On the Ground V0.3Qu'est-ce que PSPOG ? C'est un moteur vous permettant de faire apparaître les Pokémons des rencontres aléatoires sur la map comme des événements, cela remplis les maps et les rend beaucoup plus vivantes. Mais le SK ne s'arrête pas cette simple fonction : en plus des multiples personnalisations possibles concernant l'apparition des Pokémons vous pouvez aussi modifier leurs comportements sur la map (poursuite du joueur quand il est proche, fuite du joueur si le Pokémon est trop faible, ...) mais aussi en combat ! Déterminez quand le Pokémon fuit, quand il augmente ses stats, quand il sabote le statut de son adversaire, ... PSPOG rend le monde Pokémon plus stimulant.
Informations Générales
PSPOG est un starter kit créer avec le logiciel RPG Maker XP (version PSP_MOD), à partir du Starter Kit PSP4G+ de Sphinx lui-même créer à partir de PSP0.7 de Krosk. Un grand merci à eux-deux et à tous ceux qui ont participé de près ou de loin aux projets.
Le fichier téléchargé contient le SK et un projet exemple montrant succinctement ce que l'on peut faire avec ce SK, vous aurez environ 45 minutes (pouvant aller jusqu'à 5h si vous jouez comme mon testeur personnel) de jeu structuré par un scénario simple, vous ne serez pas tenu par la main alors observer et tiquez .Il contient aussi un manuel au format pdf détaillé complet avec un tutoriel de création de Standard.
J'espère que le SK vous plaira.
En ce qui concerne les Bugs, postez vos demandes dans ce sujets dans un premier temps et je verrai ensuite si l'ouverture d'un sujet réservé est nécessaire.
Téléchargements
Le Starter Kit PSPOG est disponible à cette adresse :
TéléchargementLe manuel seul est disponible à cette adresse :
Manuel PSPOG (
Téléchargement)
N'hésitez pas a faire part de vos réactions sur ce sujet.
Fonctionnalités
Voici une liste non exhaustive des fonctionnalités couvertes par la version 0.1 :
- Concrétisation des Pokémons sur la map
- Personnalisation des comportements sur map
- Personnalisation des comportements en combat : changements conditionnel d'IA (avec possibilité de scripter facilement la sienne)
- Changement des musique et jingle de combat simplifié
- Changement de fond de combat simplifié
- Création de Pokémon Voyageurs comme Suicune, Latias.
- Talus / Murets
- Ponts
- Repousse
- Persistance des caractéristique et statuts des Pokémons sauvages sur la map
Et maintenant ce qu'apporte la version 0.2 :
- Changement de nom pour PSP OG (On the Ground)
- Système Game_Zone :
- Liaison et chargement des maps liées entre elles
- Mise à jour des maps liées
- Zone de chargement
- IA de combat entièrement programmées et fonctionnelles
- Offensive
- Sabotage Statut
- Sabotage Stats
- Soin
- Renforcement
- Optimisation
- Utilisation d'une capacité particulière
- Quelques modifications de fonctionnement pour lesquelles je vous invite à aller voir la nouvelle version du manuel :
- Taux de remplissage
- Zone de mise à jour des PokEvents
- Gestion des deux types de rencontres (normales et PokEvent) :
- Activer/Desactiver les rencontres d'un type par interrupteur de jeu
- Activer/Desactiver les rencontres d'un type sur certains tags
- Cacher les PokEvent sur certains tags
- Changements locaux de standards
- Sauvegardes entièrement fonctionnelles (Correction des possibles bugs)
- Sauvegarde des ponts (oui parce qu'ils ne l'étaient pas avant)
- Placement des PokEvents corrigé et optimisé
- Tags de Map
- Animation du Centre Pokémon facilité
- Variables locales pour Event (à la manière des interrupteur locaux mais pour des variables)
Apports de la version 0.3 :
- Rencontres Spéciales
- Rochers, Arbres, ...
- Canne à Pêches
- Console de Debug
- Exécution de code
- Selection d'un event
- Information Event/PokEvent
- Création d'un log lors d'une erreur dans la console
- Programme RMXP 1.03fr modifié
- Attributs de Pokémons
- Comportements par espèces (Sauvage et dresseurs)
- Compagnons (Follow_Me)
- Standards pour compagnon
- Activation/Désactivation et nombre de compagnons du joueur
- Compagnon d'event
- Game_Zone désactivable temporairement
- Afficher_Message amélioré
- Divers
- Se tourner sans se déplacer
- Module Input réécrit
- Scènes de renommage réécrites
- Système de mise à jour (anti-lag)
- Pas de PokEvents sur les zones de superposition des maps
- Temps de réapparition des PokEvents
Et il en manque encore mais tout est détaillé dans le manuel.
Compléments du manuel (entre deux versions)
Entre la version 0.3 et la suivante :
- Interrupteurs de désactivations temporaires des rencontres : les rencontres (aléatoire ou PokEvent) sont activées quand les interrupteurs sont désactivés, et désactivées quand les interrupteurs sont activés.
- Anti-Lag : par défaut, les events seront mis à jour s'il sont à une certaine distance du joueur (voir le config panel). Des commande par commentaire permettent de modifier la règle :
- "ALWAYS_UPDATE;" fait en sorte que l'event soit toujours mis à jour, utile pour les event en processus parallèle.
- "NEVER_UPDATE;" fait en sorte que l'event ne soit jamais mis à jour (pour les event de décors, DATA_MAP, ...)
Corrections de scripts manuelles (entre deux versions)
Entre la version 0.3 et la suivante :
- Système de quête : déplacer le script "Fonctions Quetes" dans la catégorie "--- Communauté" de PSPOG
- Menu DEBUG inaccessible, dans le script Input (--Utilities de PSPOG) :
Vers la ligne 474, ajouter
F9 = Keys::F9
après
CTRL = Keys::CTRL
ALT = Keys::ALT
- Unlimited_Terrain_Tag, il peut y avoir un problème à la ligne 120, remplacez :
return @terrain_tags[tile_id] if @terrain_tags[tile_id] > 0
par
return @terrain_tags[tile_id] if @terrain_tags[tile_id].to_i > 0
Crédits
Voici la liste de ceux qui ont participé à la création de ce Starter et des ses précédents :
- Team et aides extérieures :
- Graphistes :
- Empire1601
- Mister-K
- Endoh
- Wesker
- denis bros
- Eventmakers / Scripteurs :
- Ku'rei
- Sphinx
- Slash
- denis bros
- Aide extérieure :
- Jordan : nouveaux pokémons
- Ace Attorney Man : partage de sprites
- Krosk : diverses aides en script
- Ray' : création du logo
- Palbolsky : système de baies
- Zelda : système de quêtes
- kellessdee : FPS_Display
- Nathmatt : Unlimited Terrain Tag
- RMXPStudio : divers scripts inclus à 4G+
- Pack des Characters Pokémon
- Yuri : pour tout ses conseils
FinalArt (For adding shadows. The shadow is already transparent at 50%, placed them directly in the Characters folder RMXP.)
bibiantonio
Brendan75
DJStarmix
Drakhaine
ghioa
Krosk
Lén
Link
Louro
Mortenkein
Qwerty
Palbolsky
Razbuz
Shaolan
Slash
Spiky
speed
Sphinx
Suicune
Yuri-岼
Zelda
Ace Attorney Man
Bilkev
Brendan
Solfay
Sphinx
Yuri-岼
spaceemotion
Alucus
New-titeuf
TwentyOne
TheEnglishKiwi
CNickC
Warpras
Dewitty
Yoh
Stefpoke
07harris/Paranoid
19dante91
27alexmad27
874521
Alistair
Bakura155
Blue Beedrill
chimcharsfireworkd
CNickC/CNC
Dewitty
Fused
Kizemaru_Kurunosuke
klnothincomin
Kymotonian
Novus
Pokemon_Diamond
PrinceLegendario
Reck
Red-Gyrados
REMY35
Saurav
SL249
ThePokemonChronicles
WesleyFG
Sphinx
Yuri-塗 ゆり
Pαlвσlѕку
LaPampa
Emeraude
Dark'
Slash
Junki
Lumi
Pois-Sky
Solfay.
RL77LUC
Newtiteuf
Speed
Sebix
Diésel
Warp'
IamTheAdic
Kureiji
SoulStorm2036
Ray'
Brendan75
Gryfenfeu
Noty!
Pois-Sky
Karusi
Isomir
Doques
Guigui28240
Araceus
White-start
Zopo
Moy
J'ai repris la liste de PSP4G+, donc forcément, si Sphinx en a oublier moi aussi alors n'hésitez pas à le signaler (et à nous excuser).
Historique des Mises à jours
- 20/09/13 - Création du sujet
- 01/10/13 - Mise en ligne de la Version 0.2
- 20/10/13 - Mise en ligne de la Version 0.3
Posté par
Antanio le
20 Sep - 11:42 (2013)Ton travail est non négligeable, mais je pense que de là à un faire un SK à part entière, c'est un peu excessif. On dirait que tu veux juste que ton nom soit associé à un SK de PSP.
Tu pourrais plutôt apporter ton aide à PSP0.8, par exemple. (Et perso je trouve que la map fait un peu chargée avec tout ça, mais bon.)
Posté par
Gold le
20 Sep - 11:58 (2013)Bah après pouvoir proposer une variété de starter kits, c'est très bien, donc bon courage pour ce projet de sk.
Juste une question : D'où vient le "Concrete Engine" ?
+ afficher les Pokémon sur la map c'est bien... Mais ça anéantit tout l'effet de surprise :/
Posté par
Ku'rei le
20 Sep - 12:08 (2013)Merci. Ca fait plaisir de voir que mon travail est reconnu.
Mais s'il te plait, ne me prend pas pour un kikoolol qui feraient tout pour être intéressant et reconnu, ce projet je l'ai en tête depuis longtemps.
Ensuite, oui, il n'y a pas autant d'apports que PSP4G+ ou PSPDS, mais les scripts modifiés étant nombreux et nécessite parfois de la précision dans les lignes modifiées, ça devient un calvaire pour celui qui l'installe, essaie déjà d'installer les scripts de murets et ponts séparément et tu verra.
Encore ensuite, je vais justifier le fait d'en faire un SK :
- Modifications massives et nombreuses du gameplay Pokémon :
je pense que c'est une chose qu'il faut tester avant de l'adopter pour son projet (d'où le projet exemple), et c'est beaucoup plus simple d'utilisation et rassurant si elles sont naturellement intégrées au Sk c'est-à-dire au projet que vous débutez.
- Developpement :
Je ne souhaites pas m'arrêter là, j'ai bien d'autres fonctionnalités à ajouter dans la tête. Fonctionnalités que je ne dévoilerais pas avant qu'elles soient finies.
J'espère que ça t'as convaincu.
Pour la map surchargée, c'est ton gout et ça vient aussi de mon style de mapping (forêts denses et aléatoires).
@Gold : (EDIT::Remarque obsolète avec la version 0.3) Pour l'effet de surprise, il y a un "false" a changer en "true" et tu as les deux modes de rencontres. (Script Scene_Map ligne 64)
Concrete Engine, je n'avais pas tellement d'idée de nom alors "moteur de concretisation" => "Concrete Engine" ce serait même Concreting Engine si je ne m'abuse.
Pour la variété, je le redis, les scripts modifis les caractéristiques et l'utilisation des Pokémons. Je pourrais parlé pendant des heures, essayez et voyez par vous-même

Posté par
TouzaxA le
20 Sep - 19:47 (2013)Même si j'accroche pas au nom, je dois avouer que c'est une bonne initiative, car je n'ai jamais installé aucun de tes scripts parce que j'avais la flemme. XD
Posté par
Ku'rei le
20 Sep - 20:12 (2013)Okay ^^ le nom n'inspire pas. Qu'est ce que vous proposez ? Je suis tout ouïe

Posté par
og_loc-TATOO le
20 Sep - 21:28 (2013)Y a t-il moyen d'afficher les pokemon partiellement sur la map ?
Du genre, on les voit dans les hautes herbes, mais quand on surf sur l'eau, on ne les vois pas.
Posté par
Ku'rei le
3 Oct - 17:26 (2013)J'ai prévu de le faire ds la prochaine version.
Fonctionnement indicatif : dans l'évent DATA_MAP. Commande par commentaire : DM;TAG_CACHANT;tag1;tag2;...
Avec tagX le tag où les pokemons n'apparaissent pas.
Met le maintenant. Ca fonctionnera quand tu aura la prochaine version.
EDIT:: vous pouvez supprimer toutes les maps fournies avec le SK. Le projet exemple est simplement la pour aider a la création. Je vous conseil donc de le garder a portée de main pour le consulter facilement.
EDIT 2::
VERSION 0.2 EN LIGNE
EDIT 3:: Je me sens seul dans ce sujet ^^ Bouhouhouuu venez me tenir compagnie on est bien :D
Nan plus sérieusement, je m'auto-up pour savoir comment je peut faire sortir mon SK de la catégorie propositions de projet.
Posté par
TouzaxA le
3 Oct - 17:26 (2013)Tu peux commencer par demander à quelqu'un du staff.

Posté par
Girakoth le
3 Oct - 17:33 (2013)Voilà, mon travail est accompli.
Posté par
Ku'rei le
3 Oct - 18:05 (2013)D'oh ! J'avais pas pensé à ça TouzaxA ^^
Youhou ! Merci Girakoth !
Posté par
Lonel le
3 Oct - 22:48 (2013)J'aimerai bien pouvoir ne pas avoir les pokémons sur la map, mais garder le "comportement" en combat, si tu pouvais le mettre dans uns script à part et le poster sur le forum, ce serait vraiment bien...
Posté par
Ku'rei le
4 Oct - 06:00 (2013)Ca ne marche pas comme ça ^^ Le comportement est carrément lié au standard vu qu'il est définis à l'interieur. Ce sera dans la prochaine version

EDIT:: Par contre, ce que tu peut faire pour l'instant, c'est au moment où tu créer ton Pokémon
Code: |
pokemon = ... # Tu récupère ton objet POKEMON_S::Pokemon #ia = ["condition;stratégies"] ia = ["true;OPTIMISATION;OFFENSIVE", "pv_inf?(50,2);FUITE(1);FUITE_SI_POSSIBLE"] pfb = Kurei::ConcreteEngine::PokemonFightBehaviour.new(ia) pokemon.fight_behaviour = pfb |
Il faudra aussi que tu ajoute cette ligne à la classe Pokémon : attr_accessor :fight_behaviour
Sinon tu ne pourra pas définir le comportement en combat.
Posté par
Sphinx le
4 Oct - 18:12 (2013)
Au fait, finalement, c'est CE (Concrete Engine) ou OG (On the Ground) ? (je dis ca parce que je suis tatillon et il y a un PSP CE qui traine dans la description

)
Plus sérieusement, quand j'aurai le temps, faudra que je m'y intéresse ^^ (et je ne dis pas ca parce que Ku'rei Jinwu a utilisé 4G+ pour son SK :D)
"Chapô" bas ^^
Posté par
Nuri Yuri le
4 Oct - 18:25 (2013)Grrr, strings are evil !
Je verrais plus un :
Code: |
Kurei::ConcreteEngine::PokemonFightBehaviour.new(:active=>true, :optimisation=>true, :type=>:offensive, :pv_inf_arg=>[50,2], :fuite=>1, :fuire_si_possible=> true) |
Tu définira le constructeur de la manière suivante :
Code: |
def initialize(hash) #do your stuff end |
Normalement hash contiendra {:active=>true, :optimisation=>:true, :type=>:offensive, :pv_inf_arg=>[50,2], :fuite=>1, :fuire_si_possible=> true}, enfin en ruby 1.9.1 et 2.0 si il ne comprend pas la syntaxe borne l'argument par {}.
C'est plus propre de faire ainsi que d'utiliser des strings surtout qu'avec un hash et des symboles, t'as juste le hash à allouer et ruby te permettra de récupérer ce que tu veux (ainsi que de faire tes traitements sans problèmes).
Voilà, voilà, c'est mon petit com', essaies de penser à une alternative de ce genre car les strings c'est trop d'allocations inutiles et la porte ouverte au hack. (En gros, les dev' du projet fait avec ton SK seront obligé de se retaper tout le code pour qu'il soit fiable.)
Posté par
Ku'rei le
4 Oct - 18:47 (2013) Sphinx a écrit: |
 Au fait, finalement, c'est CE (Concrete Engine) ou OG (On the Ground) ? (je dis ca parce que je suis tatillon et il y a un PSP CE qui traine dans la description  ) Plus sérieusement, quand j'aurai le temps, faudra que je m'y intéresse ^^ (et je ne dis pas ca parce que Ku'rei Jinwu a utilisé 4G+ pour son SK :D) "Chapô" bas ^^ |
PSPOG ^^ J'ai changer la description vite fait ... Pas biieeen Kurei !
Je pense que tu y trouverais des choses à redire comme Yuri.
Yuri a écrit: |
Grrr, strings are evil ! Je verrais plus un : Code: | Kurei::ConcreteEngine::PokemonFightBehaviour.new(:active=>true, :optimisation=>true, :type=>:offensive, :pv_inf_arg=>[50,2], :fuite=>1, :fuire_si_possible=> true) |
Tu définira le constructeur de la manière suivante :
Code: | def initialize(hash) #do your stuff end |
Normalement hash contiendra {:active=>true, :optimisation=>:true, :type=>:offensive, :pv_inf_arg=>[50,2], :fuite=>1, :fuire_si_possible=> true}, enfin en ruby 1.9.1 et 2.0 si il ne comprend pas la syntaxe borne l'argument par {}. C'est plus propre de faire ainsi que d'utiliser des strings surtout qu'avec un hash et des symboles, t'as juste le hash à allouer et ruby te permettra de récupérer ce que tu veux (ainsi que de faire tes traitements sans problèmes).
Voilà, voilà, c'est mon petit com', essaies de penser à une alternative de ce genre car les strings c'est trop d'allocations inutiles et la porte ouverte au hack. (En gros, les dev' du projet fait avec ton SK seront obligé de se retaper tout le code pour qu'il soit fiable.) |
J'entend bien que les string sont pas trés économes. Mais ce que j'ai proposé à Lonel est une méthode de substitution, on passe le string dans l'initialize, puis le script de comportement le traite pour le stocker. La chaîne provient directement des commentaires présents dans le Standard, il n'y a donc pas lieu de les modifier avant le traitement, de plus dans un hash on perd la notion d'ordre or l'ordre est primordial dans une stratégie !
true;OPTIMISATION;OFFENSIVE" est différent de true;OFFENSIVE;OPTIMISATION;" (ce n'est qu'un exemple)
Mais tu a raison sur le fait que je peux eviter de stocké des expressions entières dans une chaine. Je ne connaissais pas l'utilisation de :nom_methode pour la traiter comme une valeur. Merci Yuri 
EDIT:: @Yuri: Allocation ? Porte ouverte pour le hack ? euh... Tu pourrais m'expliquer tout ça stp ?
Et il y a une petite erreur dans ta signature "des edit visibleS" à edit aussi si tu met des s aux abbréviations.
EDIT2:: ":nom_methode", autant pour moi, c'est la classe Symbol, tu me fais découvrir un outil trés sympatique là !
Posté par
Nuri Yuri le
4 Oct - 20:33 (2013)On ne perd la notion d'ordre que sur les versions inférieur à 1.9 en ruby dans les Hash :b
Dans tous les cas, avec ma méthode, tu feras : hash[:type] pour savoir si l'IA est offensive ou non :b
Sinon, c'est bien les symboles que j'essaie de te faire découvrir, c'est très utile lorsqu'on a besoins de générer des fonctions ou alors de faire du traitement d'argument ou autre :b
Code: |
#=== #¤Nyuky's StructGenerator Module #--- #+01/01/13 : Nyagato Nyuky #=== module StructGenerator Char=:char Uchar=:uchar Byte=:byte Word=:word Uword=:uword Dword=:dword Udword=:udword Int=:int Uint=:uint Float=:float Qword=:qword Uqword=:uqword Double=:double Ptr=:ptr TypesOffsets={Char=>1,Uchar=>1,Byte=>1,Word=>2,Uword=>2, Dword=>4,Udword=>4,Int=>4,Uint=>4,Float=>4, Qword=>8,Uqword=>8,Double=>8,Ptr=>4} TypesNames={Char=>"Sc",Uchar=>"SC",Byte=>"SC",Word=>"Ss",Uword=>"SS", Dword=>"Sl",Udword=>"SL",Int=>"Sl",Uint=>"SL",Float=>"Sf", Qword=>"Sq",Uqword=>"SQ",Double=>"Sd",Ptr=>"SL"} module_function def run(name,mod,members) if(mod.const_defined?(name)) warn("La classe #{name} existe déjà !\n") return false end v=Class.new(String) sinitialize="def initialize(*args);" stos="def to_s();\"#<#{name}:\#{(self.object_id*2).to_s(16)} " index=0 offset=0 members.each_key do |m| ot=members[m] os=TypesOffsets[ot] oc=TypesNames[ot] sinitialize<<"self.#{m}=args[#{index}] ? args[#{index}] : 0;" stos<<"#{ot} #{m}=\#{#{m}()};" v.class_eval("def #{m}() return self[#{offset},#{os}].unpack(#{oc})[0] end;def #{m}=(v) self[#{offset},#{os}]=[v].pack(#{oc}) end") index+=1 offset+=os end sinitialize<<"end;" stos<<"\"end" v.class_eval(sinitialize) v.class_eval(stos) v.class_eval("def self_ptr() return [self].pack(Sp).unpack(SL)[0] end") mod.const_set(name,v) sinitialize=nil stos=nil name=nil members=nil GC.start return true end end #=== #>Définition de constantes dans la classe String pour les structure #=== class String Sc='c';SC='C';Ss='s';SS='S';Sl='l';SL='L';Sq='q';SQ='Q';Sf='f';Sd='d';Sp='p' end |
Code: |
#=== #¤WinAPIStructus #--- #+01/01/13 : Nyagato Nyuky #=== module WinAPI g=StructGenerator g.run("Point",self,:x=>:int,:y=>:int) g.run("MSG",self,"hwnd"=>:int,"message"=>:uint,"wParam"=>:uint,"lParam"=>:int,"time"=>:int,"x"=>:int,"y"=>:int) g.run("RAWINPUTDEVICE",self,"usUsagePage"=>:uword,"usUsage"=>:uword,"dwFlags"=>:dword,"hwndTarget"=>:int); end |
Avec ce petit code je peux générer des structures C dans ruby et les utiliser pour mes appels d'APIs 
Pour ce qui est la porte ouverte aux hacks, c'est simple, il suffira de scanner la mémoire et de chercher OFFENSIVE puis de le remplacer par autre chose à souhait voir même de changer l'intégralité des paramètres envoyés :b
Posté par
Sphinx le
4 Oct - 20:37 (2013)^^ Utiliser les symboles comme clé de Hash, ca ne m'était jamais venu à l'esprit. Pourquoi pas

Ensuite, j'aimerais comprendre en quoi l'ordre de lecture des clés d'une Hash peut avoir une telle importance ^^"
=> Pour rappel, on travaille sur quelle version de ruby avec le RGSS de RMXP ?
Posté par
Nuri Yuri le
4 Oct - 20:48 (2013)Mon exemple était pour illustrer les symboles :b
L'importance de l'ordre des clefs prend tout son sens dans mon exemple, si les clefs sont désordonnées, la structure ne sera pas alignée correctement et il en résultera à des bugs de l'application qui se servira des structures :b
Sinon, les symboles étant des valeurs statiques, elles sont bien plus rapides à être trouvés dans un Hash qu'un string :b

Pour toi a["b"] et a[:b] sont la même chose... Pour ruby pas du tout car lui il voit qu'il vérifie un Symbole, un Fixnum ou un Booléen (nil inclut) il va juste faire un équivalent de == alors que lorsque c'est un string, un tableau ou autre chose il va devoir récupérer l'objet puis appeler la méthode == de cet objet.
Enfin bref, c'est la mécanique du ruby vu du processeur :B
Posté par
Sphinx le
4 Oct - 21:41 (2013)xD L'intérêt d'une Hash n'est il pas de s'affranchir de l'ordre des valeurs ?
Permettant par la même de spécifier certaines options en en ignorant d'autres (à condition que ce soit géré par le développeur certes) ? Sinon, un Array bête et méchant n'est il pas plus performant / approprié ?
Posté par
Ku'rei le
4 Oct - 21:45 (2013)Ok, j'ai rien compris à ton code et pas la motivation de le regarder plus en détaille maintenant. Donc je te crois sur parole. C'est donc mieux si je stock les données en symbole plutôt en string ?
Je suis en train de me dire que je n'ai pas besoin de Hash pour faire ce que j'ai a faire avec mes conditions et actions.
@Sphinx : je teste les condition dans l'ordre où elles étaient dans l'Event, mais un array peut-être plus adapté ^^ Effectivement (Ajouter après avoir ton dernier msg)
EDIT::Sur le About de Rmxp 1.03, Ruby est à 1.8.1 donc effectivement, on a pas l'ordre dans les Hash. Et ça m'a permit de voir que l'ordre de définition des stratégie n'etait pas toujours respecté.
Posté par
Nuri Yuri le
4 Oct - 21:59 (2013)Les symboles ne sont pas des conteneurs attention. Ils doivent être utiliser de la même manière que je t'ai monté :b
Soit tu fais un string avec toute tes données, soit tu crée des arguments en utilisant les symboles comme identifiant à certaines choses.
@Sphinx : Tu te trompes entièrement sur les Hashs. Le but des hash n'est pas de s'affranchir de l'ordre des valeurs, ça c'est second, le but des hash est de pouvoir associer une clef à une valeur, par exemple a[true]=false. Ce qui serait impossible avec un Array qui lui stocke les valeurs, elles sont "indexés".
Posté par
Ku'rei le
4 Oct - 22:06 (2013)Les symbole ne serait un genre d'énuméré global ?
Posté par
Sphinx le
4 Oct - 22:09 (2013) Yuri a écrit: |
Ce qui serait impossible avec un Array qui lui stocke les valeurs, elles sont "indexés". |
^^ Dans un array, t'as aussi une association clé/valeur, juste que la clé n'est pas libre, c'est un auto incrément séquentiel :p Après, que le proc gère ma hash ainsi :
Code: |
{:a => "BEUH", :b => 10_000} |
ou :
Code: |
{:b => 10_000, :a => "BEUH"} |
Quelle différence xD J'y accèderai toujours par hash[:a] et hash[:b] !
Posté par
Ku'rei le
4 Oct - 22:19 (2013)La différence est dans l'itération :
Code: |
for key in mon_hash.keys #Do your stuff (©Yuri) end |
Posté par
Nuri Yuri le
4 Oct - 22:27 (2013)Sur ruby 1.8.1 aucune vu que les clefs vont être triés, sur ruby 2.0 t'accèdera plus vite à :a qu'à :b si :a est définie avant :b.
Dans les faits, les arrays c'est des index, ou des positions, les hash c'est des clefs qui sont cherchés affin de trouver la valeur.
On peut modéliser un hash ainsi :
Code: |
class Hash2 def initialize(hash) @keys=Array.new @values=Array.new hash.each_key do |i| @keys.push(i) @values.push(hash[i]) end end
def [](key) pos=@keys.index(key) return (pos ? @values[pos] : nil) end def []=(key,value) pos=@keys.index(key) if pos @values[pos]=value else @keys.push(key) @values.push(value) end end end |
(Ce code est absolument pas optimisé, c'est un modèle.)
Posté par
lucario360 le
5 Oct - 16:11 (2013)Titre :
probleme avec le GameZoneJ'ai un petit problème avec le GameZone qui est le Maplink, j'ai pourtant suivit ce que dit le manuel et sa fonctionne pas.
en gros quand j'arrive a la limite de ma map pour aller vers la map qui est au nord je devrais voir une partie de la prochaine map au lieu du noir, mais je voit les 5 dernière case de ma map actuel a la place.

voici mon image in_game et l'eau que l'on voit c'est les 5 case du bas de cette map et je devrais voir à la place de l'eau le début de la prochaine map qui est au nord.

maintenant voici une petite part de mes 2 map dont celle du bas est celle dont je suis dans le in-game et l'autre celle au nord donc la prochaine map et mes téléportation se font a partir de la rue et j'ai indiquer aussi la taille de mes map pour t'aider car vu leur taille je voulais pas les mettre en entier. alors j'ai créer dans chacune des map un event en parallèle avec la commande en commentaire DM...... correspondant au maplink donc j'ai essayer plusieurs combinaison possible avec la commande et cela a rien changer.
Dans ma map du bas j'ai mit: DM;MAPLINK;n;3;20;
Dans la map du haut : DM;MAPLINK;s;2;-20;
J'ai essayer tout les combinaison possible en inversant le 20 par -20 et aussi je ne comprends pas ton event de téléportation.
Merci du conseil..
Posté par
Ku'rei le
5 Oct - 18:25 (2013)Titre :
Pokémon Script Project On the Ground V0.3Il faut que MAPLINK (de Krosk) soit désactivé (je dis ça au cas ou tu l'aurais activé).
Ensuite, il n'y a aucun décalage entre tes deux maps. Chaque colonne d'une map est alignée avec celle de l'autre. Avec tes décalages, tes maps seront affichées comme ceci :
Vérifie que ton event contenant DM;MAPLINK;...; s'appelle bien exactement DATA_MAP. Il n'a pas besoin d'être en processus parallèle voici le DATA_MAP de la map rivière du projet exemple (version 0.3 qui n'est pas encore sortie)
l'event DATA_MAP est un event complètement inutile en jeu, pas la peine de gâcher de la ressources en le mettant en processus parallèle.
Posté par
Psykomatik le
6 Oct - 12:51 (2013)Petite question, comptes-tu faire passer PSP On the Ground sur PSP DS ou PSP 5G v0.9 ?
Posté par
Ku'rei le
14 Oct - 15:36 (2013)Nop, je ne vois pas l’intérêt du tactile sur ordinateur (donc je ne vois pas l’intérêt de 2 écran sur ordi) et aussi parce que j'ai détesté toutes les versions après RSE (déjà là c'était limite), qu'aucun ajout réel n'a été fait à part des gadgets et des nouvelles générations avec une espèce de pokémon sur 50 qui est originale et unique, tout ça pour faire vendre des jeux... Peut-être que X et Y inverseront la tendance mais je suis sceptique... Bref, je ne veux pas parler de ça ici. Donc pas de PSP DS. Et je ne connais pas du tout PSP 5G ^^ De ce que l'on voit sur la présentation, c'est une amélioration de PSP DS ?
Je ne sais pas comment ces propos peuvent être compris, mais en aucun cas je ne me veux condescendant. Pardonnez-moi si c'est votre ressenti.
Peut-être un genre de bibliothèque avec des points d'entrée/sortie bien définis et donc plus facilement exportable et adaptable aux autres SK. Mais ce ne sera pas avant que je maîtrise les Design Pattern et que j'ai beaucoup plus d’expérience car cela nécessiterait de recoder tout le SK (il devient trés spaghetti là ^^)
Bonjour à tous,
Voici quelques news de la version 0.3 du SK PSPOG qui devrait sortir en fin de semaine. En image, quelques-unes des fonctionnalités remarquables en screenshots (canne, à pêche, compagnons, ... Pas IA de combat, ...).


Plus sérieusement, voici le tableau des fonctionnalités ajoutées par la version 0.3 :
Posté par
TouzaxA le
14 Oct - 17:55 (2013)Bah ça a l'air très complet tout ça !
Posté par
Ku'rei le
20 Oct - 12:20 (2013)Merci, comme prévun en fin de semaine.
VERSION 0.3 EN LIGNE
Posté par
lucario360 le
20 Oct - 14:26 (2013)il est tu possible de modifier un projet démarer avec la version 0.2 et de rajouter les fonctions de la 0.3 sans tout transférer, car j'ai fait cela pour la premiere version à la 0.2 et c'est très long et pénible quand tu a beaucoup de ressource et autres. la copie du fichier scripts.rxdata pourais faire, mais quand tu as des scripts de rajouter on les perds alors préviens moi si tu as une bonne solution merci!
Posté par
Ku'rei le
20 Oct - 14:59 (2013)Normalement, la copie du fichier scripts.rxdata est suffisante en ce qui concerne les scripts mais tu devrais tout de même transférer les événements communs qui ne sont pas dans la version précédentes. De tête, je peux aussi te dire que le tileset jothocomplet2 à été modifier et que divers chara de Red ont été modifiés aussi.
Posté par
lucario360 le
20 Oct - 17:30 (2013)Ah ok c'est bon, j'ai tout transferrer comme d'habitude et je n'utilise pas les tilesets de base avec le SK et pour les divers chara de RED c'est quoi au juste qui est modifier c'est tu pour un évents quelconque car si j'utilise un autre héros va falloir y creer les modification.
Posté par
Ku'rei le
20 Oct - 18:14 (2013)C'est pour le changement d'apparence du Héros (event Animer_Joueur, ...) C'est juste la canne à pêche, le template de canne à pêche, ...
Posté par
Zohran le
4 Nov - 20:38 (2013)Euh, j'ai une question, on peut modifier le comportement du pokémon en combat, peut-on aussi modifier le comportement des combats contre les dresseurs?
Je parle au niveau de l'IA.
Posté par
Ku'rei le
6 Nov - 09:30 (2013)Les comportements des Pokémon des dresseurs sont modifié dans les Event DATA_SPECIES, en précisant à qui s'applique la définition (c'est dans le manuel)
mais tu ne peux pas établir une stratégie pour le dresseur (changement de Pokémon, utilisation d'objet, ...).
Posté par
Zohran le
6 Nov - 10:18 (2013)D'accord, merci. Prévois-tu de le faire ou non?
Si je demande ça c'est parce que je prévois de démarrer peut-être un projet sur PSP0.7...
Posté par
Ku'rei le
6 Nov - 10:54 (2013)Oui, c'est une fonctionnalité que j'implémenterais dans le système de combat que je suis en train de recoder).
Posté par
Zohran le
6 Nov - 11:12 (2013)Génial ! MOUAH AH AH AH !

Posté par
Ku'rei le
11 Nov - 13:55 (2013)Petite présentation de l'avancement des combats. Pour l'instant le système gère :
- Transition d'entrée
- Les combat 1v1 2vs1 1vs2 et 2vs2 et plus... Mais plus ça à un rendu dégeu.
- Gestion de teams :
Chaque ground peut accueillir autant deux équipe / deux dresseurs. Par exemple un Pokémon appartenant au joueur, un autre à un dresseur.
- La sélection des cibles
- La sélection d'une action (attaque, objet, switch, fuite)
- La fuite
C'est loin d'être fini mais le plus gros (je parle de la structure) est fait.
La suite :
- Attaque
- Objets
- Spécialisation des combats de dresseur.
Voici la
VIDEO
Posté par
Nuri Yuri le
11 Nov - 15:02 (2013)C'est pas mal, reste plus qu'à faire fonctionner les attaques \\o//
Pour le choix des pokémons j'aurais plus vu quelque chose comme ça :
Un choix en fenêtre dans une scène qui se déroule en fenêtre est un peu mieux et choisir les pokémons à ta manière ça fait un peu bizarre x)
Posté par
Qwerty le
11 Nov - 15:05 (2013)Par contre, "Pokémon" est invariable, donc pas de "s" au pluriel :O
Posté par
Nuri Yuri le
11 Nov - 15:33 (2013)Et tu es fière de ta connerie ?
Selon les points de vue, il ne m'est pas interdit d'écrire les pokémons bien que ce mot provient de l'étranger. Je le considère ici comme un nom commun au même titre que monstre.
Maintenant, si tu n'as rien d'autre à ajouter qui est en rapport avec le sujet initial : Pokémon Script Project On the Ground. Tu ne postes pas de réponses.
Posté par
Qwerty le
11 Nov - 15:50 (2013)Calme, Yuri :O
Je parlais à Ku'rei parce qu'il l'a mis dans son interface, en vrai (qui a donc rapport avec le sujet initial)...
Aussi, dans les JVs officiels, il a toujours été écrit Pokémon au pluriel, sans s (et ça rend moins bien esthétiquement avec dans son interface)
Mais pourquoi, une telle "agressivité" ? ):
Posté par
Aerun le
11 Nov - 15:56 (2013)Après discussion et recherches, il s'agit en français effectivement d'un mot invariable masculin. On dit des Pokémon et non pas des Pokémons, comme on ne dit pas des Frigos, mais des frigo ou des réfrigérateurs.
Plus sérieusement j'ai regardé un peu le contenu de ce SK, très beau travail.

Posté par
Laito' le
11 Nov - 16:24 (2013) Qwerty a écrit: |
Calme, Yuri :O Je parlais à Ku'rei parce qu'il l'a mis dans son interface, en vrai (qui a donc rapport avec le sujet initial)... Aussi, dans les JVs officiels, il a toujours été écrit Pokémon au pluriel, sans s (et ça rend moins bien esthétiquement avec dans son interface)
Mais pourquoi, une telle "agressivité" ? ): |
Comme on dit "Jeux-vidéo" et non Jeux-vidéos.
Pokémon, même au pluriel ne prend pas de S.
Je comprends Yuri, c'est lourd les gens qui écrivent aussi POKEMON alors que c'est POKéMON ou POKÉMON. Là, rajouter un S ça revient au même.
Posté par
og_loc-TATOO le
11 Nov - 16:34 (2013)Eh bah, ce système de combat aurait largement sa place dans mon projet, vu que l'espace de combat est assez large pour contenir 6 pokemon '-'
Tu es sûr que tu veux pas l'adapter dans mon projet ?

Posté par
Zohran le
11 Nov - 16:36 (2013)Beau boulot Kurei, et bien, avec un aussi bon scripteur, je crois que je vais arrêter le développement de SK moi, je vois plus l'intérêt... :O
Posté par
Nuri Yuri le
11 Nov - 16:45 (2013)@og_loc-TATOO : C'est juste un problème de sprites, si tu les mets en 2x2 au lieu de 3x3 ça passe mieux. (La DS a un écran de 256x192 et le 3v3 passe assez bien).
@Laito : Certes, en français dans la langue français c'est invariant si on considère que Pokémon est un mot reconnu comme tel dans les autres langues. Après, les étrangers mettent un s à Pokémon au pluriel mais là ne sera pas le problème. Je conçois totalement que dans un message ou une interface Pokémons est une faute, mais dans le jeu en lui même, non. Pokémon doit être considéré comme un nom commun les gens du jeu parlent leur langue et Pokémon doit être un mot au même titre qu'animal ou monstre sinon, ça inclurait qu'ils ne reconnaissent pas les Pokémons. Enfin, c'est de l'ordre de la pensé mais bon voilà quoi.
@Qwerty : On commence pas une phrase par par contre sans établir de contexte. C'est ton problème si tu m'as ressenti comme agressant. Dans l'interface, Pokémon est plus judicieux et correcte que POKEMONS mais je n'avait pas vraiment relevé la faute chez Kurei.
Posté par
Laito' le
11 Nov - 16:52 (2013)À partir du moment où dans le jeu lui même c'est pas accordé, je pense qu'il y a pas vraiment à en discuter.
Même si je comprends ta frustration à ce niveau là.
Posté par
Zohran le
11 Nov - 16:55 (2013)Et puis, vu l'orthographe, la syntaxe et la grammaire de certains, je trouve qu'on peut remercier d'avoir "les pokémons" écrit de cette manière plutôt que " les peaukaimones"

Posté par
Ku'rei le
11 Nov - 18:10 (2013)@Yuri : Remarque intéressante. J'ai pensé à faire comme tu le dis mais j'ai relevé plusieurs problèmes :
Le système à pour but d'être pas beaucoup ni trés mais extrêmement ouvert au modifications (cela se verra dans mon projet personnel), et normalement la version que je proposerait gérera les combats avec unes infinité de pokémons (en théorie). La sélection par la fenêtre pose le problème de la place.
@og_loc-TATOO : Les interactions entre le système et le SK passent au maximum par un module se comportant de façon différente selon le SK utilisé. C'est pourquoi il sera facilement exportable sur n'importe quel autre SK. Cela est du au fait que je code le système pour PSP 1.0 et PSP 0.7, je connais la structure de données de PSP0.7 mais pas de PSP1.0. Donc oui tu pourra le mettre dans ton SK

@TOUS : Je vais coupé court au débat sur le 's' en disant que toutes les chaînes/nom de fichier et constantes du système sont paramétrés dans un script à part et que l'utilisateur n'aura qu'à modifier selon sa préférence.
Je pars du principe que Pokémon est utilisable comme le nom chat et chien et peut donc prendre la marque du pluriel.
Je ne veux plus entendre parler de ça ici. Merci de votre compréhension.
EDIT:: J'aurais aussi besoin de savoir une petite chose : s'il y en a qui utilise ce SK, vous n'avez pas de bug à corriger ?
Posté par
elric54 le
11 Nov - 19:43 (2013)Si j'ai bien compris moi qui suis sur PSP0.7 je peux me servir de ton SK sans problème ?
Posté par
og_loc-TATOO le
11 Nov - 19:59 (2013)Cool, quand il sera fini je le mettrai dans mon SK, du coups je ne vais pas commencer la modif' du système de combat maintenant

Bizarrement ma flemme commence à partir

Posté par
Ku'rei le
11 Nov - 21:22 (2013)@elric : Je ne vois pas ce que tu veux dire. Si tu es sur PSP0.7, il te faut transférer ton projet sur PSP OG
@oc : Fait donc comme tu le sens

Je m'arrangerais pour que les fonctions de démarrage de combat des SK de base restent valides.
Posté par
doug le
14 Nov - 22:06 (2013)Merci pour le SK

Je vais tenter de l'installer et de l'utiliser, je te transmettrai avec plaisir mon retour sur son utilisation (et si je constate des bugs / ou si j'ai des questions sans réponse le concernant).
J'ai hâte de voir l'implantation de ton nouveau système de combat également ^^
Petite question cependant, quelle est la version souhaité de RPG Maker XP pour faire fonctionner ton SK ? 1.01 ? 1.03 ? (comme j'ai pu lire dans le dernier patch note)
Posté par
Ku'rei le
25 Nov - 12:55 (2013)Je fournie un éxécutable PSP_Mod_2.exe avec le SK. C'est une version modifiée de rmxp1.03fr.exe (plus grande fenêtre de script, d'event, de database, ...
Je ne sais pas si j'avas inclu la fonctionnalité de retardement des respawn dans la version 0.4, mais il y a des chance que tu es un bug quand tu change de map. Si c'est le cas, va à la ligne 107 du script ConcreteEngine1 et met tout en commentaires :
Code: |
#if map_data.last_entry_time != true and Time.new - map_data.last_entry_time >= map_data.reappearing_time # return #end #p map_data #map_data.last_entry_time = Time.new |
EDIT VISIBLE::
Voici une petite news de l'avancement du système de combat : le combat safari. Les calculs de captures et de comportements du Pokémon sauvages sont à revoir et la capture du Pokémon (ajout au Pokédex/Fin du combat) est à ajouter. Le système est opérationnel et devrait être complet avant la fin de l'année (par complet j'entend qu'il ne restera que les effets de capacité à encoder).
Pour la musique, j'ai pas fait gaffe. Vous savez maintenant ce que j'écoute ^^
Posté par
joeyw le
25 Nov - 16:22 (2013)Hum système bien cool en vue (comme la zik)

Posté par
Sphinx le
25 Nov - 17:26 (2013)^^ Magnifique tout ca !
D'ailleurs, un détail attire tout particulièrement mon attention : dans ton safari, tu affrontes 2 pokémons à la fois. Est-ce uniquement pour le safari ou est-ce disponible aussi pour les combats (contre pokémons sauvages et/ou dresseurs) ?
Posté par
Girakoth le
25 Nov - 18:00 (2013)Pas mal!
Pour la musique, je suis sûr de connaître ce groupe, c'est quoi le nom? XD
Posté par
Nuri Yuri le
25 Nov - 19:59 (2013)Faut faire gaffe, dans les règles de combat sur Pokémon il est impossible de capturer un Pokémon adverse si il y a plus d'un Pokémon adverse x)
Posté par
Psykomatik le
25 Nov - 20:23 (2013)Sphinx: Il a dit qu'on pourra faire des combats 2 vs 2, 3 vs 3, 2 vs 1 etc ... Donc ça sera vachement complet !
Ça serait sympa qu'il aide PSP 1.0 honnêtement, il a l'air de s'y connaitre pas mal en script. :p
Posté par
og_loc-TATOO le
25 Nov - 20:29 (2013) Yuri a écrit: |
Faut faire gaffe, dans les règles de combat sur Pokémon il est impossible de capturer un Pokémon adverse si il y a plus d'un Pokémon adverse x) |
J'ai toujours trouvé cette règle complètement c*n '-'
Posté par
Nuri Yuri le
25 Nov - 20:55 (2013)@Psykomatik : Il a l'air seulement ?
Il sait scripter

@og_loc-TATOO : Dans un certain sens pas vraiment, mais si la capture d'un Pokémon se fait en 2v2 alors le deuxième aurait la possibilité de fuir, si j'étais un Pokémon je réagirais ainsi.
Posté par
og_loc-TATOO le
25 Nov - 22:50 (2013)Ouais, mais tu tes déjà retrouvé en face d'un Abra que tu veux capturer et un autre pokemon sans intérêt ?
Si oui, tu comprends ma frustration de cette règle x')
Posté par
Aerun le
26 Nov - 00:26 (2013)A Day to Remember -
Colder Than My Heart, If You Can Imagine, surement un de leurs meilleurs morceaux !
Pas mal du tout le Safari !

Posté par
Girakoth le
26 Nov - 01:04 (2013)Ah bah je me disais aussi, j'ai les albums de ce groupe et j'étais quasiment sur que c'était le même chanteur XD
Posté par
Ku'rei le
26 Nov - 08:22 (2013) Sphinx a écrit: |
D'ailleurs, un détail attire tout particulièrement mon attention : dans ton safari, tu affrontes 2 pokémons à la fois. Est-ce uniquement pour le safari ou est-ce disponible aussi pour les combats (contre pokémons sauvages et/ou dresseurs) ? |
Le mode Safari ne fait que redéfinir certaines méthodes du système. Donc oui ça marche en 2vs2 et 3vs3. Mais il sera aussi possible au maker de créer un nouveau mode de combat sans modifier les autres. Dans l'objet paramètre de définition du combat on trouve le champs 'factory_method' qui contient le nom de la méthode de fabrication du combat (pour l'instant :normal et :safari). L'architecture fonctionne bien, mais je commence à m’emmêler dans la gestion des sprites et des pokémons...
Girakoth a écrit: |
Pour la musique, je suis sûr de connaître ce groupe, c'est quoi le nom? XD |
C'est A day to remember - Colder Than My Heart, If You Can
Yuri a écrit: |
Faut faire gaffe, dans les règles de combat sur Pokémon il est impossible de capturer un Pokémon adverse si il y a plus d'un Pokémon adverse x) |
Je sais mais comme l'a dit og_loc-TATOO, cette règle me semble vraiment vraiment dépassée.
Psykomatik a écrit: |
Ça serait sympa qu'il aide PSP 1.0 honnêtement, il a l'air de s'y connaitre pas mal en script. :p |
Yuri a écrit: |
@Psykomatik : Il a l'air seulement ? Il sait scripter  |
Hahahaha 
Posté par
Psykomatik le
24 Déc - 17:36 (2013)Le SK avance ? J'aimerais bien me lancer dans un projet, mais j'ai peur de devoir tout recommencer si j'le commence à la version 0.3 et que la version 0.4 sort. :s
Posté par
Ku'rei le
24 Déc - 18:44 (2013)Tu peux commencer, la version 0.4 modifiera le fichier Script.rxdata. Je te propose la méthode suivante :
- Créer ton projet à partir du SK,
- quand la nouvelle version sortira : tu copie/colle les scripts personnalisés dans un .txt ou dans un autre projet. Tu copie/colle le fichier Scripts.rxdata depuis la nouvelle version vers ton projet, tu replace tes scripts au bon endroit et tu es passé à la version suivante.
Concernant la nouvelle version, elle va mettre du temps à sortir. Je taff 8h/jour et ais 2 autres projets professionnels. Je ne contait que recoder le système de combat dans la 0.4.
Posté par
TouzaxA le
26 Déc - 19:44 (2013) Ku'rei a écrit: |
Je ne contait que recoder le système de combat dans la 0.4. |
C'est déjà pas si mal... 
Posté par
Ku'rei le
18 Jan - 08:57 (2014)Bonjour tout le monde,
Vous l'aurez remarqué, le projet est en pause depuis un moment, je passe toujours de temps en temps sur le forum mais je monte une entreprise et n'ai plus trop le temps et l'envie de scripter. J'espère que le projet n'est pas mort mais simplement gelé et que je pourrais le reprendre bientôt.
Bon making à tous !
Posté par
Psykomatik le
18 Jan - 19:08 (2014)Pourquoi les meilleurs partent en premier ? ;(
RIP. :(
Posté par
Girakoth le
18 Jan - 23:02 (2014) Psykomatik a écrit: |
Pourquoi les meilleurs partent en premier ? ;(
RIP. :( |
Toi t'es là pour longtemps dans ce cas
(bon ok, c'était du troll gratuit)
Quoiqu'il en soit, bonne chance pour tes projets Ku'rei!
Posté par
og_loc-TATOO le
18 Jan - 23:11 (2014) Psykomatik a écrit: |
Pourquoi les meilleurs partent en premier ? ;(
RIP. :( |
Les meilleurs partent pas les premier, regarde, ch'ui encore la. 
Bonne chance Kurei 
Posté par
Ku'rei le
19 Jan - 10:07 (2014)Le projet était déjà bien avancé, il dors et déjà énormément de possibilités. il ne manque que le système de combat dont je reprendrais le codage dans un moment (j'ai horreur de ne pas finir un projet ^^). Et je pense suis toujours dispo pour réglé les bugs qui surviennent, mais personnes n'en fait part (c'est à ce demander si le SK est utilisé)
Posté par
og_loc-TATOO le
19 Jan - 14:28 (2014)Et pourtant, les gens l'utilisent x)
Mais c'est ta faute si y a pas de bug

Posté par
Sphinx le
19 Jan - 14:34 (2014)x) Moi j'attendais la prochaine version pour tester ton SK
Posté par
Ku'rei le
20 Jan - 15:12 (2014)Grrr ! Vous me donnez envie de finir la 0.4 avant de monter mon entreprise...
Posté par
doug le
23 Jan - 05:35 (2014)J'utilise ton SK, même que j'ai démarré directement avec, et qu'il me plait bien

Vu que tu tiens à avoir des questions, je vais t'en soumettre une (même si je pense que ce n'est pas proprement dû à ton codage, mais c'est le seul "bug" que je n'ai pas su résoudre pour l'instant), et ensuite je donnerai mon feedback personnel sur ton SK

Alors, j'ai un plantage lorsque Mew utilise Morphing en combat :
Citation: |
---------- Erreur de script : Pokemon_Custom ---------- ----- Type NoMethodError
----- Message - ARGS - [] undefined method `dv_atk' for #<POKEMON_S::Pokemon:0x9c81350>
----- Position dans Pokemon_Custom Ligne 226
----- Backtrace Script : Pokemon_Custom | Ligne : 226 | Méthode : in `transform_effect' Script : Pokemon_Battle_Core 2 | Ligne : 1776 | Méthode : in `attack_action' Script : Pokemon_Battle_Core 1 | Ligne : 552 | Méthode : in `phase3' Script : Pokemon_Battle_Core 1 | Ligne : 430 | Méthode : in `update' Script : Pokemon_Battle_Core 1 | Ligne : 168 | Méthode : in `main' Script : Pokemon_Battle_Core 1 | Ligne : 165 | Méthode : in `loop' Script : Pokemon_Battle_Core 1 | Ligne : 172 | Méthode : in `main' Script : Main | Ligne : 49
|
Si vous avez une idée ^^
Pour en revenir au SK à proprement parlé, en effet je n'ai eu aucun bug notable, je vais résumer ici les quelques problèmes que j'ai rencontré :
- Le maplink qui en fait fonctionne avec une commande dans l'évènement DATA_MAP, ce qui diffère du manuel de base mais où on trouve la solution dans celui fournit avec le SK.
- La surpopulation par défaut des PokEvents, mais réglable via une autre commande dans le DATA_MAP.
- La création d'un pont praticable, mais configurable avec l'évènement commun associé.
Sinon à part ça, moi qui débute chez PSP, je prend un grand plaisir à utiliser ton SK et à en découvrir petit à petit les spécificités, tu rajoutes des choses vraiment pratiques, tu centralises pas de fonctionnalités, et j'avoue que ça fait du bien au cerveau 
J'aurai aimé savoir aussi, comment efface t'on les sauvegardes dans le jeu?
Enfin voilà ! J'aime beaucoup ton travail, et j'espère vraiment que tu le mèneras jusqu'au bout :D
Merci !
Posté par
og_loc-TATOO le
23 Jan - 13:32 (2014)Pour la sauvegarde tu as la méthode barbare qui est de supprimer les saves dans la racine de ton projet =D
Posté par
doug le
23 Jan - 15:06 (2014)Héhé ^^
Bon j'ai trouvé la solution au problème, dans le script le dv_atk était initialisé sous "dv_atkws" et non "dv_atk". Voilà.
Posté par
og_loc-TATOO le
23 Jan - 18:31 (2014)C'est sympa, n'oublie pas de partager si tu as d'autre truc du genre

Posté par
Ku'rei le
23 Jan - 18:46 (2014)Tu as du courage de t'attaquer à PSP par PSPOG (qui est sans doute le plus complexe des SKs). Pour répondre à ces questions dans l'ordre :
- MAPLINK et GAME_ZONE sont deux systèmes de liaisons de maps différents : MAPLINK ne créer qu'une image fixe de la map liée (sans event) tandis que GAME_ZONE lie et met à jour map et évents. Il ne faut ABSOLUMENT pas les activer en même temps ! Le système GAME_ZONE et sont utilisation sont décrites dans le Manuel de PSPOG (pas de PSP 0.7)
- Pendant le développement, j'ai utiliser le remplissage global pour simplifié puis ajouter la possibilité de modifier le remplissage de chaque map. Le remplissage défini dans DATA_MAP est prioritaire sur celui défini dans le script CONFIG _PANEL
- Les pont sont a créer UNE SEULE FOIS au début de la partie : dans ton introduction, tu appelle l'event commun "CRÉATEUR DES PONTS" ou tu utilise la commande de script "placer_pont", en début de partie. Tout les ponts du jeu sont créer au même moment et sont sauvegardés.
C'est quel script ? (pour le dv_atk)
Sinon, les gens vous commencez à me remotiver pour coder le combat...
Posté par
doug le
23 Jan - 20:11 (2014)Oui j'ai fini par comprendre tout ça ^^
Pour le script, c'est celui de Pokemon_Custom.
Puisque je te tiens !
Je te fais par d'une coquille que j'ai remarqué dans le ConcreteEngine1 vers la ligne 140 :
Code: |
list_tags_prio[tag] = [map_data.caluclate_pokevent_special_count(percent), map_data.data_tags[tag].list.size].min |
caluclate est une erreur nan? ^^
D'ailleurs, je cherche à trifouiller le code pour pouvoir empêcher un pokemon soumis à la rareté d'apparaître en Pokevent sur la carte. Tu n'as pas d'option pour le faire déja ?
Car sinon il faut bidouiller je suppose le ConcreteEngine, et je suis dessus depuis 3 bonnes heures, et je tatonne pour trouver où se fait la vérification de la rareté et comment modifier le script dessus.
Posté par
doug le
24 Jan - 03:10 (2014)Bien ! J'ai le grand plaisir de vous annoncer que j'ai réussi après 8 heures d'études du script à solutionner le problème, et je suis même en mesure de vous transmettre les quelques modifications à faire dans le cas où
vous ne souhaitez pas qu'un Pokemon ayant un niveau de rareté locale défini puisse apparaître en Pokevent visuel.
Pour signifier au logiciel que vous souhaitez
interdire son Pokevent il vous suffit dans la configuration des rencontres de rajouter le champ
false après celui de la rareté locale, comme ici :
Voilà pour la partie visible de l'iceberg

Maintenant on s'attaque aux modifications dans les scripts :
Dans le script Database >> Pokemon_Encounter vers ligne 175 rectifiez le code comme indiqué ci-dessous
Code: |
when 655 # Script suite index_script += 1 script = event.parameters[0] if eval(script).type == Array and list[index_script] != nil list[index_script][1] = eval(script)[0] list[index_script][2] = eval(script)[1] list[index_script][3] = eval(script)[2] elsif eval(script).type == Hash and list[index_script] != nil |
Ensuite dans le script ConcreteEngine >> MapData vers ligne 495, modifiez le script comme ceci :
Code: |
for p in pkm rar_loc = (p[2] == nil ? RARETE_LOCALE_DEFAUT : p[2]) pokeventable = p[3] if pokeventable != false pkm_range[(rarete_max..(rarete_max+rar_loc))] = [p[0], p[1]] #Création de la fourchette de probabilité pour ce Pokéùon rarete_max += rar_loc end end
|
Et voilà !
On récupère le nouveau champ introduit dans l'énoncé de la rencontre, le processus de création de la liste des Pokevents s'effectue avec les Pokémons n'ayant pas cette restriction.
De ce fait vous pouvez choisir entre donner une chance au joueur de croiser dans la nature un pokémon avec une certaine rareté, ou ne le rendre capturable que dans les hautes herbes.
Voilà !
En espérant qu'il n'y avait pas un autre système déja existant
xD
Mais je suis content pour un novice en Pokescript 
Posté par
Ku'rei le
24 Jan - 10:55 (2014)ATTENTION AU DOUBLE POST : utilise la fonction éditer, copie ton message, supprime le et colle le dans un nouveau pour faire un Edit Visible.
Si j'ai bien compris, cela permet au maker de créer un Pokémon rencontrables uniquement dans les hautes herbes en utilisant les PokEvent pour les autres. Pas mal, vraiment trés bonne idée, je voyais encore les choses par tag terrain, tu apporte une nouvelle possibilité intéressante. Cependant, vu l'endroit où se trouve la modification il faudra chercher les eventuels bugs. Je note pour l'ajouter à la 0.4 quand elle sortira.
Posté par
Ku'rei le
24 Jan - 16:54 (2014)Même si tu avais attendu 10 ans tu aurais fait un double post ^^
Pour l'instant je vois un bug possible :
Code: |
if nil print 0 else print 1 end |
Affichera toujours 1 car nil est considéré comme false. Donc si tu ne précise pas true il est fort probable qu'aucun PokEvent ne soit créer.
La partie modifiée dans MapData est utilisable (j'en reparle après), la partie DataBase elle, n'est ni optimisée ni sûre. J'y apporterais les modifications suivantes :
Code: |
when 655 # Script suite index_script += 1 script = event.parameters[0] res = eval(script) if res.type == Array and list[index_script] != nil list[index_script][1] = res[0] list[index_script][2] = res[1] list[index_script][3] = (res[2] != false) # sera Faux Si false est écrit, Vrai dans tout les autres cas. elsif res.type == Hash and list[index_script] != nil |
Pour la partie empêchant les Pokémons interdit de concrétisation (pokeventable), je pense que ta modification n'est pas propre (du point de vue code) et surtout qu'elle est instable (ajouter une fonctionnalité à l’intérieur d'un algo de calcul n'est JAMAIS une bonne idée ! On comprend ça avec l'expérience : toujours chercher l'endroit le plus indépendant pour modifier le code). Bref, tout ça pour dire que le code suivant fait le même effet et est plus sûr :
Code: |
tag = troop_data[0] # Tag terrain tag_jn = troop_data[1] # Tag Jour/Nuit ecart = troop_data[2][0] # Ecart de niveau pkm = troop_data[2][1..troop_data[2].length] # Pokémons rencontrés, # ne prend pas l'écart qui est le premier elt de la liste
# Suppression des Pokémons non rencontrables en PokEvent <--- ICI pkm = pkm.delete_if {|p| !p[3]} |
En ajoutant la boucle for à la ligne 488. Cette solution est plus propre parce qu'elle supprime directement les Pokémon indésirables de la liste plutôt que multiplier les test dans les instructions suivantes.
Posté par
Girakoth le
24 Jan - 17:32 (2014)Genre le mec qui dit "attention aux double posts" et qui en fait un direct après

Posté par
doug le
24 Jan - 17:39 (2014)Oui donc, tu as bien résumé le principe, parfait ^^
Tes modifications sont sûrement légitime, après tout je n'ai pas d'expérience pratique en ruby, je n'avais pas dans mon carquois la manière la plus sûre de faire la modification
Merci ^^
Sinon, je suis en train de m'exercer à appliquer des stratégies en combat dresseur, et il s'avère que ton manuel est faussé par un copier/coller que tu as fait dans VIII - 3 :
Citation: |
SABOTAGE(stat, seuil) : La stratégie Sabotage est divisée en deux mode : Sabotage de Statut, Sabotage de Stats. Sabotage de Stats : veut faire baisser un stat de l'adversaire. • stat : string, nom de la stat du lanceur à augmenter (« ATK », « DFE », « ATS », « DFS », « SPD », « ACC », « EVA » avec « ACC » la précision et « EVA » l'esquive) Par défaut : « ATK » • seuil : entier, valeur de bonus/malus de la Stat à atteindre. 6 → « ATK de Machin n'ira pas plus haut » -6 → « ATK de Machin n'ira pas plus bas » 0 → normal Par défaut : -6. Sabotage de Statut : veut infliger un statut à l'adversaire. • stat : string, nom de la stat du lanceur à augmenter (« ATK », « DFE », « ATS », « DFS », « SPD », « ACC », « EVA » avec « ACC » la précision et « EVA » l'esquive) Par défaut : « ATK » • seuil : inutile dans ce mode |
Alors que je suppose que ça devrait plutôt ressembler à :
Citation: |
SABOTAGE(stat, seuil) : La stratégie Sabotage est divisée en deux mode : Sabotage de Statut, Sabotage de Stats. Sabotage de Stats : veut faire baisser un stat de l'adversaire. • stat : string, nom de la stat de la cible à diminuer (« ATK », « DFE », « ATS », « DFS », « SPD », « ACC », « EVA » avec « ACC » la précision et « EVA » l'esquive) Par défaut : « ATK » • seuil : entier, valeur de malus de la Stat à atteindre. 6 → « ATK de Machin n'ira pas plus haut » -6 → « ATK de Machin n'ira pas plus bas » 0 → normal Par défaut : -6. Sabotage de Statut : veut infliger un statut à l'adversaire. • stat : string, nom du statut à infliger à la cible (« PSN », « PARA », « BRU », « SOM », « GEL », « CONF », « TOX ») Par défaut : « ATK » • seuil : inutile dans ce mode
|
Et du coup enlever dans RENFORCEMENT la stat négative (car je comprend pas l'intérêt là du coup?)
Voilà !
Posté par
Girakoth le
24 Jan - 17:48 (2014)Bon, je parle en ne m'y connaissant pas.
Si j'ai bien compris, "Sabotage" correspond à des attaques aux effets sur l'adversaire, et "Renforcement" aux effets sur soi-même?
Parce que dans ce cas, non, il ne faut pas enlever le seuil max à Sabotage: Vantardise augmente l'attaque adverse, par exemple.
Posté par
doug le
24 Jan - 17:51 (2014) Girakoth a écrit: |
Bon, je parle en ne m'y connaissant pas. Si j'ai bien compris, "Sabotage" correspond à des attaques aux effets sur l'adversaire, et "Renforcement" aux effets sur soi-même? Parce que dans ce cas, non, il ne faut pas enlever le seuil max à Sabotage: Vantardise augmente l'attaque adverse, par exemple. |
Oui, très juste, je comprends mieux maintenant.
Cependant la rectification pour le manuel des effets statuts est indispensable je pense.
Posté par
Ku'rei le
25 Jan - 01:17 (2014) Girakoth a écrit: |
Genre le mec qui dit "attention aux double posts" et qui en fait un direct après  |
doug à supprimé son message, je ne vois que cette explication.
doug : voici l'explication.
La stratégie SABOTAGE vise à faire descendre le stat de combat en dessous du seuil spécifié tandis que la stratégie RENFORCEMENT vise à faire monté la stat de combat au-dessus du seuil spécifié.
Il n'est dis nulle part que la stat commence à 0 :
Si la stat à été augmenté, une stratégie spéciale peut demander de remettre la stat à 1 plutôt que plus
Expl : stat ATK à +3, le Pokémon à besoin qu'elle ne soit augmentée que de un (+1), il devra saboter l'attaque jusqu'à +1.
Il n'y a pas pour l'instant d'IA visant à augmenter l'attaque de l'adversaire. Cela arrivera avec la 0.4
Posté par
doug le
25 Jan - 18:37 (2014)Par contre, je trouve, et mes amis testant ma démo également, que c'est RELATIVEMENT DUR de réussir à capturer un Pokémon sauvage, sans devoir y mettre au moins 3-4 Pokeball, même dans le rouge.
Es-ce normal ?
Je vois que tu as rajouté un *100 dans la division par rapport à la formule de base. Il y a moyen de mettre de l'eau dans le vin pour retrouver un taux plus ou moins correct ?
Posté par
Ku'rei le
26 Jan - 12:23 (2014)J'ai respecté la forule officielle. Je trouvais aussi que c'etait dur de capture un Pokemon. Je n'ai pas cherché plus loin car je devrai recoder la capture dans le systeme de combat.
Je te laisse fairees modif

Posté par
doug le
26 Jan - 16:36 (2014) Ku'rei a écrit: |
J'ai respecté la forule officielle. Je trouvais aussi que c'etait dur de capture un Pokemon. Je n'ai pas cherché plus loin car je devrai recoder la capture dans le systeme de combat. Je te laisse fairees modif  |
Oui, je vais me pencher dessus, je veux voir à mettre plus en avant quand le joueur fait l'effort de réduire les HP dans le rouge.
Enfin je vais y réfléchir et voir comment je pourrais améliorer ça (de mon point de vue).
Je suis daccord avec toi sur le fait qu'avoir 1 chance sur 16 de capturer un 90 full HP avec une pokeball est démesuré. Mais pour moi, le système actuel, où il te faut 3 pokeball pour capturer un pokemon niveau 5 en zone rouge est également disproportionné. Le facteur chance doit être moins frustrant.
Me reste à découvrir quels sont les % de couleur jaune et rouge.
Posté par
joeyw le
26 Jan - 16:59 (2014)
Posté par
doug le
27 Jan - 02:35 (2014)J'avais déjà vu le lien, merci ^^
BON !Ku'rei ! Je pense avoir compris où est le problème avec ton système de capture.
Code: |
# Calcul du premier flottant a = Float(((maxhp * 3 - 2 * hp) * rareness * status_multiplier * ball_rate)/(maxhp * 3 * 100)) if a >= 255 # Le Pokémon est capturé j = 4 else # Deuxième chance de capture b = Integer(65535.0 * ((a/255.0)**(1.0/4.0))) # Racine quatrième = puissance (1/4) j = 4 # Initialement, la ball ne bouge pas. for i in 0...4 if rand(65535) <= b # Ajoute un mouvement de la ball pour chaque nombre aléatoire en dessous de b j -= 1 # Il y a une chance pour qu'ils soient tous en dessous de b et que le Pokémon soit capturé au rattrapage (comme au bac) end
|
Donc, par rapport au système de base, tu as rajouté un *100 dans la formule du a, ce qui rend donc plus "difficile" la capture en Calcul A, donc il devient casi impossible d'être assuré de capturer un Pokemon quand il est affaibli, avec malus, etc... et je pense que déjà là c'est une erreur car l'intérêt est de réussir à atteindre la capture avec ce calcul.
Donc, la plupart des captures de Pokémon passent obligatoirement par le Calcul B celui comprenant une part d'aléatoire.
Dans la formule d'origine, il y a donc les 4 RAND, et si les 4 sont inférieur au résultat du Calcul B le Pokemon est donc capturé, sinon la Pokeball oscille autant de fois que de RAND inférieur à B avant de libérer le Pokemon.
Dans ta formule, c'est inversé, le Pokemon est capturé si les 4 RAND sont supérieurs à B. (Vérification faites avec des prints des résultats, le Pokémon est capturé uniquement si les 4 sont supérieurs à B)
Et les conséquences sont donc terribles ! Car affaiblir un pokemon va donc augmenter la valeur de B, et rendre plus difficile la capture par 4 RAND supérieurs à B, et il est donc PLUS SIMPLE de capturer un Pokemon FULL HP qu'un Pokemon affaibli.
Donc en résumé :
A est beaucoup plus dur à atteindre à cause du * 100 rajouté à la formule originale.
B a l'effet inverse que prévu en rendant plus dur la capture si le Pokemon est affaibli.
Voilà, je te laisse vérifier mes dires, mais je pense que ça explique vraiment les soucis que j'ai rencontré avec une capture "BEAUCOUP TROP" difficile.
Si tu valides les dires, il suffira d'inverser le signe du if rand(65535) <= b pour la formule B. Pour la modification de la formule A, je te montre en exemple les conséquences :
Avec la formule de base ((maxhp * 3 - 2 * hp) * rareness * status_multiplier * ball_rate)/(maxhp * 3) un pokemon niveau 5 FULL PV a 76% de chance d'avoir UN rand inférieur au Calcul B (Donc 76% 76% 76% 76%, ce qui représente un taux pas vilain de chance de réussir)
Avec ta formule ((maxhp * 3 - 2 * hp) * rareness * status_multiplier * ball_rate)/(maxhp * 3 * 100) et le fonctionnement "normal" de la formule B, ce même Pokemon a 24% d'avoir un rand inférieur à B (Donc 24% 24% 24% 24%). Donc improbable de capturer un pokemon Full HP.
Avec ta formule ((maxhp * 3 - 2 * hp) * rareness * status_multiplier * ball_rate)/(maxhp * 3 * 100) et le fonctionnement de ta formule B, on passe FULL HP à 76% de chance de le capturer (comme la formule originalement prévu par le jeu).
Par contre, si on affaibli un Pokemon avec ton script actuel, on passerait à 68% de chance de le capturer si on essaye de l'attraper après l'avoir mis à 1% HP (Soit moins de chance que s'il était FULL HP). Tandis qu'avec la formule officielle, ce taux serait de 99% (Ce qui est plus logique ^^).
Le *100 a certes l'avantage de réduire à 24% la capture d'un Pokémon Full HP (pour l'exemple actuel), mais le désavantage d'avoir 32% de chance de capturer un Pokemon à 1% PV, ce qui du coup n'est pas "rentable".
Voilà pour ma longue analyse !
J'attends avec impatience ta réaction cher Ku'rei 
Posté par
Ku'rei le
27 Jan - 12:39 (2014)Bon travail doug. J'avais ajouté ce *100 pour augmenter la difficulté des pokémons puissants mais je n'avais pas pensé aux conséquence sur les faibles (travail fait à l'arrache). Il faut supprimer le *100 et trouver un autre moyen.
Avec R = rareness * status * ball_rate
En calculant les limites (hp tend vers hpMax et hp tend vers 0) on découvre que le coef a est égal à 1/3 de R quand les PV sont à fonds et à R quand les PV sont à zéro. Je pense qu'il faut simplement diminuer encore le coef a quand les PV sont à fonds :
Code: |
# Calcul du premier flottant difficulte = 2 # Coefficient de difficulté de la capture a = Float(((maxhp * 3 - 2 * hp)**difficulte * rareness * status_multiplier * ball_rate)/(maxhp * 3)**difficulte) |
Comme ça on peut jouer sur la difficulté facilement, avec ce modèle :
quand hp = hpmax on a a = R/9
quand hp = 0 on a a = R
si la difficulté vaut 3 on aura un a minimun de R/27
etc.
Posté par
Carnistus le
13 Mai - 11:47 (2014)Salut,
Je voudrais savoir comment activer les pokémon sauvages dans les herbes(comme les jeux originaux)j'ai regardé dans les scripts et dans Config_Panel_CE à la ligne 46 il y a ça RANDOM_ENCOUNTER_SWITCH = 8 j'ai changé le 8 par true mais sa me mets une erreur voila le log
---------- Erreur de script : Game_Switches ----------
----- Type
NoMethodError
----- Message
- ARGS - [5000]
undefined method `<=' for true:TrueClass
----- Position dans Game_Switches
Ligne 20
----- Backtrace
Script : Game_Switches | Ligne : 20 | Méthode : in `[]'
Script : Game_Map | Ligne : 51 | Méthode : in `map_switch'
Script : Scene_Map | Ligne : 81 | Méthode : in `main'
Script : Main | Ligne : 49
et la ligne en question se trouve dans Game_Switches à la ligne 20 il y a ça if switch_id <= 5000 and @data[switch_id] != nil
Posté par
Ku'rei le
15 Mai - 13:35 (2014)RANDOM_ENCOUNTER_SWITCH : entier
Numéro de l’interrupteur activant les rencontres aléatoires des maps. Le changement sera
visible dès le changement d'état de l'interrupteur
EDIT : Activer les interrupteurs d'id RANDOM_ENCOUNTER_SWITCH et POKEVENT_ENCOUNTER_SWITCH désactivera les rencontres.
Le manuel est complet (ou trés peu de choses manque), si tu as un problème avec une variable, une constante ou méthode : CTRL+F + nom de la variable tu aura des indications.
Je vais détaillé un peu ton problème :
RANDOM_ENCOUNTER_SWITCH doit contenir un entier : le numéro de l'interrupteur qui te servira a activer/désactiver les rencontres aléatoires. Par défaut c'est l'interrupteur n° 8 (qui doit être nommé comme il faut). Pour activer les rencontres aléatoires tu as juste à activer l'interrupteur 8. SI tu veux changer d'interrupteur (passer sur l'interrupteur n°112 par exemple) tu mettra 112 à la place du 8
Posté par
Carnistus le
2 Juin - 10:23 (2014)Mon problème n'est pas réglé quand j'active l'interrupteur 8 les rencontre aléatoire ne marche toujours pas.
Posté par
Ku'rei le
2 Juin - 17:58 (2014)Décris-moi ton test stp.
Je ne me souviens plus trés bien, mais je crois qu'il faut changer de map pour que le changement opère.
Posté par
Carnistus le
2 Juin - 18:20 (2014)J'ai fait un événement qui active l'interrupteur 8 en processus parallèle.
J'ai déjà changé de maps mais ça ne marche pas.
(J'ai aussi testé de désactiver l'interrupteur 7)
Posté par
Ku'rei le
2 Juin - 18:58 (2014)Fait voir une capture d'écran de ton event
Posté par
Carnistus le
3 Juin - 04:53 (2014)
Posté par
Ku'rei le
3 Juin - 07:26 (2014)ha je vois !
Regarde le nom de l'interrupteur ^^ "Rencontre Aléatoire OFF", ça veut dire que les rencontres aléatoires sont activées par défaut, et qu'elles sont désactivées lorsque tu active cet interrupteur

Avec cet event, tu n'aura pa de PokEvent non plus normalement.
La raison de cette particularité provient du rôles qu'on ces interrupteurs : permettre la désactivation temporaire des rencontre (elles étaient tout le temps activées). Ca mériterait d'être explicité dans le manuel.
Posté par
Carnistus le
3 Juin - 07:33 (2014)Même si je la mets sur désactiver ou que je l'enlève tout simplement les rencontre aléatoire ne marche toujours pas.
Ces peut-être à cause du tag terrain je les mis sur le 1 sa entrer peut-être en conflit avec celui des PokEvent mais je n'arrive pas à augmenter le nombre de tag terrain le maximum est à 7.
Édits:Problème résolu c'était dû à une petite erreur de ma part

Posté par
Esuma60 le
25 Juin - 13:52 (2014)Salut Ku'rei, je viens de tomber sur ce post et je souhaitai te remercier et te féliciter pour le travail accompli, c'est tout simplement génial.
Encore merci mec.
PS : je vais étudier avec intérêt ton manuel

Posté par
Carnistus le
12 Juil - 06:39 (2014)J'ai découvert un bug qui peut être assez gênant.
Le system de quête ne marche pas complètement dans le SK.
Les objectifs capturés, voir et vaincre ne marche pas(Seuls les objectifs lier au combat ne marchent pas)
Aurais-tu une idée des modifications à apporter pour les rendre fonctionnels?
Posté par
Ku'rei le
12 Juil - 13:02 (2014)Je pense que tu peux copier/coller le script "Fonctions Quêtes" dans la catégorie "--- Communauté" de PSP OG
Je ne sais pas si ça marchera mais c'est ce qui me semble le plus probable, si ça marche pense à supprimer le script de base (histoire qu'il ne soit pas chargé deux fois au lancement)
Posté par
Carnistus le
12 Juil - 19:22 (2014)Effectivement sa marche maintenant.
Moi qui pensais que l'ordre des scripts n'avait pas grande importance...
Merci beaucoup

Posté par
Ku'rei le
13 Juil - 13:00 (2014)L'ordre des scripts à beaucoup d'importance au contraire : les scripts sont chargé de haut en ba, donc si tu défini une fonction en haut et en bas, c'est la version en bas qui sera chargée (c'est ce qui s'est passé ici)
Posté par
Carnistus le
21 Juil - 08:58 (2014)J'ai une question sur le menu debug
Il y a une commande qui permet de faire une maj BDD?(je n'ai pas accès à l'ancien menu avec la touche F9)
Posté par
Ku'rei le
21 Juil - 10:44 (2014)Je n'ai quasiment jamais utiliser le menu Debug, alors je l'ai oublié ^^
Problème facile à résoudre : dans le script Input (-- Utilities de PSPOG), ajoute
après
Code: |
CTRL = Keys::CTRL ALT = Keys::ALT |
Environ ligne 474
Voilà, je n'avais pas modifié la touche F9 du module Input.
Posté par
Carnistus le
21 Juil - 11:08 (2014)Merci beaucoup
Mes problèmes avec la BDD sont tous résolus maintenant

Posté par
redestructor le
22 Juil - 15:06 (2014)honte a moi je me suis trompe de sujet desole

mais ton projet est interressant je pense que je vais lintegrer
Posté par
Ku'rei le
23 Juil - 01:11 (2014)Un nouvel adepte du concept On The Ground, ça fait plaisir :D
PS: par contre j'ai rien compris à ton message ^^
Posté par
Rey' le
23 Juil - 09:13 (2014)Je pense qu'il avait posté quelque chose qui n'était pas en rapport avec PSP OG, du coup il a édité et a généré ce texte incompréhensible.
Sinon, je n'ai pas encore eu le temps (ni la motivation) de tester OG, je risque de m'atteler à ça aujourd'hui. ^^
Posté par
redestructor le
23 Juil - 09:32 (2014)bah en gros oui jai poste un probleme que jai rencontre dans le starter kit et je me suis rendu compte que ce n'etait pas le bon sujet
sinon j'ai vu ton projet et il est interressant , c'est pour ca je t'ai dis je vais ajouter ces fonctionnalite dans mon jeu

voila
Posté par
Carnistus le
26 Juil - 03:36 (2014)J'ai encore une petite question (et oui encore moi

)
J'ai fini l'animation de mon centre pokémon, mais je souhaite désactiver le compagnon qui nous emboîte le pas quand je soigne mes pokémon.
J'ai déjà essayé de désactiver l'interrupteur 10 ainsi que la variable 11 mais pour que le changement soit accompli je dois changer de map.
J'ai aussi mis un commentaire avec ALWAYS_UPDATE mais ça ne marche pas.
Posté par
Ku'rei le
26 Juil - 12:40 (2014)Le Centre Pokémon c'est un event en Touche Action, pas besoin de ALWAYS_UPDATE ^^
Envoi ton event, que je puisse voir

Posté par
Carnistus le
26 Juil - 18:25 (2014)Tien mes deux évents. (évent commun)
Posté par
Ku'rei le
27 Juil - 10:26 (2014)Tu sais que PSPOG possède un outil permettant l'animation du centre pokémon ?
Ton event de centre Pokémon ressemble à ceci (regarde le manuel) :

La gestion des compagnons est intégrée

Ce que tu dois faire c'est créer tes deux chara de centre pokémon

Posté par
Carnistus le
28 Juil - 09:37 (2014)Je ne savais pas PSPOG avait cette fonction.
(je ne peux pas lire le manuel chaque fois que j'ouvre un fichier PDF mon PC crash je tourne sur une vielle machine avec une très mauvaise config)
Posté par
Ku'rei le
28 Juil - 12:05 (2014)Dac, tu veux que je te l'envoi au format odt ? (open office)
Pour savoir comment fonctionne le système, regarde le projet exemple, il y en a un

Posté par
Carnistus le
28 Juil - 20:34 (2014)J'ai plus les maps de base il me semble, mais c'est bon avec le script j'ai trouvé comment faire.
(Pour le manuel c'est bon je crois connaitre toutes les fonctions de PSPOG maintenant. Il suffit de bien regarder les scripts

)
Merci du coup de main.
Posté par
redestructor le
29 Juil - 02:39 (2014)enfaite jaimerai savoir sil est possible de l'integrer dans pokemon essentials ?
Posté par
Ku'rei le
29 Juil - 02:56 (2014)Intégrer OG dans Esentials ? Si tu code une interface Essentials/PSPOG oui, mais autant recoder toutes les fonctionnalités de OG dans un projet essentials :/
Posté par
redestructor le
29 Juil - 03:38 (2014)jai po compris mai bon
Posté par
Carnistus le
29 Juil - 04:24 (2014)PSP en général n'est pas compatible avec pokémon essentials se sont deux starter kit très différent. Je ne crois pas cela possible (ou alors très difficile) d'adapter Un SK de PSP sur essentials. La seule chose que tu peux faire ces recoder toutes les fonctionnalités de PSPOG sur essentials. Et je ne crois pas que tu pouras te baser sur la base du code de PSPOG, car trop différente de celui de essentials.
Posté par
Ku'rei le
29 Juil - 07:47 (2014)C'est exactement ça : ce sont deux mécanismes trés différents
PS: essais de faire un effort sur l'orthographe, merci

Posté par
Carnistus le
31 Juil - 21:54 (2014)Je viens encore poster un petit problème.(je vais finir par remonter toutes les bugs

)
La commande si la touche ... est pressé dans une conditon ne marche pas.
Au début je pensais avoir fait une erreur dans l'évent mais finalement ce n'était pas le cas.
Ce n'est pas mon clavier, car sur d'autre SK ça marche parfaitement.
Posté par
Ku'rei le
1 Aoû - 10:13 (2014)Parce que cette fonction d'event est superflu :
Remplacer si la touche est pressée par une condition de script:
Code: |
Input.press?(Input::CLEF) #Pour le nom des clef, va voir dans le script Input |
L'avantage de cette méthode c'est que tu peut détecter le moment où la touche est pressée (trigger?), si elle est maintenu pressée (repeat?)
Posté par
Carnistus le
1 Aoû - 21:44 (2014)Merci ça marche parfaitement.