Presenting you -The Shopplander- (help needed with details please)
Ohoi! Its time for a new mode! And since both highlander and shoppa are the most played modes in Hedgewars right now - I’m about to bring you -The Shopplander-
Hi guys Me Mljung and cyfox have been working on a new scheme called Shopplander, cause shoppa and highlander are the most playable games and we would love to se a combo of those 2 schemes. But we have some things that we cant solve and we need help from developers or anybody that knows how to solve our problem.
Well we need help with modifying the highlander scheme, we need to set 2 crates to land every round but there is no that option in the scheme, if someone could modify the scheme file or something to do that.
And we need to set players that have previously collected weapons or kill for it to cant use it untill they pick up a new crate, then they unlock weapons an have all previuos and the new one collected.
I think that 40 or 35 sec should be fine for a round time cause u need to pick a crate and then u need to look what u have an combine.
Like in shoppa u have nothing untill u pick a crate, but like in highlander u have all previous weapons but when u pick up a crate.
Well if the thing with the weapons after picking a crate is not possible now only crates would be enough.
Srry about crappy english im Croatian
Thanks in advance...
nema sreće ako se ne meće
Nothing here sounds too difficult to implement, not that I'm volunteering.
--
Oh, what the heck. 1PLXzL1CBUD1kdEWqMrwNUfGrGiirV1WpH <= tip a hedgewars dev
hehe well it would be really nice of you nemo if you would be so kind to do that or explain how? or if there is someone else? thanx anyway
nema sreće ako se ne meće
Well, is pretty much just weaponset manipulation like highlander does already, with addition of a crate spawn, which exists in the API too.
Mikade could do it easy if it interested him I'm sure.
--
Oh, what the heck. 1PLXzL1CBUD1kdEWqMrwNUfGrGiirV1WpH <= tip a hedgewars dev
its like ur talking in chinese to me well we will just have to wait for mikade or someone else.
To get it right, 2 crates in round, and not be able to use weapons from previous rounds untill u pick up a crate an then unlock them all that u have colected in previous rounds.
Everything else can be modified in game.
tnx again nemo
nema sreće ako se ne meće
Didn't someone already make a script like this? I seem to recall there was some kind of ShoppaHighlander mode hosted on http://hh.unit22.org/.
I don't really understand the mode you are describing. Would the hogs still start with a random weapon / utility combo like in highlander? Do they keep the weapons forever once they have picked up a crate?
Anyway, the entry in the API nemo is talking about can be found at:
https://code.google.com/p/hedgewars/wiki/LuaAPI#SpawnAmmoCrate_%28x,_y,_ammoType%29
Presumably you could use SetAmmoDelay (see: https://code.google.com/p/hedgewars/source/browse/hedgewars/uScript.pas) to make previously collected weapons unavailable.
Good luck.
mikade
Hedgewars Developer
hogs would start with rope only and yes they keep forever the weapons they have collected before and the one collected to unlock the weapons. and ofcourse using of weapons doesnt end your turn.
Well that before mode isnt like this one i think that this one will be very popular couse i think thats a perfect mix of those two.
And i think that one crate is enough, two is to much they would be in some point of the game to much crates maybe.
If you would be kind to make that script for me i would be eternaly gratefull to you to me its complicated but for you its like everyday stuff.
thanx
nema sreće ako se ne meće
Ehhhhh. Sorry to be a downer, but to be honest I really dislike Highlander and would rather spend my free time working on Construction Mode / TechRacer, right now.
But, perhaps you could solicit the original ShoppaHighlander script-writer to make this for you? Presumably they would be interested in such a project.
mikade
Hedgewars Developer
Not sure if there was a ShoppaHighlander before, I think we might be actually thinking about the script "Balanced Random Weapon roping".
Which added roping, but not to highlander ^^
sheepluva <- me my code stats ->
a Hedgewars Developer
click here to message me
<- where I'm from what I speak ->
well il try to compile it myself, and i will update u on results, and i hope that u will help if i come up to some larger problems.
thanks
nema sreće ako se ne meće
hi again, well i modified the highlander script and i was able to set hogs to start with infinite rope, kamikaze, skip and random weapon. And i excluded some of weapons and all utilities except skip and rope. Everything works fine i tested it.
But i cant set ammo crates to work as i want, i tried a lot of combinations and always i get a lot of crates in the first round, and later none. i manage to set it so that random weapons come in crates but they all come at once and later nothing.
nema sreće ako se ne meće
Someone can correct me if I'm wrong, but I think natural crates will only spawn if there are less than five or so crates on the map already. Pick up the crates and presumably more will spawn.
mikade
Hedgewars Developer
True. That restriction doesn't apply if lua spawned, of course.
--
Oh, what the heck. 1PLXzL1CBUD1kdEWqMrwNUfGrGiirV1WpH <= tip a hedgewars dev
not true, when i pick up all crates or one or whatever thats it, they spawn no more.
i added it like this
function StartingSetUp(gear)
for i = 1, #wepArray do
setGearValue(gear,wepArray[i],0)
end
setGearValue(gear,amKamikaze,100)
setGearValue(gear,amSkip,100)
setGearValue(gear,amRope,100)
i = 1 + GetRandom(#atkArray)
setGearValue(gear,atkArray[i],1)
SpawnAmmoCrate(0, 0, atkArray[i],1)
Maybe there is another gear in conflict with crates, cause in highlander u get health crates every round i think, maybe i didnt exclude something? and how do i set that only one random crate land?
i tried adding in - OnGameInit()
CaseFreq = 0 till 9
------------------------------------------------------
and i tried ading in - StartingSetUp(gear)
SettAmmo (lots combos)
AddAmmo (lots combos)
No changes
as i read in LuaAPI for settammo and addammo it sais:
Note: The effectiveness of this function may be limited due to problems with gfPerHogAmmo in lua scripting.
what to do guys?
nema sreće ako se ne meće
From reading what you just posted, sounds like you're calling:
SpawnAmmoCrate(0, 0, atkArray[i],1)
only at the start of the game, instead of onNewTurn
--
Oh, what the heck. 1PLXzL1CBUD1kdEWqMrwNUfGrGiirV1WpH <= tip a hedgewars dev
yea man thanx, how did i miss that :O now it works just fine except that the crate landes and the player starts at the same time. so in bigger maps it will not switch camera on player like the case is in "contact shoppa" any solution to that?
Now il try the weapon delay to set it to be after crate pickup , and il update u. tnx again
nema sreće ako se ne meće
Well, the reason normally crates spawn before players is 'cause the game spawns them at the end of a turn, not at the beginning.
Unfortunately for you there is no "end of turn" hook. If, however, you always are spawning another crate already in the game engine, you could add a hook in onNewGear where if the gear is a crate, you know you are in end of turn spawn, and you can spawn a second crate.
To avoid recursion, just put a flag in there to only do that once per turn.
Then reset the flag next turn.
--
Oh, what the heck. 1PLXzL1CBUD1kdEWqMrwNUfGrGiirV1WpH <= tip a hedgewars dev
onNewGear? or onNewTurn? cant find anything on onNewgear on LuaAPI site. if its onNewTurn should i make it like
local gear = AddGear(0, 0, SpawnAmmoCrate, 0, 0, 0, 0) or?
this is a little complicated for me, and so is weapon delay after crate pickup. im looking at that script, dont now where to start reading.
nema sreće ako se ne meće
Er onGearAdd, sorry
--
Oh, what the heck. 1PLXzL1CBUD1kdEWqMrwNUfGrGiirV1WpH <= tip a hedgewars dev
I think nemo means something like:
function onNewTurn()
crateSpawned = false
--FollowGear(CurrentHedgehog)
end
function onGearAdd(gear)
if (GetGearType(gear) == gtCase) and (crateSpawned == false) then
crateSpawned = true
SpawnAmmoCrate(0, 0, atkArray[GetRandom(#atkArray)],1)
end
end
You might have to +1 to #atkArray. Try it and see, I guess.
mikade
Hedgewars Developer
noup is still the same just now are 2 crates landing and it still focus on them. something has to be made that the focus on a hog is after crate spawned, an crate is spawned when time starts, thats probably what nemo was talking about that he should be at end of round.
Here is the lua fila i made without your previous functions. so if u could look it up, maybe the problem is somewhere else.
tnx
https://www.sendspace.com/file/8pp8u1
click on the page:
Click here to start download from sendspace
nema sreće ako se ne meće
Did you use the code mikade recommended? (Your file link is one I can't access from here. Maybe you should consider using a pastebin, like http://pastebin.ubuntu.com or http://pastebin.ca )
--
Oh, what the heck. 1PLXzL1CBUD1kdEWqMrwNUfGrGiirV1WpH <= tip a hedgewars dev
tnx for the tip here it is
http://pastebin.ca/2833894
nema sreće ako se ne meće
Ok, you didn't use mikade's code..
--
Oh, what the heck. 1PLXzL1CBUD1kdEWqMrwNUfGrGiirV1WpH <= tip a hedgewars dev
yes i did but thats a script from before i tried mikades code, i keep a extra copy always if i mess up something to bring me back one step, i was trying alot stuff theese days.
nema sreće ako se ne meće
Alright, well. Does what you have now work or not? If it does, great.
If it doesn't, post what you have.
--
Oh, what the heck. 1PLXzL1CBUD1kdEWqMrwNUfGrGiirV1WpH <= tip a hedgewars dev
well, i got the rope, kami, skip and random weapon to start with, i set up weapon crates, 1 fals every turn, disabled the health crates, and highlander mode stayed i mean weapon takeover after kill.
the problem is with the crates because they fall when round time starts and take away focus from starting hog. I tried mikades sugestion but it didnt worked, so i gave you a copy of previous work before mikades code.
And weapon delay after crate pickup. start would be only with utilities rope and skip.
nema sreće ako se ne meće
... please share your copy based on mikade's suggestion so we can see what problems there might be.
The reason for your issue was diagnosed above. At this point, just need to ensure it is implemented...
--
Oh, what the heck. 1PLXzL1CBUD1kdEWqMrwNUfGrGiirV1WpH <= tip a hedgewars dev
http://pastebin.ca/2834326
thats with mikades code, now i got health crate and two weapon crates landing on turn. i need to disable health crates and set one crate to land, like it was before mikades code.
nema sreće ako se ne meće
... how many crates do you want, anyway? I thought you wanted two. If you only want one, why don't you just let engine spawn a crate naturally without scripting it?
You probably want to set HealthCaseProb = 0, not 100 as it is currently set, if you don't want health crates.
I also included a commented out FollowGear if you want to force focus on the new turn, though I don't even think that would be necessary if you followed nemo's initial suggestion, hence why I left it commented out.
mikade
Hedgewars Developer
One crate is enous as i explained before 2 is to much cause tey would be to much crates in some point of game. HealthCaseProb = 0 works no health crate now
well they are only one crate without health one, it just that 2 crates and health crate apeared after using your code.
well i would love to listen to his advice but i cant make that by myself, no idea how.
nema sreće ako se ne meće
If you only need one crate, you don't have to do anything. Just let the game spawn crates normally based on what you or the weaponset set the probabilities to.
Well, I guess there's that issue of what happens once there are 5 crates on the map, since you apparently want that to keep going upwards… ?
Hum. If that's the case, you would have to spawn it yourself, and... given the lack of end-of-turn hook, all I can think of is checking TurnTime = 0 in onGameTick plus a flag to only spawn one, reset each turn.
Maybe we should allow users/scripts to define max crates on a map. Also possibly set the default limit to be relative to map dimensions or something.
--
Oh, what the heck. 1PLXzL1CBUD1kdEWqMrwNUfGrGiirV1WpH <= tip a hedgewars dev
this is a highlander script modification so it doesnt have weapon crates only health. and i set up weapons crates like u told me on a new turn, thats fine now its just now 2 crates are spawning becaouse of mikades code but thats easy to configure thats not a real problem now.
If they are god players there will be no time for crates to pile up. cause u now how fast is the shoppa game i mean with rope. so crate per round is enough. no need for setting up max crates on map i think, if it will be one crate per round.
its just the camera focus stuff if there is a way to do that i cant do it myself and i tried mikades code is not working, so if u guys can try to make something. the best way is for u guys to try the script in game and u will se what am i talking about.
2 things are neded to be fixed
camera focus on hog, or somehow to land the crate before the turn time starts
and
weapon delay to be after crate pickup
thats it everithing else i now how to setup only thats a little complicated
thanx
nema sreće ako se ne meće
hey guys me again well i am almost done with this script i only miss one thing and sence i am a lua noob i need your help.. i just need to set that u can add ur own weapons scheme now its locked and sometimes it gets unlocked but when u set ur own weapons scheme it doesnt change anything..
i made 2 scripts
Shopplander - http://pastebin.ca/2972931
ShopplanderV2 - http://pastebin.ca/2972934
they are basicly the same its just that the shopplanderV2 is combined with ShoppaMap script so it generates shoppa maps and i removed blocking utilities like girder landgun and rubber..
thanx in advance
nema sreće ako se ne meće
eldiablo, that's a totally arbitrary frontend thing. Just add a .cfg with scheme and weapons defined.
In next version, tweaked it a bit so that selecting a script where the cfg specifies a scheme and weps that don't exist does not change scheme/weps to default.
So, I'd suggest putting:
*
*
In your cfg and that'll work nicely in future too. But if this is for shoppa/highlander only, no harm in defaulting to
Shoppa
Shoppa
or
Highlander
Highlander
I suppose...
People can always change it.
--
Oh, what the heck. 1PLXzL1CBUD1kdEWqMrwNUfGrGiirV1WpH <= tip a hedgewars dev
well i tried all of the above stuff in the cfg file but it still uses the weapons from the script all of them
maybe here is the problem at the end of the script there is this line
function onAmmoStoreInit()
-- no, you can't set your own ammo scheme
end
to be honest i dont have no idea about lua i just use logic and copy paste parts of scripts and try it a lot
nema sreće ako se ne meće
You're using the old highlander.
Use the new one.
--
Oh, what the heck. 1PLXzL1CBUD1kdEWqMrwNUfGrGiirV1WpH <= tip a hedgewars dev
i dont get it "old highlander" u mean that mine script is based ona a highlander from previous version? so i am to use the script from this one?
nema sreće ako se ne meće
yep that was the problem thank you nemo
and i set the cfg to
Shoppa
Highlander
think its the best like that
nema sreće ako se ne meće
well.. we have to thank Solar who made the first ShoppaHighlander script, the one on http://hh.unit22.org/ is not working but some players like me had a working one.. And great job eldiablo for the updates u did.. =) i think u should add the 2 scripts on unit22, maybe that could make more players start to shoppa in some way.
I Hate Christmas timeeee.. is dead!
Hm. Seems to me you could play a shoppa-like highlander on current highlander script by setting ropes to infinite in weapon scheme no?
Maybe choose some weaker weps too to compensate.
--
Oh, what the heck. 1PLXzL1CBUD1kdEWqMrwNUfGrGiirV1WpH <= tip a hedgewars dev
no you cant we allready tried, you just get 1 rope per round
nema sreće ako se ne meće
Oh. right. Heh. I forgot shoppa players need more than one.
--
Oh, what the heck. 1PLXzL1CBUD1kdEWqMrwNUfGrGiirV1WpH <= tip a hedgewars dev
yep, and in shopplanderV2 i mixed the script with ShoppaMap script so it generates shoppa maps
nema sreće ako se ne meće