Jump to content

Eliwan

Member
  • Posts

    489
  • Joined

  • Last visited

Posts posted by Eliwan

  1. (please forgive line reordering here please I want to be clear where each of my comments is addressed when possible)

    Look, I never said I was an expert on Japanese folklore and myths.

    I am not. I am sorry if I gave that impression (to be honest the only thing I actually am very intimate with is kitsunes).

    I honestly can't tell if you're Shinto and offended,

    I'm not either of these things; I'm just upset at other things right now and that's probably bleeding through

    just hate my guts or can only talk about what I say.

    You could easily do many many fewer posts with larger concentrations of ideas, think them through more heavily etc- it feels more like you've been just dropping each idea set that you have without further dwelling on it. That could easily not be the case and I'm just not able to tell.

    I do not hate you (only bad ideas which you coincidentally have a number of, mixed with good ones), I tend to only reply to your statements because I lack a good method to reply to many others.

    being nitpicky,

    I do this a lot. I am very nitpicky about ideas because I want them to all make sense and have logic and reasoning.

    I was just going for something that makes sense (Oni's hit hard, Kitsune are tricky fox mages, Kappa swim, Tengu fly, and mirrors reflect stuff).

    The reference is lost in the case of the magatama and mirror. That was my primary point (I was just overloading it with something unimportant because that is what I tend to do).

    Neither artifact has any correlations to the designated effects; that is all.

    In the case of kitsunes they aren't mages but I see your point (they are shapeshifters and illusionists).

    This is Omega's thread and he wants opinions on his ideas and story.

    If I had opinions besides "that is very interesting and I want to see more" I would comment on story pieces much more often, but I rarely do, and most of them have been "that seems pretty arcane from this summary, it would probably be better explained if written in full"--so there isn't a point in pointing it out.

    By all means, do give me critiques on my ideas but be constructive about it. Tell me what I can do to improve rather than just saying that my ideas suck. I apologize for however I have wronged you. Just help me improve.

    I tried that already and it didn't work so i will repeat

    1. think it through; do the research on something if research is applicable to the item.

    2. try envisioning when you would use something compared to something else

    3. look at what benefits (or downsides) something can have.

  2. You obviously have no knowledge of Japanese culture.

    At least it was funny and not just idea vomit.

    Kitsune Soul- +5 to Magic and Speed. A-Rank, mid-late.

    A more accurate one would be like "deal % of target health". Perhaps a full hundred. :V

    Magatama Soul- Gives Counter. B Rank, late game.

    yes because a teardrop stone that often is a good luck charm gives counters; or the one that was used to birth new gods makes sense to still exist

    Kagami Mirror Soul- Gives Countermagic. B Rank, late game.

    because wisdom and honesty make sense to reflect magic instead of bolster the user's own right??
  3. i was so sure i was being an idiot but then it turned out i wasn't so

    The issue is that you need to edit the 08, 09, 0A, and 0B entries after each animation* to be all completely zeroes; better explained in hex though

    00 01 13 00 09 01 14 00 00 00 00 00 FF FF FF FF
    (i believe this is your myrmidon animation set with the 00 edit)

    this is 4 bytes that denote the animation:

    [What Weapon or Type], [All Weapons Or A Specific], [Animation Halfword Low], [Animation Halfword High].

    Since classes have different weapon/animation counts (hero, fighter, blade lord, etc), there needs to be a terminator to the list of animations; which is represented by four 00s.

    *you would need to change which bytes these are based on how many animations the class needs, as well.

    Class points to a list of 4 bytes; the first two of which tell the game first WHAT it is looking at, which it iterates through till it finds the thing labelled as what it is looking for, then it uses the next two bytes to determine what to actually display.

  4. In the movie, Madoka is a melon, Mami is a cheese, Kyoko is an apple, Sayaka is a raspberry and Homura is a pumpkin, Nagisa is Bebe/Charlotte.

    get your magical girl nutritional knowledge right

    i am familiar with kaeki i was just trying to think of something different ;'(
  5. will you change the bows to make sure they can attack at close range? Because I think it wouldn't be very practical to have a Player Phase only main character, but that's just my take.

    Can I disagree wholeheartedly with this entire content because a PCPC* that can only attack at ranges >1 sounds pretty drat amazing to use as a demonstration of Your Superior Tactics.

    *Plot Critical Player Character

    edit:

    Madoka: pink badass

    Mami: melon cake

    Kyoko: apple pocky

    Nagisa: cheese

    Homura: glock-clock ?

  6. Er... I would but I actually don't know how, any chance you can link me to where I can find out/ tell me?

    Date Label[spoiler]predescribe sprite
    [img=url to image]
    postdescribe sprite
    
    repeat structure as necessary[/spoiler]
  7. But I don't have any idea of how can I do this.

    Edit: By the way, I have 2 matrices: 1 for units and the other for the terrain, just like Enaluxeme said, but I still don't know how can I cut the movement of... 3 rows? like that, It's a bit crazy.

    Someone knows how could I get this? This pisses me off because I'm stuck with the algorithm and I don't know how to solve this.

    Check terrain costs. Don't iterate through each spot that is normally available to move through, but instead check per tile what terrain is beneath and calculate the cost of movement through that tile.

    This code snippet is from KK20's AWXP Engine and I think it's helpful to have something to directly reference:

    #-----------------------------------------------------------------------------
    # * Calc_Pos - Find what tiles to highlight to determine range
    #-----------------------------------------------------------------------------
    # unit = Class Unit
    # range_max = maximum range that can be achieved
    # range_min = minimum "                         "
    # type = what tiles are we going to work on?
    #   >> "move"   - Move range
    #   >> "attack" - Attack range
    #   >> "direct" - 4 tiles around the unit
    #		>> "vision" - Unit's vision range
    # x , y = If wanting to get tiles from a specific spot and not a unit's x/y
    #-----------------------------------------------------------------------------
    def calc_pos(unit, type = "all", x = nil, y = nil)
    	# Stores all the x-y coordinates of possible spots
    	positions = []
    	if type == "move" or (type == "attack" and unit.max_range == 1)
    		# Sets maximum move range based on remaining fuel
    		range_max = (unit.fuel < unit.move ? unit.fuel : unit.move )
    		#In Advance Wars units have a Fuel amount that dictates their maximum move
    		#For your case you'd want to just have the Move of the unit (which would be probably mostly dependant on their class)
    		case range_max
    		when 0
    			# Adds current actor position since it can only move 0 spaces
    			# Actor = unit
    			positions.push([unit.x, unit.y])
    			# If unit can actually move some spaces...
    		else
    			# setup the values of the following arrays
    			positions = [[unit.x, unit.y]] #-> Stores [x,y] of every space that unit can move onto
    			route = [[]] #-> Defines the directions to get to position. Elements work in conjunction with position's.
    			cost = [0] #-> Movement cost to get to position. Work in conjunction with positions and route
    			more_step = [0] #-> Stores index values so that it can check which positions to process possible additional spaces.
    			for i in more_step
    				x = positions[i][0] # X-coord of space
    				y = positions[i][1] # Y-coord of space
    				c = cost[i]         # Space's cost (e.g. it takes 3 move points to get here)
    				
    				#Begin finding all possible paths. Starts with DOWN
    				if unit.passable?(x, y+1)                   #Can the tile below be walked through
    				#For other directions, instead of adding 1 to Y, 
    				#you'd subtract 1 from Y for up; (x, y-1)
    				#subtract 1 from X to get left; (x-1,y)
    				#add one to X to get right. (x+1, y)
    					tt = (unit.army.officer.perfect_movement ? 1 : ($game_map.get_tile(x,y+1).move_cost(unit))) #get move cost of tile that is below
    					tt += unit.army.mcosts #Powers that increase move costs across all terrains use this to increase it
    					if c+tt <= range_max           #if current route cost <= move_range
    						
    						if positions.include?([x, y + 1])   #is this spot already found?
    							index = positions.index([x, y + 1])  #find element of this spot
    							if cost[index] > c+tt    #is current route found less costly than original?
    								route[index].clear             #reset existing route
    								route[index] = route[i] + [2]     #set new route
    								cost[index] = c+tt                  #replace cost table for pos
    								if c+tt < range_max   #is there another spot we can reach because of this reduced cost?
    									more_step.push(route.index(route[i] + [2]))
    								end
    							elsif cost[index] == c+tt             #is new route just as costly?
    								if clean_route(route[i]+[2], route[index]) #does the new-found route have less turns than current route?
    									route[index].clear             #reset existing route
    									route[index] = route[i] + [2]     #set new route
    								end
    							end
    						else            #this spot is newly founded...let's add it
    							positions.push([x, y + 1])   #add position to positions array
    							route.push(route[i] + [2])     #add route for position
    							cost.push(c+tt)                  #add cost required for position
    							if c+tt < range_max    #enough move spaces left to find more spots?
    								more_step.push(route.index(route[i] + [2])) #push more step for position
    							end
    						end
    						
    					end
    				end
    				#The process is much the same as above for the other 3 directions
  8. Making a single thread is probably for the best :v

    The hair colors are messed up as what should be the lightest shade is the darkest. It works for the bangs, but not for the top nor back of the head (nor, even, for the left side of the canvas / their right).

    The near shoulder looks still too much like the skin that it used to be (unless it's supposed to be some skin tight cloth or his skin is gray, though his face doesn't show this trait very well at all), I would recommend copying some cloth folds onto it from elsewhere or freehanding some of your own.

    The mark over the eye I can't tell what it is supposed to be-- if it is a scar then it is too absent in certain places, if it is a henna it doesn't read well as one due to its faintness (which may have been the point, though, so this could be ignored).

    Regading the actual color choice, the inside color of the hair is actually darker than the outline, as is the darkest color on the exposed arm and the reds on that same spot. This creates a conflict with the outline itself, as the outline is supposed to be the "black" color for the character design-- everything should be brighter than it, unless to portray some extraordinary darkness (e.g. a black hole maybe).

    (It also looks really heavily like Raven because of how little facial change there was, but the components do work together)

  9. Yes

    via Circles' NMM2CSV and a CSV editor of your choice e.g. libreoffice

    + if you want new graphics with image editor of your choice

    + finally EA to insert it all

    or you could use Nightmare and GBAGE instead of CSV / EA

  10. No.

    Whoever said that is blatantly lying; as FEXP and FEXNA are separate engines from actual GBA FE. While they "work the same" in that they'd have the end thing be the same / similar, you'd have different UI designs and options available with each as well as having zero code compatibility (GBA FE is assembled C, FEXP is Ruby, I don't know what FEXNA is).

    As for a real "how"; it depends on what the skill(s) affects. If it just changes the damage/hit/crit values for an entire battle, then it's not too bad. But something like Luna, which affects only one hit in a battle, require making the battle system recalculate damage on each hit; something like Sol requires figuring out how to increment the attacker's HP (and afaik nobody knows how to do this? not sure off the top of my head however).

  11. The unheadered, unpatched ROM should be 4 MB, headered unpatched 4.0004 or more MB- or

    a vanilla unheadered rom should clock in at 4,194,304 bytes

    headered clocks in at 4,194,816 bytes or more

    As far as checking the size goes, just clicking the file or right-clicking it and selecting properties (or "more information" or something of such nature) should tell you immediately specifics of how much space the file is.

    The last time I spoke with somebody with this kind of issue, they hadn't unpacked the archived ROM :V

    Checking my own files, a zipped vanilla unheadered (4,194,816 bytes) FE4 is 2.8 MB, so I'd assume that this is the issue... for the moment at the very least.

  12. Not easy and very hacky with Nightmare, however-

    Nightmare is a Hex Editor at its core, just labelled nicely according to the modules. What you need is a proper Hex Editor (google, there're plenty of great free ones such as HxD) and some way to hold your manipulations as well (e.g. notepad).

    If you want to change the class of all your units to monsters, then repointing every single one of the promotion items to promote the same list of lasses would be fine.

    Promotion Items point to a 00 terminated list of bytes in the rom. Each of the bytes corresponds to a class that that item is able to promote.

    For example, the Hero Crest's "promotion pointer" is 088ADF57. This means that it points to 008ADF57 in the actual hex dump of the ROM, which (in HxD) is:

    unknown.png

    (The highlighted portion shows us the classes the item promotes)

    Non-image replication:

    Offset(h)  [00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F]
    008ADF40    59 5A 5B 5C 5D 5E 5F 60 61 62 63 64 65 66 3B 7C 
    008ADF40    7D 51 00 3D 3E 47 00 0F 10 13 14 3F 7E 00 05 06 
    008ADF40    09 0A 37 00 19 1A 00 48 1F 20 00 45 4A 25 26 44 
    008ADF40    2D 2E 4B 7F 00 00 0F 10 13 14 3F 42 41 05 06 09 
    We care about 008ADF57 ~ 008ADF66 in this instance, which contains "0F 10 13 14 3F 7E 00 05 06 09 0A 37 00 19 1A 00", as the list of classes this item promotes.

    As I've actually done this exact thing many times I happen to have the list already prepared, but what it is is the list of unpromoted monster class IDs, which was compiled using Nightmare to check.

    52 54 56 58 5B 5D 5F 63 00
    I believe that the monster classes are already pointed to promote to their elite-r variants, but just in case, check in the Class editors to make sure that the Tarvos promotes to the Maelduin, the Bonewalker (Sword/Lance) promotes to the Wight (Sword/Lance), etc. because otherwise this doesn't work.

    If you want less intensive edited thing, you can repoint every single promotion item's promotion pointer to point to the same space in ROM; so that you don't have to edit the drops. (Or I suppose you could customize each promotion item to promote a given monster class group)

    Regardless, the method is the same. You open the ROM in HxD and navigate to some free space or the end of the rom. I personally recommend starting at 00B2A610 if you don't want to expand the rom size-- this means pointing every promotion item to this space. Pointers need to point to (ROM address + 0800000), so 08B2A610 is the pointer you'll want in this instance.

    Then, after making all of those edits in nightmare, save the ROM, quit Nightmare, and open the ROM in HxD. Goto offset (CTRL+G in windwos) 00B2A610, and paste-ovewrite (CTRL+B in windows) in the class list above, reproduced here:

    52 54 56 58 5B 5D 5F 63 00
    DO NOT PASTE INSERT (ctrl + v). IT WILL BREAK THE ROM.

    Then Save the ROM, close HxD, and play it.

    Note that this only edits the promotions; so you'd need to do something else if you wanted to edit the classes of the characters (codebreaker codes being the easiest), though I believe that Nightmare can handle that component.

×
×
  • Create New...