

Login Issues
Forgot password?Activate Issues
Account activation email not received? Wrong account activation email used?Other Problems?
Contact Support - Help Center Get help on the UGX Discord. Join it now!![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
![]() Box Mappers Elite |
Okay, I got it to work the way I was saying. The one time it didn't work was when I forgot to include the second weapon file in my mod.csv, lol, doh!
![]() | Has released one or more maps to the UGX-Mods community. |
![]() | Has shown effort and knowledge in the area of scripting while being a part of the UGX-Mods community. |
![]() BO3 Modtools Alpha | This user has access to the Black Ops 3 Modtools Alpha |
It still plays the pullout anim after finishing.
http://www.youtube.com/watch?v=thpflOvOF4I&feature=youtu.be
![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
![]() Box Mappers Elite |
![]() | Has released one or more maps to the UGX-Mods community. |
![]() | Has shown effort and knowledge in the area of scripting while being a part of the UGX-Mods community. |
![]() BO3 Modtools Alpha | This user has access to the Black Ops 3 Modtools Alpha |
Ahh. Well, thanks for that. Could you explain BluntStuffy's way? I didn't quite understand it?
![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
![]() Box Mappers Elite |
i remember from the one-in-the-chamber thing i did in xmas-warehouse that when i used the ballista in the one-in-the-chamber challenge, it wouldn't use the rechamber anim.



![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
![]() | Has shown excellence and experience in the area of custom scripting in the UGX-Mods community. |
![]() Oil Rig Beta Access |
level thread m1216_rechamber();// adjust LowAmmoWarningTreshold and CancelAutoHolsterWhenEmpty in the weaponfile for this to work!
m1216_rechamber()
{
flag_wait( "all_players_connected" );
player = get_players();
array_thread(player,::m1216_init);
}
m1216_init()
{
self endon( "death" );
self endon( "disconnect" );
// The start values, also need one for the upgraded if that has different ammo-count
self.m1216_equiped = false;
self.m1216_clip = 16;
self.m1216_stock = 80;
while(1)
{
gun = self getcurrentweapon();
if( gun != "zombie_m1216" && gun != "zombie_m1216_upgraded" && self.m1216_equiped ) // CHANGE NAME OF THE WEAPON_FILE HERE!!
{
self.m1216_equiped = false;
self notify( "end_m1216_watch" );
}
else if( gun != "zombie_m1216" && gun != "zombie_m1216_upgraded" ) // CHANGE NAME OF THE WEAPON_FILE HERE!!
{
wait 0.3;
continue;
}
else if( !self.m1216_equiped )
{
self.m1216_equiped = true;
self thread watch_for_m1216_fire();
}
wait 0.1;
}
}
watch_for_m1216_fire()
{
self endon( "death" );
self endon( "disconect" );
self endon( "end_m1216_watch" );
while(1)
{
gun = self getcurrentweapon();
// First figure out what we should set the clip-size to so the rechamber is correct
// AFTER every third shot we want the clipsize to be 2, otherwise it should be 1
// We dont want any bullets in stock, to prevent starting the reload
if( self.m1216_clip == 16 )
{
// we dont need to set 12, 8, and 4 because we put in two bullets before those..
self setweaponammoclip( gun, 1 );
self setweaponammostock( gun, 0 );
}
else if( self.m1216_clip == 13 || self.m1216_clip == 9 || self.m1216_clip == 5 )
{
self setweaponammoclip( gun, 2 );
self setweaponammostock( gun, 0 );
}
else if( self.m1216_clip != 12 && self.m1216_clip != 8 && self.m1216_clip != 4 )
{
self setweaponammoclip( gun, 1 );
self setweaponammostock( gun, 0 );
}
else if( self.m1216_clip == 12 || self.m1216_clip == 8 || self.m1216_clip == 4 )
{
self setweaponammostock( gun, 0 );
}
self iprintln( "Player m1216 clip count: ^1"+self.m1216_clip );
self iprintln( "Player m1216 ammo stock: ^2"+self.m1216_stock );
self waittill( "weapon_fired", weap_name );
self.m1216_clip--;
wait 0.15; // this wait has to be a bit bigger then the weapons fire-time
if( self.m1216_clip == 0 && self.m1216_stock > 0 )
{
// let the game reload
self setweaponammostock( gun, 16 );
if( self.m1216_stock <= 16 )
{
self.m1216_clip = self.m1216_stock;
self.m1216_stock = 0;
}
else
{
self.m1216_clip+=16;
self.m1216_stock-=16;
}
self waittill( "reload" );
}
else if( self.m1216_clip == 0 && self.m1216_stock == 0 )
{
// Force switching to another weapon if we have one, since we disabled that in the weapon-file
weapList = self GetWeaponsListPrimaries();
if( weaplist.size > 1 )
{
for( i=0 ; i< weaplist.size ; i++ )
{
if( weaplist[i] != gun )
{
self switchtoweapon( weaplist[i] );
break;
}
}
}
}
}
}
m1216_rechamber()
{
flag_wait( "all_players_connected" );
player = get_players();
array_thread(player,::m1216_init);
}
m1216_init()
{
self endon( "death" );
self endon( "disconnect" );
rechambered = false;
while(1)
{
self waittill( "weapon_fired" );
gun = self getcurrentweapon();
if( gun != "zombie_shotgun" && gun != "zombie_shotgun_upgraded" )
{
wait 0.3;
continue;
}
clip = self getweaponammoclip( gun );
if( ( clip == 12 || clip == 8 || clip == 4 ) && !rechambered )
{
iprintln( "2Rechamber" );
rechambered = true;
self disableweapons();
wait 0.3;
self enableweapons();
}
if( ( clip < 12 || clip < 8 || clip < 4 ) && rechambered )
{
rechambered = false;
}
wait 0.1;
}
}
![]() | |
![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
![]() | Has shown excellence and experience in the area of custom scripting in the UGX-Mods community. |
![]() BO3 Modtools Alpha | This user has access to the Black Ops 3 Modtools Alpha |


![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
![]() | Has shown excellence and experience in the area of custom scripting in the UGX-Mods community. |
![]() Oil Rig Beta Access |
Blunt you kill the function on death but you don't recall it on spawn again
It's the same mistake I found with @Ege115 's code a lot
![]() | Has released one or more maps to the UGX-Mods community. |
![]() | Has shown effort and knowledge in the area of scripting while being a part of the UGX-Mods community. |
![]() BO3 Modtools Alpha | This user has access to the Black Ops 3 Modtools Alpha |
![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
![]() | Has shown excellence and experience in the area of custom scripting in the UGX-Mods community. |
![]() Oil Rig Beta Access |
blunt, the only other thing I was thinking, which I know nothing about yet, but I know you do, is using the alt weapon. Do you know how to switch to it using the altraise anim instead, via script? Cause you could then do that with the spin, like my 2 weapon file way, but not have issues when switching back with the raise anim. I just don't know how to switch to alt weapon via script.
![]() | Has released one or more maps to the UGX-Mods community. |
![]() | Has shown effort and knowledge in the area of scripting while being a part of the UGX-Mods community. |
![]() BO3 Modtools Alpha | This user has access to the Black Ops 3 Modtools Alpha |
guess you could just use switchtoweapon() as long as they are set up as alt-weapon and primary weapon in the weapon-files then they will use the alt-raise alt-drop anims
//thread ithaca();//put this up in function threads, you know
ithaca(){
flag_wait("all_players_connected");
players = get_players();
for(i=0;i<players.size;i++){
players[i] thread ithaca_check();
players[i] thread watch_ithaca();
players[i] thread HandleClientDvar();
}
}
ithaca_check() {
self endon("disconnect");
self.ithaca_fires = 0;
for(;;) {
self waittill("weapon_fired");
weapon = self GetCurrentWeapon();
if(issubstr(weapon, "ithica")) {//this will check for upgraded then too, but follow next note
if(self.ithica_fires >= 3) {
clip = self GetWeaponAmmoClip(weapon);
if(clip>0){
self switchtoweapon(weapon+"_alt");//change alt weapon name to same name with _alt
self DisableWeaponCycling();
wait(.4);// = alt raise time minus a little
self EnableWeaponCycling();
self switchtoweapon(weapon);
}
self.m1216_fires = 0;
}
else {
self.ithaca_fires++;
self IPrintLnBold("Ithaca Shot " + self.ithaca_fires + " Times");
}
}
}
}
watch_ithaca(){
self endon("disconnect");
while(1){
self waittill("reload");
weapon = self GetCurrentWeapon();
if(weapon=="ithaca_zm") self.ithaca_fires = 0;
}
}
HandleClientDvar(){//this part is for the menu script
self endon("disconnect");
self setclientdvar("hidealt",false);
while(1){
self waittill("weapon_change_complete" );
hidealt = false;
weapons = self GetWeaponsListPrimaries();
for(i=0;i<weapons.size;i++){
if(issubstr(weapons[i], "ithica")){
hidealt = true;
break;
}
}
self setclientdvar("hidealt", hidealt);
}
}
itemDef // Left
{
name "slot3"
rect (-DPAD_ICON_SPACING - DPAD_BASE_SIZE) DPAD_ICON_Y DPAD_BASE_SIZE DPAD_BASE_SIZE
ownerdraw CG_PLAYER_ACTIONSLOT_3
forecolor 1 1 1 HUD_ALPHA
visible 1
decoration
textstyle ITEM_TEXTSTYLE_SHADOWED
textalign ITEM_ALIGN_LEFT
textscale TEXTSIZE_SMALL
textfont UI_FONT_DEFAULT
}
itemDef
{
rect (-DPAD_ICON_SPACING - DPAD_BASE_SIZE_HALF) DPAD_LABEL_Y 1 1
exp text ( "[" + KeyBinding( "+actionslot 3" ) + "]" );
forecolor 1 1 1 0
exp forecolor A ( HUD_ALPHA * HudFade( "dpad" ) )
textfont UI_FONT_OBJECTIVE
textscale 0.25
textalign ITEM_ALIGN_CENTER
textstyle ITEM_TEXTSTYLE_SHADOWED
visible when( ActionSlotUsable( 3 ) )
decoration
}
itemDef // Left
{
name "slot3"
rect (-DPAD_ICON_SPACING - DPAD_BASE_SIZE) DPAD_ICON_Y DPAD_BASE_SIZE DPAD_BASE_SIZE
ownerdraw CG_PLAYER_ACTIONSLOT_3
forecolor 1 1 1 HUD_ALPHA
visible 1
decoration
textstyle ITEM_TEXTSTYLE_SHADOWED
textalign ITEM_ALIGN_LEFT
textscale TEXTSIZE_SMALL
textfont UI_FONT_DEFAULT
visible when( ActionSlotUsable( 3 ) && !dvarBool( hidealt ))
}
itemDef
{
rect (-DPAD_ICON_SPACING - DPAD_BASE_SIZE_HALF) DPAD_LABEL_Y 1 1
exp text ( "[" + KeyBinding( "+actionslot 3" ) + "]" );
forecolor 1 1 1 0
exp forecolor A ( HUD_ALPHA * HudFade( "dpad" ) )
textfont UI_FONT_OBJECTIVE
textscale 0.25
textalign ITEM_ALIGN_CENTER
textstyle ITEM_TEXTSTYLE_SHADOWED
visible when( ActionSlotUsable( 3 ) && !dvarString( hidealt ))
decoration
}
![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
![]() Box Mappers Elite |
Well hell then. That fixes it completely. Other than it takes two weapon files.
Make the ithaca_check_zm and the ithaca_zm altweapons, and make the altraise time match the spin time and make it the altraise anim. Don't forget to remove the alt drop time for alt weapon and alt raise for primary. Adjust the script as needed for timing
![]() | Has released one or more maps to the UGX-Mods community. |
![]() | Has shown effort and knowledge in the area of scripting while being a part of the UGX-Mods community. |
![]() BO3 Modtools Alpha | This user has access to the Black Ops 3 Modtools Alpha |
Thanks, Guys. This is really gonna help me out. Now how would i go about hiding the altweapon on the hud?
![]() | Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum. |
![]() Box Mappers Elite |
Have you tried it yet. I didn't get an alt weapon icon to hide, but to hide it you would add a visible when to the itemdef, instead of the visible 1, and the when would be when the players weapon wasn't the ithica, which you would set in a script per player.
![]() | Has released one or more maps to the UGX-Mods community. |
![]() | Has shown effort and knowledge in the area of scripting while being a part of the UGX-Mods community. |
![]() BO3 Modtools Alpha | This user has access to the Black Ops 3 Modtools Alpha |
Well, I tried it in BO and there was a checkerboard icon, but I can try it again