Jump to content

All Activity

This stream auto-updates

  1. Today
  2. Plans from planethoster.com and hostsailor.com are attractive for me and I'd like to know which way is better to follow? What do you think?
  3. If you're looking to bring your comic book artist for hire idea to life, hiring the right artist is crucial. Start by defining your project's scope—are you creating a one-shot, a full series, or just a cover? Then, choose an artist whose style matches your vision. Use platforms like ArtStation, DeviantArt, and social media (especially Twitter and Instagram) to scout talent. Always review their portfolio, discuss deadlines, rates, and rights clearly before signing a contract. Don’t forget to request a small paid sample first to test compatibility. A good artist brings your characters to life—choose wisely!
  4. Yesterday
  5. There are two hosts which are to my liking - planethoster.com and legionbox.com - and I wonder which plan is better to sign up with as I plan to host a blog?
  6. Accounts from hostingsource.com are worth trying. I would highly recommend them to anyone but especially if you're on a budget. I've found them to be very reasonably priced compared to other providers. Tech support is very helpful and friendly.
  7. Earlier
  8. Use VPS accounts from legionbox.com as their plans are full of useful resources with high uptime and fully-redundant network. Super-transparent with their pricing and services, admin areas all really easy to manage too. But the thing that keeps me a customer is the excellent customer support I receive. Truly the best.
  9. You have to use paththrough navigation. Then in the navigate function you can stop the bot: this.Goto(this.Bot.GetPosition());
  10. Good evening, I'm trying to manage spawning to avoid bots bottle-necking the single and narrow exit of a spawn... I had a first try at it in 1944 Nordwind, that I thought working well enough Now copying and tweaking it in 1944 Huertgen showed bots don't obey MoveTowards their own position, unlike when using Goto in navigational path through or goal Map download link: https://wolffiles.de/filebase/ET/Maps/1944_huertgen_forest.zip Should I replace the region trigger by a large waypoint covering the spawn hut with a path through, or is MoveTowards wrongly used or not working in some cases? Should I create a custom high-priority goal (like the one you made for me years ago, goal_stopbots), and give it/remove it from bots through the algo? You'll find below a sample code; I've added a print which shows bots just go further and further away from their target position, to the point they're still managed by the algo even though they're outside the spawn... Breaking the closest bot calculation The sleep before releasing the mutual exclusion is given a high value to ease the observation (originally 0.75) Attached in a ZIP gm+way (one named waypoint used to position the spawn exit for distance calculation) global Map = { Debug = 1, // Please set to zero before distributing your script // Avoid spawn exit bottleneck // Only care about bots... // Class/weapon not taken into account (aka heavy weaps slowing down first movements) tank_spawn = { Name = "tank_spawn", TriggerOnClass = CLASS.ANYPLAYER, closestBot, mutex = false, botList = {}, OnEnter = function( ent ) { bot = Util.IsBot( ent ); if ( !bot ) { return; } Map.tank_spawn.botList[ bot ] = 1; // Immediately capture current bot position // If we use GetPosition in the loops, the position is modified because the bot moves... botPos = bot.GetPosition(); // Little sleep to let all spawning bots be listed sleep ( .1 ); while ( bot && bot.Health > 0 && Map.tank_spawn.mutex ) { // Don't move until it's your turn to enter the mutex bot.MoveTowards( botPos, 8 ); Map.PrintBotPos( bot, botPos ); yield(); } Map.tank_spawn.mutex = true; // Determine the closest bot from the exit, remove it from the list, make it go, sleep a bit, free the mutex, exit // If the current bot isn't the one, free the mutex and loop until it's the case... Map.tank_spawn.closestBot = Map.DetermineClosestBot( Map.tank_spawn.botList ); if ( bot && bot.Health > 0 && bot.Name != Map.tank_spawn.closestBot.Name ) { //Util.MapDebugPrint( "Freeing mutex because not " + bot.Name + Util.DebugColorString + "'s turn", true ); Map.tank_spawn.mutex = false; while ( bot && bot.Health > 0 && bot.Name != Map.tank_spawn.closestBot.Name ) { // Don't move until it's your turn to move out bot.MoveTowards( botPos, 8 ); Map.PrintBotPos( bot, botPos ); yield(); } // Now the current bot is the closest bot, take back the mutex Map.tank_spawn.mutex = true; } if ( bot ) { Map.tank_spawn.botList[ bot ] = null; } // Only look for the next closest bot if the one we just cleared wasn't the last of the list... botCount = 0; foreach ( dont_overwrite_bot_var_here and val in Map.tank_spawn.botList ) { if ( !dont_overwrite_bot_var_here || dont_overwrite_bot_var_here.Health <= 0 ) { val = 0; continue; } if ( val == 1 ) { botCount += 1; } } if ( botCount > 0 ) { //Util.MapDebugPrint( ToString( botCount ) + " remaining, looking for the next one...", true ); Map.tank_spawn.closestBot = Map.DetermineClosestBot( Map.tank_spawn.botList ); } Util.MapDebugPrint( "Exiting mutex as it is " + bot.Name + Util.DebugColorString + "'s turn", true ); // Let the bot move a bit towards the exit before allowing the next one to move sleep( 2 ); Map.tank_spawn.mutex = false; }, OnExit = function( ent ) { // As we don't wait for the bot to surely exit the spawn // (we just leave a bit of time between each bot, so they follow each other in single line), // no need for OnExit (botList filled and cleared exclusively in OnEnter) } }, PrintBotPos = function( bot, targetPos ) { //Util.MapDebugPrint( bot.Name + Util.DebugColorString + "'s position -> " + ToString( bot.GetPosition() ), true ); Util.MapDebugPrint( bot.Name + Util.DebugColorString + "'s distance to its target position -> " + ToString( DistanceBetween( bot.GetPosition(), targetPos ) ), true ); }, DetermineClosestBot = function( list ) { closestBot; dist = 500; foreach ( bot and val in list ) { if ( !bot || bot.Health <= 0 ) { val = 0; continue; } // Disconnected or dead meanwhile if ( val != 1 ) { continue; } currentDist = DistanceBetween( bot.GetPosition(), Map.tankSpawnExitPos ); if ( currentDist < dist ) { closestBot = bot; dist = currentDist; } } //Util.MapDebugPrint( "Closest bot: " + closestBot.Name + Util.DebugColorString + " (" + ToString( dist ) + ")", true ); return closestBot; } }; global OnMapLoad = function() { // Move self in front of the Tank Spawn pos = Vec3( 2739, -3910, 260 ); wtPos = pos /*+ Vec3( 0, 0, 64 )*/; // ExecCommand( format( "wt %s %s %s", ToString( wtPos.x ), ToString( wtPos.y ), ToString( wtPos.z ) ) ); // Just realised I only have this signature locally // Grab the exit position only once, then reuse it wpTable = {}; w = Wp.GetWaypointByName( "tank_spawn_exit", wpTable ); Map.tankSpawnExitPos = wpTable.position; // Register the trigger OnTriggerRegion( AABB( 2607.125, -4437.875, 193.125, 2912.875, -4127.813, 267.125 ), Map.tank_spawn ); Util.MapDebugPrint( "OnMapLoad", true ); }; 1944_huertgen_tank_spawn_exit_management_sample.zip
  11. Extra case: if a bot is about to throw a grenade at the same time the target is destroyed, it will change facing (because going for an other goal I guess), and the grenade will get thrown somewhere between these 2 facings ^^" I believe it should still throw the grenade at the dead target, to avoid wrongly throwing it (and avoid killing mates), since leaning does not cancel the throw unlike panzer
  12. If there's already something to save charge for PLANT, it's perfect! My main concern was the selfkill/teamkill, but that probably happened while going for building CP then; but the spot where that issue happens and the CP location are far enough to replenish the charge Thank you for the 3 possibilities ^^
  13. Engineers don't fire garand grenades when they are going to PLANT goals. Do you need to disable it for BUILD goals too ? Maybe I could add a new optional property to the BUILD goal which would be used for objectives that need a lot of charge. If you want to disable grenades in some narrow corridors, you can create a region trigger and use function ETUtil.DisableRifleNade. Function WeaponTable.SetWeaponAvailability can be used to set weapons for team/class, but it's not possible to set a weapon for a role. If you want to change weapons manually in triggers, you should set Map.DontSelectWeapons=true. That will solve the problem of spawn self killing, but it completely disables weapon selection globally for all bots.
  14. Is that libertyvps.net or hostround.com? I mean the best shared hosting provider ...
  15. Good morning, I use roles to split bots between an east front and a west one On the west one, I'd like the Engineers to use a Thompson instead of a Garand, so that the charge isn't consumed by firing grenades instead of planting dynamite or building neutral CP for new spawn... oh, and also avoid blowing itself and sometimes teammates up that way due to narrow corridors, which neutralises the offensive heh Once a specific trigger occurs, that enforcement turns useless, because new spawn and no more roles needed I thought first of OnBotJoin, but bots don't have a role yet (I guess that's to allow the waypointer to have full control on role management before the role manager goes through to take care of it, which sounds perfect to me) So I've made a region trigger on the spawn, setting the TriggerOnClass on Engi to save a condition inside the OnEnter table; the name of the trigger is later used to delete it upon the 'specific trigger' It works well until OB sometimes wants to switch the weapon of the Engi mid-game: it makes the Engi get stuck in a spawn/selfkill loop for weapon switching, if I understand what I witnessed correctly Am I making a correct assertion here, or is it something different? How can I work around that issue? I'm kind-of going for temporary weapon prioritisation depending on team/role/class, to sum the thingy Thank you
  16. VPS accounts from inet.ws and hostsailor.com are provided on sweet terms and I wonder which way is better to follow and why? Any ideas?
  17. I'd recommend you to try deals from hostingsource.com. Great hosting. Excellent prices. I have never had any trouble with the hosting. Anything I need to update, I am told in advance. The customer service is great. Waiting period is not very long. Help is there at your service 24/7. When needed, their reps have walked me through the steps and resolved the issue at hand. Fast, efficient and there for you.
  18. Comparing EU hosting deals from inet.ws and hostsailor.com, which one is better to have a deal with? What do you think?
  19. This is not a goal. It's a paththrough navigation. It is executed when a bot goes through that waypoint. Bots visit that location because there is DEFEND goal. If you want to change priority or make it class specific, you can set it on the DEFEND goal.
  20. Good Evening! In the Goldrus.gm file is a navigation script what called rnadehall. I would like to ask can I set priority of this goal? If yes how to do it? An other question about this goal: this goal is visited by BOT automatically if spamnades is true or BOT will visit in case only if he go to somewhere and this goal is on your path? Finally I would like to ask this goal can be set class specific? (for example to engineers only) Thank You for reading and special thanks for the helping answers!
  21. Extra-thing I've just noticed: if a bot gets revive upon a GRENADE goal, the grenade will be dropped at its feet, since there's a delay before being able to actually shoot again, and I guess the bot tries to shoot as soon as it's revived ^^" Or the reviving Medic blocked the throw (while dispensing medkits), dunno
  22. Hi everyone, I’m currently looking to hire a skilled illustration service for an upcoming project and would love some recommendations! Whether it’s for book covers, branding, or custom artwork, I’m interested in hearing about artists you’ve worked with or any platforms you’ve found helpful. What should I look for when hiring an illustrator? Any tips on communicating vision effectively? I’d also appreciate any advice on fair pricing and contract essentials. Feel free to share your experiences and any portfolios I should check out. Thanks in advance for your help! Looking forward to your thoughts!
  23. Check out deals from reliable hosting providers: legionbox.com and inet.ws. They excel with top-notch customer support, fast loading speeds, and reliable uptime. Their user-friendly interface makes managing websites a breeze.
  24. Which VPS (libertyvps.net or hostsailor.com) is better to have a deal with? I plan to host a blog.
  25. Make sure the host has the payment option your looking for. I don't even think twice about a host that doesn't accept paypal or bitcoin.
  26. A level of technical support should also be taken into consideration. It happens that many web site hosting services providers don't actually provide the 24/7 support they are boasting they have. There are different kinds of the support, but the most widespread is a 24/7 online support. It’s better to choose those web hosting companies that provide online technical support. It's more convenient. Of course one of the key factors is how quickly they respond to your request.
  27. The trigger distance is not from the target goal, but from a grenade. If somebody is standing just beside a bot, then his thrown grenade immediately enters the radius. It would be necessary to calculate trajectory of a grenade and predict coordinates of explosion. Maybe I could use some code from the mortar goal. I agree with your other suggestions and I added them to my to-do list.
  28. Hello, 1944 Huertgen Forest, with the attached WIP waypoints; Axis North Path goal, near Allied Farm spawn, the southest grenade goal is 'evaded' though actually at a safe distance I could just move it way, as I did for one of the 3 goals, but the 3 nodes are at a safe distance It's fine to have it trigger at 400 units; what I'm going for is add a check for AvoidRadius before affecting the high-priority goal making bots evade even though the ent is farther away from bot than the projectile' AvoidRadius, e. g. for the grenade entity between 400 and 320 units Aight, thank you! May I ask your pov about the other points, or do you think it's not worth considering, like benefit(s) would be too small or too much overhead to work around? 1944 Huertgen Forest.zip
  1. Load more activity
×
×
  • Create New...