Note: LucasForums Archive Project
The content here was reconstructed by scraping the Wayback Machine in an effort to restore some of what was lost when LF went down. The LucasForums Archive Project claims no ownership over the content or assets that were archived on archive.org.

This project is meant for research purposes only.

a noob questions :)

Page: 1 of 1
 alexx860
01-31-2004, 3:00 PM
#1
hi all, i am begginer in JA Coding, so i have a question :
it's possible to make the disruptor fire bounce on wall, if yes, how ???

thx in advance
alexx860 :D
 MasterSidious
01-31-2004, 6:26 PM
#2
You could check out bg_weapons.c and g_weapons.h, don't know about doing this with that gun though :( ;)
 razorace
02-01-2004, 9:57 AM
#3
You can't without doing some serious coding changes to the SDK code.
 alexx860
02-01-2004, 10:02 AM
#4
ok, thx for answers, but i have another question : how to remove an item from the player ? because i have made a command to give the jetpack to the player, but how remove it ??
 razorace
02-02-2004, 2:35 PM
#5
Well, I beleive the jetpack disappears when the player dies.
 VSYoda1
02-02-2004, 6:50 PM
#6
if( ent->client->ps.stats[STAT_HOLDABLE_ITEM] & HI_JETPACK )
{
ent->client->ps.stats[STAT_HOLDABLE_ITEM] ^= HI_JETPACK ;
}

I think that will work.
 alexx860
02-11-2004, 10:17 AM
#7
didn't work
 razorace
02-12-2004, 8:27 AM
#8
ent->client->ps.stats[STAT_HOLDABLE_ITEM] ^= HI_JETPACK;

What's the ^= operator? (x = x ^ y) = (x ^= y)?

The correct math operator to remove a flag like that is...

ent->client->ps.stats[STAT_HOLDABLE_ITEM] &= ~HI_JETPACK;
 RenegadeOfPhunk
02-12-2004, 8:55 AM
#9
The ^ operator is Exclusive OR (XOR) - with the following truth table:

A B R

0 0 0
0 1 1
1 0 1
1 1 0

This code:


if( ent->client->ps.stats[STAT_HOLDABLE_ITEM] & HI_JETPACK )
{
ent->client->ps.stats[STAT_HOLDABLE_ITEM] ^= HI_JETPACK ;
}


...would toggle the HI_JETPACK bit to off, if it was on. So actually, even though it's a bit OTT (Razor's code is the more correct and easier way!), this code should actually succeed in turning off that bit.

I think the problem may lie in when you are running this code - I don't think you've specified this anywhere. Also, you probably need to clear the EF_JETPACK flag at the same time...

i.e.

ent->client->ps.stats[STAT_HOLDABLE_ITEM] &= ~HI_JETPACK;
ent->client->ps.eFlags &= ~EF_JETPACK;
 Azymn
02-13-2004, 9:25 PM
#10
If you wanna use the same command to give the jetpack as take it away then XORing is the way to go:


if( !strcmp(cmd, "givejetpack"))
{
ent->client->ps.stats[STAT_HOLDABLE_ITEM] ^= HI_JETPACK;
ent->client->ps.eFlags ^= EF_JETPACK;
}


That command will give them a jetpack if they don't have one, and take it away if they do. The only problem is if the HI_JETPACK and EF_JETPACK bits get out of sync with each other. =]
Page: 1 of 1