Results 1 to 6 of 6

Thread: invisible and objective

  1. #1
    Private
    Join Date
    Aug 2013
    Posts
    95
    Thanks
    13
    Thanked 4 Times in 3 Posts

    invisible and objective

    hello

    i would like to know how to hide the objective shader of the zombie gametype when a player is invisible?
    i tried some things but it didn't work.
    i often checked objpoints.gsc but i didn't find :/
    someone can help me?

    ORDI
    xfire: ordi37zk

  2. #2
    Brigadier General
    Join Date
    Oct 2012
    Posts
    994
    Thanks
    20
    Thanked 588 Times in 388 Posts
    What is "the objective shader" in zombie games? Is it a waypoint? If you expect people to help you, don't assume they know what you are talking about.

  3. #3
    Private
    Join Date
    Aug 2013
    Posts
    95
    Thanks
    13
    Thanked 4 Times in 3 Posts
    the star icon above of the hunters and only the zombies can see it in the cod2 game and in a zom server (zombie gametype by paulus).
    Last edited by ORDI; 8th March 2015 at 09:37.

  4. #4
    Brigadier General
    Join Date
    Oct 2012
    Posts
    994
    Thanks
    20
    Thanked 588 Times in 388 Posts
    Quote Originally Posted by ORDI View Post
    the star icon above of the hunters and only the zombies can see it in the cod2 game and in a zom server (zombie gametype by paulus).
    Is it a headicon? Can you post the code?

  5. #5
    Private
    Join Date
    Aug 2013
    Posts
    95
    Thanks
    13
    Thanked 4 Times in 3 Posts
    it isn't a headicon.

    PHP Code:
    makeobjmarker()
    {
        
    level.showoncompass GetCvarInt("scr_zom_showoncompass");
        
    level.showasobjpoint GetCvarInt("scr_zom_showasobjpoint");

        if (
    level.showasobjpoint)
        {
            
    temp = [];
            
    temp[0]=self.origin[0];
            
    temp[1]=self.origin[1];
            
    temp[2]=self.origin[2]+70;

            
    maps\mp\gametypes\_objpoints::addTeamObjpoint(tempself.clientid"axis""objective");
        }
        
        if (
    level.showoncompass)
        {
            
    objnum GetNextObjNum();
            if (!(
    objnum==-1))
            {
                
    self.objnum objnum;
                
    objective_add(objnum"current"self.origin"objective");
                
    objective_icon(objnum,"objective");
                
    objective_team(objnum,"axis");
                
    objective_position(objnumself.origin);
                
    lastobjpos self.origin;
                
    newobjpos self.origin;
            }
        }

        if (
    level.showasobjpoint || level.showoncompass)
        {
            
    self thread DeleteOnEvent("killed_player");
            
    self thread DeleteOnEvent("disconnect");
            
    self thread updateobjmarker();
        }
    }

    updateobjmarker()
    {
        
    self endon("StopOnCompass");
        

        
    level.positiontime GetCvarInt("scr_zom_positiontime");
        
        if (
    level.positiontime<|| level.positiontime>20)
            
    level.positiontime=0.000001;

        if (
    level.positiontime==0)
            
    level.positiontime=0.000001;
            
        for(;;)
        {
            
    wait level.positiontime;
        
            if (
    level.showasobjpoint)
            {
                
    /*temp = [];
                temp[0]=self.origin[0];
                temp[1]=self.origin[1];
                temp[2]=self.origin[2]+70;
                maps\mp\gametypes\_objpoints::addTeamObjpoint(temp, self.clientid, "axis", "objective");
                */
                
    for(0level.objpoints_axis.array.sizei++)
                {
                    if (
    level.objpoints_axis.array[i].name==self.clientid)
                    {
                        
                        
    level.objpoints_axis.array[i].x=self.origin[0];
                        
    level.objpoints_axis.array[i].y=self.origin[1];
                        
    level.objpoints_axis.array[i].z=self.origin[2]+70;
                    }
                }

                
    //maps\mp\gametypes\_objpoints::updatePlayerObjpoints();
                
    updateAllPlayerObjpoints("axis");
            }
            
            if (
    level.showoncompass)
            {
                
    objective_position(self.objnumself.origin);
            }
        }
    }

    GetNextObjNum()
    {
        for (
    i=0;i<15;i++)
        {
            if (
    level.objused[i] == true)
                continue;
            
            
    level.objused[i] = true;
            return ( 
    );
        }
        return -
    1;
    }

    DeleteOnEvent(event)
    {
        
    self waittill(event);

        
    self notify("StopOnCompass");
        if (
    isdefined (self.objnum))
        {
            
    objective_delete(self.objnum);
            
    level.objused[(self.objnum)] = false;
            
    self.objnum undefined;
        }

        if(
    level.showasobjpoint==1)
        {
            for(
    0level.objpoints_axis.array.sizei++)
            {
                if (
    level.objpoints_axis.array[i].name==self.clientid)
                {
                    
    level.objpoints_axis.array[i].name=undefined;

                    
    clearHudObjPoints("axis");
                    
    cleanObjPointsArray();
                    
    updateAllPlayerObjpoints("axis");
                }
            }
        }
    }

    cleanObjPointsArray()
    {
    // Rebuild objpoints array minus named
        
    cleanpoints = [];
        for(
    0level.objpoints_axis.array.sizei++)
        {
            
    objpoint level.objpoints_axis.array[i];
        
            if(
    isdefined(objpoint.name))
                
    cleanpoints[cleanpoints.size] = objpoint;
        }
        
    //return cleanpoints;
        
    level.objpoints_axis.array=cleanpoints;

    }

    clearHudObjPoints(team)
    {
        
    players getentarray("player""classname");
        for(
    0players.sizei++)
        {
            
    player players[i];
            
            if(
    isDefined(player.pers["team"]) && player.pers["team"] == team// && player.sessionstate == "playing"
                
    player maps\mp\gametypes\_objpoints::clearPlayerObjpoints();
        }
    }

    updateAllPlayerObjpoints(team)
    {
        
    players getentarray("player""classname");
        for(
    0players.sizei++)
        {
            
    player players[i];
            
            if(
    isDefined(player.pers["team"]) && player.pers["team"] == team// && player.sessionstate == "playing"
                
    player maps\mp\gametypes\_objpoints::updatePlayerObjpoints();
        }

    in the zombie gametype

    and the script _objpoints which is in iw_07:

    PHP Code:
    init()
    {
        
    precacheShader("objpoint_default");

        
    level.objpoints_allies spawnstruct();
        
    level.objpoints_allies.array = [];
        
    level.objpoints_axis spawnstruct();
        
    level.objpoints_axis.array = [];
        
    level.objpoints_allplayers spawnstruct();
        
    level.objpoints_allplayers.array = [];
        
    level.objpoints_allplayers.hudelems = [];
        
        if(
    level.splitscreen)
            
    level.objpoint_scale 14;
        else
            
    level.objpoint_scale 7;
        
        
    level thread onPlayerConnect();
    }

    onPlayerConnect()
    {
        for(;;)
        {
            
    level waittill("connecting"player);
            
            
    player.objpoints = [];

            
    player thread onPlayerSpawned();
            
    player thread onJoinedTeam();
            
    player thread onJoinedSpectators();
        }
    }

    onJoinedTeam()
    {
        
    self endon("disconnect");
        
        for(;;)
        {
            
    self waittill("joined_team");
            
    self thread clearPlayerObjpoints();
        }
    }

    onJoinedSpectators()
    {
        
    self endon("disconnect");
        
        for(;;)
        {
            
    self waittill("joined_spectators");
            
    self thread clearPlayerObjpoints();
        }
    }

    onPlayerSpawned()
    {
        
    self endon("disconnect");
        
        for(;;)
        {
            
    self waittill("spawned_player");

            
    self thread updatePlayerObjpoints();        
            
    self thread onPlayerKilled();
        }
    }

    onPlayerKilled()
    {
        
    self endon("disconnect");

        for(;;)
        {
            
    self waittill("killed_player");
            
            
    self thread clearPlayerObjpoints();
        }
    }

    addObjpoint(originnamematerial)
    {
        
    thread addTeamObjpoint(originname"all"material);
    }

    addTeamObjpoint(originnameteammaterial)
    {
        
    assert(team == "allies" || team == "axis" || team == "all");
        if(
    team == "allies")
        {
            
    assert(isdefined(level.objpoints_allies));
            
    objpoints level.objpoints_allies;
        }
        else if(
    team == "axis")
        {
            
    assert(isdefined(level.objpoints_axis));
            
    objpoints level.objpoints_axis;
        }
        else
        {
            
    assert(isdefined(level.objpoints_allplayers));
            
    objpoints level.objpoints_allplayers;
        }

        
    // Rebuild objpoints array minus named
        
    cleanpoints = [];
        for(
    0objpoints.array.sizei++)
        {
            
    objpoint objpoints.array[i];
        
            if(
    isdefined(objpoint.name) && objpoint.name != name)
                
    cleanpoints[cleanpoints.size] = objpoint;
        }
        
    objpoints.array = cleanpoints;
        
        
    newpoint spawnstruct();
        
    newpoint.name name;
        
    newpoint.origin[0];
        
    newpoint.origin[1];
        
    newpoint.origin[2];
        
    newpoint.archived false;

        if(
    isdefined(material))
            
    newpoint.material material;
        else
            
    newpoint.material "objpoint_default";

        
    objpoints.array[objpoints.array.size] = newpoint;

        
    //update objpoints for team specified
        
        
    if (team == "all")
        {
            
    clearGlobalObjpoints();
            
            for(
    0objpoints.array.sizej++)
            {
                
    objpoint objpoints.array[j];
                
                
    newobjpoint newHudElem();
                
    newobjpoint.name objpoint.name;
                
    newobjpoint.objpoint.x;
                
    newobjpoint.objpoint.y;
                
    newobjpoint.objpoint.z;
                
    newobjpoint.alpha .61;
                
    newobjpoint.archived objpoint.archived;
                
    newobjpoint setShader(objpoint.materiallevel.objpoint_scalelevel.objpoint_scale);
                
    newobjpoint setwaypoint(true);
                
                
    level.objpoints_allplayers.hudelems[level.objpoints_allplayers.hudelems.size] = newobjpoint;
            }
        }
        else
        {
            
    players getentarray("player""classname");
            for(
    0players.sizei++)
            {
                
    player players[i];
                
                if(
    isDefined(player.pers["team"]) && player.pers["team"] == team && player.sessionstate == "playing")
                {
                    
    player clearPlayerObjpoints();
        
                    for(
    0objpoints.array.sizej++)
                    {
                        
    objpoint objpoints.array[j];
                        
                        
    newobjpoint newClientHudElem(player);
                        
    newobjpoint.name objpoint.name;
                        
    newobjpoint.objpoint.x;
                        
    newobjpoint.objpoint.y;
                        
    newobjpoint.objpoint.z;
                        
    newobjpoint.alpha .61;
                        
    newobjpoint.archived objpoint.archived;
                        
    newobjpoint setShader(objpoint.materiallevel.objpoint_scalelevel.objpoint_scale);
                        
    newobjpoint setwaypoint(true);
                        
                        
    player.objpoints[player.objpoints.size] = newobjpoint;
                    }
                }
            }
        }
    }

    removeObjpoints()
    {
        
    thread removeTeamObjpoints("all");
    }

    removeTeamObjpoints(team)
    {
        
    assert(team == "allies" || team == "axis" || team == "all");
        if(
    team == "allies")
        {
            
    assert(isdefined(level.objpoints_allies));
            
    level.objpoints_allies.array = [];
        }
        else if(
    team == "axis")
        {
            
    assert(isdefined(level.objpoints_axis));
            
    level.objpoints_axis.array = [];
        }
        else
        {
            
    assert(isdefined(level.objpoints_allplayers));
            
    assert(isdefined(level.objpoints_allplayers.hudelems));
            
    level.objpoints_allplayers.array = [];
            for (
    i=0;i<level.objpoints_allplayers.hudelems.size;i++)
                
    level.objpoints_allplayers.hudelems[idestroy();
            
    level.objpoints_allplayers.hudelems = [];
            return;
        }

        
    //clear objpoints for team specified
        
    players getentarray("player""classname");
        for(
    0players.sizei++)
        {
            
    player players[i];
            
            if(
    isDefined(player.pers["team"]) && player.pers["team"] == team && player.sessionstate == "playing")
                
    player clearPlayerObjpoints();
        }
    }

    updatePlayerObjpoints()
    {
        if(
    isDefined(self.pers["team"]) && self.pers["team"] != "spectator" && self.sessionstate == "playing")
        {
            
    assert(self.pers["team"] == "allies" || self.pers["team"] == "axis");
            if(
    self.pers["team"] == "allies")
            {
                
    assert(isdefined(level.objpoints_allies));
                
    objpoints level.objpoints_allies;
            }
            else
            {
                
    assert(isdefined(level.objpoints_axis));
                
    objpoints level.objpoints_axis;
            }
            
            
    self clearPlayerObjpoints();
            
            for(
    0objpoints.array.sizei++)
            {
                
    objpoint objpoints.array[i];
                
                
    newobjpoint newClientHudElem(self);
                
    newobjpoint.name objpoint.name;
                
    newobjpoint.objpoint.x;
                
    newobjpoint.objpoint.y;
                
    newobjpoint.objpoint.z;
                
    newobjpoint.alpha .61;
                
    newobjpoint.archived objpoint.archived;
                
    newobjpoint setShader(objpoint.materiallevel.objpoint_scalelevel.objpoint_scale);
                
    newobjpoint setwaypoint(true);
                
                
    self.objpoints[self.objpoints.size] = newobjpoint;
            }
        }
    }

    clearPlayerObjpoints()
    {
        for(
    0self.objpoints.sizei++)
            
    self.objpoints[idestroy();
        
        
    self.objpoints = [];
    }

    clearGlobalObjpoints()
    {
        for(
    0level.objpoints_allplayers.hudelems.sizei++)
            
    level.objpoints_allplayers.hudelems[idestroy();
        
        
    level.objpoints_allplayers.hudelems = [];
    }

    //removePlayerObjpoint(name)
    //{
    //    for(i = 0; i < self.objpoints.size; i++)
    //    {
    //        objpoint = self.objpoints[i];
    //        
    //        if(isdefined(objpoint.name) && objpoint.name == name)
    //            objpoint destroy();
    //    }
    //} 
    Last edited by ORDI; 8th March 2015 at 16:40.

  6. #6
    Brigadier General
    Join Date
    Oct 2012
    Posts
    994
    Thanks
    20
    Thanked 588 Times in 388 Posts
    Okay, it's a waypoint. So, delete it when the player is invisible; then re-create it again when they aren't invisible.

    Failing that, find the waypoint (using the waypoint shader array) and set the alpha to 0 when the player is invisible; then set it to 1 when they aren't.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •