Frikbots & Skins
Frikbots & Skins
Does anyone know how to give custom skins to Frikbots?
When I spawn them in QW the always use the base skin.
When I spawn them in QW the always use the base skin.
Welcome to the Overlook Hotel: The-Overlook-Hotel.game-server.cc
-
- InsideQC Staff
- Posts: 1120
- Joined: Sat Oct 16, 2004 3:34 pm
-
- InsideQC Staff
- Posts: 1120
- Joined: Sat Oct 16, 2004 3:34 pm
You need to change this code found in bot_qw.qc:
Good luck!
Code: Select all
// FIXME: do teams properly
// note this has no effect on infokey
WriteByte(2, 92 ); // \
WriteByte(2, 115); // s
WriteByte(2, 107); // k
WriteByte(2, 105); // i
WriteByte(2, 110); // n
WriteByte(2, 92); // \
WriteByte(2, 98); // b
WriteByte(2, 97); // a
WriteByte(2, 115); // s
WriteByte(2, 101); // e
WriteByte(2, 92); // \
First a disclaimer:
1) My only real experience in QW modding is from my stupid QW speedmod, FishQuake.
2) I'm not actually looking at the FBX code right now, just working from FrikaC's post, thusly I have no way of actualy checking wheter or not this will work.
3) I am a muppet.
That said:
So if you want one bot to use skin 'foo', you'd do:
Taking this further you could try this:
(And so on..)
Of course, I could be wrong. =)
1) My only real experience in QW modding is from my stupid QW speedmod, FishQuake.
2) I'm not actually looking at the FBX code right now, just working from FrikaC's post, thusly I have no way of actualy checking wheter or not this will work.
3) I am a muppet.
That said:
Code: Select all
97 a 104 h 111 o 118 v
98 b 105 i 112 p 119 w
99 c 106 j 113 q 120 x
100 d 107 k 114 r 121 y
101 e 108 l 115 s 122 z
102 f 109 m 116 t
103 g 110 n 117 u
Code: Select all
WriteByte(2, 92 ); // \
WriteByte(2, 115); // s
WriteByte(2, 107); // k
WriteByte(2, 105); // i
WriteByte(2, 110); // n
WriteByte(2, 92); // \
WriteByte(2, 102); // f
WriteByte(2, 111); // o
WriteByte(2, 111); // o
WriteByte(2, 92); // \
Code: Select all
WriteByte(2, 92 ); // \
WriteByte(2, 115); // s
WriteByte(2, 107); // k
WriteByte(2, 105); // i
WriteByte(2, 110); // n
WriteByte(2, 92); // \
if (somenumber == 0)
{
WriteByte(2, 98); // b
WriteByte(2, 97); // a
WriteByte(2, 115); // s
WriteByte(2, 101); // e
}
else if (somenumber == 1)
{
WriteByte(2, 102); // f
WriteByte(2, 111); // o
WriteByte(2, 111); // o
}
else if (somenumber == 2)
{
WriteByte(2, 98); // b
WriteByte(2, 97); // a
WriteByte(2, 114); // r
}
WriteByte(2, 92); // \
Of course, I could be wrong. =)
Another step to take that to would be to make use of string manipulation stuff in newer engines
but of course that's probably not desirable because backwards compatibility would be shot
If it's not an issue then you could rather easily write a function that iterates through every letter in the skin and substitues it for the number and does the writebyte accordingly.
What a hassle!
but of course that's probably not desirable because backwards compatibility would be shot
If it's not an issue then you could rather easily write a function that iterates through every letter in the skin and substitues it for the number and does the writebyte accordingly.
What a hassle!
Benjamin Darling
http://www.bendarling.net/
Reflex - In development competitive arena fps combining modern tech with the speed, precision and freedom of 90's shooters.
http://www.reflexfps.net/
http://www.bendarling.net/
Reflex - In development competitive arena fps combining modern tech with the speed, precision and freedom of 90's shooters.
http://www.reflexfps.net/
Jesus is a crank. He will use a hack like totally different models.
http://en.wikipedia.org/wiki/Crank_%28person%29
http://en.wikipedia.org/wiki/Crank_%28person%29
You are absolutely correct. As far as actual implementation, somenumber can be self.b_num, which is the bot template number for names & colors. Also, if you want to make the code FrikQCC/fteqcc specific you can use single quoted letters instead of the ascii-code.Supa wrote:First a disclaimer:
1) My only real experience in QW modding is from my stupid QW speedmod, FishQuake.
2) I'm not actually looking at the FBX code right now, just working from FrikaC's post, thusly I have no way of actualy checking wheter or not this will work.
3) I am a muppet.
That said:
So if you want one bot to use skin 'foo', you'd do:Code: Select all
97 a 104 h 111 o 118 v 98 b 105 i 112 p 119 w 99 c 106 j 113 q 120 x 100 d 107 k 114 r 121 y 101 e 108 l 115 s 122 z 102 f 109 m 116 t 103 g 110 n 117 u
Taking this further you could try this:Code: Select all
WriteByte(2, 92 ); // \ WriteByte(2, 115); // s WriteByte(2, 107); // k WriteByte(2, 105); // i WriteByte(2, 110); // n WriteByte(2, 92); // \ WriteByte(2, 102); // f WriteByte(2, 111); // o WriteByte(2, 111); // o WriteByte(2, 92); // \
(And so on..)Code: Select all
WriteByte(2, 92 ); // \ WriteByte(2, 115); // s WriteByte(2, 107); // k WriteByte(2, 105); // i WriteByte(2, 110); // n WriteByte(2, 92); // \ if (somenumber == 0) { WriteByte(2, 98); // b WriteByte(2, 97); // a WriteByte(2, 115); // s WriteByte(2, 101); // e } else if (somenumber == 1) { WriteByte(2, 102); // f WriteByte(2, 111); // o WriteByte(2, 111); // o } else if (somenumber == 2) { WriteByte(2, 98); // b WriteByte(2, 97); // a WriteByte(2, 114); // r } WriteByte(2, 92); // \
Of course, I could be wrong. =)