cellista92 has contributed to 394 posts out of 465511 total posts
(.08%) in 4,358 days (.09 posts per day).
20 Most recent posts:
Sorry, I kept using the word carcass because I couldn't remember any other word to describe a dead body; although I can see why corpse is a better term for what I am describing.
Anyways... this is probably trivial to you all, but I think I discovered how to manipulate the player's corpse after the player is dead.
It seems, that in a continuous script, non-conditional statements are carried out in a regular order, along with checking conditions in conditional statements. so for example.
(if true (sv_say "2"))
(if true (sv_say "4"))
carries out thee functions in the order of 1, 2, 3, 4.
However, when you have multiple functions bound to a certain condition, they appear to be evaluated altogether, and then their combined output is carried out, within one "iteration" of the script. Note: I use the word iteration (possibly mistaken), because they needn't be carried out on the same tick. I tested this hypothesis.
By binding a sleep function of more that 1 tick with a certain condition, between two functions that could not be carried out in different iterations (because of memory referencing); the two functions were carried out successfully.
To make things clearer: You can use a conditional in which the biped is about to die (to reference the object), bind a sleep function by the same condition, then mess with the player object while it's dead, by binding it with either that same conditional, or using the condition with which you slept the script, if you use sleep_until.
My intuition on why this works is that when you load an object onto a global, you are pointing at the address of that object, and that address remains the same until the next iteration of the script; which is when the functions have been carried out. The reason I think conditionals protect you from referencing non-existent memory is that you can manipulate a certain address under some condition, and set the condition to false after all functions have been carried out, so that the memory you were manipulating is no longer referenced in the next iteration of the script.
Hope that was clear enough.
I managed to delete by definition. but deleting cyborg_mps is not a good idea for what I am doing, since living players get respawned (without adding a death to their counter).
I loaded the player objects onto a global object variable, but only when triggered by walking into a volume, which failed when the player was killed before entering the volume.
I then attached an indestructible object, to check for that instead, which fixed the trigger-volume checking, but I still could not manipulate the carcass.
I will look into the damage tracking though, thanks. I had forgotten grenade kills get tracked through a player's death.
what is the carcass of a player classified as?
I know it is not a player-list object, because member objects of the player list "(players)" are only living players.
In other words: if player is a member of the list "(players)", (unit_get_health (unit player)) returns -1 for all index values of player greater than the max index value of living players. so if there are three living players out of 5 in-game players, (list_get (players) 3), (list_get (players) 4), (list_get (players) 5), (list_get (players) 6), ..., (list_get (players) n) will return -1 for some finite integer n.
My first assumption was that the carcass was some other type of object.
I, then, assumed that the carcass was a generic cyborg_mp object since it possesses the "characters\cyborg_mp\cyborg_mp" object_definition, possessed by all cyborg_mp objects. (tested through the (objects_delete_by_definition <object_definition>) function).
Then I tested the (garbage_collect_now) function on generic cyborg_mp objects and they weren't affected, whereas the carcass and dropped equipment were affected.
This led me to believe that the either 1. the carcass was not an object (meaning (garbage_collect_now) manipulates non-objects, and non-objects can have an object_definition), or 2. the carcass along with the equipment, became special types of objects. (which the garbage_collect_now function can manipulate.)
if 1. is the case, what does the carcass become?
if 2. is the case, what type of special objects are these? (note, that by attaching objects, if one deletes the parent, the child is deleted; so if the equipment was attached to the dead biped, then the biped could be the only special object.)
I searched for "garbage" inside my Halo CE folder and found nothing significant, except some forerunner structure ".garbage" tags.
Ok, my goal is to make a killbox script such that the following conditions are satisfied:
- If the player enters the killbox, the player dies instantaneously.
- If the player entered the killbox, either the player's camera detaches at that spot or the player respawns right away.
This is my current relevant script:
(global short count 0) ;;Stores player value in the player list
(global boolean slipped false) ;;Stores whether player fell in the killbox
(script continuous kill_box
(if (>= count player_spawn_count) (set count 0)) ;;Checks only for players in game
;;Teleports the player inside the killbox to a flag
(if (volume_test_object death (list_get (players) count)) (object_teleport (list_get (players) count) crush))
;;Confirms player was teleported
(if (volume_test_object death (list_get (players) count)) (set slipped true) (set slipped false))
;;Teleports a warthog after a player to crush the player
(if slipped (object_teleport biped_crusher crush) (object_teleport biped_crusher default))
(set count (+ count 1))
Currently, condition 1 is satisfied. I am uncertain if condition 2 can be satisfied.
My question is, "Can the multiplayer cameras be manipulated by a script? If not, is there a global for respawn times? If not, is there an alternate solution?"
I am not sure if my script overcomplicates the killbox; I'll consider alternative suggestions.
Edited by cellista92 on Dec 18, 2013 at 10:36 AM
well I kinda skipped the tutorial map because I wanted to jump into the action and make terrible box maps with poor uv unwraps and lots of halo 1 scenery to fill in the gaps.
But I suppose I should go check it out now and learn from it...
It's worth a shot to see if that can fix the problem, thanks.
Edited by cellista92 on Jul 11, 2013 at 04:15 AM
Alright so I'm working on a map from Zelda: Windwaker.
and... after baking lightmaps and everything... I run the OS Tool command to fix the lightmap UVs that were moved when flattened (right before before the lightmaps were baked).
This is what I get.
I tried doing the entire process without the 3ds UV flatten modifier, and the lighmaps come out fine, but with Halo's default crappy flattening.
the problem seems to be specific to certain areas (not textures) because I've tried several ways of going about the whole process and the same areas are always messed up.
Anybody know why this happens?
P.S. the shadow behind the lighthouse didn't get messed up like the ones on the rooftops did (and other shadows also came out fine)
Edited by cellista92 on Jul 10, 2013 at 10:46 PM
Genius. thank you Jesse
Alright. it has been fixed now. Made it a vehicle again, and made the host_only script destroy and create a new windmill after every full rotation.
Edited by cellista92 on Jun 19, 2013 at 02:15 AM
Alright, so I'm trying to make a Windmill sync. It is supposed to be somewhat like the Zanzibar fan, where you can get on top of it, though this one has seats to take you around.
I have made it a device_machine, set as "gears"; rotating fully every 80 seconds (slowly enough so that you don't fall off your seat, since there are no sticky surfaces; the collision keeps you inside.)
The problem right now, though, is syncing it.
I wasn't sure how to start, so I asked Kirby for help, and he gave me this script:
(global short player_count 0) ;;Store Player Count
(global boolean is_host false) ;;Stores whether player is host
(script continuous resync
(sleep_until (< (unit_get_health sync_biped) 1) 1) ;;Waits until the sync_biped is hurt
(device_set_position_immediate device 0) ;;Resets windmill
(device_set_position device 1) ;;Starts it moving
(object_create_anew sync_biped) ;;Remakes Sync biped
(script continuous host_only
(sleep_until is_host 1) ;;Doesnt run if not host
(sleep_until (!= player_count player_spawn_count) 1) ;;Wait until the player count changes
(if (< player_count player_spawn_count) (object_teleport biped_crusher crush_flag)) ;;If the player count increased, resync
(set player_count player_spawn_count) ;;Track current player count
(script startup host_testing
(set is_host (!= (unit_get_health biped_crusher) -1)) ;;See whose hosting the server
(if (not is_host) (sleep -1 host_only)) ;;If the player isnt host, kill the other host_only script
When I tested it, the script crushed the biped successfully for the host; though after that, it didn't crush the biped anymore; hence the windmill didn't sync.
I switched the "player_spawn_count" to "(list_count (players))" to see if the logic was fine, and surely enough, it crushed the biped when a player spawned.
The problem there is: that it restarts the windmill every time you respawn - which is why Kirby used the player_spawn_count instead.
I've tried to modify it and even change the script to solve the problem, but I haven't come any closer than syncing the windmill every fifth of a rotation at the expense of small jerks every now and then.
So I was wondering if anyone could explain why the script isn't working for player_spawn_count.
Alright thanks; I also felt it looked strange but I wasn't sure what it was missing.
Here's the latest sky I've got.
I removed the fade effect from the circulating clouds, and will instead place it on single clouds that go through the top, since that's how they actually vanish in the game.
I changed the water, added ripples; will add other Windwaker effects; got the water fog to work, fixed the background clouds a bit etc.
Edited by cellista92 on Jun 2, 2013 at 07:48 AM
This is just a demonstration of the new direction I'm taking with the sky;
The visible bitmaps have been changed to 32-bit, except for one that wouldn't compile (I made that into 16-bit). The smooth alphas are interpolated bitmaps implemented in the shaders, and the non-smooth (such as islands) are explicit alpha.
I made an extra bitmap called the "fadeaway" for the sole purpose of making the clouds fade in and out, so that it looks kind of like the cloud-vanishing effect in Windwaker.
Right now I'm working on adding more cloud clusters, and patterns, so that the sky doesn't look abnormally clear; also, I am going to try and match the style of the fading clouds a little better, with the background clouds. Lastly, I have to fix the edges of the fading clouds, since I still feel the edges are too marked. I'll probably also add a "fog" shader to the lower part of the background clouds so that it looks a little bit hazy there.
If you have any more suggestions, I would like to hear them.
Quote: --- Original message by: OrangeJuice
I would suggest using larger screenshots to crop from next time. xD
lol, I tried that at first, but the large clouds did not fit on the screen; or they were covered by everybody and their grandmother.
alright, thank Devon; will look into both of those things.
And yeah... I'm probably just gonna change the clouds entirely; they seem out of place anyways, since the sky is somewhat "clear" and the clouds are abnormally dark
ok; reduced sharpness, but it looked a bit pixelated (due to the stretched textures); will attempt to fix this. the edges of the clouds were blended with the background using the alpha channel, but they didn't look Windwaker-ish, so I returned them to their previous state; will seek other alternatives. gotta fix the water right now, lol; got it jittering a bit awkwardly, and it lacks fog.
should I reduce the sharpness on those clouds? I thought it looked pretty good on them, considering they are just a background thing
don't worry this thing isn't dead. I've just been in school and my schedule has been awful; left for school at 11:00am and returned at 10:00pm. I'll resume work this winter break, though I have to study other things, so the speed at which I will work will be drastically reduced.
It will be finished though. I don't intend on letting this die off, before being playable.
did I offend someone? or was he cussing at something else?
I believe it's because of how he created the jms files. I think he just exported it as a miscellaneous file under the "All formats" option, and he added the .jms to the name, instead of using the proper exporting tools.
here's the Bomb; works like a C4.