Project Orbitos

Psiblade94122

In need of sleep
Reaction score
138
o weps my bad i forgot to tell you

Q: How does the item that you've made which is based off Tome of experience, spawn a spaceship? You have no triggers that create a unit and there's nothing that I can find that spawns a unit. Is that what Item Illusions do? How does that work?
Reply With Quote

A:im useing tome of experiance because its a powerup, meaning once it gets into a units inventory its automatically used, so ive replaced the exp giveing ability that it has with the wand of illusions abilty. if you look at abilities, under custom you can find the ability silloet maker (or cuz i cant remember, i just modded the wand of illusion ability that was alredy there)


The trigger that removes items is not for the unit, the tiriggers that give the unit the item for some reson gives an item to the ground also, so that is suppost to remove that

wand of illusions work like mirror immage without the original warping anywhere, but the clone is still made at an offset so i had to make a bunch of triggers to warp the illusion so it can look like a silloet

The trigger is looking for the "thunderclap" buff because i based the ability off of thunderclap (allows you to slow movement attack and animation at the same time) and i never bothered to change the buff XD.... yes im lazy.. but any buff would work, as long as you put it with the ability (IE: replace thunderclap buff with cronogrip buff in the buff section, then replaceing it with the trigger) but really i would suggest just modifying the tooltips and art for the buff

variables are for fixing memeory leaks (i dont want to lagg you maps)

also the reson why i have to run another trigger that finds the buff, is so you get that effect where theres a silloet (what you guys asked) because i gave it a short lifespan so itll look like its trailing behind it

Ive also edited one of your beta tests, the one where you respawn the footmen, gave it another condition, (dieing unit is not equal to illusion), when i tested it on them it kept on spawning real replacements -_-
 
I

IKilledKEnny

Guest
I'm done with the base moving finally! Thanks to AceHart for helping me getting angles and such right. I use KaTTaNa's Handle system, if you don't have that imported yet then you should import it.

Code:
// I'm using peasants here, when importing make sure you change the the function
// BaseMovingGroupCon, so the ID ('hpea') will match the bases' ID.
// I chose to use locations becuase it's easier. However you can covert it to
// Coordiantes quite easily, if you don't want to do it then I'll do it once I get the time.
// To change speed you can either edit the angles or the timer - however I will 
// Not suggest making the timer faster or it would leak.
// Your nicest murderer, IKilledKenny.
// P.S. With help from AceHArt works perfectly now

function BaseMovingGroupCon takes nothing returns boolean // We use this function to get all peasants (bases).
return GetUnitTypeId(GetFilterUnit())=='hpea'//This is peasant ID change that to bases' ID.
endfunction

function BaseMoving takes nothing returns nothing // This is the function that will actually move the bases
local location ml=GetRectCenter(GetWorldBounds()) // Center of map
local unit u=GetEnumUnit() // The picked peasnt (base)
local location ul=GetUnitLoc(u) // It's location
local real d=DistanceBetweenPoints(ul,ml) // Distance between peasant and center of the map.
local real a=AngleBetweenPoints(ml,ul) // The angle between the center of the map and the peasant
local real ad=a+0.1 // Changes angle, I would suggset making it smaller (Around 0.01 or even 0.001)
local location e=PolarProjectionBJ(ml,d,ad) // The new location
call SetUnitPositionLoc(u,e) // moving the unit to the new location

call RemoveLocation(ul) // Leaks removal
call RemoveLocation(ml)
call RemoveLocation(e)
set u=null
set ml=null
set ul=null
set e=null
endfunction

function BaseMovingCall takes nothing returns nothing // This function will call the moving function
local boolexpr b=Condition(function BaseMovingGroupCon) // Get the condition of the group
local group g=CreateGroup() // Creates the group
call GroupEnumUnitsInRect(g,GetWorldBounds(),b) // Defines the group
call ForGroup(g,function BaseMoving) // Picks every unit in the group and moves it
call DestroyGroup(g) // Leaks removal
call DestroyBoolExpr(b)
set g=null
set b=null
endfunction

function BaseMovingAct takes nothing returns nothing /// This will set the timer and will call the call
local timer t=CreateTimer() // creates timer
call TimerStart(t,0.03,true,function BaseMovingCall) // Defines the timer and it's function
endfunction

//===========================================================================
function InitTrig_Base_Moving takes nothing returns nothing // Creates the trigger
set gg_trg_Base_Moving=CreateTrigger()
call TriggerRegisterTimerEventSingle(gg_trg_Base_Moving,0.03)
call TriggerAddAction(gg_trg_Base_Moving,function BaseMovingAct)
endfunction

This leaks a bit, but as far as I know, no way to fix that. Coordiantes would help greatly to make the function work the smoothest possible.
 

chovynz

We are all noobs! in different states of Noobism!
Reaction score
130
Aheh. eheh. ahahahahahahah
Thanks IKilledKEnny. That is great. Nice bit of coding there.

However...:D it doesn't quite work like I expect the base moving to work...
1) Your vanilla trigger crashes my WC3 within 5 seconds
2) It grabs some of the bases and moves them around in a contracting circle. What you end up with (before it crashes) is a plus configuration... Like below.
3) Only grabs about 4 bases.
4) Stops them at the plus configuration. Doesn't move any further.

Code:
    x = map center     o = base unit
        
      o
      o
      o
o o o x o o o
      o
      o
      o

So, nice try. At least you got some of them going around in a circlish motion. Do you want to carry on working on it so you get them all on the same orbiting circle or do you want me to look at it?

I've tried it out on Orbitos. Can you tell me where it leaks? We will need to deal with that. After a few seconds the map is unplayable (I have to force quit.)

Also, this is looking quite familiar to what I've already tried with the base moving. Even if we change the angle using .001 the step is still quite large. It's not smooth at the large distance from map center that we are dealing with here.

Also...I think...You will never need to remove the map center. That will always be a constant so it could be a global variable, or x,y = 0,0. So that's already one less local and removing thing that we need.
 

chovynz

We are all noobs! in different states of Noobism!
Reaction score
130
So my job is mines?
Ok I can do that.
When is the deadline? :D

Yesterday :) There's no deadline, just when you can. Use that map I posted above.

@Everyone: Thats the map I'd like everyone to do work on. Save it to your Harddrive and change the name to what your working on. eg..Ur-Quan would change it to POUr-Quan#StealthMine or something.
It has HandleVars already in the map. It has all the ability names (I think). It has all the variables that are in use already. Using this map to test your triggers and scripts will help us to do it right. And it should help us to avoid conflicts with things other people have done.

Then after you've put your ability/triggers/scripts in send it back by posting on this thread.

Thank you all for your work on this. I appreciate it very much. And I know Master Maste does too :)
 
I

IKilledKEnny

Guest
Yeah I would like to continue working of that, if it's ok, but as I said busy at the moment (don't have a lot of time + classroom + 2 projects, but I'll handle it) so it might takes few days or even a week or two.

> Your vanilla trigger crashes my WC3 within 5 seconds

Really? Didn't happen to me but maybe that's becuase I tested it only with one unit. I will try to make the timer somthing like 0.06 or even 0.09.

> It grabs some of the bases and moves them around in a contracting circle. What you end up with (before it crashes) is a plus configuration... Like below.

That shouldn't happen because I don't change the distance, make sure nothing is wrong when importing.

> Only grabs about 4 bases.

I would guess that happens becuase I call 2 functions, and both of them use slow calls, the only way this could be possibly completed it by coverting the locations to coordiantes, and I doubt if even that would help by much. The most important thing to do is to make the timer run less every second.

> Stops them at the plus configuration. Doesn't move any further.

What do you mean? Sorry English second language.

Make sure you have this code (every bit of it, paste it even if you think you have it to make sure you got the exact same version I got).

Code:
function H2I takes handle h returns integer
    return h
    return 0
endfunction

function LocalVars takes nothing returns gamecache
    return InitGameCache("jasslocalvars.w3v")
endfunction
 
function SetHandleHandle takes handle subject, string name, handle value returns nothing
    if value==null then
        call FlushStoredInteger(LocalVars(),I2S(H2I(subject)),name)
    else
        call StoreInteger(LocalVars(), I2S(H2I(subject)), name, H2I(value))
    endif
endfunction
 
function SetHandleInt takes handle subject, string name, integer value returns nothing
    if value==0 then
        call FlushStoredInteger(LocalVars(),I2S(H2I(subject)),name)
    else
         call StoreInteger(LocalVars(), I2S(H2I(subject)), name, value)
    endif
endfunction
 
function SetHandleReal takes handle subject, string name, real value returns nothing
    if value==0 then
        call FlushStoredReal(LocalVars(), I2S(H2I(subject)), name)
    else
        call StoreReal(LocalVars(), I2S(H2I(subject)), name, value)
    endif
endfunction
 
function SetHandleString takes handle subject, string name, string value returns nothing
    if value==null then
        call FlushStoredString(LocalVars(), I2S(H2I(subject)), name)
    else
        call StoreString(LocalVars(), I2S(H2I(subject)), name, value)
    endif
endfunction
 
function GetHandleHandle takes handle subject, string name returns handle
    return GetStoredInteger(LocalVars(), I2S(H2I(subject)), name)
    return null
endfunction

function GetHandleInt takes handle subject, string name returns integer
    return GetStoredInteger(LocalVars(), I2S(H2I(subject)), name)
endfunction

function GetHandleReal takes handle subject, string name returns real
    return GetStoredReal(LocalVars(), I2S(H2I(subject)), name)
endfunction

function GetHandleString takes handle subject, string name returns string
    return GetStoredString(LocalVars(), I2S(H2I(subject)), name)
endfunction
 
function GetHandleUnit takes handle subject, string name returns unit
    return GetStoredInteger(LocalVars(), I2S(H2I(subject)), name)
    return null
endfunction

function GetHandleTimer takes handle subject, string name returns timer
    return GetStoredInteger(LocalVars(), I2S(H2I(subject)), name)
    return null
endfunction

function GetHandleTrigger takes handle subject, string name returns trigger
    return GetStoredInteger(LocalVars(), I2S(H2I(subject)), name)
    return null
endfunction

function GetHandleEffect takes handle subject, string name returns effect
    return GetStoredInteger(LocalVars(), I2S(H2I(subject)), name)
    return  null
endfunction
 
function FlushHandleLocals takes handle subject returns nothing
    call FlushStoredMission(LocalVars(), I2S(H2I(subject)) )
endfunction

function GetHandleGroup takes handle subject, string name returns group
    return GetStoredInteger(LocalVars(), I2S(H2I(subject)), name)
    return null
endfunction

> Can you tell me where it leaks?

Well becuase we got undestroyed timer and linkage that leaks, but no way to go around that becuase we want to orbiting to last until the end of the game. Also the problem is that we run 26 functions every 0.03 seconds, again no way to get around that, but making the timer run less. I could test to see what happens if we use loop group and not ForGroup group, but I think that would make it even worse, as we got another handle to null.

> Even if we change the angle using .001 the step is still quite large

0.001 is the smallest integer World Editor can get (as far as I know, maybe reals can get below that, but for sure angles can't) so I would suggest making the bases closer then.

> You will never need to remove the map center

All locations leaks, but anyway I'm going to remove all locations, so no need to worry about this.
 

chovynz

We are all noobs! in different states of Noobism!
Reaction score
130
hey guys, got any more skills you want me to work on ^_^

Your not done yet on the chronogrip
I was gonna post this awhile ago but ran out of time.

PSiblade9412; said:
o weps my bad i forgot to tell you

Q: How does the item that you've made which is based off Tome of experience, spawn a spaceship...

A:im useing tome of experiance because its a powerup, meaning once it gets into a units inventory its automatically used, so ive replaced the exp giveing ability that it has with the wand of illusions abilty. if you look at abilities, under custom you can find the ability silloet maker (or cuz i cant remember, i just modded the wand of illusion ability that was alredy there)...

Ok, Thanks for explaining that. It does make sense.

I want to rework Chronogrip with you. The way you've done it now does lag, and you said it yourself ("works with 1-8 units, if have full 12 then it might lag"). We need the capablilty for 12 units. So I'd like to work with you to come up with better ways. My computer is a good benchmark, because if it lags on my computer we know we can do it better. I've had 2000 moving units on the screen and my computer still worked well. Your trigger has less units, but similar to the lag of that 2000. So I'm saying at the moment the chronogrip is unacceptable - as it is.

I am VERY grateful that you've done it, but all I'm saying is we need it done in a better way. :) If we can make the changes to your original, would that be better than starting all over? Or do you think we need to start over with a different method?

What about sliding triggers? 2 or 3 units (max) that get created when ChronoGrip gets activated? By this count there'll only be 33ish added and moving units when Chronogrip is activated. And like i said 33 is not a lot at all, so it shouldn't have the lag I'm getting.
 

Psiblade94122

In need of sleep
Reaction score
138
hmm ill try to learn how to make units slide, but currntly theres not much lagg (decresed timer for pereotic event for around shooting off every .5 secs) and i tested it with the footmen on your map, ive fixed alot of things, review the currnt map and see if it laggs (current map is attached to an earlyer post using the same file name as the fire you game me) in the meantime ill try to learn how to slide... with my current slide i think itll just lagg it even more.. but then again i can just make it so the units will move again... o well il try to make it look better
 

chovynz

We are all noobs! in different states of Noobism!
Reaction score
130
Some things about the Chronogrip:

1) It should not work on any other units. The only units it should affect is the spaceship.
2) We need it to affect 11 units at the max with no lag. It's supposed to slow down everyones hero, not lag the game ;)

If you think there's a way to do all that with your existing trigger that's fine. If you think we need to do it sliding then that's fine as well. If we go the sliding way I thought of a way to do it, but I'm not sure how to make it myself. (Seeing as how I'm a terrainer this is getting over my head with the triggers and timers. I know beginners Jass.)

For each player:
  • We have the hero unit.
  • We have 2 or 3 other clones. The first and closest clone has 30% transparency. The second clone has 60% transparency.
  • We have the heros path
  • We have a timer that clicks off every .5
  • Two variables get set. Forward clone position and rear clone position.
  • At every timer the forward clone moves to the new forward position. And the rear clone moves to the previous forward position.

I think the best way to describe this is a set of those christmas lights that seem to chase each other. A running light in a sequence. Get what I'm saying? But again, it's up to you how you want this to work. Please remember to change the name of the map to what your working on.
 

Psiblade94122

In need of sleep
Reaction score
138
the problem with the slideing is i dunno how to make i mui, seeing that itll take effect on multiple units, i can make a semi slide (useing move unit instantly) for one unit and its clones but i dunno how to make it with multiple units..... i think the closest slide i can make is to have multiple copies and issuing them to move to the summoning unit, and as for the lagg problem, i reduced it to .5 so it has no more lagg, i had the 8 footies running (cuz they always run XD) and the 7 ships chaseing me and i had no lagg... ill work on makeing the transparancies tho




Alrighty i faked the slide by makeing "issue order move to" functions and even with the footies and heros moveing around there was no drop in frame rate (exept for the part where the skill is first initalized and the clones are made), i followed your idea with the 2 clones and it works ^_^ i added a ship in the area where the units run to test it (footies run too slowly to notice 2nd clone) so yea tell me if there are any errors and such.
 

chovynz

We are all noobs! in different states of Noobism!
Reaction score
130
Much better. Thanks :) It'll now work with 12 units..maybe even more. You've still forgotten to make this for heros only, but that's ok. That's easily fixed.
Great job!

Heh, it's funny. I'm ok with Jass spells, but struggle a lot with GUI spells. :)
 
C

Cookie

Guest
cood i get some sense direction of what you would like me to do... if at all anything :D ???
 

chovynz

We are all noobs! in different states of Noobism!
Reaction score
130
Why don't you pick something that needs doing? There's a list on the front page and page 16.
 
C

Cookie

Guest
Ooooo cool, i mite have a muck around with the blue and purple clouds? they would pretty much come together, if you figured one out, you would figure the other out :D
 

Psiblade94122

In need of sleep
Reaction score
138
lol the reson why it currently dosent effect heros is because i want it to affect the footies for testing... if you really want me to ill post a quick update for it
 
I

IKilledKEnny

Guest
Sorry I came to the conclusion that I don't have enough time to work on this. Sorry. :( Basically what you want to do with my trigger is increase the time between which function run, and covert the locations to coordiantes.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top