Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| systeme de combat et compétence[Skill system and battle sys] | |
| | |
Auteur | Message |
---|
jpcr
Nombre de messages : 276 Age : 57 Localisation : Val de Marne (94) Date d'inscription : 06/05/2011
| Sujet: combat : debut d'interface Mar 11 Oct 2011 - 22:34 | |
| salut, voici une proposition d'interface de combat , pas de combat pour l'instant, juste l'interface: - Code:
-
label oncli30 dim pv, pvenemi pv = 10 pvenemi = 10
width 0 ,800 :' largeur ecran height 0,600 :' hauteur
PICTURE 3: WIDTH 3, 750: HEIGHT 3, 400 : ' grand rectangle COLOR 3,128,128,128 : ' couleur : marche pas !! 2d_target_is 3 : ' cible 2d 2d_clear 2d_rectangle 10,10,50,50
' petit recangle PICTURE 4: TOP 4, 410: LEFT 4, 0: WIDTH 4, 750: HEIGHT 4, 150 COLOR 4,255,128,128 2d_target_is 4 2d_clear 2d_rectangle 10,10,250,120 2d_rectangle 300,10,550,120
' textes a l'ecran alpha 10:left 10,13:top 10,425:caption 10,"points de vie Heros : " + str$(pv) alpha 11:left 11,313:top 11,425:caption 11,"points de vie Enemi : " + str$(pvenemi) alpha 12:left 12,13:top 12,470:caption 12,"attaque :"
' declaration et positionnement des options option 21 top 21,450:left 21,100:caption 21,"DAGUE"
option 22 top 22,470:left 22,100:caption 22,"MAGIE"
option 23 top 23,490:left 23,100:caption 23,"ARC LONG"
' boutton pour valider le type d'attaque button 30 top 30,510:left 30,100:caption 30 ,"GO !!!" on_click 30,oncli30 end
oncli30: ' test l'option choise if clicked(21)=1 then message "dague" if clicked(22)=1 then message "magie" if clicked(23)=1 then message "arc long" return
par contre une bizarrerie , pas moyen de changer la couleur de fond des picture. dites moi ce que vous en pensez... ++ jp | |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: systeme de combat et compétence[Skill system and battle sys] Mar 11 Oct 2011 - 22:48 | |
| | |
| | | Invité Invité
| Sujet: Re: systeme de combat et compétence[Skill system and battle sys] Mar 11 Oct 2011 - 22:50 | |
| En passant par la Lorraine, non, par ici je vois le programme. La couleur marche, seulement tu as mis 2d_clear, ensuite qui l'efface.
A+ Il y a croisement, il faudra mettre un feu tricolore. |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: systeme de combat et compétence[Skill system and battle sys] Mer 12 Oct 2011 - 11:00 | |
| Cool, bon début et merci Cosmos pour ta réponse Rien de plus dur à trouver qu'un truc simple (et je ne dis pas ça pour plaisenter en plus... ) | |
| | | jpcr
Nombre de messages : 276 Age : 57 Localisation : Val de Marne (94) Date d'inscription : 06/05/2011
| Sujet: Re: systeme de combat et compétence[Skill system and battle sys] Mer 12 Oct 2011 - 11:19 | |
| merci Cosmos, effectivement , j'aurai jamais deviné que clear nettoyait aussi le fond de la fenêtre... merci pour vos encouragements, c’était la partie la plus facile....pour les combat, ça va être une autre paire de manches jp | |
| | | Polaris
Nombre de messages : 69 Date d'inscription : 03/04/2011
| Sujet: systeme de combat et compétence[Skill system and battle sys] Jeu 13 Oct 2011 - 19:29 | |
| Bonjour a tous,
Je me permet de vous soumettre un syteme de base pour les caracteristique de notre héro et peut etre une ebauche du systeme de combat.
N'étant pas très fort sur ce point je laisse ma parole a Zyphrus un allemand assez caller en la matière.
Il va poster ici d'ici peu.
Je n'impose en aucune façon je propose par le biais d'un cerveau aiguiser en la matière.
Merci
I permit myself to introduce here a basic sys. for skill and battle.
As i am not very strong on the subject so i will let Zyphrus speak of that, a great german that is aware with that kind of thing.
he will soon submit here his idea.
It is not a must but he is really aware on several role playing pen and paper sys. and it could be some good introduction to the final system.
Merci Z
Thanks Z | |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: systeme de combat et compétence[Skill system and battle sys] Jeu 13 Oct 2011 - 21:33 | |
| | |
| | | Zyphrus
Nombre de messages : 5 Date d'inscription : 13/10/2011
| Sujet: Re: systeme de combat et compétence[Skill system and battle sys] Jeu 13 Oct 2011 - 22:16 | |
| thanks for the welcome I know only a few words of french, so I'll have to do this in english: Assumptionswhat I know about your game: - single character (you do not control a whole group) - fantasy - 2D overworld map and dungeon master style dungeons - monsters spawn indefinitely what I assume: - the player can choose a character class and / or race at start - the character can gain levels - it takes longer to gain level 5 than it took to gain level 1. This is a good way to pull people into the game and give them a challenge later on as the monsters will slowly start getting harder to kill unless the players stop for a bit of grinding Theorywhat is the goal of a character / combat system in an RPG? It simply determines the chances of winning a fight and how many battles it will take before the character has to retreat to the nearest safe place and rest up or buy new supplies. As the character goes up in level, s/he can win harder fights and last longer through a series of fights of a fixed difficulty level. There is an infinite supply of monsters to kill, so we want the player to tackle harder enemies at some point instead of always killing the level 1 rats. Two options for that: 1) Fixed exp for killing a specific monster (a level 1 hero will gain 5 exp for killing the rat and the level 20 hero will still gain 5 exp for the kill). Then an obvious solution is to let the monster exp and exp needed for each level go up by a multiplier: A level n monster gives k*(n^level) exp. example: k=0.2, n=5. so a level 1,2,3,4,5,6, ... monster gives 1,5,25,125,625,3120, ... exp (round to 2 significant digits for nicer nubmers: 1,5,25,130,630,3100,...) the player needs l*(o^level) exp to reach the next level. example: l=16.7,m=6. reaching level 2,3,4,5, ... takes 100,600,3600,21600,129600,777600 ... exp in addition to the ones collected to gain previous levels. so a fresh level 4 player would have 100+600+3600=4300 exp. (o > n) is very important as it makes the levelling slow down as the player progresses. a very small difference is best since otherwise it will quickly take an insane number of kills to reach the next level. 2) how much exp each monster gives depends on its level relative to the player level. it is unneccessary but customary to let the amount of exp needed to level go up with each level. this gives the player a feeling of making "stronger" progress (even if the progress is slower than during the previous level). such a system looks like this: p = player level, k, l, n, o = fixed multipliers, m = monster level, d() = a function that gives a fixed multiplier depending on the difference between player and monster level. exp needed for the next level = k*n^p exp per kill = d(p-m) * l * (o^m) example: k=1000/1.65, n=1.65, l=50/1.5, o=1.5. d(-6,-5,-4,-3,-2,-1,0,1,...) = (every kill gives at least 1 exp) (always 1%) ... 1%, 1%, 20%, 50% ,80%, 90%, 100%, 100%, ... (always 100%) so in this example the time to reach another level goes up 10% per level (n/0 = 1.65/1.5 = 110%) assuming it alwas takes the same amount of time for a player to kill a monster when p=m exp to reach the next level would be: 1000, 1650, 2722, ... exp per kill with p=m would be for p=1,2,3,... would be: 50, 75, 113, ... I personally favor option 2). Since it's a fantasy game with a single character an obvious character class choice would be: Fighter, Priest, Rogue, Mage. If you can see monsters from a-far you can have a Ranger class with bow as its main weapon. If you feel like it, you can also add race choices but it's okay to have only one race the player character can be. You usually have attributes. They make calculating battle outcomes much easier. Here's a standard example: Strength determines close combat damage. if you have a weight system, it also determines how much you can carry. Constitution determines how much health you have, how fast it regenerates and how likely you are to withstand physical effects like poison and disease. Willpower determines how good you are at withstanding magical / mental attacks. Intelligence determines the strength of spells you cast. Agility determines how likely you are to block or evade an attack and how likely you are to hit an enemy and how likely you are to score a critical hit. Subterfuge determines how likely you are to sneak up on an enemy, break a lock, pull off a nasty trick during a fight or rob a person on a street without them noticing. Of course you could do away with most of these and have just the values they represent instead. For a programmer and monster / class designer this is actually simpler and gives more freedom: Strength becomes physicalDamageBonus and carryingCapacity, Agility becomes hitChance, blockChance, evasionChance, critChance, and so on A Ninja character class or monster type could then have a high evasionChance and critChance but only a mediocre blockChance and an average hitChance. sample valuesI generally favor a system with more values which are also displayed ingame instead of an attribute system. That way a player understands immediately what the values mean (with sample values given): (equipment gives bonuses to these values) Fighter level 3: Level 3 Health 125 (+25 per level) Spell Points 0 Physical Resistance 120% (can withstand a physical effect of the same level as the character x% of the time. +/-5 percent per level difference. Actual chance can never be more than 95% or less than 5%. So our fighter can withstand effects with a level of up to 7 99% of the time, above that the chance goes down in 5% steps) Magical Resistance 30% (see Physical Resistance) Bonus Physical Damage +9 (+2 per level) Bonus Spell Damage -10 (spells our fighter somehow manages to cast have a severely reduced effect) To Hit Chance 80% (actual to hit chance is (To Hit Chance - target's Evasion Chance), +/-5 percent per level difference, again within a 5% - 95% bracket) Evasion Chance 20% Block Chance 60% Critical Hit Chance 10% Chance To Flee 50% Chance To Surprise Enemy 0% Keen Senses 0% (chance to sense there is something hidden nearby, also reduces the chance that the enemy manages to surprise attack you) Mage level 3: Level 3 Health 60 (+10 per level) Spell Points 30 (+(5 x new level) at each level up) Physical Resistance 40% (can withstand a physical effect of the same level as the character x% of the time. +/-5 percent per level difference. Actual chance can never be more than 95% or less than 5%. So our fighter can withstand effects with a level of up to 7 99% of the time, above that the chance goes down in 5% steps) Magical Resistance 100% (see Physical Resistance) Bonus Physical Damage 0 Bonus Spell Damage +18 (+4 per level) To Hit Chance 60% (actual to hit chance is (To Hit Chance - target's Evasion Chance), +/-5 percent per level difference, again within a 5% - 95% bracket) Evasion Chance 30% Block Chance 30% Critical Hit Chance 10% Chance To Flee 40% Chance To Surprise Enemy 0% Keen Senses 10% (chance to sense there is something hidden nearby, also reduces the chance that the enemy manages to surprise attack you) Rogue level 3: Level 3 Health 90 (+15 per level) Spell Points 0 Physical Resistance 80% (can withstand a physical effect of the same level as the character x% of the time. +/-5 percent per level difference. Actual chance can never be more than 95% or less than 5%. So our fighter can withstand effects with a level of up to 7 99% of the time, above that the chance goes down in 5% steps) Magical Resistance 60% (see Physical Resistance) Bonus Physical Damage +6 (+1 per level) Bonus Spell Damage +22 (+4 per level) To Hit Chance 60% (actual to hit chance is (To Hit Chance - target's Evasion Chance), +/-5 percent per level difference, again within a 5% - 95% bracket) Evasion Chance 80% Block Chance 40% Critical Hit Chance 30% Chance To Flee 95% Chance To Surprise Enemy 30% Keen Senses 40% (chance to sense there is something hidden nearby, also reduces the chance that the enemy manages to surprise attack you) Rat level 1 (enemy): Level 1 Health 20 (+10 per level) Spell Points 0 Physical Resistance 120% (can withstand a physical effect of the same level as the character x% of the time. +/-5 percent per level difference. Actual chance can never be more than 95% or less than 5%. So our fighter can withstand effects with a level of up to 7 99% of the time, above that the chance goes down in 5% steps) Magical Resistance 20% (see Physical Resistance) Bonus Physical Damage +5 (+2 per level) Bonus Spell Damage 0 To Hit Chance 40% (actual to hit chance is (To Hit Chance - target's Evasion Chance), +/-5 percent per level difference, again within a 5% - 95% bracket) Evasion Chance 50% Block Chance 0% Critical Hit Chance 0% Chance To Flee 0% Chance To Surprise Enemy 40% Keen Senses 10% (chance to sense there is something hidden nearby, also reduces the chance that the enemy manages to surprise attack you) As you can see the values of the rat are much lower than those of a level 1 hero would be. The idea is that a hero should be able to survive several fights in a row or a figh aqainst several enemies without having to heal up all the time. So basically, the player character, being a hero, is as strong as an enemy that is several levels higher. Also, when the level 3 player sees a level 3 monster , s/he knows s/he can take it on with relative ease, while a level 6 monster or two level 4 monsters are possibly too tough. I hope this helps with the making of the game. There are systems with very different approaches, for example the Shadowrun and Magic: The Gathering pen & paper RPGs, but most computer RPGs use something like the example given above.
Dernière édition par Zyphrus le Ven 14 Oct 2011 - 1:00, édité 2 fois | |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: systeme de combat et compétence[Skill system and battle sys] Jeu 13 Oct 2011 - 22:25 | |
| @Zyphrus
Thank you for spending time in helping us for our game.
I'm not specialize in writing game and i am very happy to find help from you.
At the moment i am writing a map editor to implement tiles and given the differents quality for each tiles into a file.
I record your explanations and i will read it later.
thank you again | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: systeme de combat et compétence[Skill system and battle sys] Jeu 13 Oct 2011 - 22:44 | |
| Hi, welcome Zyphrus I hope you'll join us on project If you want explain all your skills (you can join even you don't programm if you know graphisms, if you can translate or all other usefull things ) I'll try to explain my minds about this game (I wrote my minds because it's how i have understood what we talk about fighting system monday, but JPCR have take the punct and will maybe correct what i writte here). I think tha the game will be split into "parts" at the beginning, you're a lost fisher in an unknown world and you'll not really have fight when moving. You'll discover the near area and an event (it's describe on the private part to not reveal all to people who don't participate to the making of to avoid to remove all suspense if they want try the game ). After you begin to learn to hunt small animals (you begin xp and levelling), and biggest until you reach a level when citizens ask you to kill a monster because your hunting skills (and because nobody else want to do it ... as you're a stranger, it's not very important for them if you don't come back ...). If you succefully kill the monster, your fate of hero begin... Same at the beginnig, you're alone but along your trip, your team will be able to reach 3 (classic class type Warrior / Rogue / Healer / Magician) We have not really define it yet but maybe you could have a cleric to heal cast magic and why not a beastlord / druid and main hero could be a warrior / rogue) We have an idea of the interface used (jpcr have post a screen of principe on the site) You can see it with this link: http://jeanpierre.creis.free.fr/Panoramic/projet%20Medieval-Pano.html | |
| | | Zyphrus
Nombre de messages : 5 Date d'inscription : 13/10/2011
| Sujet: Re: systeme de combat et compétence[Skill system and battle sys] Ven 14 Oct 2011 - 2:13 | |
| I like your story simply because it is different from "you have lost your memory" (terrible and overused cliché) but still achieves the same effect I'm friends with Polaris and sometimes we help each other with game making. So that's how he came to ask me about what a character stats + combat system looks like. Skills. Hmm. I know Java pretty well, have written a board game AI and some small games in it over the years. Running at playigx.com is probably the most polished one. Panoramic looks simple so I could help with the coding, and of course do a german translation. The big problem is I know no french whatsoever. Maybe I should learn some basic french, somehow I keep running into french people on the internet lately | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: systeme de combat et compétence[Skill system and battle sys] Ven 14 Oct 2011 - 10:09 | |
| Zyphrus if you want join us and help, it's can be usefull. You can works with us and JPCR on monster table and adjust the difficulty parameters on monsters for fight as jpcr will works on fight motor. (Monster random table depending of phase / area of the game) One system i like on monster is the color indicator (green level too low, will not give alot xp, dark blue good for the level give normal xp, yellow hard, give bonus xp and red for nightmare because too high for you, you should run away quickly ... but give alot bonus xp if you succeed)
We can exchange in english and you could validate translation when game will be enough advanced.
If you know working on graphics you could help jpcr to prepare graphics for the fights for example. (I don't think that Java can be exploited yet with Panoramic exept maybe when doing scipt but i don't think it's usefull atm and we'll try to use only Panoramic exept if we have a problem to do something special) | |
| | | jpcr
Nombre de messages : 276 Age : 57 Localisation : Val de Marne (94) Date d'inscription : 06/05/2011
| Sujet: Re: systeme de combat et compétence[Skill system and battle sys] Ven 14 Oct 2011 - 11:04 | |
| wow, what a long reading....
Hi Zyphrus ,
would be great to have you in the project. for me English is no problem but I dont speak German at all.
for Panoramic, well, if you program in Java , no doubt you would easily get use to Panoramic.I think , you 'll get the same issues I have which is its lack of procedures and functions but is coming in a soon to be realeased version(end october?).
now I just want to state clearly, this is a project for fun so its how we go about it. I think we all want to make a (good) working game and learn plenty of things while making it...
jp
| |
| | | Zyphrus
Nombre de messages : 5 Date d'inscription : 13/10/2011
| Sujet: Re: systeme de combat et compétence[Skill system and battle sys] Lun 24 Oct 2011 - 14:04 | |
| I started making a simple Tetris last week, to see what Panoramic can do. Haven't gotten around to finishing it yet, hope to find the time this week.
Problems I noticed about Panoramic: - the text editor has no Redo feature (Ctrl+Y), opposite of Undo - no 3-dimensional arrays. In Tetris my array of game pieces would have been 3D: (<piece index>, <x within the shape matrix>, <y within the shape matrix>) - the user manual never mentions that you can make 2D arrays or how to do that - no double buffered 2D draw functions. Things get displayed while you draw them, resulting in lots of flickering and possibly tearing. This makes the 2D functions pretty useless for game making - no transparent images, which makes sprites useless unless you have rectangular opaque objects - no functions. you can work around this but it makes for awkward, cluttered code, increasing coding time, opportunities for bugs to creep in and making programs harder to read - no double buffering mechanism. would be good to not display anything until the code has been executed to completion or is waiting for something. Examples of how this might work: the game starts and stuff gets drawn but it only becomes visible once the code has been executed and the game is waiting for user input. as the user presses a key, stuff gets drawn again as a reaction, and again the result is only displayed after the code has been completely executed. whenever there's a WAIT command within a sectin of code, the game displays the current draw state. There could be special commands to make the game always display changes while executing code, not display at WAIT commands, force a display of the current state or mark sections where no redraw should occur (redraw_on, redraw_off)
Luckily Tetris pieces can be split into square shaped sections, so sprites are actually usable here. I'll try that this week and hopefully make the game playable.
Keyboard support looks good, it's definitely good enough for games like Tetris or an RPG.
I haven't gotten around to testing 3D functions yet, maybe they offer workarounds for the no-transparent-images problem, but until that is fixed I don't see how you can make an RPG with Panoramic. Drawing stuff pixel by pixel would result in insane coding effort and serious flickering / tearing. Would be easy but silly to write a program in another language that turns transparent images into Panoramic draw code.
I'll post my Tetris clone when it's playable, will be ugly though since I a using it to test stuff, not to make a polished game. I'll be happy to join your RPG project, but Panoramic needs some improvements, currently making a game with it seems impossible (or the 3D functions fix the problems I ran into) | |
| | | jpcr
Nombre de messages : 276 Age : 57 Localisation : Val de Marne (94) Date d'inscription : 06/05/2011
| Sujet: Re: systeme de combat et compétence[Skill system and battle sys] Lun 24 Oct 2011 - 14:19 | |
| hi Zyphrus, - no transparent images, which makes sprites useless unless you have rectangular opaque objects I thiink if you have a sprite with a black backgroud, then the black part becomes transparent.you have to use the sprite functions for this. http://panoramic-language.pagesperso-orange.fr/HELP_MAIN.htm#b4.3Also note Jack, the author of the Panoramic, is working hard on a new version with sub and functions.hopefully, we will have it soon. jp | |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: systeme de combat et compétence[Skill system and battle sys] Lun 24 Oct 2011 - 17:26 | |
| hello Zyphrus About sprite like Jpcr said you have to have black background with sprite+ see my starting game asteroides. https://panoramic.1fr1.net/t1662-asteroidesanf you will see how we can handle sprite. I made also a sokoban game That work ok. for Array at the moment Jack is making command for array. I use List or dlist for recording instead of array we can mixt numeral and string very good. | |
| | | Zyphrus
Nombre de messages : 5 Date d'inscription : 13/10/2011
| Sujet: Re: systeme de combat et compétence[Skill system and battle sys] Mar 25 Oct 2011 - 9:21 | |
| thank you, jpcr and 659_minifly! I just played around a little with the Marche demo and ended up with a modified version that demonstrates transparency and the sprite drawing order: http://www.mediafire.com/?uq5xzkv6kszqxtcSo sprites get displayed in order of creation. The newest sprite is displayed on top. This should be useful when displaying the RPG overworld map. Yeah, with this I can see how you can make a game with Panoramic. - when you change the image of a sprite the sprite gets moved back to coordinates (0,0). Seems like a bug. Without that I would not have had to hide the sprite every time I want to change the displayed animation step - starting a program that uses images (and other files I guess) from the editor for the first time always results in a file not found error. works fine after that - please add information about black being transparent in sprites to the manual. I never thought of trying black for invisible. Usually the color hot pink (255,0,255) or some other color thatdoesn't appear in most images is made transparent I know I'm voicing a lot of complaints but I wouldn't do so if I didn't think others run into the same problems or there is no solution / way to fix it | |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: systeme de combat et compétence[Skill system and battle sys] Mar 25 Oct 2011 - 10:09 | |
| hello
we have the same problem than you. But with the experience of using Panoramic we learnt how to contour it. In fact Panoramic is not far than being a good game programing.
You can read in toonic there is a lot more instructions for sprite than in panoramic. It will be good to have them in Panoramic. Toonic is a 3d game maker, and it is possible to mix 2d and 3d, but is not finish for the moment. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: systeme de combat et compétence[Skill system and battle sys] Jeu 3 Nov 2011 - 1:12 | |
| Juste pour montrer que l'on ne dort pas (même si là j'y vais maintenant) Voici le source du moteur de combat de jpcr en cours d'élaboration (c'est un petit test pour voir ce que ça donnerait et voir ce dont on a besoin, ça tourne mais c'est loin d'être fini). - Code:
-
' Definition des étiquettes label Action_hero, Action_ennemi label sub_hero_attaque, sub_hero_magie, sub_enemmi_attaque, NouveauCombat
' Définition des variables dim quiCommence, ChanceToucher, JetDes, Degats dim Nb_Monstres, Nb_armes, Tour, XPLevelUp, XPdeBase, MultiplicateurXP, CalculXP dim EnnemiSelectionne, PVEnnemi
Nb_Monstres = 10 : Nb_armes = 10 : XPdeBase = 5 : MultiplicateurXP = 1.6
' carracteristiques perso dim hero(20) : ' Tableau stockant les caractéristiques du héro hero(1) = 12 : ' 1 => force (3D6): puissance du héros hero(2) = 9 : ' 2 => dexterité (3D6): habileté à toucher et rapidité d'action hero(3) = 15 : ' 3 => constitution (3D6): résistance du héros hero(4) = 4 : ' 4 => puissance magique (3D6): capacité a faire de la magie hero(5) = 7 : ' 5 => niveau du heros hero(6) = 1 : ' 6 => arme équipée (0: rien, 1: dague, 2: épée, 3: arc, ...) hero(7) = (((hero(3)-5)*3) +1) : ' 7 => Nb de points de vie hero(8) = (((hero(4)-5)*3) +1) : ' 8 => Nb de points de mana hero(9) = 100: ' 9 => nombre de point d'expérience hero(10) = 30: ' 10 => capacité du héro à l'arme blanche (max 100%) hero(11) = 40: ' 11 => capacité du héro à l'arc
dim nom_ennemi$(Nb_Monstres) , ennemi(Nb_Monstres,7)
nom_ennemi$(1)="gobelin des collines" ennemi(1,1) = 10 : ' 1 => force ennemi(1,2) = 8 : ' 2 => dextérité ennemi(1,3) = 12 : ' 3 => constitution ennemi(1,4) = 0 : ' 4 => puissance magique ennemi(1,5) = 7 : ' 5 => niveau de l'ennemi (comme le heros pour les tests) ennemi(1,6) = 1 : ' 6 => arme équipée (dague) ennemi(1,7) = (((ennemi(1,3) - 5) * 3) +1) : ' 7 => Nb de point de vie
dim nom_arme$(Nb_armes), arme(Nb_armes,6)
' Définition de la dague nom_arme$(1)="dague" arme(1,2)= 100 : ' 2 => Precision de l'arme arme(1,3)= 6 : ' 3 => Dégats de l'arme arme(1,4)= 0 : ' 4 => Gène occasionnée par l'arme arme(1,5)= 0 : ' 5 => Protection apportée par l'arme arme(1,6)= 20 : ' 6 => Prix de l'arme
' Définition de l'épée nom_arme$(2)="épée" arme(2,2)= 80 : ' 2 => Precision de l'arme arme(2,3)= 9 : ' 3 => Dégats de l'arme arme(2,4)= 15 : ' 4 => Gène occasionnée par l'arme arme(2,5)= 0 : ' 5 => Protection apportée par l'arme arme(2,6)= 200 : ' 6 => Prix de l'arme
' Initiailisation du programme width 0 ,800 : height 0,600 :' Définition de la fenêtre principale
' grand rectangle PICTURE 3: WIDTH 3, 750: HEIGHT 3, 400 : COLOR 3,128,128,128 2d_target_is 3 : ' cible 2d
' mechant 2d_fill_color 250,0,0 : 2d_rectangle 150,200,200,350
' heros 2d_fill_color 0,0,250 : 2d_rectangle 600,200,650,350
' petit recangle PICTURE 4: TOP 4, 410: LEFT 4, 0: WIDTH 4, 750: HEIGHT 4, 150 : COLOR 4,255,128,128 2d_target_is 4 : 2d_rectangle 10,10,250,140 : 2d_rectangle 300,10,550,140
' textes a l'ecran alpha 10: left 10,13 :top 10,425:caption 10,"points de vie Hero : " + str$(hero(7)) alpha 11: left 11,313:top 11,425:caption 11,"points de vie Ennemi : " + str$(ennemi(1,7)) alpha 12: left 12,13 :top 12,470:caption 12,"attaque :" alpha 14: left 14,313:top 14,450:caption 14,"Ennemi: Aucun" alpha 23: left 23,580:top 23,425 alpha 24: left 24,580:top 24,450
' texte de commentaires sur le combat alpha 13:left 13,13:top 13,20 : font_size 13,12 : caption 13,"" alpha 15:left 15,13:top 15,42 : font_size 15,12 : caption 15,"" alpha 16:left 16,13:top 16,64 : font_size 16,12 : caption 16,"" alpha 17:left 17,13:top 17,86 : font_size 17,12 : caption 17,"" alpha 18:left 18,13:top 18,108: font_size 18,12 : caption 18,""
' declaration et positionnement des options option 21 : top 21,450:left 21,80:caption 21,"ATTAQUER" option 22 : top 22,470:left 22,80:caption 22,"MAGIE" ' option 23 : top 23,490:left 23,100:caption 23,"ARC LONG"
' boutton pour valider le type d'attaque button 30 : top 30,510:left 30,80: width 30,150 : caption 30,"VALIDER SELECTION" on_click 30,Action_hero
' boutton pour valider le type d'attaque button 31 : top 31,510:left 31,313: width 31,150 : caption 31,"ATTAQUE DE L'ENNEMI" on_click 31, Action_ennemi
' inactive les bouttons inactive 30 : inactive 31 : wait 300
NouveauCombat: EnnemiSelectionne = 1 : caption 13,"Début du combat entre le héro est un "+ nom_ennemi$(EnnemiSelectionne) caption 14,"Ennemi: " + nom_ennemi$(EnnemiSelectionne) quiCommence = int((rnd(10)*10+rnd(10)) - (rnd(10)*10+rnd(10)) + (hero(2) * 5) - (ennemi(EnnemiSelectionne,2)) * 5) Tour = 0 : XPLevelUp = ((hero(5) + 50)* Power(hero(5)+1,2)) PVEnnemi = ennemi(EnnemiSelectionne,7) caption 23,"XP : " + right$("00000000"+str$(hero(9)),8) caption 24,"XP niv suivant :" + right$("00000000"+str$(XPLevelUp),8) caption 15,"Rouge : Héro / Bleu : "+nom_ennemi$(EnnemiSelectionne) ' quiCommence = 1 et c'est le hero qui commence sinon c'est l'ennemi if quiCommence > 0 caption 16,"Le héro commence le combat" active 30 else caption 16,"Le "+nom_ennemi$(EnnemiSelectionne) +" commence le combat" gosub Action_ennemi end_if
end
' ---------- FONCTIONS ---------- ' Action_hero:
if checked(21) = 1 or checked(22) = 1
Tour = Tour + 1 caption 13, "Tour en cours : "+str$(Tour) caption 17, "": caption 18,""
' test l'option choise if checked(21) = 1 caption 15,"Le héro attaque avec " + nom_arme$(hero(6)) ' Affiche le nom de l'arme dont est équipé le héro gosub sub_hero_attaque end_if
if checked(22) = 1 ' message "magie" caption 15,"Le héro attaque avec de la magie" gosub sub_hero_magie end_if
caption 10,"points de vie Hero : " + str$(hero(7)) caption 11,"points de vie Ennemi : " + str$(PVEnnemi)
' lance le tour de l'enemi inactive 30 if PVEnnemi > 0 ' active 31 gosub Action_ennemi else message "Vous avez vaincu votre ennemi" if hero(5) <= ennemi(EnnemiSelectionne,5) CalculXP = hero(5)-1-ennemi(EnnemiSelectionne,5) CalculXP = (0-CalculXP)*XPdeBase else CalculXP = int(ennemi(EnnemiSelectionne,5) - hero(5) +2)/MultiplicateurXP*XPdeBase+1 If CalculXP <=0 Then CalculXP=1 end_if hero(7) = (((hero(3)-5)*3) +1) hero(9) = hero(9) + int(CalculXP * Power(ennemi(EnnemiSelectionne,5),2)) goto NouveauCombat end_if end_if
return
Action_ennemi: ' inactive 31 gosub sub_enemmi_attaque if hero(7) > 0 active 30 else message "Vous etes mort" terminate end_if caption 10,"points de vie Hero : " + str$(hero(7)) caption 11,"points de vie Ennemi : " + str$(PVEnnemi)
return
' -- Attaque avec une arme --------------------------------------------------- sub_hero_attaque:
' calculer s'il y a blessure ChanceToucher = int(((hero(2)* 4 + hero(4)*4) /2) + rnd(35)) ' Caption 21,"ATTAQUER ("+str$(ChanceToucher)+"%)" JetDes = int(rnd(10))*10 + int(rnd(10)) : ' simule lancer de 2 D 10 faces ' message "chancetoucher " + str$(ChanceToucher) + " jetdes " + str$(jetdes) if JetDes < ChanceToucher ' si blessure , calculer les dédats selon l'arme utilisée (pas de gestion de l'armure pour le moment) Degats = int((1 + (hero(1)-5)/4) * rnd(arme(hero(6),3))) + 1 ' int((1 + hero(2)/4) * rnd(arme(hero(6),3))) caption 16, "ennemi bléssé pv perdus : " + str$(Degats) PVEnnemi = PVEnnemi - Degats else caption 16,"L'ennemi n'a pas été touché" end_if
return
' -- Attaque avec la magie --------------------------------------------------- sub_hero_magie:
' calculer s'il y a blessure ChanceToucher = int((hero(2)* 5 + hero(10)) /2) * (arme(hero(6),2)/100) Caption 21,"MAGIE ("+str$(ChanceToucher)+"%)" JetDes = int(rnd(10))*10 + int(rnd(10)) : ' simule lancer de 2 D 10 faces
if JetDes < ChanceToucher ' si blessure , calculer les dédats (pas de gestion des sorts pour le moment) Degats = int((1 + (hero(2)-5)/4) * rnd(arme(hero(6),3))) + 1 caption 16,"Ennemi blessé - PV perdus : " + str$(Degats) PVEnnemi = PVEnnemi - Degats else caption 16, "L'ennemi n'a pas été touché" end_if
return
' -- Attaque de l'ennemi ----------------------------------------------------- sub_enemmi_attaque:
' calculer s'il y a blessure ChanceToucher = int(((ennemi(EnnemiSelectionne,2)* 4 + ennemi(EnnemiSelectionne,4) *4)/2) + rnd(25)) JetDes = int(rnd(10))*10 + int(rnd(10)) : ' simule lancer de 2 D 10 faces caption 17,"Le " + nom_ennemi$(EnnemiSelectionne) +" attaque avec " + nom_arme$(Ennemi(EnnemiSelectionne,6)) if JetDes < ChanceToucher ' si blessure , calculer les dégats selon l'arme utilisée (pas de gestion de l'armure pour le moment)
Degats = int( (1 + (ennemi(EnnemiSelectionne,1)-5)/4) * rnd(arme(ennemi(EnnemiSelectionne,6),3))) + 1 Caption 18,"Héro blessé - PV perdus : " + str$(Degats) hero(7) = hero(7) - Degats else Caption 18,"Le héro n'a pas été touché" end_if
return | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: systeme de combat et compétence[Skill system and battle sys] Jeu 3 Nov 2011 - 1:23 | |
| J'ai vaguement regardé le code, mais c'est clair, que dans un cas comme cela, la notion de structure ne serait pas un luxe... | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: systeme de combat et compétence[Skill system and battle sys] Jeu 3 Nov 2011 - 8:20 | |
| C'est clair Nardo Bon, c'est vrai que l'on pourrait (et on le fera peut être) remplacer les hero(1), hero(2),... par hero_force, hero_agilite, hero_constitution, ... mais bon, multiplié avec les monstres, les armes, les armures, les objets, etc ... ça fait beaucoup de variables ... Mais les avantages d'une structure ne s’arrête pas là (tableau de monstres par exemple avec les données dedans, ...). Par contre, on l'a demandé à Jack et ce n'est pas prioritaire, c'est un confort d'utilisation et de compréhension. J'espère que Jack pourra déjà tenir ses délais pour les procédures. | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: systeme de combat et compétence[Skill system and battle sys] Jeu 3 Nov 2011 - 10:15 | |
| Je vous prépare une liste de conseils/avis... Après vous pourrez y piocher dedans si cela vous interresse... | |
| | | jpcr
Nombre de messages : 276 Age : 57 Localisation : Val de Marne (94) Date d'inscription : 06/05/2011
| Sujet: Re: systeme de combat et compétence[Skill system and battle sys] Jeu 3 Nov 2011 - 10:19 | |
| bien sur que ça nous intéresse, Nardo. pour revenir a la notion de structure, malheureusement Jack n'a eu aucune réaction donc on ne sait pas si ça lui parait faisable ou non. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: systeme de combat et compétence[Skill system and battle sys] Jeu 3 Nov 2011 - 10:23 | |
| Merci Nardo C'est sympa, c'est pour ça que j'ai posté notre début de moteur alors qu'il n'est pas fini, afin que des personnes intéressées puissent nous aider à bien démarrer avant de compliquer les choses. Merci d'avance pour tes idées | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: systeme de combat et compétence[Skill system and battle sys] Jeu 3 Nov 2011 - 10:37 | |
| C'est délicat de donner des conseils sans froisser la susceptibilité des personnes. Mon but n'est pas de "donner des cours" mais des idées/pistes sur la manière dont je m'y prendrai... donc : no problem.. hein ? si je vous gonfle, je préfère que vous me le dites... Premier jet : Organisation (Plan) / évolution :Avant d'aller plus loin dans le code, ce qui serait peut-être intéressant, c'est de découper la structure du jeu en plusieurs fichiers. Pour cela il faut bien poser avant sur papier, les besoins... par exemple, (c'est juste un exemple! ) : - main.bas <-- programme principal
- constantes.bas <-- pour gagner en lisibilité dans le code
- hero.bas <- contient les procédures spécifiques au personnage principal
- interface.bas <-- toute la partie graphique (qui pourrait être découpé elle aussi)
- ennemi.bas <-- procédures d'ordre général
- gobelin.bas <-- procédures spécifiques suivant la nature de l'ennemi
- orques.bas
- ...
- ...
PS : Faut pas tomber non plus dans l’extrême !!! J'y vois plusieurs avantages : 1- Cela permettrait de pouvoir débugger/améliorer/ajouter des fonctionnalités de votre jeu de manière individuelle et de pouvoir vous y mettre à plusieurs sur le codage sans vous marcher sur les pieds... Puis cela réparti les charges de travail dans le groupe. 2- C'est plus facile de debugger un ficher de 100/200 lignes qu'un seul fichier de plusieurs milliers de lignes ! (Sans parler des updates...) Par contre, il faut bien penser à l'organisation des données/procédures en partant de l'idée qu'il va bientôt(?) y avoir une version de Panoramic avec appel de procédure avec paramètres... Cohérence au niveau codageJe vois que dans le prog, on accède aux caractéristiques du hero via un tableau. Mais on ne fait pas la même chose en ce qui concerne l'ennemi. Pour l'instant, c'est certainement plus confortable d'utiliser PVEnnemi que ennemi(EnnemiSelectionne,7) mais si demain le heros se fait attaquer par plusieurs ennemis à la fois cela va être compliqué de modifier le code... Si vous voulez garder ce principe, pourquoi ne pas le faire avec le tableau hero() ? dans ce cas, à quoi servent les tableaux si les données sont après dispatchées dans d'autres variables ? Bref, pas mal de réflexion en vue, mais c'est comme cela qu'on avance... EDIT1 : Pour que tout le monde parle le même langage et que chacun puisse s'y retrouver dans le code de l'autre, il serait intéressant de vous mettre d'accord sur la manière dont vous allez nommer vos variables.... | |
| | | Contenu sponsorisé
| Sujet: Re: systeme de combat et compétence[Skill system and battle sys] | |
| |
| | | | systeme de combat et compétence[Skill system and battle sys] | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |