-
Content count
27 -
Donations
0.00 EUR -
Joined
-
Last visited
Content Type
Profiles
Forums
Wiki
Servers
Devblog
Everything posted by hangender
-
just modify your server pbo so any time an admin kills someone their name gets replaced with "NPC". Will save you and your players a lot of "stress"
-
less than 1 (i.e. 0.5) is slower. > 1 is 'muerica style metabolism
-
_hungerFactor = 1; _thirstFactor = 1;from ExileClient_object_player_stats_update.sqf
-
That's because you need to change your description.ext class cfgRemoteExec to -> class CfgRemoteExec { class Functions { mode = 1; jip = 0; class ExileServer_system_network_dispatchIncomingMessage { allowedTargets=2; }; class w4_lockpick_fnc_lockpick_attempt { allowedTargets=0; }; class w4_lockpick_fnc_lockpicked { allowedTargets=0; }; class w4_lockpick_fnc_lockpick_failed { allowedTargets=0; }; }; class Commands { mode=0; jip=0; }; };
-
grim bro y u false positive???
-
Still learning indeed. Now you know why Microsoft give out updates every second tuesday of the month.
-
let's try for 5 versions. You g0t this
-
0.9.32 'Sticky Satchels' Not Working - v0.9.32B
hangender replied to Z80CPU's question in Clientside
you can still attach it to bambis and it works fine that way -
you have to comment out the 9:LOCK first, and then you can use 9:SHUTDOWN
-
try the antiwall from epoch. Seems to stop about 60% of wall attemps
-
yea gtx is pretty bad they told me my AI missions was too laggy (DMS) and then proceeded to recommend me to use...DMS. 0 intelligence.
-
alterable, if you add in my changes then you can edit forceDespawnAfterMinutes value in config.cpp to something like 30 to 40 min. Otherwise, it always get deleted in 5 mins if no one is near.
-
from what I can see of the code, they (devs) tried to combine loot cleanup with dead body clean up and...epically failed. specifically, the code right here: if (_timeBeingDead >= _forceDespawnAfterMinutes) then { _objectsToRemove pushBack _x; } else { // Is the area around this building free of players? if !([getPosATL _x, _despawnRadius] call ExileServer_util_position_isPlayerNearby) then { _objectsToRemove pushBack _x; }; };What this code is doing is...if a body has been there for more than or equal to 15 mins (forceDespawnAfterMinutes), delete it.... OR delete it anyway if no one is within the _despawnRadius. Since the cleanup code runs every 5 mins, then clearly bodies will get cleaned up every 5 mins. For a fix, you can do something like: _isLoot = _x getVariable ["ExileIsLoot", false]; if (_timeBeingDead >= _forceDespawnAfterMinutes and !_isLoot) then { _objectsToRemove pushBack _x; } else { // Is the area around this building free of players? if !([getPosATL _x, _despawnRadius] call ExileServer_util_position_isPlayerNearby) then { _objectsToRemove pushBack _x; }; };
-
ridiculous arma behavior? do tell
-
ah, I see what the problem is. All you need to do is: if (isPlayer _killer) then { { if (name _killer isEqualTo name _x) then { _killer = _x; }; } forEach (crew _killer);something like this, because the _killer is actually the vehicle obj, and since the server try to get ExileScore from the veh obj, it will obv be 0, and then server writes that 0 to the database and all is lost. Full code for bambi server admins: /** * Exile Mod * exile.majormittens.co.uk * © 2015 Exile Mod Team * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. */ private["_victim","_killer","_addDeathStat","_addKillStat","_killerRespectPoints","_fragAttributes","_lastKillAt","_killStack","_distance","_distanceBonus","_overallRespectChange","_newKillerScore","_killMessage","_newKillerFrags","_newVictimDeaths"]; if (!isServer || hasInterface) exitWith {}; _victim = _this select 0; _killer = _this select 1; if( isNull _victim ) exitWith {}; _victim setVariable ["ExileDiedAt", time]; if !(isPlayer _victim) exitWith {}; format["killPlayer:%1", _victim getVariable ["ExileDatabaseId", -1]] call ExileServer_system_database_query_fireAndForget; _victim setVariable ["ExileIsDead", true]; _addDeathStat = true; _addKillStat = true; _killerRespectPoints = []; _fragAttributes = []; if (_victim isEqualTo _killer) then { ["systemChatRequest", [format["%1 commited suicide!", (name _victim)]]] call ExileServer_object_player_event_killFeed; } else { if (vehicle _victim isEqualTo _killer) then { ["systemChatRequest", [format["%1 crashed to death!", (name _victim)]]] call ExileServer_object_player_event_killfeed; } else { if (isNull _killer) then { ["systemChatRequest", [format["%1 died for an unknown reason!", (name _victim)]]] call ExileServer_object_player_event_killfeed; } else { if (isPlayer _killer) then { { if (name _killer isEqualTo name _x) then { _killer = _x; }; } forEach (crew _killer); if (_victim getVariable["ExileIsBambi", false]) then { _addKillStat = false; _addDeathStat = false; _fragAttributes pushBack "Bambi Slayer"; _killerRespectPoints pushBack ["BAMBI SLAYER", (getNumber (configFile >> "CfgSettings" >> "Respect" >> "Frags" >> "bambi"))]; } else { if (vehicle _killer isEqualTo _killer) then { if (currentWeapon _killer isEqualTo "Exile_Melee_Axe") then { _fragAttributes pushBack "Humiliation"; _killerRespectPoints pushBack ["HUMILIATION", (getNumber (configFile >> "CfgSettings" >> "Respect" >> "Frags" >> "humiliation"))]; } else { _killerRespectPoints pushBack ["ENEMY FRAGGED", (getNumber (configFile >> "CfgSettings" >> "Respect" >> "Frags" >> "standard"))]; }; } else { if ((driver (vehicle _killer)) isEqualTo _killer) then { _fragAttributes pushBack "Road Kill"; _killerRespectPoints pushBack ["ROAD KILL", (getNumber (configFile >> "CfgSettings" >> "Respect" >> "Frags" >> "roadKill"))]; } else { _fragAttributes pushBack "Passenger"; _killerRespectPoints pushBack ["MAD PASSENGER", (getNumber (configFile >> "CfgSettings" >> "Respect" >> "Frags" >> "passenger"))]; }; }; }; if (_addKillStat) then { _lastKillAt = _killer getVariable["ExileLastKillAt", 0]; _killStack = _killer getVariable["ExileKillStack", 0]; _killStack = _killStack + 1; if (isNil "ExileServerHadFirstBlood") then { ExileServerHadFirstBlood = true; _fragAttributes pushBack "First Blood"; _killerRespectPoints pushBack ["FIRST BLOOD", getNumber (configFile >> "CfgSettings" >> "Respect" >> "Bonus" >> "firstBlood")]; } else { if (time - _lastKillAt < (getNumber (configFile >> "CfgSettings" >> "Respect" >> "Bonus" >> "killStreakTimeout"))) then { _fragAttributes pushBack (format ["%1x Kill Streak", _killStack]); _killerRespectPoints pushBack [(format ["%1x KILL STREAK", _killStack]), _killStack * (getNumber (configFile >> "CfgSettings" >> "Respect" >> "Bonus" >> "killStreak"))]; } else { _killStack = 1; }; }; _killer setVariable["ExileKillStack", _killStack]; _killer setVariable ["ExileLastKillAt", time]; _distance = floor(_victim distance _killer); _fragAttributes pushBack (format ["%1m Distance", _distance]); _distanceBonus = (floor (_distance / 100)) * getNumber (configFile >> "CfgSettings" >> "Respect" >> "Bonus" >> "per100mDistance"); if (_distanceBonus > 0) then { _killerRespectPoints pushBack [(format ["%1m RANGE BONUS", _distance]), _distanceBonus]; }; }; _overallRespectChange = 0; { _overallRespectChange = _overallRespectChange + (_x select 1); } forEach _killerRespectPoints; _newKillerScore = _killer getVariable ["ExileScore", 0]; _newKillerScore = _newKillerScore + _overallRespectChange; _killer setVariable ["ExileScore", _newKillerScore]; format["setAccountScore:%1:%2", _newKillerScore,getPlayerUID _killer] call ExileServer_system_database_query_fireAndForget; _killMessage = format ["%1 was killed by %2", (name _victim), (name _killer)]; if !(count _fragAttributes isEqualTo 0) then { _killMessage = _killMessage + " ("; { if (_forEachIndex > 0) then { _killMessage = _killMessage + ", "; }; _killMessage = _killMessage + _x; } forEach _fragAttributes; _killMessage = _killMessage + ")"; }; ["systemChatRequest", [_killMessage]] call ExileServer_object_player_event_killfeed; if (_addKillStat isEqualTo true) then { _newKillerFrags = _killer getVariable ["ExileKills", 0]; _newKillerFrags = _newKillerFrags + 1; _killer setVariable ["ExileKills", _newKillerFrags]; format["addAccountKill:%1", getPlayerUID _killer] call ExileServer_system_database_query_fireAndForget; }; [_killer, "showFragRequest", [_killerRespectPoints]] call ExileServer_system_network_send_to; _killer call ExileServer_object_player_sendStatsUpdate; } else { ["systemChatRequest", [format["%1 was killed by an NPC! (%2m Distance)", (name _victim), floor(_victim distance _killer)]]] call ExileServer_object_player_event_killfeed; }; }; }; }; if (_addDeathStat isEqualTo true) then { _newVictimDeaths = _victim getVariable ["ExileDeaths", 0]; _newVictimDeaths = _newVictimDeaths + 1; _victim setVariable ["ExileDeaths", _newVictimDeaths]; format["addAccountDeath:%1", getPlayerUID _victim] call ExileServer_system_database_query_fireAndForget; _victim call ExileServer_object_player_sendStatsUpdate; }; [_victim] joinSilent ExileGraveyardGroup; true
-
I use extDB to shutdown server
-
bohemia whyunotopimize
-
@eraser1 Pretty sure you didn't mention it, and even if you did (doubtful), why would you then tell me "just because the function exists, doesn't mean it's used". Very strange. And by dubious programming practices, if you still don't understand by now, let me explain again: Let's say you want to create a vehicle for your mission, which you do. What you do is: createVehicle. This script command everyone knows how to use, everyone have tested it, Bohemia have tested it and documented it extensively. What you SHOULD NOT do is call an ExileServer function to create a vehicle. Why? Because that function is new, which means it's likely to contain bugs. Moreover, it is not documented, and not well tested. No one knows what kind of issues you can run into (script errors + runtime errors etc etc). As a rule of thumb in programming, something that is new is bad because it is most likely full of bugs and because of those bugs, contain performance issues. Like I said before, if you had not used untested (untested, when compared to the createVehicle script command, which people have used for years) ExileServer functions, then you wouldn't have the vehicle bug in the first place. Hopefully you finally understand this by now Now, if you WANT TO test debugs for Grimm, obviously that's your prerogative. Except you just told me you don't like to do bug hunts, which is why my suggestion not only make programming sense, it is also for your benefit. tl;dr: don't use untested functions = save time + frustration
-
@eraser1 The only reason I'm asking you to point out which ExileServer functions you were using is...well because I did read through the code, and mentioned possible problem with usage of ExileServer_object_vehicle_createPersistentVehicle, and you told me "just because the function exists, doesn't mean it's being used". Which strongly implied the function wasn't being used. Later on, you did a 360 and changed your statement to, "yes, we are using this function, but the problem happened before we used this function". Now, I don't know about you, but contradictory statements such as those is not really my cup of tea so I decided to just ask straight up what ExileServer functions you guys were using as to avoid any possible confusion (a question that's still not answered btw). Seriously, you guys are making it as hard as possible for someone to try to help you. Moving on, you said you " ...only have a limited amount of free time" and don't like to go bug hunting, but then you go and use functions which are not well established and not well tested...which again strikes me as contradictory...but I digress. Other than these somewhat dubious programming practices, DMS is turning out to be a great mod . I think the only thing it's missing now is convoy type missions/roaming AI and then it will be as perfect as an AI mod can be.
-
Which is why I asked you specifically which ExileServer functions you were using so I can help you look into it... But you refuse to answer From what I can see though, you were only using 2, createPersistantVeh and addTask. Now, according to you, the problem was present BEFORE you started using createPersistantVeh ....which leaves us with just 1 function in suspect: addTask Hmmmm very hard to figure out which was causing problem eh? Of course, none of this would happened in the first place, had you just not use ExileServer functions. But now you know from first hand experience \o/ So basically I gave 2 advice, and if you followed any one of them, the problem would have been solved. Dunno how you can call that "unhelpful"....unless you want me to hold your hand or something while you code
-
told you it was one of the ExileServer functions *sigh*