News UnrealEd Files Mods FragBU Liandri Archives
BeyondUnreal Forums

Go Back   BeyondUnreal Forums > Unreal Development > Coding

Reply
 
Thread Tools Display Modes
Old 27th Oct 2001, 07:19 PM   #1
FireSlash
Whats a FireSlash?
 
FireSlash's Avatar
 
Join Date: Feb. 3rd, 2001
Location: Central Ohio
Posts: 4,300
Unhappy Argh! picking up more than one armor piece?

im working on a Armor Shard, and it should be able to pickup more than one at a time... heres my code, i cant figure out where it checks if the item is already present... (just using the armor2 code)
PHP Code:
//=============================================================================
// Armor Shard.
//=============================================================================
class AShard extends TournamentPickup;

#exec MESH IMPORT MESH=AShard ANIVFILE=MODELS\AShard_a.3d DATAFILE=MODELS\AShard_d.3d X=0 Y=0 Z=0
#exec MESH ORIGIN MESH=AShard X=0 Y=0 Z=0

#exec MESH SEQUENCE MESH=AShard SEQ=All STARTFRAME=0 NUMFRAMES=30
//#exec MESH SEQUENCE MESH=AShard SEQ=??? STARTFRAME=0 NUMFRAMES=30

#exec MESHMAP NEW MESHMAP=AShard MESH=AShard
#exec MESHMAP SCALE MESHMAP=AShard X=0.1 Y=0.1 Z=0.2

#exec TEXTURE IMPORT NAME=JSHD1 FILE=AShardtex.pcx GROUP=Skins FLAGS=2
#exec TEXTURE IMPORT NAME=JSHD1 FILE=AShardtex.pcx GROUP=Skins PALETTE=JSHD1
#exec MESHMAP SETTEXTURE MESHMAP=AShard NUM=1 TEXTURE=JSHD1

function bool HandlePickupQueryinventory Item )
{
    
local inventory S;

    if ( 
item.class == class ) 
    {
        
Pawn(Owner).FindInventoryType(class'UT_Shieldbelt');    
        if (  
S==None )
        {
            if ( 
Charge<Item.Charge )    
                
Charge Item.Charge;
        }
        else
            
Charge Clamp(S.Default.Charge S.ChargeChargeItem.Charge );
        if (
Level.Game.LocalLog != None)
            
Level.Game.LocalLog.LogPickup(ItemPawn(Owner));
        if (
Level.Game.WorldLog != None)
            
Level.Game.WorldLog.LogPickup(ItemPawn(Owner));
        if ( 
PickupMessageClass == None )
            
Pawn(Owner).ClientMessage(PickupMessage'Pickup');
        else
            
Pawn(Owner).ReceiveLocalizedMessagePickupMessageClass0NoneNoneSelf.Class );
        
Item.PlaySound (PickupSound,,2.0);
        
Item.SetReSpawn();
        return 
true;                
    }
    if ( 
Inventory == None )
        return 
false;

    return 
Inventory.HandlePickupQuery(Item);
}

function 
inventory SpawnCopypawn Other )
{
    
local inventory CopyS;

    
Copy Super.SpawnCopy(Other);
    
Other.FindInventoryType(class'UT_Shieldbelt');    
    if ( 
!= None )
    {
        
Copy.Charge Min(Copy.ChargeS.Default.Charge S.Charge);
        if ( 
Copy.Charge <= )
        { 
            
S.Charge -= 1;
            
Copy.Charge 1;
        }
    }
    return 
Copy;
}

defaultproperties
{
     
bDisplayableInv=True
     PickupMessage
="You got an Armor Shard."
     
ItemName="Armor Shard"
     
RespawnTime=20.000000
     Charge
=5
     PickupViewMesh
=AShard
     ArmorAbsorption
=5
     bIsAnArmor
=True
     AbsorptionPriority
=7
     MaxDesireability
=1.000000
     PickupSound
=Sound'botpack.Pickups.ArmorUT'
     
Mesh=AShard
     AmbientGlow
=64
     CollisionHeight
=11.000000

__________________
Theory is when you know everything and nothing works.
Practice is when things work, and no one knows why.
Here we combine theory and practice.
Nothing works and no one knows why.
FireSlash is offline   Reply With Quote
Old 27th Oct 2001, 09:30 PM   #2
Magus
Registered User
 
Join Date: Oct. 7th, 2001
Posts: 69
Well I dont have much to do at the moment so i think i might as well be of some use. The function that is called when you pickup an item to check to see if you have it and could pick another up or not is HandlePickupQuery(....).

Here is basicly what HandlePickupQuery should be to pickup multiply copies, (note this should work)

function bool HandlePickupQuery( inventory Item )
{
local inventory S;

if ( item.class == class )
{
S = Pawn(Owner).FindInventoryType(class'UT_Shieldbelt');

//This the section that should be modified to take advantage of multiply copies
if ( S==None )
{
//if the item has less then 150 charge add the new items charge to the old charge
if ( Charge < 150) Charge += Item.Charge;
// this limits the charge so the player can't have over 150 armor
if (Charge > 150) Charge = 150;
}
else
{
//If the player has a shieldbelt, give the charge to it instead since it was the item with the greatest armor compacity in ut
Charge = Clamp(S.Default.Charge - S.Charge, Charge, Item.Charge );
}

if (Level.Game.LocalLog != None)
Level.Game.LocalLog.LogPickup(Item, Pawn(Owner));
if (Level.Game.WorldLog != None)
Level.Game.WorldLog.LogPickup(Item, Pawn(Owner));
if ( PickupMessageClass == None )
Pawn(Owner).ClientMessage(PickupMessage, 'Pickup');
else
Pawn(Owner).ReceiveLocalizedMessage( PickupMessageClass, 0, None, None, Self.Class );
Item.PlaySound (PickupSound,,2.0);
Item.SetReSpawn();
return true;
}
if ( Inventory == None )
return false;

return Inventory.HandlePickupQuery(Item);
}


You may want to consider have ArmorAbsorption=100, to test the armor with. Since 5 absorbs very little damage, to see if it is working right, even with that i recommend at least around 50 for this particular type of item in the long run, else the item will be of little use even if you had 150 Armor.
Magus is offline   Reply With Quote
Old 27th Oct 2001, 09:35 PM   #3
FireSlash
Whats a FireSlash?
 
FireSlash's Avatar
 
Join Date: Feb. 3rd, 2001
Location: Central Ohio
Posts: 4,300
considering the charge is 5, seems like 10 is < 150...
__________________
Theory is when you know everything and nothing works.
Practice is when things work, and no one knows why.
Here we combine theory and practice.
Nothing works and no one knows why.
FireSlash is offline   Reply With Quote
Old 28th Oct 2001, 03:14 AM   #4
Wormbo
 
Wormbo's Avatar
 
Join Date: Jun. 4th, 2001
Location: Germany
Posts: 5,783
Exclamation

You should keep in mind that Armor2 and ThighPads store their charge independently (max: Armor2 = 100, ThighPads = 50), so now there is a maximum of 300 points if you use all three kind of armor.
Wormbo is offline   Reply With Quote
Old 28th Oct 2001, 04:01 AM   #5
Lemoni
The Philosapher
 
Lemoni's Avatar
 
Join Date: Feb. 17th, 2001
Posts: 628
hears a good tip

do u have chaos Ut?, why dont u look in the code for info
__________________
Yesterday is history,
Tommorow is a mistory,
the now is a gift thats why its the present
http://members.lycos.co.uk/project_ut436/
Lemoni is offline   Reply With Quote
Old 28th Oct 2001, 08:56 AM   #6
Kangus
Zombie on your pwn!
 
Kangus's Avatar
 
Join Date: Jan. 29th, 2001
Location: Illinois, USA
Posts: 978
my only comment is that the dirty wrotten shieldbelt will remove all the armor no matter what.... dirty wrotten shieldbelt....
__________________
--Kangus
Kangus is offline   Reply With Quote
Old 28th Oct 2001, 09:00 AM   #7
FireSlash
Whats a FireSlash?
 
FireSlash's Avatar
 
Join Date: Feb. 3rd, 2001
Location: Central Ohio
Posts: 4,300
.....
*waits for a helpful comment*
__________________
Theory is when you know everything and nothing works.
Practice is when things work, and no one knows why.
Here we combine theory and practice.
Nothing works and no one knows why.
FireSlash is offline   Reply With Quote
Old 28th Oct 2001, 05:32 PM   #8
Papapishu
我是康
 
Papapishu's Avatar
 
Join Date: Jun. 18th, 2001
Location: void
Posts: 2,043
base it on the healthvial code instead, but switch it from upgrading you health to upgrading you armor...
Papapishu is offline   Reply With Quote
Old 28th Oct 2001, 07:05 PM   #9
FireSlash
Whats a FireSlash?
 
FireSlash's Avatar
 
Join Date: Feb. 3rd, 2001
Location: Central Ohio
Posts: 4,300
that code uses a HealingAmount=5 property, which i dont know the armor equiv.

is there a if P.Armor property i dont know about?
__________________
Theory is when you know everything and nothing works.
Practice is when things work, and no one knows why.
Here we combine theory and practice.
Nothing works and no one knows why.
FireSlash is offline   Reply With Quote
Old 28th Oct 2001, 07:35 PM   #10
Eater1
Coder
 
Join Date: Oct. 22nd, 2000
Location: You really don't want to know... trust me...
Posts: 176
Nope. This has nothing to do with the health vial. The health vial just adds a little to your health. You could, of course, make yours an "armor repairing" shard that will check if you have, say, body armor in your inventory (Armor2) and adds 5 to that, but if you want this to be a true armor shard, Magus's code should work.

Eater.
Eater1 is offline   Reply With Quote
Old 28th Oct 2001, 07:44 PM   #11
FireSlash
Whats a FireSlash?
 
FireSlash's Avatar
 
Join Date: Feb. 3rd, 2001
Location: Central Ohio
Posts: 4,300
hmm. whoops! i didnt realise he posted new code, i thought he was documenting the code i posted, heh. shoudent have been foruming soo late...
__________________
Theory is when you know everything and nothing works.
Practice is when things work, and no one knows why.
Here we combine theory and practice.
Nothing works and no one knows why.
FireSlash is offline   Reply With Quote
Old 28th Oct 2001, 07:59 PM   #12
FireSlash
Whats a FireSlash?
 
FireSlash's Avatar
 
Join Date: Feb. 3rd, 2001
Location: Central Ohio
Posts: 4,300
ok, using magus's code, it now picks up more armor, but the armor isnt used. it never goes down till i die, no matter how much damage i take.
__________________
Theory is when you know everything and nothing works.
Practice is when things work, and no one knows why.
Here we combine theory and practice.
Nothing works and no one knows why.
FireSlash is offline   Reply With Quote
Old 28th Oct 2001, 08:08 PM   #13
FireSlash
Whats a FireSlash?
 
FireSlash's Avatar
 
Join Date: Feb. 3rd, 2001
Location: Central Ohio
Posts: 4,300
fixed. thanks guys.
__________________
Theory is when you know everything and nothing works.
Practice is when things work, and no one knows why.
Here we combine theory and practice.
Nothing works and no one knows why.
FireSlash is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -5. The time now is 03:41 PM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.

Copyright ©1998 - 2012, BeyondUnreal, Inc.
Privacy Policy | Terms of Use
Bandwidth provided by AtomicGamer