Jump to content

Force Stun, Force Hate, Force Control Mind and Force Paralysis (SP)


Recommended Posts

@@Ramikad found something pretty interessing.

i think i need to work on this for end the controlmind code. D:

wp_saber.cpp

 

qboolean WP_CheckBreakControl( gentity_t *self )
{
    if ( !self )
    {
        return qfalse;
    }
    if ( !self->s.number )
    {//player
        if ( self->client && self->client->ps.forcePowerLevel[FP_TELEPATHY] > FORCE_LEVEL_3 )
        {//control-level
            if ( self->client->ps.viewEntity > 0 && self->client->ps.viewEntity < ENTITYNUM_WORLD )
            {//we are in a viewentity
                gentity_t *controlled = &g_entities[self->client->ps.viewEntity];
                if ( controlled->NPC && controlled->NPC->controlledTime > level.time )
                {//it is an NPC we controlled
                    //clear it and return
                    G_ClearViewEntity( self );
                    return qtrue;
                }
            }
        }
    }
    else
    {//NPC
        if ( self->NPC && self->NPC->controlledTime > level.time )
        {//being controlled
            gentity_t *controller = &g_entities[0];
            if ( controller->client && controller->client->ps.viewEntity == self->s.number )
            {//we are being controlled by player
                if ( controller->client->ps.forcePowerLevel[FP_TELEPATHY] > FORCE_LEVEL_3 )
                {//control-level mind trick
                    //clear the control and return
                    G_ClearViewEntity( controller );
                    return qtrue;
                }
            }
        }
    }
    return qfalse;
}

lol it was under my nose. i need to make the same thing for force controlmind :)

Link to comment

@@Ramikad seems i found the solution of controlmind :D i need to add an if here for my new power.

g_active.cpp

 

void ClientThink( int clientNum, usercmd_t *ucmd ) {
    gentity_t *ent;
    qboolean restore_ucmd = qfalse;
    usercmd_t sav_ucmd = {0};

    ent = g_entities + clientNum;

    if ( ent->s.number<MAX_CLIENTS )
    {
        if ( ent->client->ps.viewEntity > 0 && ent->client->ps.viewEntity < ENTITYNUM_WORLD )
        {//you're controlling another NPC
            gentity_t *controlled = &g_entities[ent->client->ps.viewEntity];
            qboolean freed = qfalse;
            if ( controlled->NPC
                && controlled->NPC->controlledTime
                && ent->client->ps.forcePowerLevel[FP_TELEPATHY] > FORCE_LEVEL_3 )
            {//An NPC I'm controlling with mind trick
                if ( controlled->NPC->controlledTime < level.time )
                {//time's up!
                    G_ClearViewEntity( ent );
                    freed = qtrue;
                }
                else if ( ucmd->upmove > 0 )
                {//jumping gets you out of it FIXME: check some other button instead... like ESCAPE... so you could even have total control over an NPC?
                    G_ClearViewEntity( ent );
                    ucmd->upmove = 0;//ucmd->buttons = 0;
                    //stop player from doing anything for a half second after
                    ent->aimDebounceTime = level.time + 500;
                    freed = qtrue;
                }
            }
            else if ( controlled->client //an NPC
                && PM_GentCantJump( controlled ) //that cannot jump
                && controlled->client->moveType != MT_FLYSWIM ) //and does not use upmove to fly
            {//these types use jump to get out
                if ( ucmd->upmove > 0 )
                {//jumping gets you out of it FIXME: check some other button instead... like ESCAPE... so you could even have total control over an NPC?
                    G_ClearViewEntity( ent );
                    ucmd->upmove = 0;//ucmd->buttons = 0;
                    //stop player from doing anything for a half second after
                    ent->aimDebounceTime = level.time + 500;
                    freed = qtrue;
                }
            }

            if ( !freed )
            {//still controlling, save off my ucmd and clear it for my actual run through pmove
                restore_ucmd = qtrue;
                memcpy( &sav_ucmd, ucmd, sizeof( usercmd_t ) );
                memset( ucmd, 0, sizeof( usercmd_t ) );
                //to keep pointing in same dir, need to set ucmd->angles
                ucmd->angles[PITCH] = ANGLE2SHORT( ent->client->ps.viewangles[PITCH] ) - ent->client->ps.delta_angles[PITCH];
                ucmd->angles[YAW] = ANGLE2SHORT( ent->client->ps.viewangles[YAW] ) - ent->client->ps.delta_angles[YAW];
                ucmd->angles[ROLL] = 0;
                if ( controlled->NPC )
                {
                    VectorClear( controlled->client->ps.moveDir );
                    controlled->client->ps.speed = (sav_ucmd.buttons&BUTTON_WALKING)?controlled->NPC->stats.walkSpeed:controlled->NPC->stats.runSpeed;
                }
            }
            else
            {
                ucmd->angles[PITCH] = ANGLE2SHORT( ent->client->ps.viewangles[PITCH] ) - ent->client->ps.delta_angles[PITCH];
                ucmd->angles[YAW] = ANGLE2SHORT( ent->client->ps.viewangles[YAW] ) - ent->client->ps.delta_angles[YAW];
                ucmd->angles[ROLL] = 0;
            }
        }
Link to comment

Oh lol, there is some strange dependence. jump exit work if i use FP_CONTROLMIND liv 1,2,3 whatever i want and possess an enemy. IF also FP_MINDTRICK is setted on level 4 D: there is some odd connection between the two powers.

well i am in the right way. i need just to create the some functions net for FP_CONTROLMIND for separate the two powers definitely.

Link to comment

Found the dependece in clientthink function, but is deep inside, into the core of the code.

Clientthink is a function too much important and too much things depend on it. edit function or make a new "clientthink2" function only for a force power is not really a good solution. i wanna try with this edit:

 

void ClientThink( int clientNum, usercmd_t *ucmd ) {
    gentity_t *ent;
    qboolean restore_ucmd = qfalse;
    usercmd_t sav_ucmd = {0};

    ent = g_entities + clientNum;

    if ( ent->s.number<MAX_CLIENTS )
    {
        if ( ent->client->ps.viewEntity > 0 && ent->client->ps.viewEntity < ENTITYNUM_WORLD )
        {//you're controlling another NPC
            gentity_t *controlled = &g_entities[ent->client->ps.viewEntity];
            qboolean freed = qfalse;
            if ( controlled->NPC
                && controlled->NPC->controlledTime
                && ent->client->ps.forcePowerLevel[FP_TELEPATHY] > FORCE_LEVEL_3 ||
                controlled->NPC && controlled->NPC->controlledTime
                && ent->client->ps.forcePowerLevel[FP_CONTROLMIND] > FORCE_LEVEL_0 )
            {//An NPC I'm controlling with mind trick
                if ( controlled->NPC->controlledTime < level.time )
                {//time's up!
                    G_ClearViewEntity( ent );
                    freed = qtrue;
                }
                else if ( ucmd->upmove > 0 )
                {//jumping gets you out of it FIXME: check some other button instead... like ESCAPE... so you could even have total control over an NPC?
                    G_ClearViewEntity( ent );
                    ucmd->upmove = 0;//ucmd->buttons = 0;
                    //stop player from doing anything for a half second after
                    ent->aimDebounceTime = level.time + 500;
                    freed = qtrue;
                }
            }
            else if ( controlled->client //an NPC
                && PM_GentCantJump( controlled ) //that cannot jump
                && controlled->client->moveType != MT_FLYSWIM ) //and does not use upmove to fly
            {//these types use jump to get out
                if ( ucmd->upmove > 0 )
                {//jumping gets you out of it FIXME: check some other button instead... like ESCAPE... so you could even have total control over an NPC?
                    G_ClearViewEntity( ent );
                    ucmd->upmove = 0;//ucmd->buttons = 0;
                    //stop player from doing anything for a half second after
                    ent->aimDebounceTime = level.time + 500;
                    freed = qtrue;
                }
            }

            if ( !freed )
            {//still controlling, save off my ucmd and clear it for my actual run through pmove
                restore_ucmd = qtrue;
                memcpy( &sav_ucmd, ucmd, sizeof( usercmd_t ) );
                memset( ucmd, 0, sizeof( usercmd_t ) );
                //to keep pointing in same dir, need to set ucmd->angles
                ucmd->angles[PITCH] = ANGLE2SHORT( ent->client->ps.viewangles[PITCH] ) - ent->client->ps.delta_angles[PITCH];
                ucmd->angles[YAW] = ANGLE2SHORT( ent->client->ps.viewangles[YAW] ) - ent->client->ps.delta_angles[YAW];
                ucmd->angles[ROLL] = 0;
                if ( controlled->NPC )
                {
                    VectorClear( controlled->client->ps.moveDir );
                    controlled->client->ps.speed = (sav_ucmd.buttons&BUTTON_WALKING)?controlled->NPC->stats.walkSpeed:controlled->NPC->stats.runSpeed;
                }
            }
            else
            {
                ucmd->angles[PITCH] = ANGLE2SHORT( ent->client->ps.viewangles[PITCH] ) - ent->client->ps.delta_angles[PITCH];
                ucmd->angles[YAW] = ANGLE2SHORT( ent->client->ps.viewangles[YAW] ) - ent->client->ps.delta_angles[YAW];
                ucmd->angles[ROLL] = 0;
            }
        }
        else if ( ent->client->NPC_class == CLASS_ATST )
        {
            if ( ucmd->upmove > 0 )
            {//get out of ATST
                GEntity_UseFunc( ent->activator, ent, ent );
                ucmd->upmove = 0;//ucmd->buttons = 0;
            }
        }


        PM_CheckForceUseButton( ent, ucmd );
    }

    Vehicle_t *pVeh = NULL;

    // Rider logic.
    // NOTE: Maybe this should be extracted into a RiderUpdate() within the vehicle.
    if ( ( pVeh = G_IsRidingVehicle( ent ) ) != 0  )
    {
        // If we're still in the vehicle...
        if ( pVeh->m_pVehicleInfo->UpdateRider( pVeh, ent, ucmd ) )
        {
            restore_ucmd = qtrue;
            memcpy( &sav_ucmd, ucmd, sizeof( usercmd_t ) );
            memset( ucmd, 0, sizeof( usercmd_t ) );
            //to keep pointing in same dir, need to set ucmd->angles
            //ucmd->angles[PITCH] = ANGLE2SHORT( ent->client->ps.viewangles[PITCH] ) - ent->client->ps.delta_angles[PITCH];
            //ucmd->angles[YAW] = ANGLE2SHORT( ent->client->ps.viewangles[YAW] ) - ent->client->ps.delta_angles[YAW];
            //ucmd->angles[ROLL] = 0;
            ucmd->angles[PITCH] = sav_ucmd.angles[PITCH];
            ucmd->angles[YAW] = sav_ucmd.angles[YAW];
            ucmd->angles[ROLL] = sav_ucmd.angles[ROLL];
            //if ( sav_ucmd.weapon != ent->client->ps.weapon && PM_WeaponOkOnVehicle( sav_ucmd.weapon ) )
            {//trying to change weapons to a valid weapon for this vehicle, to preserve this weapon change command
                ucmd->weapon = sav_ucmd.weapon;
            }
            //else
            {//keep our current weapon
            //    ucmd->weapon = ent->client->ps.weapon;
            //    if ( ent->client->ps.weapon != WP_NONE )
                {//not changing weapons and we are using one of our weapons, not using vehicle weapon
                    //so we actually want to do our fire weapon on us, not the vehicle
                    ucmd->buttons = (sav_ucmd.buttons&(BUTTON_ATTACK|BUTTON_ALT_ATTACK));
            //        sav_ucmd.buttons &= ~ucmd->buttons;
                }
            }
        }
    }

    ent->client->usercmd = *ucmd;

//    if ( !g_syncronousClients->integer )
    {
        ClientThink_real( ent, ucmd );
    }

    // If a vehicle, make sure to attach our driver and passengers here (after we pmove, which is done in Think_Real))
    if ( ent->client && ent->client->NPC_class == CLASS_VEHICLE )
    {
        pVeh = ent->m_pVehicle;
        pVeh->m_pVehicleInfo->AttachRiders( pVeh );
    }


    // ClientThink_real can end up freeing this ent, need to check
    if ( restore_ucmd && ent->client )
    {//restore ucmd for later so NPC you're controlling can refer to them
        memcpy( &ent->client->usercmd, &sav_ucmd, sizeof( usercmd_t ) );
    }

    if ( ent->s.number )
    {//NPCs drown, burn from lava, etc, also
        P_WorldEffects( ent );
    }
}

Should work with the two powers, not only with FP_MINDTRICK level 4. now i will test.  :


AH YES! IT WORKS! YEAAH! :D

 

Now i need just to end the forcefreeze! :D

Link to comment

mmm well well yes, now is missing only the freezing of force stasys. not an easy thing to do.

however i got a little trouble:

when i use some force power setted to level 2 or 3, they get automatically reroll to level 1.

this affected:

FP_CONTROLMIND

FP_FREEZE

and, strangely, FP_GRIP.

Sure it's some strange edit i maked.

at moment i was focused to making these force powers, so i have not really a good idea about fixing this big issue. :\

 

Edit: i found a trace: FP_FREEZE downgrade automatically to level 1 after cast efx will end.

FP_GRIP and CONTROLMIND instead, downgrade immediatly. maybe there is some connection.

Link to comment

Found the dependece in clientthink function, but is deep inside, into the core of the code.

Clientthink is a function too much important and too much things depend on it. edit function or make a new "clientthink2" function only for a force power is not really a good solution. i wanna try with this edit:

void ClientThink( int clientNum, usercmd_t *ucmd ) {
    gentity_t *ent;
    qboolean restore_ucmd = qfalse;
    usercmd_t sav_ucmd = {0};

    ent = g_entities + clientNum;

    if ( ent->s.number<MAX_CLIENTS )
    {
        if ( ent->client->ps.viewEntity > 0 && ent->client->ps.viewEntity < ENTITYNUM_WORLD )
        {//you're controlling another NPC
            gentity_t *controlled = &g_entities[ent->client->ps.viewEntity];
            qboolean freed = qfalse;
            if ( controlled->NPC
                && controlled->NPC->controlledTime
                && ent->client->ps.forcePowerLevel[FP_TELEPATHY] > FORCE_LEVEL_3 ||
                controlled->NPC && controlled->NPC->controlledTime
                && ent->client->ps.forcePowerLevel[FP_CONTROLMIND] > FORCE_LEVEL_0 )
            {//An NPC I'm controlling with mind trick
                if ( controlled->NPC->controlledTime < level.time )
                {//time's up!
                    G_ClearViewEntity( ent );
                    freed = qtrue;
                }
                else if ( ucmd->upmove > 0 )
                {//jumping gets you out of it FIXME: check some other button instead... like ESCAPE... so you could even have total control over an NPC?
                    G_ClearViewEntity( ent );
                    ucmd->upmove = 0;//ucmd->buttons = 0;
                    //stop player from doing anything for a half second after
                    ent->aimDebounceTime = level.time + 500;
                    freed = qtrue;
                }
            }
            else if ( controlled->client //an NPC
                && PM_GentCantJump( controlled ) //that cannot jump
                && controlled->client->moveType != MT_FLYSWIM ) //and does not use upmove to fly
            {//these types use jump to get out
                if ( ucmd->upmove > 0 )
                {//jumping gets you out of it FIXME: check some other button instead... like ESCAPE... so you could even have total control over an NPC?
                    G_ClearViewEntity( ent );
                    ucmd->upmove = 0;//ucmd->buttons = 0;
                    //stop player from doing anything for a half second after
                    ent->aimDebounceTime = level.time + 500;
                    freed = qtrue;
                }
            }

            if ( !freed )
            {//still controlling, save off my ucmd and clear it for my actual run through pmove
                restore_ucmd = qtrue;
                memcpy( &sav_ucmd, ucmd, sizeof( usercmd_t ) );
                memset( ucmd, 0, sizeof( usercmd_t ) );
                //to keep pointing in same dir, need to set ucmd->angles
                ucmd->angles[PITCH] = ANGLE2SHORT( ent->client->ps.viewangles[PITCH] ) - ent->client->ps.delta_angles[PITCH];
                ucmd->angles[YAW] = ANGLE2SHORT( ent->client->ps.viewangles[YAW] ) - ent->client->ps.delta_angles[YAW];
                ucmd->angles[ROLL] = 0;
                if ( controlled->NPC )
                {
                    VectorClear( controlled->client->ps.moveDir );
                    controlled->client->ps.speed = (sav_ucmd.buttons&BUTTON_WALKING)?controlled->NPC->stats.walkSpeed:controlled->NPC->stats.runSpeed;
                }
            }
            else
            {
                ucmd->angles[PITCH] = ANGLE2SHORT( ent->client->ps.viewangles[PITCH] ) - ent->client->ps.delta_angles[PITCH];
                ucmd->angles[YAW] = ANGLE2SHORT( ent->client->ps.viewangles[YAW] ) - ent->client->ps.delta_angles[YAW];
                ucmd->angles[ROLL] = 0;
            }
        }
        else if ( ent->client->NPC_class == CLASS_ATST )
        {
            if ( ucmd->upmove > 0 )
            {//get out of ATST
                GEntity_UseFunc( ent->activator, ent, ent );
                ucmd->upmove = 0;//ucmd->buttons = 0;
            }
        }


        PM_CheckForceUseButton( ent, ucmd );
    }

    Vehicle_t *pVeh = NULL;

    // Rider logic.
    // NOTE: Maybe this should be extracted into a RiderUpdate() within the vehicle.
    if ( ( pVeh = G_IsRidingVehicle( ent ) ) != 0  )
    {
        // If we're still in the vehicle...
        if ( pVeh->m_pVehicleInfo->UpdateRider( pVeh, ent, ucmd ) )
        {
            restore_ucmd = qtrue;
            memcpy( &sav_ucmd, ucmd, sizeof( usercmd_t ) );
            memset( ucmd, 0, sizeof( usercmd_t ) );
            //to keep pointing in same dir, need to set ucmd->angles
            //ucmd->angles[PITCH] = ANGLE2SHORT( ent->client->ps.viewangles[PITCH] ) - ent->client->ps.delta_angles[PITCH];
            //ucmd->angles[YAW] = ANGLE2SHORT( ent->client->ps.viewangles[YAW] ) - ent->client->ps.delta_angles[YAW];
            //ucmd->angles[ROLL] = 0;
            ucmd->angles[PITCH] = sav_ucmd.angles[PITCH];
            ucmd->angles[YAW] = sav_ucmd.angles[YAW];
            ucmd->angles[ROLL] = sav_ucmd.angles[ROLL];
            //if ( sav_ucmd.weapon != ent->client->ps.weapon && PM_WeaponOkOnVehicle( sav_ucmd.weapon ) )
            {//trying to change weapons to a valid weapon for this vehicle, to preserve this weapon change command
                ucmd->weapon = sav_ucmd.weapon;
            }
            //else
            {//keep our current weapon
            //    ucmd->weapon = ent->client->ps.weapon;
            //    if ( ent->client->ps.weapon != WP_NONE )
                {//not changing weapons and we are using one of our weapons, not using vehicle weapon
                    //so we actually want to do our fire weapon on us, not the vehicle
                    ucmd->buttons = (sav_ucmd.buttons&(BUTTON_ATTACK|BUTTON_ALT_ATTACK));
            //        sav_ucmd.buttons &= ~ucmd->buttons;
                }
            }
        }
    }

    ent->client->usercmd = *ucmd;

//    if ( !g_syncronousClients->integer )
    {
        ClientThink_real( ent, ucmd );
    }

    // If a vehicle, make sure to attach our driver and passengers here (after we pmove, which is done in Think_Real))
    if ( ent->client && ent->client->NPC_class == CLASS_VEHICLE )
    {
        pVeh = ent->m_pVehicle;
        pVeh->m_pVehicleInfo->AttachRiders( pVeh );
    }


    // ClientThink_real can end up freeing this ent, need to check
    if ( restore_ucmd && ent->client )
    {//restore ucmd for later so NPC you're controlling can refer to them
        memcpy( &ent->client->usercmd, &sav_ucmd, sizeof( usercmd_t ) );
    }

    if ( ent->s.number )
    {//NPCs drown, burn from lava, etc, also
        P_WorldEffects( ent );
    }
}

Should work with the two powers, not only with FP_MINDTRICK level 4. now i will test.  :

AH YES! IT WORKS! YEAAH! :D

 

Now i need just to end the forcefreeze! :D

you could also take does if statements and make them in to a new function name, and then call them from clientthink and do a sec one also for you new mind control stuff like have one function call MindControle(); and Mindtrick(); in clientthink but looks like you got your stuff working so nvm :P

Link to comment

you could also take does if statements and make them in to a new function name, and then call them from clientthink and do a sec one also for you new mind control stuff like have one function call MindControle(); and Mindtrick(); in clientthink but looks like you got your stuff working so nvm :P

Yes, before of adding the force power in the specific if \ else field i tryed this way, but unlucky because need a large amount of code arrangement. also, i am again a beginner, and clientthink is a very complex function. it's a core function of the game so i prefear not make too much big edit on the code adding to much unnecessary stuff if is not really necessary :)

now i need to fix only two things:

1: end force freeze power, that freeze movement and animation of NPC affected for his duraction. any idea, @@Stoiss  ?

fixing the strange issue i got know with FP_FREEZE, GRIP and CONTROLMIND power level reroll to 1 when i use then.

Link to comment

I really recommend learning to program a bit plus figuring out things like finding relevant places in code that might relate to what you are working on and maybe using a site that hosts code like github for storing stuff so changes are easily available instead of just code snippets on here which will inevitably get lost.  Github also has the gist feature for posting code snippets/files with syntax highlighting and tied to your github account which can be linked to or made private.

Link to comment

I really recommend learning to program a bit plus figuring out things like finding relevant places in code that might relate to what you are working on and maybe using a site that hosts code like github for storing stuff so changes are easily available instead of just code snippets on here which will inevitably get lost.  Github also has the gist feature for posting code snippets/files with syntax highlighting and tied to your github account which can be linked to or made private.

Yes you're right. also if is private, a depository should be really a good idea. i am little tired of bugs that appear unexpected after a lot of code edit. so i cannot understand what exaclty cause it. tomorrow i will register to Git so i can trace better my code edit of JKA. :)

Now i need to go. it's late. goodnight ensy :)

However, yes, i am learning also because every time i not understand what i see, i ever go to check the definition or i dive the code for searching the origin void of a function for understand exactly what is called. :)

Link to comment

Force Death a la Avada Kedavra From Harry Potter would be cool (a deahtly green beam which requiere a lot of powers).

Force Fire of course, to launch Fire and burn ennemies.

Force Laser, like blasters.

Force Wave = Player will touch his hears and a big force explosion (effects/ships/proton_impact I think) will destroy ennemies.

Force Black Magic = Put the ennemy in the air in a strange position and make him do grip sound with his voice (gasp*.mp3)

Force Patronus = Like Harry Potter, use a physical glowy model like the raptors which exists in JKA to kill ennemies or a certain type of ennemies.

Force Yoddle = The Jedi will sing Swedish Yoddle and everybody will touch his ear (possession anim), it would be REALLY FUN.

Link to comment

Yes you're right. also if is private, a depository should be really a good idea. i am little tired of bugs that appear unexpected after a lot of code edit. so i cannot understand what exaclty cause it. tomorrow i will register to Git so i can trace better my code edit of JKA. :)

Now i need to go. it's late. goodnight ensy :)

However, yes, i am learning also because every time i not understand what i see, i ever go to check the definition or i dive the code for searching the origin void of a function for understand exactly what is called. :)

You can't make it private on github.  Especially since its licensed open source only.

Link to comment

You can't make it private on github.  Especially since its licensed open source only.

Well my project at moment is almost private. this is the region i never show here screenshot of WIP related to this. it's a think between me and some of my italian friend. the rem lines of the code contains some annotation related to the power of the rpg characters of my friends. if i need to host on JKhub, i need to remove all voice related to that.

Force Death a la Avada Kedavra From Harry Potter would be cool (a deahtly green beam which requiere a lot of powers).

Force Fire of course, to launch Fire and burn ennemies.

Force Laser, like blasters.

Force Wave = Player will touch his hears and a big force explosion (effects/ships/proton_impact I think) will destroy ennemies.

Force Black Magic = Put the ennemy in the air in a strange position and make him do grip sound with his voice (gasp*.mp3)

Force Patronus = Like Harry Potter, use a physical glowy model like the raptors which exists in JKA to kill ennemies or a certain type of ennemies.

Force Yoddle = The Jedi will sing Swedish Yoddle and everybody will touch his ear (possession anim), it would be REALLY FUN.

 

Okay my mod is like fantasy kind, but it's on legacy of kain, not about harry potter LOL.

avada kevadra and fireballs there are already and they are the blaster projectile and the concussion alt fire projectile efx, that i make as a green ray with a skull that is letal on impact to all human and mortal creature because it does an HUGE amount of dmg.

force wave: there is already with the fire glyph of soul reaver, is simply a saber file special edited with knockback, kata animation and shockwave efx. i make also a tutorial about making a sab like this. can you do also by your hand ;)

force black magic: it's simply a force grip with a chest efx like the force rage and the animation PULLED_IN_AIR_F . i edited a lot the grip for making the telekinesis grip of Defiance of Kain. but the result is pretty similar. i need just to fix the animation and add a chestbolt efx.

force Yoddle: are seriously? XD Lol, i get a Sound stunning Glyph as saber. if you replace the sound of hitothereffects with your song you obtain already this. XD

Link to comment

Okay well, any code portions of the project you release must be open source because the code license is GNU GPLv2 so I don't see why you bother leaving it closed to start with.  Only makes it harder later and now you don't have history of changes etc.  And github does not allow you to create forked private repositories from public repositories, plus private repositories cost money.

Link to comment

Okay well, any code portions of the project you release must be open source because the code license is GNU GPLv2 so I don't see why you bother leaving it closed to start with.  Only makes it harder later and now you don't have history of changes etc.  And github does not allow you to create forked private repositories from public repositories, plus private repositories cost money.

 

 

Understood. okay i need to change a lot rem lines before put GIT.

(the green field related to the description of powers.)

Link to comment

I think for freeze i will make an hybric think between force grip level 1 and fp_telepathy level 1-2. now i print the two code for see how can i proceed.

grip code is pretty hard because is separate in many parts. functions of grips are into void forcegrip, and also into forcepowerstart, forcepowerstop and forcepowerrun. o.o 

Link to comment

I registered myself to git but i got some trouble to access to the site. i not see any kind of skin or template, only text link into the page. maybe site is down. O.o i wil try tomorrow. i cannot make a repository at moment because not accept my email of account confirmation

. damn :\ .

Link to comment

Do you have some obscure email host provider?

i used gmail.com . is supported by git? i receive the verification email but when i click on confirm box or go to the link it ever resend to me to a page like this screenshot:

 

http://postimg.org/image/gnsyhudyl/

i have firefox as browser. on Internet explorer, git is down and IE cannot open. the problem there is also today.

if you see, there is something of strange. i have a wrong view of the site. skin and template is missing.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...