Comments

Log in with itch.io to leave a comment.

Viewing most recent comments 1 to 8 of 95 · Next page · Last page
(1 edit)

Any plans to update any further? Like add more features and such?

Not really, adding more features also makes it more complicated to use. (Though if you check the comments I have suggested implementations for a lot of commonly requested features)

Hey Yal can you help me with making abilities so far i have initialized them the same way you have monsters and items, but i cannot seem to understand how those work also i am having trouble drawing them in the status menu, how do i do that.

So far i have done this :

function init_ability(argument0, argument1, argument2, argument3, argument4, argument5, argument6 ,argument7) {

global.ability_data[argument0,abl_NAME ] = argument1

global.ability_data[argument0,abl_TRIGGER ] = argument2

global.ability_data[argument0,abl_TARGET1 ] = argument3[0]

global.ability_data[argument0,abl_CHANCE1 ] = argument3[1]

global.ability_data[argument0,abl_TYPE1 ] = argument3[2]

global.ability_data[argument0,abl_EFFECT1 ] = argument3[3]

global.ability_data[argument0,abl_SEVERITY1 ] = argument3[4]

global.ability_data[argument0,abl_TARGET2 ] = argument4[0]

global.ability_data[argument0,abl_CHANCE2 ] = argument4[1]

global.ability_data[argument0,abl_TYPE2 ] = argument4[2]

global.ability_data[argument0,abl_EFFECT2 ] = argument4[3]

global.ability_data[argument0,abl_SEVERITY2 ] = argument4[4]

global.ability_data[argument0,abl_WEAKNESS1 ] = argument5[0]

global.ability_data[argument0,abl_WEAKNESS2 ] = argument5[1]

global.ability_data[argument0,abl_WEAKNESS3 ] = argument5[2]

global.ability_data[argument0,abl_IMMUNITIES1 ] = argument6[0]

global.ability_data[argument0,abl_IMMUNITIES2 ] = argument6[1]

global.ability_data[argument0,abl_IMMUNITIES3 ] = argument6[2]

global.ability_data[argument0,abl_STRENGTHEN1 ] = argument7[0]

global.ability_data[argument0,abl_STRENGTHEN2 ] = argument7[1]

global.ability_data[argument0,abl_STRENGTHEN3 ] = argument7[2]

}

/// init_abilities()

function init_abilities() {

init_ability(abl_FLAMECLOAK, "Flame Cloak", EMERGE,

[movetarg_USER, 100, type_FIRE, ailment_BURN, 1],

[NONE,NONE,NONE,NONE,NONE],

[NONE,NONE,NONE],

[NONE,NONE,NONE],

[NONE,NONE,NONE]

);

}

#region//ability region

#macro abl_NAME 1

#macro abl_TRIGGER 2

#macro abl_TARGET1 3

#macro abl_CHANCE1 4

#macro abl_TYPE1 5

#macro abl_EFFECT1 6

#macro abl_SEVERITY1 7

#macro abl_TARGET2 8

#macro abl_CHANCE2 9

#macro abl_TYPE2 10

#macro abl_EFFECT2 11

#macro abl_SEVERITY2 12

#macro abl_WEAKNESS1 13

#macro abl_WEAKNESS2 14

#macro abl_WEAKNESS3 15

#macro abl_IMMUNITIES1 16

#macro abl_IMMUNITIES2 17

#macro abl_IMMUNITIES3 18

#macro abl_STRENGTHEN1 19

#macro abl_STRENGTHEN2 20

#macro abl_STRENGTHEN3 21

#endregion

I think the easiest way to figure out how to implement abilities would be running a search (Ctrl+Shift+F) for itemvalidflag_AUTO_, this should bring up all the places where items are automatically triggered (e.g. the Spiked Shell being triggered on damage to deal a counter attack... you'd want a similar check for abilities being triggered on damage at basically the same place, for things like Flash Fire, Sturdy and so on; other abilities might trigger on each turn, or when attacking, etc)

You'll also need to actually give abilities to monsters (so init_monster needs to take a new argument for ability, the global.monster_data array be extended so it can fit this new data in, and the giant setup in init_monsters should provide it of course)

To show the ability, mev_pause_monsters_status is the script that builds the status screen. You'd read out the abl_NAME field here and create a ggui_element_text to display it somewhere.

Hey Yal, can you help me with a few things : 

1.How can I delete save files

2.How do i enable double battles for certain trainers

3.How do i set encounters for the room, i found ects_placeholder() but I could not find out how it applied and how to make more

thank you

1) Savefiles are found in AppData/Local/<name you saved the GM project under>, monster_save0 is the first file, monster_save1 the second and so on. It's a hidden folder so the easiest way to find it is to type in %LOCALAPPDATA% in the file explorer path and hit enter.

2) The important part is setting global.player_side_monsters and global.enemy_side_monsters to 2 (that's what controls how many monsters each side is allowed to have at once). The easiest way to inject this would be to copy obj_npc_trainer and cc_battlestart_trainer to new obj_npc_doublebattletrainer/cc_battlestart_doublebattletrainer which are mostly identical but sets these to 2 instead of 1 before the fight starts. (Also note that cc_battlestart_trainer actually can take an array of trainer data, global.encounter_trainer_data has one entry per trainer, so if you want a double battle against specifically two different trainers (instead of an entity like 'twins') you could populate this twice with different monster, dialogue etc data for each trainer.

3) Use an obj_encounterzoneselector, place one in the room and stretch it out over the area you want the battles in and then select the ects_* script with that room's settings (there's two more ects_* scripts with the first town / Driftwood Forest encounter data). They're tied to these markers so you can make things more granular (e.g. have different encounters in different terrain)

Hey yal, i have some trouble when adding another gym leader. Can you help me step by step, i cant figured how to handle badges after winning the battle

Badge status is handled by the array global.player_badges. The first badge is badge 0, the second badge 1 and so on.

You can check cis_leader1 and cis_leader1_beat for an example how this is done:

  • in cis_leader1 there's different dialogue depending on if you have the badge or not (and you only trigger the battle if you don't have the badge). Also it sets up the post-battle script (global.after_battle_event) which is what triggers the cutscene after the battle.
  • in cis_leader1_beat (the script set up to run when you win the battle) you actually get the badge thanks to the line that reads
    csc_enqueue(cc_obtainbadge,0)
    so for a second badge, you'd instead obtain badge 1 in the same way.
(+1)

Hey,

I have been working to get evolution items into the game. I have them working, for the most part. You can select it from the items menu, and then use it on a monster, who will evolve if they have an item based evolution that matches the used item. However, once the evolution ends and the room fades out, the game crashes and I'm not quite sure how to fix it. Here is the crash message:

############################################################################################
ERROR in action number 1
of  Step Event0 for object obj_roomchangefade:
room_goto argument 1 invalid reference to (room) - requested -12341 max is 8
 at gml_Object_obj_roomchangefade_Step_0 (line 7) -                      room_goto(my_room)
############################################################################################
gml_Object_obj_roomchangefade_Step_0 (line 7)

Here is the code of the evolution item:

///itemuse_evolution(amp_id,EvoItem)
function itemuse_evolution(argument0, argument1) {
    var monamp = argument0;
    var monid = global.active_monster_party[argument0,amp_MONID];
    var nevo = NONE;
    for(c = 0; c < global.monster_data[monid,mond_TOTALEVOLUTIONS]; c++)
    {
        if(global.monster_evolution_type[monid,c] == evotype_ITEM)
        {
            show_debug_message("Evolution type equals item")
            if(global.monster_evolution_arg[ monid,c] == argument1)
            {
                nevo = global.monster_evolution_mon[ monid,c]
                inventory_lose_item(my_item,1)
                ds_queue_enqueue(global.pending_evolutions_queue,[monamp,nevo])
                room_goto_fade_dontdestroy(rm_evolution,60)
                break;
            }
        }
    }
    if (nevo == NONE)
    {
        msh_itemuse_show_party_effects("It wouldn't have any effect.")
    }
}


I feel like I must be missing something about the room_goto_fade_dontdestroy function, but I don't know what. Any help would be appreciated. If you need any more details, let me know.

(3 edits)

-12341 is the value of the NONE constant (one of the reasons I picked that number was to make it instantly recognizable). You need to set global.load_room to the current room before changing to the evolution room (and also the global.load_x, load_y and load_direction variables to the player's current x / y / drawdir respectively) otherwise it doesn't know where to put you back - and that's exactly what's happening right now.

(For an example of how to do this, check out player_step_fill which handles the "steps in tall grass to the next random battle" counter, and which sets these before changing to the battle room if an encounter is triggered - side note, this function would also be where you put things like "monsters in daycare gets EXP" and "countdown to eggs hatching" happening)

I tried to edit it can you share a video link to where I can just edit the source code, all of it, I search online can't find a code edit video for game maker

Here's the official GameMaker tutorial series on the code editor. (I recommend using GML Code since Visual doesn't really make things easier, just prettier to look at.)

(+1)

Thank God Oh I needed this so badly, I love the Pokemon engine you made, in fact I truly think it should get more coverage so many people are desprate for one & your is right here. I will definitely watch this

Viewing most recent comments 1 to 8 of 95 · Next page · Last page