![]() |
![]() ![]() |
![]() |
zodiac |
![]()
Post
#231
|
||
![]() Advanced Member ![]() ![]() ![]() Group: Members Posts: 60 Joined: 23-March 04 From: California Member No.: 276 ![]() |
I followed the directions on your website and got this:
Any recommendations? Z |
||
LordSkitch |
![]()
Post
#232
|
![]() I cuddle with my bots. ![]() ![]() ![]() ![]() ![]() Group: Moderator Posts: 980 Joined: 16-April 04 From: Alvin, Texas Member No.: 291 ![]() |
Gonna have to take guurk's compile (http://resonus.net/images/rcbot_mm_i486.so) and go from there.
Cheeseh hasn't compiled a linux binary, and the rest of us use windows cause linux sucks.. ![]() |
Cheeseh |
![]()
Post
#233
|
![]() Admin ![]() ![]() ![]() ![]() ![]() Group: Admin Posts: 3,066 Joined: 11-September 03 From: uk Member No.: 1 ![]() |
never knew you could understand my code skitch
![]() btw this could cause mem leaks ![]() theSquad = NULL; return theSquad; free theSquad if it isnt null I think theres a RemoveSquad( <bot squad type>) function. |
LordSkitch |
![]()
Post
#234
|
![]() I cuddle with my bots. ![]() ![]() ![]() ![]() ![]() Group: Moderator Posts: 980 Joined: 16-April 04 From: Alvin, Texas Member No.: 291 ![]() |
I looked for memory leaks during gameplay and I haven't seen any yet, and I woulda figured out a better way to do it, but good lord there's just soooo muuuuch coooode! lol
What would you replace the "don't make a squad" part of the code with? |
LordSkitch |
![]()
Post
#235
|
![]() I cuddle with my bots. ![]() ![]() ![]() ![]() ![]() Group: Moderator Posts: 980 Joined: 16-April 04 From: Alvin, Texas Member No.: 291 ![]() |
...i just realized, im using the old source code! upload your new stuff, so i can re-add the no squad thing, cause my bots aint upgrading, god knows what theyre sposda be doing!
|
Cheeseh |
![]()
Post
#236
|
![]() Admin ![]() ![]() ![]() ![]() ![]() Group: Admin Posts: 3,066 Joined: 11-September 03 From: uk Member No.: 1 ![]() |
![]() |
LordSkitch |
![]()
Post
#237
|
![]() I cuddle with my bots. ![]() ![]() ![]() ![]() ![]() Group: Moderator Posts: 980 Joined: 16-April 04 From: Alvin, Texas Member No.: 291 ![]() |
soooooooooooo, when ya gonna upload it? lol
![]() |
Cheeseh |
![]()
Post
#238
|
![]() Admin ![]() ![]() ![]() ![]() ![]() Group: Admin Posts: 3,066 Joined: 11-September 03 From: uk Member No.: 1 ![]() |
already done it
![]() |
LordSkitch |
![]()
Post
#239
|
||||||||||||||||
![]() I cuddle with my bots. ![]() ![]() ![]() ![]() ![]() Group: Moderator Posts: 980 Joined: 16-April 04 From: Alvin, Texas Member No.: 291 ![]() |
it was probably freakin firefox caching the old one not letting me download the new one... opened it in IE and BAM! right there. [edit!] to make it easier, as even I just got confused updating the newer source, this is CBotSquad *CBotSquads :: AddSquadMember ( edict_t *pLeader, edict_t *pMember )
[edit again!] im now looking for the impulses for the bots, so the chuckle when they kill stuff, and say "enemy spotted" instead of "need healing" cause the NS devs are retards and changed the impulses.. but
[edit once more] so theres no enemy spotted for aliens anymore. they've got follow defend taunt heal and then 2 noises i dont know what they are. i actually made the bots say the impulses one at a time and watched to see what it did, and i still dont know what those two are, 11 is like "im bored" and 12 is the noise you make when you get done gestating or whatever. so... i dunno wtf to make the bots say when they see an enemy, i guess the "im bored" one, cause they dont normally say that.
so, Impulse(SAYING_4); should be Impulse(SAYING_2);
the alien/marine check should be able to be taken out, and just pev->impulse = SAYING_3; break; should be left [EDIT AGAIN! holy crap.] on second thought, im thinkin
should be changed to
cause the hissing noise the aliens make isnt very cool, and serves no tactical purpose. AND due to the new code that makes it so you cant spam those impulses, they're not likely to chuckle after they kill someone... and the chuckle when they kill someone is so much cooler anyhow. now that im looking at it more, m_fNextUseSayMessage = gpGlobals->time + RANDOM_FLOAT(4.0,8.0); is declared regardless of whether they actually talk or not, so there'd need to be more code like
would change to something better than
it works, but its probably not the best way to do it ![]() |
||||||||||||||||
Cheeseh |
![]()
Post
#240
|
![]() Admin ![]() ![]() ![]() ![]() ![]() Group: Admin Posts: 3,066 Joined: 11-September 03 From: uk Member No.: 1 ![]() |
ah thats alright actually.
what else are you going to do with the code then? ![]() |
LordSkitch |
![]()
Post
#241
|
![]() I cuddle with my bots. ![]() ![]() ![]() ![]() ![]() Group: Moderator Posts: 980 Joined: 16-April 04 From: Alvin, Texas Member No.: 291 ![]() |
what else thats simple and cosmetic and just.. too aggrivatingly simple for you to worry about? ill throw my hat over the wall but i may not be able to do it.
|
zodiac |
![]()
Post
#242
|
![]() Advanced Member ![]() ![]() ![]() Group: Members Posts: 60 Joined: 23-March 04 From: California Member No.: 276 ![]() |
No dice...I think I am missing a libset maybe.
![]() ![]() Z |
LordSkitch |
![]()
Post
#243
|
![]() I cuddle with my bots. ![]() ![]() ![]() ![]() ![]() Group: Moderator Posts: 980 Joined: 16-April 04 From: Alvin, Texas Member No.: 291 ![]() |
oh i dont fear linux at all, in fact i use gentoo, thats some hard assed bitch-making linux... but i think the uses for linux are where people get screwed over
linux is great for servers.. just shell.. no kde, no gnome.. just shell. a command line. gui's are secondary and totally uneeded, and even then, you need to know how to secure a linux server. most people cant and wont do it. especially for webservers. i dont know why zone-h took their daily defacement counter thing off, but almost every day, linux took not just a plurality, but a majority of the defacements, and windows server 2000/2003 was usually < 5% they have the archives up still, but it's not as clean and easy to tell the numbers ( http://www.zone-h.org/component/option,com...temid,43/page,1 ) linux is pretty assed out for a normal persons desktop though. not only do you have to know ahead of time what software you want, a lot of times it doesnt do what you need it to do. and the whole "well you can just recode it!" is pretty bullshit, i mean you CAN, but like.. if you need to recode open office to do something, its like 3500 source files... good luck finding the line you need to edit in that crap. but most definately, as servers... double most definately internal servers, where it's running software YOU write, theyre the badassed heavyweights of serverdom. (i had to come to terms with linux, while building and writing software for a router to do what this can do, and more) |
LordSkitch |
![]()
Post
#244
|
![]() I cuddle with my bots. ![]() ![]() ![]() ![]() ![]() Group: Moderator Posts: 980 Joined: 16-April 04 From: Alvin, Texas Member No.: 291 ![]() |
i put in a..
FakeClientCommand(m_pEdict,"say_team \"i want to heal something\"") line after case BOT_TASK_HEAL_PLAYER: { among several other places in there to try and debug why the bots wont heal the hive, and from what i can tell, they never get the task bot_task_heal_player i would fix it, but im having trouble figuring out the flow of the task edict whatnot doodad. there are addtask(cbottask(bot_task_heal_player... things, but i havent seen them say theyre gonna heal anything as of yet... im gonna put some more traces or whatever you wanna call em in there and see if they ever get the task... [edit] i put a team say thing after every spot i could find where the addtask bot task heal player thing was, and it never came up... i dunno wtf is goin on. [edit again] oh yeah, i also added in the stuff to let the marine bots get scan in combat, cause with cloaked aliens they need it ![]() [way later edit] the bots will say theyve spotted the hive when the hive is currently being built and is hurt, but not once its completed building... maybe its name changes from like.. BUILDING_HIVE to BUILDING_HIVE_COMPLETE or something like that, i dunno, and i dunno how to check ![]() |
Venom |
![]()
Post
#245
|
Advanced Member ![]() ![]() ![]() Group: Members Posts: 82 Joined: 24-July 06 Member No.: 807 ![]() |
Good job Lordskitch, keep up the good work.
|
Venom |
![]()
Post
#246
|
Advanced Member ![]() ![]() ![]() Group: Members Posts: 82 Joined: 24-July 06 Member No.: 807 ![]() |
Hello i have been doing some coding myself as well but its not working as it should and testing it is very difficult. What i wanted to do is based on certain maps, certain skills will be active and certain skills will be disabled, here is what i got already.
The code will look messey in IPB due to the indentation but will look correct in Visual Studio. The problem am having is that certain skills seem to work and certain ones dont, im sure its something to do with my coding but like Lordskitch, sometimes i have trouble reading what Cheeseh is coded ![]() If you can fix it, i would be very greatful as its annoying the hell out of me and its extremely difficult to test CODE if ( IsMarine() ) { if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_RESUPPLY) ) { if ( BotWantsCombatItem(BOT_COMBAT_WANT_RESUPPLY) /*&& m_pCurrentWeapon && m_pCurrentWeapon->LowOnAmmo()*/ ) { m_iPossibleUpgrades.Add(RESEARCH_RESUPPLY); } } // WEAPONS if ( !HasUser4Mask(MASK_UPGRADE_1) ) { if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_DAMAGE1) ) { m_iPossibleUpgrades.Add(RESEARCH_WEAPONS_ONE); } } else { // make sure we only get one of these weapons, the one we want if ( !HasWeapon(NS_WEAPON_SONIC) && !HasWeapon(NS_WEAPON_GRENADE_GUN) && !HasWeapon(NS_WEAPON_HMG) ) { if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_SHOTGUN) ) { m_iPossibleUpgrades.Add(BUILD_SHOTGUN); } } else { if ( BotWantsCombatItem(BOT_COMBAT_WANT_GRENADE_GUN) && !HasWeapon(NS_WEAPON_GRENADE_GUN) ) { if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_GRENADE_GUN) ) { m_iPossibleUpgrades.Add(BUILD_GRENADE_GUN); } } if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_HMG) ) { if ( BotWantsCombatItem(BOT_COMBAT_WANT_HMG) && !HasWeapon(NS_WEAPON_HMG) ) { m_iPossibleUpgrades.Add(BUILD_HMG); } } } if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_WELDER) ) { if ( BotWantsCombatItem(BOT_COMBAT_WANT_WELDER) && !HasWeapon(NS_WEAPON_WELDER) ) { m_iPossibleUpgrades.Add(BUILD_WELDER); } } if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_MINES) ) { if ( BotWantsCombatItem(BOT_COMBAT_WANT_MINES) && !HasWeapon(NS_WEAPON_MINE) ) { m_iPossibleUpgrades.Add(BUILD_MINES); } } if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_DAMAGE2) ) { if ( !HasUser4Mask(MASK_UPGRADE_2) ) { m_iPossibleUpgrades.Add(RESEARCH_WEAPONS_TWO); } } else { if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_DAMAGE3) ) { if ( !HasUser4Mask(MASK_UPGRADE_3) ) { m_iPossibleUpgrades.Add(RESEARCH_WEAPONS_THREE); } } } } // ARMOR // first armor if ( !HasUser4Mask(MASK_UPGRADE_4) ) { if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_ARMOR1) ) { m_iPossibleUpgrades.Add(RESEARCH_ARMOR_ONE); } } else { // second if ( !HasUser4Mask(MASK_UPGRADE_5) ) { if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_ARMOR2) ) { m_iPossibleUpgrades.Add(RESEARCH_ARMOR_TWO); } } else { // want a jetpack if ( BotWantsCombatItem(BOT_COMBAT_WANT_JETPACK) && !HasJetPack() ) { if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_JETPACK) ) { m_iPossibleUpgrades.Add(BUILD_JETPACK); } } // want heavy armor else if ( BotWantsCombatItem(BOT_COMBAT_WANT_ARMOR) && !HasUser4Mask(MASK_UPGRADE_13) ) { if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_HEAVY_ARMOR) ) { m_iPossibleUpgrades.Add(BUILD_HEAVY); } } // third armor research else if ( !HasUser4Mask(MASK_UPGRADE_6) ) { if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_ARMOR3) ) { m_iPossibleUpgrades.Add(RESEARCH_ARMOR_THREE); } } } } } else if ( IsAlien() ) { if ( IsSkulk() ) { // want to go onos if ( BotWantsCombatItem(BOT_COMBAT_WANT_ONOS) ) { if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_ONOS) ) { m_iPossibleUpgrades.Add(ALIEN_LIFEFORM_FIVE); // onos } } else if ( BotWantsCombatItem(BOT_COMBAT_WANT_FADE) ) { if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_FADE) ) { m_iPossibleUpgrades.Add(ALIEN_LIFEFORM_FOUR); // fade } } else //( BotWantsCombatItem(BOT_COMBAT_WANT_LERK) ) { if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_LERK) ) { m_iPossibleUpgrades.Add(ALIEN_LIFEFORM_THREE); // lerk } if ( (UTIL_SpeciesOnTeam(AVH_USER3_ALIEN_PLAYER2) == 0) || (UTIL_SpeciesOnTeam(AVH_USER3_ALIEN_PLAYER2) < (int)(UTIL_PlayersOnTeam(TEAM_ALIEN)*gBotGlobals.m_fGorgeAmount/2)) ) m_iPossibleUpgrades.Add(ALIEN_LIFEFORM_TWO); //gorge } } else if ( IsFade() ) { // want to go onos if ( BotWantsCombatItem(BOT_COMBAT_WANT_ONOS) ) { if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_ONOS) ) { m_iPossibleUpgrades.Add(ALIEN_LIFEFORM_FIVE); //onos m_iPossibleUpgrades.Add(ALIEN_LIFEFORM_FIVE); // more chance! } } } else if ( IsGorge() ) { if ( BotWantsCombatItem(BOT_COMBAT_WANT_LERK) ) { if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_LERK) ) { m_iPossibleUpgrades.Add(ALIEN_LIFEFORM_THREE); //lerk } } else { if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_FADE) ) { m_iPossibleUpgrades.Add(ALIEN_LIFEFORM_FOUR); // fade m_iPossibleUpgrades.Add(ALIEN_LIFEFORM_FOUR); // more chance of going fade } } } if ( !IsSkulk() ) { // How do we find out we already have the ability??? if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_ABILITY1) ) { m_iPossibleUpgrades.Add(118); //ability 1 } // leave some room for onos resources if ( !BotWantsCombatItem(BOT_COMBAT_WANT_ONOS) ) { if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_ABILITY2) ) { m_iPossibleUpgrades.Add(126); //ability 2 } } } if ( !HasUser4Mask(MASK_UPGRADE_1) && BotWantsCombatItem(BOT_COMBAT_WANT_DEFUP1) ) if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_DEFUP1) ) { m_iPossibleUpgrades.Add(ALIEN_EVOLUTION_ONE);// Carapace } if ( !HasUser4Mask(MASK_UPGRADE_2) && BotWantsCombatItem(BOT_COMBAT_WANT_DEFUP2) ) if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_DEFUP2) ) { m_iPossibleUpgrades.Add(ALIEN_EVOLUTION_TWO);// Regeneration } if ( !HasUser4Mask(MASK_UPGRADE_3) && BotWantsCombatItem(BOT_COMBAT_WANT_DEFUP3) ) if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_DEFUP3) ) { m_iPossibleUpgrades.Add(ALIEN_EVOLUTION_THREE);// Redemption } if ( !HasUser4Mask(MASK_UPGRADE_4) && BotWantsCombatItem(BOT_COMBAT_WANT_MOVUP1) ) if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_MOVUP1) ) { m_iPossibleUpgrades.Add(ALIEN_EVOLUTION_SEVEN);// Celerity } if ( !HasUser4Mask(MASK_UPGRADE_5) && BotWantsCombatItem(BOT_COMBAT_WANT_MOVUP2) ) if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_MOVUP2) ) { m_iPossibleUpgrades.Add(ALIEN_EVOLUTION_EIGHT);// Adrenaline } if ( !HasUser4Mask(MASK_UPGRADE_6) && BotWantsCombatItem(BOT_COMBAT_WANT_MOVUP3) ) if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_MOVUP3) ) { m_iPossibleUpgrades.Add(ALIEN_EVOLUTION_NINE);// Silence } if ( !HasUser4Mask(MASK_UPGRADE_7) && BotWantsCombatItem(BOT_COMBAT_WANT_SENUP1) ) if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_SENUP1) ) { m_iPossibleUpgrades.Add(ALIEN_EVOLUTION_TEN);// Cloaking } if ( !HasUser4Mask(MASK_UPGRADE_8) && BotWantsCombatItem(BOT_COMBAT_WANT_SENUP2) ) if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_SENUP2) ) { m_iPossibleUpgrades.Add(ALIEN_EVOLUTION_ELEVEN);// Pheromones } if ( !HasUser4Mask(MASK_UPGRADE_9) && BotWantsCombatItem(BOT_COMBAT_WANT_SENUP3) ) if ( gBotGlobals.IsConfigSettingOn(BOT_CONFIG_WANT_SENUP1) ) { m_iPossibleUpgrades.Add(ALIEN_EVOLUTION_TWELVE);// Scent of fear } } Here is the list of commands: # Skill Settings # 1 = Enables / 0 = Disable config want_damage1 1 config want_damage2 1 config want_damage3 1 config want_shotgun 1 config want_hmg 0 config want_grenade_gun 1 config want_armor1 1 config want_armor2 1 config want_armor3 1 config want_jetpack 1 config want_heavy_armor 1 config want_welder 1 config want_resupply 1 config want_mines 1 config want_catalyst 1 config want_move_dection 1 config want_lerk 1 config want_fade 1 config want_onos 1 config want_defup1 1 config want_defup2 1 config want_defup3 1 config want_movup1 1 config want_movup2 1 config want_movup3 1 config want_senup1 1 config want_senup2 1 config want_senup3 1 config want_ability1 1 config want_ability2 1 |
Cheeseh |
![]()
Post
#247
|
![]() Admin ![]() ![]() ![]() ![]() ![]() Group: Admin Posts: 3,066 Joined: 11-September 03 From: uk Member No.: 1 ![]() |
Why would you want to do that though? Their selections are based on a genetic algorithm anyway so sometimes they may never select an upgrade or they may select all or no upgrades. They are learning their upgrade choices for the best choice on combat maps, and Their choices change each time they start a new combat game.
![]() If you want to do something like that you will need to remove the GA connection to the upgrades, near the top of the code on start-up. And will need to add a config command with a bitmask of all the combat attrib's i.e (want_damage1 = 1, want_damage2 = 2, want_damage3 = 4, etc) into a global "CombatWants" variable or something. And alter "BotWantsCombatItem" to read "CombatWants" |
Venom |
![]()
Post
#248
|
Advanced Member ![]() ![]() ![]() Group: Members Posts: 82 Joined: 24-July 06 Member No.: 807 ![]() |
Why would you want to do that though? Their selections are based on a genetic algorithm anyway so sometimes they may never select an upgrade or they may select all or no upgrades. They are learning their upgrade choices for the best choice on combat maps, and Their choices change each time they start a new combat game. ![]() If you want to do something like that you will need to remove the GA connection to the upgrades, near the top of the code on start-up. And will need to add a config command with a bitmask of all the combat attrib's i.e (want_damage1 = 1, want_damage2 = 2, want_damage3 = 4, etc) into a global "CombatWants" variable or something. And alter "BotWantsCombatItem" to read "CombatWants" Thanks You would want to block certain stuff like jetpacks or gls, so i thought you might as well be able to customise all skills based on per a map, so on certain maps you may wish to disable jetpacks and on others you may wish to have HMG and heavy armor only. It just gives the server admins the choice of what to block and what not to block, of course, a human blocking plugin will be needed as well for this. |
LordSkitch |
![]()
Post
#249
|
![]() I cuddle with my bots. ![]() ![]() ![]() ![]() ![]() Group: Moderator Posts: 980 Joined: 16-April 04 From: Alvin, Texas Member No.: 291 ![]() |
whats the word on getting the gorges to heal things? ive tried everything i can think of, and i still cant get the little bastards to do it.
|
LordSkitch |
![]()
Post
#250
|
![]() I cuddle with my bots. ![]() ![]() ![]() ![]() ![]() Group: Moderator Posts: 980 Joined: 16-April 04 From: Alvin, Texas Member No.: 291 ![]() |
i spent like an hour and a half yesterday trying to sort through the code to fix some issues people keep yellin at me about,
1 - the fades going up to wallstick waypoints and not blinking, but just standing there looking at the wallstick waypoint. i removed them from CanUseFlyWaypoints or whatever and solved that. 2 - the gorges healing. i have absolutely no clue why they wont heal. well i have seen them heal, but theyll heal like unfinished hives. after that they wont heal any players/structures/whatever. i cant figure out why they do it. or dont do it rather. 3 - the aliens getting upgrades on NS maps. i found two identical sections of code and so i changed the top one... CODE if ( gBotGlobals.IsNS() && bCanUpgrade && (m_fUpgradeTime < gpGlobals->time) && IsAlien()) { AddPriorityTask(CBotTask(BOT_TASK_ALIEN_UPGRADE,0)); m_fUpgradeTime = gpGlobals->time + RANDOM_FLOAT(5.0,10.0); } if ( gBotGlobals.IsNS() && bCanUpgrade && gBotGlobals.IsCombatMap() && (m_fUpgradeTime < gpGlobals->time) ) { AddPriorityTask(CBotTask(BOT_TASK_COMBAT_UPGRADE,0)); m_fUpgradeTime = gpGlobals->time + RANDOM_FLOAT(5.0,10.0); } and the wierd thing is they get the task bot_task_alien_upgrade but then the little bastards dont do it! so im thinkin i need to do it in the sense of CBotTask(BOT_TASK_ALIEN_UPGRADE,0,NULL,BOT_UPGRADE_DEF) kind of thing, so i'll edit that function after i get home from school and see if it works. 4 - lerks/fades flying/blinking over normal waypoints. i cant even find the code where a normal waypoint is defined. i can find all the other waypoint types but not the freakin normal ones. 5 - i think theres a crashy part of the code somewhere in it, but all of a sudden i cant freakin debug the thing to find it. so i dunno whats up with that. |
![]() ![]() |
![]() |
Lo-Fi Version | Time is now: 21st June 2025 - 12:37 AM |