Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - i mss old ofp

Pages: 1 2 3 [4] 5
46
Armed Assault 2 / here it is the stolen pbo
« on: December 12, 2010, 07:04:19 am »
heres a pbo to work with i think you all know were it came from lololol.
im just posting this to show how easy it is to pretend to be a hacker :icon_laugh


oh , this realy isnt a pbo its just copy paste like skeleton.
it came from darky/buckfast config.cpp
it took 2 seconds

47
Armed Assault 2 / id love to know who saw smoking rabbit
« on: November 26, 2010, 01:11:05 pm »
not that youd rat on your self but just wondering how many  smoking rabbits has people seen :icon_rolleyes2

48
Armed Assault 2 / ban lol
« on: November 20, 2010, 07:13:40 pm »
lmao, i didnt even get a chance to pull out the 100 a10s matter of fact i didnt get to do much at all , all i did was play music by pantara (cowboys from hell) [you see us comming and you all to gether run for cover,] ....but never the less i used a program to change mac addres and im not sure if it worked cause i can get in 1 server i was ban from but i still do see the second one , so im thinking it worked for 1 unless they just realeasd the ban , hmmm any one got any thoughts to fix? its not realy a big deal i usaly dont hack stupidly and get caught i was just taking my frustrations out ...and being ban from 1 server aint all that bad :icon_cry2

49
General Modding & Programming / Other Games / basics of chams/wallhacks
« on: October 31, 2010, 08:04:55 am »
this isnt writen but me ...but read it and read it good ...its easy and very helpful
First off, a little explanation on how Chams/Wallhack works.

Wallhack:
The method that a wallhack works, is purely through D3D no memory address hooking is needed whatsoever, although it IS possible through memory hooking, that's another story though..

What a wallhack does, is disable the Z Buffer in the game.

What is the Z Buffer?
The Z Buffer is a presentation parameter for DirectX, it is a Depth Buffer. it is used to determine how rendered objects occlude with each other. To simplify that, the Z buffer basically tells the camera, if it's behind another object, don't show it, if it's in front another object, show it.
Now, with that said, you can't just disable the Z Buffer and expect to have a working wallhack, it doesn't work like that. if you do that, you will notice, you can see everything, through everything. in other words, shit will be fucked up.

you have to declare what you want to disable the buffer on, ie: Strides, NumVertices, and PrimitiveCounts.
those three things are key in defining what you want to see through the walls/objects. which in most cases is the Player model.

Now lets get to the code for a simple wallhack.


Code:
#define PlayerBody  ( Stride == 44 || Stride == 40 )
// Note for retards, the " || " Operator means "Or" as in: "PlayerBody  is equal to stride number 44, or 40."



notice how i used the Variable 'Stride' this actually depends on how you hook is set up, the arguments can be different, therefore you will have to declare it the same as the argument in your functions.

now, to actually Disable the Z Buffer.
the following code belongs in your function that hooks the DrawIndexedPrimitive of the game.


Code:

                if (PlayerBody){
                   DWORD dwReEnableZB = D3DZB_TRUE;

                  //Note to Retards: Change psyDevice to your D3D9Device.
                  psyDevice->GetRenderState(D3DRS_ZENABLE, &dwReEnableZB); //Make sure the Buffer is enabled
                  psyDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE); // Disable it
                  psyDevice->SetRenderState(D3DRS_ZFUNC, D3DCMP_NEVER);// Reject the pixels (shaders)
                 }





There you go, a basic wallhack.



Cham(s):
Chams, is just a shortened way of saying Chameleon Wallhack. it is just a regular wallhack, with a texture overlay.

So, utilizing the code above, we just have to declare our textures.
like so:


Code:
bool Generate = true; // <-- to prevent flicker. will be explained later.
LPDIRECT3DTEXTURE9    texYellow, texRed;



Now we just need a function to generate our textures for us, you can write your own, but the following one is by Azorbix.


Code:
HRESULT GenerateTexture(IDirect3DDevice9 *pD3Ddev, IDirect3DTexture9 **ppD3Dtex, DWORD colour32)
{
    if( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex, NULL)) )
        return E_FAIL;
   
    WORD colour16 =    ((WORD)((colour32>>28)&0xF)<<12)
            |(WORD)(((colour32>>20)&0xF)<<8)
            |(WORD)(((colour32>>12)&0xF)<<4)
            |(WORD)(((colour32>>4)&0xF)<<0);

    D3DLOCKED_RECT d3dlr;   
    (*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);
    WORD *pDst16 = (WORD*)d3dlr.pBits;

    for(int xy=0; xy < 8*8; xy++)
        *pDst16++ = colour16;

    (*ppD3Dtex)->UnlockRect(0);

    return S_OK;
}




Now, in our endscene we need to actually use that function and generate those textures.


Code:
//this belongs in your ENDSCENE
/*
Remember our BOOL Generate? this is here so that your chams don't
flicker, over and over rapidly, cause it's fucking annoying.
so, this bool makes sure that they're only generated once when the endscene is first initiated.
and not over, and over.
*/

if (Generate)
{
GenerateTexture(psyDevice, &texRed,D3DCOLOR_ARGB(255,255,0,0));
GenerateTexture(psyDevice, &texYellow,D3DCOLOR_ARGB(255,255,255,0));
Generate = false;
}





Now, the Final Bit. actually overlaying the textures.
Find your Wallhack code, and replace it with this:


Code:


                if (PlayerBody){
                   DWORD dwReEnableZB = D3DZB_TRUE;

                  //Note to Retards: Change psyDevice to your D3D9Device.
                  psyDevice->SetTexture(0, texRed);// Turn the playerbody Red
                  psyDevice->GetRenderState(D3DRS_ZENABLE, &dwReEnableZB); //Enable the zBuffer
                  psyDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE); // Disable it
                  psyDevice->SetTexture(0, texYellow);// Turn the playerbody Yellow
                  psyDevice->SetRenderState(D3DRS_ZFUNC, D3DCMP_NEVER);// Reject the pixels (shaders)
                 }




If you were wondering how the chams code actually works, it is a Loop, and Loops through itself every time the PlayerBody is present.
so, here is how it works:

if the Player is shown:
Make him Red.
Enable the Z buffer, so he displays Red when he is IN FRONT an object.
disable the Z buffer.
Make the Enemy/PlayerBody Yellow, so he displays Yellow when he is BEHIND an object.
Disable stencil shaders.

and then, rinse, lather, repeat.

there you go, The basic definition of Chams/Wallhack, How they work, and the code to do it.


50
Armed Assault 2 / closed
« on: September 28, 2010, 04:50:10 am »
closed

51
Armed Assault 2 / trade info if you help get this working
« on: September 12, 2010, 10:43:20 pm »
KEGs_fnc_arrayPushStack = {
   {
      (_this select 0) set [count (_this select 0), _x];
   } foreach (_this select 1);
   (_this select 0)
};

KEGs_missilcamrun = {
   private "_oldcam";
   _oldcam = KEGs_cameraIdx;
   while {!isNull _this && speed _this > 1 && _oldcam == KEGs_cameraIdx && dialog} do {
      KEGs_cam_missile camSetTarget _this;
      KEGs_cam_missile camSetRelPos [0, -0.5, 0.30];
      KEGs_cam_missile camCommit 0;
      sleep 0.01;
   };
   if ((_oldcam == KEGs_cameraIdx) && dialog) then {
      sleep 3;
   };
   KEGs_MissileCamActive = false;
   KEGs_MissileCamOver = true;
};

KEGs_markerdel = {
   sleep 2; deleteMarkerLocal _this
};

KEGs_markerupdateev = {
   private ["_m", "_o"];
   _m = _this select 0;_o = _this select 1;
   while {!isNull _o} do {
      _m setMarkerPosLocal getPosASL _o;
      _m setMarkerDirLocal getdir _o;
      sleep 0.02;
   };
   _m setMarkerColorLocal "ColorBlack";
   sleep 3;
   deleteMarkerLocal _m;
};

KEGs_markerdel2 = {
   sleep 1.0;(_this select 1) setMarkerColorLocal "ColorYellow";sleep 1;deleteMarkerLocal (_this select 1);deleteMarkerLocal (_this select 0)
};

KEGs_barsremove = {
   sleep 1.5; {deleteVehicle _x} foreach _this
};

KEGs_togmapf = {
   sleep 0.25; ["ToggleMap", 0] call spectate_events; ["ToggleMap", 0] call spectate_events;
};

KEGs_GetMCol = {
   switch (_this) do {
      case west: {"ColorBlue"};
      case east: {"ColorRed"};
      case resistance: {"ColorGreen"};
      case civilian: {"ColorWhite"};
      default {"ColorWhite"};
   }
};

KEGs_CheckOriginalSide =  {
   private ["_s", "_r", "_rd"];
   _s = _this getVariable "KEGs_oside";
   if (isNil "_s") then {
      if (alive _this && !(captive _this)) then {
         _r = rating _this;
         if (_r < 0) then {
            _rd = abs _r;
            _this addRating _rd;
            _s = side _this;
            _this addRating -_rd;
         } else {
            _s = side _this;
         };
         _this setVariable ["KEGs_oside", _s];
      } else {
         _s = switch (getNumber(configFile >> "CfgVehicles" >> typeOf _this >> "side")) do {
            case 0: {east};
            case 1: {west};
            case 2: {resistance};
            default {civilian};
         };
         _this setVariable ["KEGs_oside", _s];
      }
   };
   _s
};

KEGs_updatemarkers = {
   KEGs_markersrun = true;
   private ["_markers", "_disp", "_cMapFull", "_mapFull", "_mappos", "_markedVehicles", "_i", "_m", "_u", "_OriginalSide", "_type", "_icon"];
   _markers = _this select 0;
   disableSerialization;
   _disp = (findDisplay 55001);
   _cMapFull = 55014;
   if (ctrlVisible _cMapFull) then {
      _mapFull = _disp displayctrl _cMapFull;
      _mappos = _mapFull posScreenToWorld[0.5, 0.5];
      KEGs_cam_fullmap camSetTarget _mappos;
      KEGs_cam_fullmap camSetRelPos [0, -1, 150];
      KEGs_cam_fullmap camCommit 0;
   };
   
   _markedVehicles = [];
   for "_i" from 0 to (count _markers - 1) do {
      if (KEGs_exitspect) exitWith {};
      if (_i >= count _markers) exitWith {};
      _mo = _markers select _i;
      _m = _mo select 0;
      _u = _mo select 1;
      if (KEGs_MissileCamActive) then {
         waitUntil {!KEGs_MissileCamActive || KEGs_exitspect};
      };
      if (_u in KEGs_units) then {
         if (speed vehicle _u > 0) then {
            _m setMarkerPosLocal ((vehicle _u modelToWorld [0,0,0]));
         } else {
            if (alive _u) then {
               _hpos = getPosASL (vehicle _u); _mpos = markerPos _m;
               if (_hpos select 0 != _mpos select 0 || _hpos select 1 != _mpos select 1) then {
                  _m setMarkerPosLocal ((vehicle _u modelToWorld [0,0,0]));
               };
            };
         };
         
         _OriginalSide = _u call KEGs_CheckOriginalSide;
         if (!(_OriginalSide in KEGs_ShownSides)) then {
            if (markerAlpha _m != 0) then {_m setMarkerAlphaLocal 0};
         } else {             
            if (markerAlpha _m == 0) then {_m setMarkerAlphaLocal 1};
            if (KEGs_MarkerNames || KEGs_MinimapZoom < 0.15) then {
               if (ctrlVisible _cMapFull) then {
                  switch(KEGs_MarkerType) do {
                     case 0: {
                        if (markerText _m != "") then {_m setMarkerTextLocal ""};
                     };
                     case 1: {
                        if (alive (vehicle _u)) then {
                           if (markerText _m != (_mo select 2)) then {_m setMarkerTextLocal (_mo select 2)};
                        };
                     };
                     case 2: {
                        _na = getText (configFile >> "CfgVehicles" >> typeOf (vehicle _u) >> "DisplayName");
                        if (markerText _m != _na) then {_m setMarkerTextLocal _na};
                     };
                  };
               } else {
                  if (markerText _m != "") then {_m setMarkerTextLocal ""};
               };
               
               _icon = (vehicle _u) getVariable "KEGs_icon";
               if (isNil "_icon") then {
                  _icon = switch (getText(configFile >> "CfgVehicles" >> typeOf (vehicle _u) >> "simulation")) do {
                     case "tank": {"n_armor"};
                     case "car": {"n_motor_inf"};
                     case "soldier": {"n_inf"};
                     case "airplane": {"n_plane"};
                     case "helicopter": {"n_air"};
                     case "motorcycle": {"n_motor_inf"};
                     default {"Arrow"};
                  };
                  (vehicle _u) setVariable ["KEGs_icon", _icon];
               };
               if (markerType _m != _icon) then {_m setMarkerTypeLocal _icon};
               _siz = markerSize _m;
               _nnsiz = 0.42 * KEGs_MarkerSize;
               if (_siz select 0 != _nnsiz || _siz select 1 != _nnsiz) then {_m setMarkerSizeLocal [_nnsiz, _nnsiz]};
               _ddir = direction vehicle _u;
               if (markerDir _m != _ddir) then {_m setMarkerDirLocal _ddir};
            } else {
               if (markerText _m != "") then {_m setMarkerTextLocal ""};
               if (markerType _m != "Dot") then {_m setMarkerTypeLocal "Dot"};
               _siz = markerSize _m;
               if (_siz select 0 != 0.4 || _siz select 1 != 0.4) then {_m setMarkerSizeLocal [0.4, 0.4]};
            };
         };
         
         if (!alive _u) then {_m setMarkerColorLocal "ColorBlack"};
         
         if (vehicle _u in _markedVehicles) then {
            if (markerAlpha _m != 0) then {_m setMarkerAlphaLocal 0};
         } else {
            _markedVehicles set [count _markedVehicles, vehicle _u];
         };
         sleep 0.01;
      } else {
         if (markerAlpha _m != 0) then {_m setMarkerAlphaLocal 0};
         sleep 0.01;
      };
   };
   KEGs_markersrun = false;
};

KEGs_HMouseButtons = {
   KEGs_mousecheckon = true;
   while {(KEGs_MouseButtons select 0) || (KEGs_MouseButtons select 1)} do {
      switch (true) do {
         case (!(KEGs_MouseButtons select 0) && (KEGs_MouseButtons select 1)): {
            KEGs_fangle = KEGs_fangle - ((KEGs_mouseDeltaPos select 0) * 360);
            KEGs_fangleY = KEGs_fangleY + ((KEGs_mouseDeltaPos select 1) * 180);
            switch (true) do {
               case (KEGs_fangleY > 89): {KEGs_fangleY = 89};
               case (KEGs_fangleY < -89): {KEGs_fangleY = -89};
            };
         };
         case ((KEGs_MouseButtons select 0) && !(KEGs_MouseButtons select 1)): {
            KEGs_sdistance = KEGs_sdistance - ((KEGs_mouseDeltaPos select 1) * 10);
            switch (true) do {
               case (KEGs_sdistance > KEGs_maxDistance): {KEGs_sdistance = KEGs_maxDistance};
               case (KEGs_sdistance < -KEGs_maxDistance): {KEGs_sdistance = -KEGs_maxDistance};
            };
            if (KEGs_sdistance < -0.6) then {KEGs_sdistance = -0.6};
         };
         case ((KEGs_MouseButtons select 0) && (KEGs_MouseButtons select 1)): {
            KEGs_szoom = KEGs_szoom - ((KEGs_mouseDeltaPos select 1) * 3);
            switch (true) do {
               case (KEGs_szoom > 2): {KEGs_szoom = 2};
               case (KEGs_szoom < 0.05): {KEGs_szoom = 0.05};
            };
         };
      };
      if (KEGs_exitspect) exitWith {};
      sleep 0.0034;
   };
   KEGs_mousecheckon = false;
};

KEGs_CheckU = {
   private ["_r", "_isloc", "_isalive"];
   _r = true;_isalive = alive _this;
   if (KEGs_playable_only) then {if (!((_this in playableUnits) || (_this in switchableUnits))) then {_r = false}};
   if (_r) then {
      if (!isPlayer _this) then {if (KEGs_AIfilter == 1) then {_r = false}};
      if (_r) then {
         _isloc = (_this == player);
         if (!_isloc && !_isalive) then {if (KEGs_DeadFilter == 1) then {_r = false}};
         if (_r) then {
            if (!_isloc && KEGs_gfleader) then {if ((_this != formationLeader _this) || (_this != leader _this)) then {_r = false}};
            if (_r) then {if (!_isloc && KEGs_CheckDist != -1) then {if (_this distance player > KEGs_CheckDist) then {_r = false}}};
         };
      };
   };
   [_r, _isalive]
};

KEGs_UpdateLB = {
   KEGs_updating_lb = true;
   private ["_cLBTargets", "_sidecache", "_namecache", "_deadstr", "_clbcols", "_idx", "_oside", "_rr", "_name", "_i", "_colidx", "_prest"];
   _cLBTargets = _this select 0;
   _sidecache = _this select 1;
   _namecache = _this select 2;
   _deadstr = _this select 3;
   _clbcols = _this select 4;
   _uns = []; _rest = []; _idx = 0; _prest = [];
   {
      _oside = _sidecache select _idx;
      if (_oside in KEGs_ShownSides) then {
         _rr = _x call KEGs_CheckU;
         if (_rr select 0) then {
            _uns set [count _uns, _x];
            _name = _namecache select _idx;
            if (!(_rr select 1)) then {_name = _deadstr + _name};
            _colidx =  if (_idx == KEGs_tgtIdx) then {0} else {if (_rr select 1) then {switch (_oside) do {case west: {1};case east: {2};case resistance: {3};case civilian: {4};}} else {5}};
            if (isNil "KEGs_withSpect") then {
               _rest set [count _rest, [_name, _idx, _colidx]];
            } else {
               if (_x != player) then {
                  _rest set [count _rest, [_name, _idx, _colidx]];
               } else {
                  _prest = [_name, _idx, _colidx];
               };
            };
         };
      };
      _idx = _idx + 1;
      if (KEGs_exitspect) exitWith {};
   } forEach KEGs_deathCam;
   if (KEGs_exitspect) exitWith {};
   if (count _prest > 0) then {
      _rest resize (count _rest + 1);
      for "_v" from (count _rest - 1) to 1 step - 1 do {
         _rest set [_v, _rest select (_v - 1)];
      };
      _rest set [0, _prest];
      _uns = _uns - [player];
      _uns resize (count _uns + 1);
      for "_v" from (count _uns - 1) to 1 step - 1 do {
         _uns set [_v, _uns select (_v - 1)];
      };
      _uns set [0, player];
   };
   KEGs_units = _uns;
   lbClear _cLBTargets;
   {
      _i = lbAdd [_cLBTargets, _x select 0];
      lbSetValue [_cLBTargets, _i, _x select 1];
      lbSetColor [_cLBTargets, _i, _clbcols select (_x select 2)];
      if (KEGs_exitspect) exitWith {};
   } forEach _rest;
   KEGs_lastAutoUpdateLB = time;
   KEGs_NeedUpdateLB = false;
   sleep 1;
   KEGs_updating_lb = false;
};

KEGs_CheckNew = {
   private ["_newUnits", "_newVehicles", "_nn", "_fh", "_iswu", "_gg", "_m", "_markstr", "_unknownstr", "_OriginalSide", "_s", "_cameras", "_nunits"];
   _markstr = _this select 0;
   _unknownstr = _this select 1;
   _cameras = _this select 2;
   _allUnits = if (isNil "d_init_started") then {allUnits} else {if (isMultiplayer) then {playableUnits} else {switchableUnits}};
   _newUnits = _allUnits - KEGs_deathCam;
   _newVehicles = vehicles - KEGs_ehVehicles;
   if (count _newVehicles > 0) then {
      KEGs_ehVehicles = [KEGs_ehVehicles, _newVehicles] call KEGs_fnc_arrayPushStack;
      {
         _nn = _x getVariable "KEGs_EHFired";
         if (isNil "_nn") then {
            _fh = _x addEventHandler ["fired", {["UnitFired",_this] call spectate_events}];
            _x setVariable ["KEGs_EHFired", _fh];
            _x setVariable ["KEGs_mapmove", false];
         };
      } foreach _newVehicles;
   };
   if (count _newUnits > 0) then {
      _nunits = [];
      {
         _iswu = false;
         _gg = _x getVariable "KEGs_SPECT";
         if (isNil "_gg") then {_gg = false};
         if (!_gg) then {
            _x setVariable ["KEGs_SPECT", true];
            _x setVariable ["KEGs_mapmove", false];
            _iswu = true;
         };
         if (!isMultiplayer && KEGs_UseLog) then {
            _nn = _x getVariable "KEGs_EHKilled";
            if (isNil "_nn") then {
               _fh = _x addEventHandler ["killed", {["UnitKilled",_this] call spectate_events}];
               _x setVariable ["KEGs_EHKilled", _fh];
            };
         };
         if (!_iswu) then {
            _nunits set [count _nunits, _x];
            _m = createMarkerLocal [format[_markstr, count KEGs_markers], [0, 0, 0]];
            _m setMarkerTypeLocal "Dot";
            _m setMarkerSizeLocal [0.4, 0.4];
            _nn = if (alive _x) then {name _x} else {_unknownstr};
            KEGs_markers set [count KEGs_markers, [_m, _x, _nn]];

            _OriginalSide = _x call KEGs_CheckOriginalSide;
            KEGs_sidecache set [count KEGs_sidecache, _OriginalSide];

            _m setMarkerColorLocal (_OriginalSide call KEGs_GetMCol);
            _m setMarkerPosLocal (getPosASL (vehicle _x));

            _s = "#particlesource" createVehicleLocal getPosASL _x;
            KEGs_Tagsources set [count KEGs_Tagsources, [_x, _s]];

            if (KEGs_Tags == 1) then {
               ["ToggleTags", [false, (_cameras select KEGs_cameraIdx)]] call spectate_events;
               ["ToggleTags", [true, (_cameras select KEGs_cameraIdx)]] call spectate_events;
            };
            KEGs_namecache set [count KEGs_namecache, _nn];
         };
      } forEach _newUnits;

      KEGs_deathCam = [KEGs_deathCam, _nunits] call KEGs_fnc_arrayPushStack;            

      KEGs_NeedUpdateLB = true;
   };
   KEGs_lastCheckNewUnits = time;
   KEGs_newCheckUn = false;
};
 :icon_thumbsup
Quote
you help me ill help you

52
Player Zone / vid of Gerk and OFP
« on: September 03, 2010, 11:46:21 pm »
http://www.youtube.com/watch?v=VJ7HLUWhfuA       <-----old

credit to darky for making this happen

http://www.youtube.com/watch?v=6kk8mrEHkVc        <------new

53
Armed Assault 2 / new darks/Gerk/me
« on: September 01, 2010, 04:05:40 am »
edit...

54
Armed Assault 2 / arma2/oa batch error help
« on: August 31, 2010, 10:20:11 pm »
piture ca\missions_baf_scenarios\sp_humanitarian_aid.shapur_baf<-------    all the severs are a yellow question mark ...
im not sure what the problem is in full...

55
General Modding & Programming / Other Games / updated buckfast
« on: August 31, 2010, 01:06:42 am »
updated buckfast



http://tkc-community.net/forum/index.php?action=downloads;sa=view;down=135

this is still in the works. we'll take pm requests.
spawning civi lags for a sec,
it works on arma2/arma2/oa
this has not been tested on the new patch
but its in the works . and remeber
this is public hax
use at your our risk, it is udetected
STILL

56
Armed Assault 2 / updated buckfast
« on: August 30, 2010, 10:01:23 pm »
new scritps added to buckfast, need to know were to send for admin check to be posted public?
please no one pm me for it . its not my hack , . credit go's to Gerk.... i tested it a few times not detected
if admin passes it use at your own risk....

57
Random Insanity Board / no supject[]exec "BlaBlahBLah\BlaBlahBla.sqs"
« on: August 30, 2010, 07:45:31 pm »
omg i think im going to turn into one  of thoughs guys with a micowave near my computer and a bottle to piss in ,

58
Armed Assault 2 / upgrade 1.54 maybe a trick
« on: August 26, 2010, 09:30:43 pm »
edit...

59
Armed Assault 2 / me and a friend got darkys working in arma2 no oa
« on: August 18, 2010, 08:10:51 am »
played on be severs no kick, lol wooooohoooooo

60
Armed Assault 2 / how to use debuger in loki
« on: August 15, 2010, 01:14:18 pm »
edit...

Pages: 1 2 3 [4] 5