Page 2 of 2

PostPosted: Fri Jun 21, 13 11:42 am
by Allan
Well if you're willing to private-message me the CStrike package contents, I can gladly try and solve the Buy Menu issue for you. My current project is currently undergoing outside bug-testing, so I have a bit of free time on my hands.

PostPosted: Fri Jun 21, 13 1:26 pm
by bambi
Ok, actually I'll just upload it. This is stolen from MapVote mod. So you'll see the similarities. Three classes, one .int, just turn the mutator on.

Code: Select all
class GunMenu extends MenuUIScreenWindow;

var localized string l_help1, l_cpoint, l_lgun;
var MenuUIScrollAreaWindow winScroll;
var MenuUIListWindow lstGuns, lstPoints;
var MenuUISmallLabelWindow CurrentPoints, LeadingGun;
var MenuLinkedList gunMenuLinkedList;
var float RepTime;
var bool bStacking, blstGunsDone;

event InitWindow()
{
local Window W;

Super.InitWindow();

if (actionButtons[2].btn != None)
   if ((Player == None) || (Player.PlayerReplicationInfo == None) || !Player.PlayerReplicationInfo.bAdmin)
      actionButtons[2].btn.SetSensitivity(false);

   winClient.SetBackground(Texture'DeusExUI.MaskTexture');
   winClient.SetBackgroundStyle(DSTY_Modulated);
   
   W = winClient.NewChild(Class'Window');
   W.SetSize(ClientWidth, ClientHeight);
   W.SetBackground(Texture'DeusExUI.MaskTexture');
   //W.SetBackground(Texture'UWindow.Background');
   W.SetBackgroundStyle(DSTY_Modulated);
   W.Lower();
   
   CreateLabel(8, 7, l_lgun);
   LeadingGun = CreateLabel(16, 20, "");
   LeadingGun.SetWidth(180);
   
   lstPoints = MenuUIListWindow(winClient.NewChild(Class'MenuUIListWindow'));
   lstPoints.SetPos(8, 40);
   lstPoints.SetSize(208, 192);
   lstPoints.SetSensitivity(false);
   lstPoints.EnableAutoExpandColumns(false);
   lstPoints.EnableAutoSort(true);
   lstPoints.SetNumColumns(2);
   lstPoints.SetColumnType(0, COLTYPE_Float, "%.0f");
   lstPoints.SetColumnType(1, COLTYPE_String);
   lstPoints.SetSortColumn(0, true, false);  //reverse order
   lstPoints.SetColumnWidth(0, 28);
   lstPoints.SetColumnWidth(1, 180);
   
   CreateLabel(236, 7, l_cpoint);
   CurrentPoints = CreateLabel(244, 20, "");
   CurrentPoints.SetWidth(180);
   
   winScroll = CreateScrollAreaWindow(winClient);
   winScroll.SetPos(236, 40);
   winScroll.SetSize(196, 192);
   
   lstGuns = MenuUIListWindow(winScroll.clipWindow.NewChild(Class'MenuUIListWindow'));
   lstGuns.EnableMultiSelect(false);
   lstGuns.EnableAutoExpandColumns(false);
   lstGuns.EnableAutoSort(false);
   lstGuns.SetNumColumns(2);
   lstGuns.SetColumnType(0, COLTYPE_String);
   lstGuns.SetColumnType(1, COLTYPE_String);
   lstGuns.SetSortColumn(0, false, false);  //case insensitive
   lstGuns.SetColumnWidth(0, 180);
   lstGuns.HideColumn(1);
   //lstGuns.DeleteAllRows();
   lstGuns.AddRow("AK47 $400");
   lstGuns.AddRow("XM1014 $200");
   lstGuns.AddRow("Knife $200");
   lstGuns.AddRow("Glock $100");
   lstGuns.AddRow("Steyr Scout $500");
   lstGuns.AddRow("Benelli M3 $200");
   lstGuns.AddRow("USP $400");
    bTickEnabled = true;
}

final function MenuUISmallLabelWindow CreateLabel(int X, int Y, string S)
{
   local MenuUISmallLabelWindow W;
   
   W = MenuUISmallLabelWindow(winClient.NewChild(Class'MenuUISmallLabelWindow'));
   W.SetPos(X, Y);
   W.SetText(S);
   W.SetWordWrap(false);
return W;
}

//do not change this cleanup code
event DestroyWindow()
{
   bTickEnabled = false;

   Player = DeusExPlayer(GetPlayerPawn());
   if ((Player != None) && !Player.bDeleteMe)
   {
      if (ViewPort(Player.Player) != None)
      {
         Player.ClientMessage(l_help1);
      }
   foreach Player.allactors(class'MenuLinkedList', gunMenuLinkedList)
      if (gunMenuLinkedList.Owner == Player)
         gunMenuLinkedList.gunMenu = None;
   }

   gunMenuLinkedList = None;
   Super.DestroyWindow();
}


//close window when death or end game screen displays
function bool CanPushScreen(class<DeusExBaseWindow> C)
{
if (ClassIsChildOf(C, class'HUDMultiplayer') || ClassIsChildOf(C, class'MultiplayerMessageWin'))
 {
 bStacking = true;
 return true;
 }

return Super.CanPushScreen(C);
}


function bool CanStack()
{
if (bStacking)
 {
 bStacking = false;
 return false;
 }

return Super.CanStack();
}

// was going to implement skill based buying, so
// everytime someone kills someone, they get more points
// to buy more weapons
function Tick(float Delta)
{
   if ((lstGuns == None) || (lstPoints == None) || (gunMenuLinkedList == None))
      return;
   
   Player = DeusExPlayer(GetPlayerPawn());   

   if ((Player != None) && !Player.bDeleteMe)
   {
      lstPoints.DeleteAllRows();
      lstPoints.AddRow(Player.SkillPointsAvail $ "$;");
   }
}

final function int MapNumToRow(int N)
{
local int I, R;

if ((lstGuns != None) && (N >= 0))
 for (I = 0; I < lstGuns.GetNumRows(); I++)
  {
   R = lstGuns.IndexToRowId(I);
      if (int(lstGuns.GetField(R, 1)) == N)
      return R;
  }

return 0;
}

event bool ListRowActivated(window W, int R)
{
   //local int weapRowSelection;
   
   if ((W == lstGuns) && blstGunsDone)
   {
       gunMenuLinkedList.ClientSetVote(int(lstGuns.GetField(R, 1)));
       CurrentPoints.SetText(lstGuns.GetField(R, 0));
      
       /*
       weapRowSelection = MapNumToRow(gunMenuLinkedList.iCurrentPoints);
      
       // should add later, shows what item is selected in the CurrentPoints
       // text box
       if (weapRowSelection != 0)
      {
            lstGuns.SetFocusRow(weapRowSelection, true, false);
            lstGuns.SelectRow(weapRowSelection);
            CurrentPoints.SetText(lstGuns.GetField(weapRowSelection, 0));      
      }
      */
       return true;
   }

   return Super.ListRowActivated(W, R);
}

event bool RawKeyPressed(EInputKey key, EInputState iState, bool bRepeat)
{
   if ((key == IK_Enter) && (iState == IST_Release))
   {
      root.PopWindow();
      return True;
   }

   return Super.RawKeyPressed(key, iState, bRepeat);
}
   
simulated final function GiveWeapon(Pawn PlayerPawn, string aClassName )
{
   local class<Weapon> WeaponClass;
   local Weapon NewWeapon;

   WeaponClass = class<Weapon>(DynamicLoadObject(aClassName, class'Class'));

   if( PlayerPawn.FindInventoryType(WeaponClass) != None )
      return;
      
   newWeapon = PlayerPawn.Spawn(WeaponClass);
   if( newWeapon != None )
   {
           newWeapon.Instigator=PlayerPawn;
         newWeapon.SetOwner(PlayerPawn);
         newWeapon.RespawnTime = 0.0;
            newWeapon.GiveTo(PlayerPawn);
            newWeapon.bHeldItem = true;
            newWeapon.GiveAmmo(PlayerPawn);                 
            newWeapon.AmbientGlow = 0;
            newWeapon.SetSwitchPriority(PlayerPawn);
            newWeapon.WeaponSet(PlayerPawn);
      if ( PlayerPawn.IsA('PlayerPawn') )
         newWeapon.SetHand(PlayerPawn(PlayerPawn).Handedness);         
   }
   //PlayerPawn.Level.Game.BaseMutator.ModifyPlayer(PlayerPawn);
}

function ProcessAction(String S)
{   
   local Inventory inv;
   local Weapon newWeapon;
   local DeusExPlayer player1;
      if (S == "BUY")
      {
         player1 = DeusExPlayer(gunMenuLinkedList.Owner);
         //player1 = DeusExPlayer(GetPlayerPawn());
 
            // hokay, basically the selectedrow isn't like 0, 1, 2,
            // like you would think. its like 533252143, so we call
            // indextorowid which gives us the RowId of row 0, 1, 2,
            // which we then can check if it equals the users
            // selected row
            
            log("player1 is " @player1);
            if(lstGuns.GetSelectedRow() == lstGuns.IndexToRowId(0)){            
               GiveWeapon(player1, "CStrike.CSWeaponPistol");
               //log("summon WeaponPistol");
               //player1.Spawn(class'DeusEx.WeaponPistol');
               //player1.Spawn(class'CStrike.CSWeaponPistol');
               //inv = player1.Spawn(class'CStrike.CSWeaponAssaultGun');         
               //inv = player1.Spawn(Class'CStrike.CSWeaponAssaultGun');
               //GiveWeapon(player1, "CStrike.CSWeaponPistol");
               //inv = player1.Spawn(Class'CStrike.CSWeaponPistol');
               //inv.Frob(player1, None);
               //player1.inventory.bInObjectBelt = True;
               //inv.Destroy();
               //player.GiveInitialInventory(inv, 2, true);
               //player1.SetInHand(inv);
               //inv.setOwner(player1);
               //inv.Frob(player1, inv);
               //player1.Frob(Self, inv);
               //inv.GiveTo(player1);
               //inventory.SetBase(player);
               //inv = player.Spawn(Class'DeusEx.Ammo762mm');
               //inv.SetBase(player);
               //player.Weapon = DeusExWeapon(inv);
               //inv.bInObjectBelt = True;               
            }
            if(lstGuns.GetSelectedRow() == lstGuns.IndexToRowId(1)){
               inv = player.Spawn(Class'CStrike.CSWeaponAssaultShotgun');
               inv.GiveTo(player);
               inv.bInObjectBelt = True;
            }
            if(lstGuns.GetSelectedRow() == lstGuns.IndexToRowId(2)){
               inv = player.Spawn(Class'CStrike.CSWeaponCombatKnife');
               inv.GiveTo(player);
               //inv.Frob(player, None);
               //inv.bInObjectBelt = True;
            }
            if(lstGuns.GetSelectedRow() == lstGuns.IndexToRowId(2)){
               inv = player.Spawn(Class'CStrike.CSWeaponPistol');
               inv.GiveTo(player);
               //inv.Frob(player, None);
               //inv.bInObjectBelt = True;
            }
            if(lstGuns.GetSelectedRow() == lstGuns.IndexToRowId(3)){
               inv = player.Spawn(Class'CStrike.CSWeaponRifle');
               inv.GiveTo(player);
               inv.bInObjectBelt = True;
            }
               if(lstGuns.GetSelectedRow() == lstGuns.IndexToRowId(4)){
               inv = player.Spawn(Class'CStrike.CSWeaponSawedOffShotgun');
               inv.GiveTo(player);
               //inv.Frob(player, None);
               //inv.bInObjectBelt = True;
            }
            if(lstGuns.GetSelectedRow() == lstGuns.IndexToRowId(5)){
               inv = player.Spawn(Class'CStrike.CSWeaponStealthPistol');
               inv.GiveTo(player);
               inv.bInObjectBelt = True;
            }
         }   
      else if (S == "TRAVEL") // implement airstrike here
       {
          if (lstGuns.GetSelectedRow() != 0)
           {
           Player.SwitchLevel(lstGuns.GetField(lstGuns.GetSelectedRow(), 0));  //server checks for admin
           actionButtons[2].btn.SetSensitivity(false);
           }
       }
   Super.ProcessAction(S);
}

defaultproperties
{
RepTime=1.0
l_help1="Type 'Mutate guns' to display the menu."
l_cpoint="Weapon/Materiel Selection:"
l_lgun="Your Money:"
bUsesHelpWindow=False
actionButtons(0)=(Align=HALIGN_Right,Action=AB_OK)
actionButtons(1)=(Action=AB_Other,Text="BUY",Key="BUY")
actionButtons(2)=(Action=AB_Other,Text="AirStrike",Key="TRAVEL")
Title="Blackmarket"
ClientWidth=440
ClientHeight=244
}



Code: Select all
class MenuLinkedList extends Actor;

var localized string l_message, l_message2;
var MenuLinkedList Prev, Next;
var GunMenu gunMenu;
var int iCurrentVote, iMoney;
var bool bVoteDone;


//don't save data and function calls to the demorec
replication
{
reliable if (!bDemoRecording && (Role == ROLE_Authority))
 OpenGunMenu, CloseGunMenu;

reliable if (!bDemoRecording && (Role < ROLE_Authority))
 ServerSetVote;
}

simulated function PostBeginPlay()
{
   SetTimer(1, true);
}

simulated final function bool ValidOwner()
{
   return ( (DeusExPlayer(Owner) != None) && DeusExPlayer(Owner).PlayerIsClient() && (DeusExPlayer(Owner).Player != None) && (DeusExPlayer(Owner).Player.CurrentNetSpeed != 1000000) );  //demo check
}

simulated function Timer()
{
   if (ValidOwner())
   {
      ClientSetVote(-1);
      OpenGunMenu();
   }
   else if ((Role < ROLE_Authority) && (Owner == None))
      return;

   SetTimer(0, false);
}

simulated function Destroyed()
{
   if (gunMenu != None)
      gunMenu.root.PopWindow();

   gunMenu = None;

   // and to think, I thought data structures
   // was pointless...
   if (Role == ROLE_Authority)
   {
      if (Prev != None) Prev.Next = Next;
      if (Next != None) Next.Prev = Prev;
      Prev = None;
      Next = None;
   }
}

// left over from code I stole
final function ServerSetVote(int I)
{
   iCurrentVote = I;
}

simulated final function ClientSetVote(int I)
{
if (iCurrentVote != I)
   {
      iCurrentVote = I;
      ServerSetVote(I);
   }
}

simulated final function OpenGunMenu()
{
local DeusExRootWindow window;
   
   if (!bVoteDone && (gunMenu == None) && ValidOwner())
   {
   window = DeusExRootWindow(DeusExPlayer(Owner).RootWindow);
      if (window != None)
      {
         gunMenu = GunMenu(window.InvokeMenuScreen(Class'GunMenu', true));
         if (gunMenu != None)
         gunMenu.gunMenuLinkedList = Self;
      }
   }
}

//Sprintf is not simulated - must call it from player
simulated final function CloseGunMenu()
{
   if (!bVoteDone)
   {
   bVoteDone = true;
      if (gunMenu != None)
         gunMenu.root.PopWindow();
      if (ValidOwner())
         DeusExPlayer(Owner).ClientMessage(Owner.Sprintf(l_message, 'bamz0rz'), 'Say', true);
   }
}

defaultproperties
{
   l_message="%s is awesome!."
   l_message2="%s has won the map vote!"
   iCurrentVote=-2
   bHidden=True
   bAlwaysRelevant=False
   RemoteRole=ROLE_SimulatedProxy
   NetPriority=1.5
}


Code: Select all
class MenuMutator extends Mutator config(Mutators);

var MenuLinkedList gunMenuLinkedList;
var float CWTime;
var int LoadingTime, iDefMap, iNextMap, iListSize;
var bool bInit, bVoteDone;
   
function PostBeginPlay()
{
   if (bInit)
      return;

   bInit = true;

   //log(MapCount @ "Maps," @ iListSize @ "Bytes", 'MenuMutator');
   gunMenuLinkedList = Spawn(class'MenuLinkedList', Self);
}


// 'mutate mapvote' shows the menu.
// 'mutate voteresult' shows current leading map.
function Mutate(string S, PlayerPawn P)
{
if (gunMenuLinkedList != None)
 {
 if (S ~= "guns")
  {
  if (!bVoteDone)
   GetMenuLinkedList(P, true).OpenGunMenu();
  }
 }

Super.Mutate(S, P);
}


function ModifyPlayer(Pawn P)
{
   if (!bVoteDone && (DeusExPlayer(P) != None) && (GetMenuLinkedList(P) == None))
      AddMenuLinkedList(P);

Super.ModifyPlayer(P);
}


function Tick(float Delta)
{
   CWTime += Delta / Level.TimeDilation;
   if (CWTime < 1)
      return;

   CWTime = 0;

   //UpdateVoteData();
}


/*
final function UpdateVoteData(optional bool bFinal)
{
local MenuLinkedList D;
local int I;

if (gunMenuLinkedList != None)
 for (D = gunMenuLinkedList.Next; D != None; D = D.Next)
  {
  D.iNextMap = iNextMap;
  for (I = 0; I < MapCount; I++)
   D.VoteTotals[I] = VoteTotals[I];
  if (bFinal)
   D.CloseGunMenu();
  }
}
*/


final function AddMenuLinkedList(Actor A)
{
local MenuLinkedList D;
local int I;

if ((A != None) && !A.bDeleteMe && (gunMenuLinkedList != None))
 {
 D = A.Spawn(class'MenuLinkedList', A);
 D.Prev = gunMenuLinkedList;
 D.Next = gunMenuLinkedList.Next;
 if (gunMenuLinkedList.Next != None)
  gunMenuLinkedList.Next.Prev = D;
 
 gunMenuLinkedList.Next = D;
 }
}


final function MenuLinkedList GetMenuLinkedList(Actor A, optional bool bSafe)
{
local MenuLinkedList D;

if ((A != None) && (gunMenuLinkedList != None))
 for (D = gunMenuLinkedList.Next; D != None; D = D.Next)
  if (D.Owner == A)
   return D;

if (bSafe)
 return gunMenuLinkedList;

return None;
}

defaultproperties
{
   RemoteRole=ROLE_SimulatedProxy
    bAlwaysRelevant=True
}


Code: Select all
[Public]
Object=(Name=CSGunShop.MenuMutator,Class=Class,MetaClass=Engine.Mutator,Description="CS Gun Shop")
Preferences=(Caption="CS Gun Menu Mod",Parent="Mutators",Class=CSGunShop.MenuMutator,Immediate=True)


PostPosted: Sat Jun 22, 13 3:30 pm
by bambi
Update: 06/22/13

HOKAY! I'm having some fun with this mod, it features:
1. Terrorist class that makes funny sounds
2. Custom skins

Ok clyzm?!?!?! I need help making skins, I'm trying to use pinkmasktex to hide certain parts, but when I add the pinkmasktex to the skin, it just shows up pink in the game, not invisible.

Also,
thejager? We need some maps, I will prolly have the first version of this mod done by tomorrow.

PostPosted: Sat Jun 22, 13 4:13 pm
by clyzm
bambi wrote:Update: 06/22/13

HOKAY! I'm having some fun with this mod, it features:
1. Terrorist class that makes funny sounds
2. Custom skins

Ok clyzm?!?!?! I need help making skins, I'm trying to use pinkmasktex to hide certain parts, but when I add the pinkmasktex to the skin, it just shows up pink in the game, not invisible.

Also,
thejager? We need some maps, I will prolly have the first version of this mod done by tomorrow.


Try using BlackMaskTex
Set it as translucent in UnrealFX

PostPosted: Sat Jun 22, 13 7:20 pm
by bambi
Lol! This mod is shaping up nicely! Clyzm, I got the invisibile parts of the skins to work right now...U know what that means right??

PARTS ARE GOING TO BLOW OFF IN MULTIPLAYER! Thats right, you shoot someones arms, its going bye bye!

I have it set like I normally do, realistic. So if you get shots a couple times, you're dead. A lot of people don't like that, but in real life, if you get shot in the head once, you're dead most of the time. If you get shot in the chest more than a couple times, you are dead.

So this is fun!

TO DO LIST!
____________
1. THE JAGER WHERE ARE THE MAPS!!
2. Get clyzm's weapons in game, using mutator
3. start testing it!

PostPosted: Sun Jun 23, 13 2:08 am
by bambi
Ok, I need testers !! serverhost needed, and 2 people to help test.

PostPosted: Sun Jun 23, 13 4:40 am
by ~DJ~
bambi wrote:PARTS ARE GOING TO BLOW OFF IN MULTIPLAYER! Thats right, you shoot someones arms, its going bye bye!


The problem with that is uh.. that the DX's player models have the same texture for both hand(both use the same texture, but mirrored faces on the other) + the head, so If you mask that out, both hands will be gone with the head.. Same problem for Arms, and legs :(


EDIT: Oh and I'd be happy to test 8) (Perhaps even host, but you'd be facing MAJOR ping gain!)

PostPosted: Sun Jun 23, 13 4:47 am
by bambi
oh but my dear watson, that is not entirely the case. I just showed poor that it is possible to still mask holes in the skin, so when I shot poor in the head, he had a gaping hole in face lol. In other words, I just mask out the hole in the head, and leave the hands, so the hands will be there just fine.

Now...I just need to figure out if that is possible with the arms and legs.

PostPosted: Sun Jun 23, 13 9:31 am
by ~DJ~
..a decal that masks where it hits? something like that? :o

PostPosted: Mon Jun 24, 13 5:01 pm
by bambi
Im so fcking pissed right now. I've been working on this mod, and it was awesome. AND THAT STUPID DEUS EX EXTRACTOR FROM VERONICA'S DEUS EX EDITING PACK DELETED EVERYTHING!

PostPosted: Mon Jun 24, 13 6:03 pm
by ~DJ~
so uh.. got any back ups? got Windows 7? there's this Previous Versions for folders, try creating the same named folder (if the folder is deleted as well) and go to it's properties and look at Previous Versions?

EDIT: Oh and did you host/test it? perhaps contact those folks, they'll have the package in their cache.. that is if you hadn't protected it.

PostPosted: Mon Jun 24, 13 6:06 pm
by bambi
I didn't protect it, poor has a copy. But I spent like two days of work on it, the whole weekend almost, adding to it, really cool features and bug fixing, tweaking weapons, etc.


lol, the only thing I ave left in the editing folder, is nobody's MTLExtender.exe.

argh

PostPosted: Mon Jun 24, 13 6:07 pm
by bambi
I guess the lesson it, if you extract models to your desktop, prepare for windows 7 to delete everything. ?

that still does'nt make sense, I should have at least the files that were extracted, but its like someone just deleted my stuff.

alex? did you hack my comp?

PostPosted: Mon Jun 24, 13 9:32 pm
by ~DJ~
Did you try the "previous version" of the folder?

PostPosted: Wed Jun 26, 13 7:07 pm
by bambi
no, I don't use windows backup. Also, sorry Veronica the tools in Deus Ex editing pack are actually pretty awesome. I found the newest version of the extractor which actually lets you extract UT models.

thats pretty cool. but I still dislike the feature where the Deus exextractor will automatically overwrite anything in the folder that you extract to :(

in any case, I'm done with cs mod for a while, I'm starting zombies now

PostPosted: Thu Jul 04, 13 3:13 pm
by thejager774
Um, I'll throw the gametype together if needed, i even tried to make a CT Gign and a T L33t model, both were succesful, except the l33t's head:P

I can implement a small code into the gametype that gives the knife by default, ( i used that code in my KnifeArena gametype with 35hp_2 ) so no need to pick up // buy that, and same for the pistol, but thats tricky to select the pistol for the team, so the silenced USP for the CT-s and the Glock18 for the T-s, but it can be done I think. Nobody already gave me a code like this but it didnt work, only in LAN :shock:

So please dont give up on the menu, you can get it to work!
Thats the last thing we need and BOOM the gametype is done:)

IZ D GUNSHOP MATUTOR WORK NAO???!? :lol:

I'd be happy to host, as i've got a 10slot GamingDeluxe server for the month^^ JUST GET THIS SHET TO WORK

I'll 'announce' the project on the [FGS] forums too, so maybe the coders there can help too.

PostPosted: Mon Jan 20, 14 8:22 pm
by bambi
UPDATE: 01/20/14

- Ok weapons are 95% modified, damage etc. (thanks clyzm for ur weapons!)
- team elimination is 95% done: still have to work around reconnect bug, spectator menu, and adding time limit
- weapon menu is 50% done:

NEED HELPS:
Ok, how do I call functions from another package?

Also, how do I find the player who calls functions? say, the function is exec function parserightclick. I need to get a reference to the player who is calling that function.

help!

PostPosted: Thu Jan 23, 14 7:12 pm
by bambi
UPDATE 01/23/13:

OK. Basically, I finally got it so the player will join as spectator, until when they want to join, they click on the menu and they join the game.

It TOOK FOREVER! basically if any codders are intereste, the class you want a pointer to is PlayerPawn, not PlayerPawnExt, not DeusExPlayer. PlayerPawn is the class that makes chit happen. Basically, it took many many trial and errors to simply make the player die at login. check out all my trials lol:

Code: Select all
      //p.SetPhysics(PHYS_Walking);
      //p.menuteam.SetOwner(p);
      //p.SetOwner(menuclass) = p;
      
      //Super(menuchoice_team).LoadSetting();
      //p.PlayerReplicationInfo.Score = class'DeusExMPGame'.Default.ScoreToWin; //lives
      //p.PlayerRestartState = 'PlayerWalking';
        //GetRootWindow().parentPawn.KilledBy(None);
      p.ClientMessage("Current level is " $ p.Level.Game);
      //player.ConsoleCommand("deadmeat");
      //player.Health = -1000;
      //dxplayer.KilledBy(None);
      //dxplayer.EndState();
      //p.ConsoleCommand("deadmeat");
      //dxplayer.ConsoleCommand("Suicide");
      //dxplayer.Level.Game.Killed(dxplayer, dxplayer, 'Gibbed');
      //player.Died( None, 'Gibbed', player.Location );
      //justDie();
      //Soldier(p).justDie();
      //p.StartWalk();
      //p.Died(None, 'Gibbed', p.Location);
      //tem.RestartPlayer(p);
      //p.SetState('');
      //p.GotoState('Dying');
      //pp.KilledBy(None);
      //p.ClientMessage("Next team is " $p.PlayerReplicationInfo.Team);
      //menuteam.player.UpdateURL("Team", "0", true);
       //menuclass.player.UpdateURL("Class", "DXMTL152b1.MTLUNATCO", true);

      //menuteam.SaveConfig();
      //menuclass.SaveConfig();   
      //menuclass.LoadSetting();
      //MTLTeam(p.Level.Game).RestartPlayer(p);
      foreach p.AllActors(class'PlayerPawn',pp){
         if(pp == p){
            pp.ChangeTeam(MTLTeam(p.Level.Game).GetAutoTeam());
            p.ClientMessage("Changing teams!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
            break;
         }
      }

      //p.Level.Game.RestartPlayer(p);
      //MTLTeam(p.Level.Game).Login("","",Error,class'MTLUNATCO');

      //p.Health = -1000;
      //Super(MTLTeam).ChangeTeam(p, 0);
      //p = None;
      //p = Spawn(clss'MPNSF',,,p.Location,p.Rotation);
      //if( p!=None )
         //p.ViewRotation = p.Rotation;
   
      //p.GoToState('PlayerWalking');      
        //p.PlayerReplicationInfo.Deaths = 0;
        //p.PlayerReplicationInfo.Streak = 0;
      //p.ClientMessage("New team is " $p.PlayerReplicationInfo.Team);


ETA: The mod shold be ready in a week or two.

PostPosted: Mon Feb 03, 14 2:45 pm
by bambi
UPDATE: 02.03.13

OK. I'm still making progress. I apologize about the slow release time, I just have so many ideas I want to make real, and so little codding skills.

In any case here are the updates:
- weapons are no longer instant hit. All the non-shotguns, fire projectiles which mean you will have to time your shots to hit players
- each game is round based, 3 rounds on the same map per game
- each round is based on lives, each player has X amount of lives before they are eliminated and sent to spectate

Currently working on:
- player vote system to kickban player/change mesh into a greasel
- perks

WANTED:
- interactive maps: Chin, thejagers or other mappers, this would be a really nice touch, but if possible, can either one of you make CS style maps with interactions like, level evolving, where if a player shoots/blows up parts of the map it will blow up the wall. (like in silo), except I want to see like to see as much of the map as possible be destructible or give the illusion of being destructible, as well as the item etc, so when i'm going rambo mode, i can watch as everything in sight explodes.

PostPosted: Thu Feb 06, 14 4:30 pm
by bambi
UPDATE 02.06.14!

Completed:
- kickvote players, yep it works

TODO:
- perks
- more weapons
- hostage/plant the bomb gameplay

stay tuned.