• All, Gmail is currently rejecting messages from my host. I have a ticket in process, but it may take some time to resolve. Until further notice, do NOT use Gmail for your accounts. You will be unable to receive confirmations and two factor messages to login.

Add the partner menu of streets of rage 2 by Kratus in all OpenBOR games.

Hi @Kratus , how are you?
In my new game there are two types of food: salty food (with heath value) and sweet food (with mp value) but the cpu partner does not pick up sweet food.
I have tried with the think script but it does not work.
C:
void main()
{
    partnerHealthFood();
    partnerMpItem();
    .....
}

void partnerHealthFood()
{//When npcs take health food
    void self        = getlocalvar("self");
    void parent        = getentityproperty(self, "parent");
    void pFood        = getglobalvar("partnerGetFood");
    int enemies        = openborvariant("count_enemies");
    int detect        = getentityproperty(self, "detect");
    int maxHealth    = getentityproperty(self, "maxhealth");
    int vHealth        = getentityproperty(self, "health");
    int pHealth        = getentityproperty(parent, "health");
    int percent20    = maxHealth/5;
    int group        = 3;
    
    //PARTNER GET FOOD
    //if(pFood == "yes"){
        if(vHealth > percent20*2){ //PARTNER HAS MORE THAN 40% HEALTH??
            if(vHealth < pHealth){ //PARTNER HAS LESS HEALTH THAN PLAYER??
                if(vHealth < percent20*4){ //PARTNER HAS LESS THAN 80% HEALTH??
                    if(detect != 1){changeentityproperty(self, "detect", 1);} //GET FOOD
                }
                
                if(vHealth >= percent20*4){ //PARTNER HAS MORE THAN 80% HEALTH??
                    if(enemies < group || getglobalvar("partnerParrow") == "call"){ //HAS NOT TOO MANY ENEMIES ON THE SCREEN??
                        if(detect != 0){changeentityproperty(self, "detect", 0);} //NOT GET FOOD
                    }
                    else
                    {
                        if(detect != 0){changeentityproperty(self, "detect", 0);} //NOT GET FOOD, CONSERVE FOOD FOR LATER
                    }
                }
            }
            else
            {
                if(detect != 0){changeentityproperty(self, "detect", 0);} //NOT GET FOOD
            }
        }
        
        if(vHealth <= percent20*2){ //PARTNER HAS LESS THAN 40% HEALTH??
            if(detect != 1){changeentityproperty(self, "detect", 1);} //GET FOOD A.S.A.P.
        }
    //}
}

void partnerMpItem()
{//When npcs take mp food
    void self        = getlocalvar("self");
    void parent        = getentityproperty(self, "parent");
    void pItem        = getglobalvar("partnerGetItem");
    int enemies        = openborvariant("count_enemies");
    int detect        = getentityproperty(self, "detect");
    int maxMp    = getentityproperty(self, "maxmp");
    int vMp        = getentityproperty(self, "mp");
    int pMp        = getentityproperty(parent, "mp");
    int percent20    = maxMp/5;
    int group        = 3;
    
    //PARTNER GET FOOD
    //if(pFood == "yes"){
        if(vMp > percent20*2){ //PARTNER HAS MORE THAN 40% MP??
            if(vMp < pMp){ //PARTNER HAS LESS MP THAN PLAYER??
                if(vMp < percent20*4){ //PARTNER HAS LESS THAN 80% MP??
                    if(detect != 1){changeentityproperty(self, "detect", 1);} //GET FOOD
                }
                
                if(vMp >= percent20*4){ //PARTNER HAS MORE THAN 80% MP??
                    if(enemies < group || getglobalvar("partnerParrow") == "call"){ //HAS NOT TOO MANY ENEMIES ON THE SCREEN??
                        if(detect != 0){changeentityproperty(self, "detect", 0);} //NOT GET FOOD
                    }
                    else
                    {
                        if(detect != 0){changeentityproperty(self, "detect", 0);} //NOT GET FOOD, CONSERVE FOOD FOR LATER
                    }
                }
            }
            else
            {
                if(detect != 0){changeentityproperty(self, "detect", 0);} //NOT GET FOOD
            }
        }
        
        if(vMp <= percent20*2){ //PARTNER HAS LESS THAN 40% MP??
            if(detect != 1){changeentityproperty(self, "detect", 1);} //GET FOOD A.S.A.P.
        }
    //}
}

C:
name    Croissant
mp    22
type        item
shadow    0

#CPU PARTNER NECESSARY CONFIGS
#DON'T FORGET TO SET ITEM'S STEALTH FACTOR TO WORK WITH "GET FOOD" OPTION
stealth 1

anim idle
    loop        1
    offset    13 14
    bbox    0 0 26 15
    delay    100
    frame    data/chars/misc/croissant01.gif
    delay   4
    frame    data/chars/misc/croissant02.gif
    frame    data/chars/misc/croissant01.gif
    frame    data/chars/misc/croissant02.gif
    frame    data/chars/misc/croissant01.gif
    frame    data/chars/misc/croissant02.gif
    frame    data/chars/misc/croissant01.gif
    frame    data/chars/misc/croissant02.gif
    frame    data/chars/misc/croissant01.gif
    frame    data/chars/misc/croissant02.gif
    frame    data/chars/misc/croissant01.gif
 
sweet food (with mp value) but the cpu partner does not pick up sweet food
@Steven1985 Hi friend, enemies/npc will only chase and pick up items that fills health and only if their health are lower than the maxhealth. In this case you need to trick them by creating health items with the minimum value of 1 and adding a didhit script to force a mp refill, like this.

Food entity's header
C:
didhitscript data/scripts/didhit.c

didhit.c file
C:
void main()
{//Custom mp refill for enemies/npc
    void target    = getlocalvar("damagetaker");
    int mp        = getentityproperty(target, "mp");
    int add        = 90;

    changeentityproperty(target, "mp", mp+add);
}
 
@Steven1985 Hi friend, enemies/npc will only chase and pick up items that fills health and only if their health are lower than the maxhealth. In this case you need to trick them by creating health items with the minimum value of 1 and adding a didhit script to force a mp refill, like this.

Food entity's header
C:
didhitscript data/scripts/didhit.c

didhit.c file
C:
void main()
{//Custom mp refill for enemies/npc
    void target    = getlocalvar("damagetaker");
    int mp        = getentityproperty(target, "mp");
    int add        = 90;

    changeentityproperty(target, "mp", mp+add);
}
Thank you so much :)
 
Hello @Kratus ! 😃

I was thinking of implementing the partner through a pick-up item. :)

I mean creating little dolls of the characters and when you pick it up, the character appears. 😁

I was also thinking of including the option to add a partner through a menu, within the game mode. 🤓

What I'm not very clear about is what the item should be like when you take it and the NPC brings you it. :unsure:

I have tested it using a didhitscript, but the npc does not appear. :(
 
Last edited:
I have tested it using a didhitscript, but the npc does not appear. :(
@dantedevil Hi buddy. I think the didhitscript is the proper way, but you will need to remove some button routines since the original code works using keyscripts.

Basically this is the part where the cpu partner spawns, you can try to put in your didhitscript to see if it works.

Code:
void main()
{//Adjust CPU partner mode and aggression
    void self    = getlocalvar("self");
    void vSpawn;
    void partnerName    = "PutTheEntityNameHere";
    int pIndex            = getentityproperty(self, "playerindex");
    int dir                = getentityproperty(self, "direction");
    int x                = getentityproperty(self, "x");
    int y                = getentityproperty(self, "y");
    int z                = getentityproperty(self, "z");
    int height            = 300;

    //START THE SPAWN OPERATION
    if(getglobalvar("partnerIndex") == NULL()){ //ONLY 1 PARTNER IS ALLOWED
        loadmodel(partnerName);
        clearspawnentry(); //CLEAR CURRENT SPAWN ENTRY
        setspawnentry("name", partnerName); //ACQUIRE SPAWN ENTITY BY NAME
        vSpawn = spawn(); //SPAWN IN ENTITY
        changeentityproperty(vSpawn, "position", x, z, y+height); //SET SPAWN POSITION
        changeentityproperty(vSpawn, "direction", dir); //SET SPAWN DIRECTION
        setglobalvar("partnerIndex", pIndex); //SAVE THE CURRENT PARTNER "PARENT" INDEX
        setglobalvar("currentPartner", vSpawn); //SAVE THE CURRENT PARTNER NAME
        setglobalvar("partnerAlive", 1); //SET PARTNER'S ALIVE FLAG TO 1
        setglobalvar("partnerFull", 0); //SET PARTNER'S FULL LIFE FLAG TO 0
    }
}
 
Thanks buddy ! 😊

@Kratus Hi my friend!

I finally decided to use the full system and then make the necessary modifications. 😃

I'm using the scripts of the portable version you shared in the YouTube video > Partner Menu (Portable V2) 👈
I have followed all the steps in the video, but I have several problems. 😞

  1. The NPC does not attack enemies, no matter if you change "FIGHTING MODE", only attacks the enemy if the "Follower Caller" is in manual.
  2. The "Aggression" options do not appear visible
  3. The "Follower Caller" only works in manual mode and the call arrow does not appear in the player, even though I have already changed the font.
  4. I have added 3 special partners, but it only lets me choose the first one.
Screenshot_1.png


Here attaching my script files, including my original update.c and one edited to make partner mode work.
As well as the 3 txt files of the NPCs, to see if you can help me see what I did wrong in the scripts. 😕

Thanks!
 

Attachments

Last edited:
The NPC does not attack enemies, no matter if you change "FIGHTING MODE", only attacks the enemy if the "Follower Caller" is in manual.
The "Follower Caller" only works in manual mode and the call arrow does not appear in the player, even though I have already changed the font.
For these issues, unfortunately I can't help too much without testing directly in the game, I suggest redoing the steps based on the template I uploaded in the resources to confirm if you are not missing anyone.

The "Aggression" options do not appear visible
It seems that you have a problem with the font used for the * character.

I have added 3 special partners, but it only lets me choose the first one.
In this case you didn't follow the original format, you need to code this way:

When moving right
Code:
//IS PARTNER NAME HIGHLIGHTED??
if(getglobalvar("highlight") == 6){
    if(getglobalvar("selectPartner") == "BALROG_"){setglobalvar("selectPartner", "VEGA_");}else
    if(getglobalvar("selectPartner") == "VEGA_"){setglobalvar("selectPartner", "ZANGIEF_");}else
    if(getglobalvar("selectPartner") == "ZANGIEF_"){setglobalvar("selectPartner", "BALROG_");}
}

When moving left
Code:
//IS PARTNER NAME HIGHLIGHTED??
if(getglobalvar("highlight") == 6){
    if(getglobalvar("selectPartner") == "BALROG_"){setglobalvar("selectPartner", "ZANGIEF_");}else
    if(getglobalvar("selectPartner") == "ZANGIEF_"){setglobalvar("selectPartner", "VEGA_");}else
    if(getglobalvar("selectPartner") == "VEGA_"){setglobalvar("selectPartner", "BALROG_");}
}
 
Thanks @Kratus ! 😊

Well my friend, it seems I was able to solve all the problems for now. 😅

But I just encountered two problems, which you can see in this video. 🤨

- Every time the "special partner" moves too far away from the player, he teleports to his side. :oops:
I already tried it with Balrog, Vega and Zangief; and the same thing happens with all 3. :confused:

- I've done several tests and I see that the enemies don't detect the special partner (NPC). 🤨
I've been checking the demo "Partner Menu (Portable V2)" and I see that the enemies don't have "candamage" or "hostile" in their header, the same thing happens in my game.
But in my case they don't attack the NPC and I don't understand why... 😕



And I take this opportunity to ask you for help with one more thing: 🙏

How can I make the parter menu not be enabled in: :unsure:
1) Some specific game modes.
2) Some specific levels.

Thanks! 🤜🤛
 
Last edited:
Well my friend, it seems I was able to solve all the problems for now. 😅
Great! Glad the problems are solved :)

- Every time the "special partner" moves too far away from the player, he teleports to his side. :oops:
This is due to the range adjustment at the idle anim in the npc character when they are using subtype follow. If the npc exceeds the maximum value, he is immediately teleported to the spawner position.

1730341619296.png

Usually I adjust the X axis range based on the screen width with some additional pixels for safety. So, for a 480x272 resolution, I'm using 520 as a X axis range.

Code:
anim idle
    range    0 520
    rangea    -999 999
    rangez    -999 999
    loop    1
    delay    16
    offset    137 172
    bbox    126 95 23 79
    @cmd clearL
    frame    data/chars/heroes/adam/idle00.png
    frame    data/chars/heroes/adam/idle01.png
    frame    data/chars/heroes/adam/idle02.png
    frame    data/chars/heroes/adam/idle03.png
    frame    data/chars/heroes/adam/idle00.png
    frame    data/chars/heroes/adam/idle01.png
    frame    data/chars/heroes/adam/idle02.png
    frame    data/chars/heroes/adam/idle03.png

- I've done several tests and I see that the enemies don't detect the special partner (NPC). 🤨
I've been checking the demo "Partner Menu (Portable V2)" and I see that the enemies don't have "candamage" or "hostile" in their header, the same thing happens in my game.
But in my case they don't attack the NPC and I don't understand why... 😕
The cpu partner menu only manages npcs in this case, and does not affect enemies. I suggest checking if there's other scripts conflicting with the hostile header property.

1) Some specific game modes.
You need to check the current set and only allow if they are different from the ones listed inside the keyall.c file, like this.

Code:
    //MAIN COMMAND TO OPEN AND CLOSE PARTNER MENU
    if(playerkeys(player, 1, "screenshot") && hasplayed){ //SELECT BUTTON IS PRESSED??
        if(openborvariant("in_level")){ //CHECK IF THE GAME IS IN ANY LEVEL AND ARCADE LOCK IS "0"
            if(!openborvariant("pause") && !openborvariant("in_options")){ //CHECK IF THE GAME IS NOT PAUSED OR IN OPTIONS
                if(openborvariant("current_set") != 0){ //CHECK THE GAME MODES NOT ALLOWED

                    if(getglobalvar("activeText") == 0){ //CHECK IF ANY MENU IS ALREADY ON
                        playsample(openborconstant("SAMPLE_BEEP2"), 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0); //PLAY SAMPLE
                        changeopenborvariant("nopause", 1); //LOCK PAUSE COMMAND
                        changeopenborvariant("textbox", 1); //CALL TEXTBOX TO FREEZE THE GAME
                        setglobalvar("highlight", 0); //SET TO THE FIRST HIGHLIGHTED OPTION
                        setglobalvar("activeText", "Partner"); //SET ACTIVE TEXT ON SCREEN TO "EXTRA MENU" TO ACTIVATE OTHER SCRIPTS
                    }
                    else
                    if(getglobalvar("activeText") == "Partner"){ //CHECK IF EXTRA MENU IS ALREADY ON
                        playsample(openborconstant("SAMPLE_BEEP2"), 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0); //PLAY SAMPLE
                        changeopenborvariant("nopause", 0); //UNLOCK PAUSE COMMAND
                        changeopenborvariant("textbox", NULL()); //CLEAR TEXTBOX TO NOT FREEZE THE GAME
                        setglobalvar("highlight", 0); //RESET HIGHLIGHT VARIABLE TO DEFAULT
                        setglobalvar("activeText", 0); //SET ACTIVE TEXT ON SCREEN TO "0" TO DEACTIVATE OTHER SCRIPTS
                    }
                }
            }
        }
    }

2) Some specific levels.
For this one I suggest to give a branch name in every level for easier use, then use current branch on the same way as the current set.

Code:
 if(openborvariant("current_branch") != "streets"){ //CHECK THE LEVELS/BRANCHES NOT ALLOWED
 
Wow @Kratus ! :D
Thanks my friend! 🙏

Usually I adjust the X axis range based on the screen width with some additional pixels for safety. So, for a 480x272 resolution, I'm using 520 as a X axis range.
I didn't know anything about that, I had set the same parameters as your demo, that was causing the problem.
Now I modified it and it works perfectly! (y)

The cpu partner menu only manages npcs in this case, and does not affect enemies. I suggest checking if there's other scripts conflicting with the hostile header property.
I thought so, but I've been looking at my game's enemies and I can't find any scripts that affect the "hostile" and "candamage" settings.
I'll have to do some more research. 😕
Thanks! 👍

You need to check the current set and only allow if they are different from the ones listed inside the keyall.c file, like this.
I have tried it with only one game mode and it works perfectly, but when I want to add more it always gives me an error and I know it's because I'm not entering it correctly.
I don't understand exactly what the syntax is for this type of script. :unsure:
Code:
if(openborvariant("current_set") != 4 || set==5 || set==6 || set==7 || set==8 || set==9 || set==10 || set==11 || set==12){ //CHECK THE GAME MODES NOT ALLOWED

For this one I suggest to give a branch name in every level for easier use, then use current branch on the same way as the current set.
I have tried it with only one stage and it works perfectly, but with multiple levels, I have the same problem as with game modes., the game does not open because there is an error in the script.
Code:
if(openborvariant("current_branch") != "act01" || == "act02" || == "act03" || == "act04" || == "act05" || == "act06" || == "act07" || != "act08"){ //CHECK THE LEVELS/BRANCHES NOT ALLOWED



And finally, after so much inconvenience, I wanted to tell you that since I decided to use your "Special Patner" system in my game, it is logical that you have the corresponding credits. 💪
Not only for your contribution, but for all the help you have always given me in such good faith. 🤝

So here is the new updated intro and you are in it... 👇

powered.gif

Thanks for all my friend! 🤜🤛
Code:
if(openborvariant("current_branch") != "act01"){ //CHECK THE LEVELS/BRANCHES NOT ALLOWED
 
Last edited:
if(openborvariant("current_set") != 4 || set==5 || set==6 || set==7 || set==8 || set==9 || set==10 || set==11 || set==12){ //CHECK THE GAME MODES NOT ALLOWED
I suggest to code this way, you can choose the one that fits better for your purpose.

Execute the script only if the current set is different from the list below.
Code:
//CHECK THE GAME MODES NOT ALLOWED
//IF NOT ON THESE SETS, EXECUTE THE SCRIPT
if( openborvariant("current_set") != 4 &&
    openborvariant("current_set") != 5 &&
    openborvariant("current_set") != 6 &&
    openborvariant("current_set") != 7 &&
    openborvariant("current_set") != 8 &&
    openborvariant("current_set") != 9 &&
    openborvariant("current_set") != 10 &&
    openborvariant("current_set") != 11 &&
    openborvariant("current_set") != 12 ){
    
    doSomething();
}

Execute the script only if the current set is the same as any of these in the list below.
Code:
//CHECK THE GAME MODES ALLOWED
//IF ON THESE SETS, EXECUTE THE SCRIPT
if( openborvariant("current_set") == 4 ||
    openborvariant("current_set") == 5 ||
    openborvariant("current_set") == 6 ||
    openborvariant("current_set") == 7 ||
    openborvariant("current_set") == 8 ||
    openborvariant("current_set") == 9 ||
    openborvariant("current_set") == 10 ||
    openborvariant("current_set") == 11 ||
    openborvariant("current_set") == 12 ){
    
    doSomething();
}

Thank you, friend. Glad that I can help :)
And finally, after so much inconvenience, I wanted to tell you that since I decided to use your "Special Patner" system in my game, it is logical that you have the corresponding credits. 💪
Not only for your contribution, but for all the help you have always given me in such good faith. 🤝

So here is the new updated intro and you are in it... 👇

powered.gif
 
Thanks for all my friend! 🤛

Ok @Kratus , this is my keyall.c updated, with the "current_set" and the "current_branch" added 👇

But there is something that is not very clear to me... 🤨
What do I have to put instead of "doSomething();" so that the menu is not executed? :unsure:

I'm pretty familiar with scripts, although I'm obviously no expert. 🤓

I understand that it means "EXECUTE THE SCRIPT", if the "openbor variant" match. 😁
But I can't figure out what the exact command is that prevents the menu from opening. 😕

I tried several options and after not getting the solution, I left the next one, even though it didn't do anything. :cautious:
Code:
    setglobalvar("menuPartners", NULL());

C++:
#include "data/scripts/story/story_keys.c"

void main()
{//Global keyall scripts, detects player index
    int player = getlocalvar("player");
    storyKeys();   
    if(player == 0 && openborvariant("count_players") <= 1){
        menuPartners(player);
    }
}

void menuPartners(int player)
{//Adjust CPU partner mode and aggression
    void self        = getplayerproperty(player, "entity");
    int highlight    = getglobalvar("highlight");
    int hasplayed    = getplayerproperty(player, "hasplayed");
    int dir            = getentityproperty(self, "direction");
    int max            = 6;
    int min            = 0;
    int add            = 1;
    float x            = getentityproperty(self, "x");
    float y            = getentityproperty(self, "y");
    float z            = getentityproperty(self, "z");

    //MAIN COMMAND TO OPEN AND CLOSE PARTNER MENU
    if(playerkeys(player, 1, "screenshot") && hasplayed){ //SELECT BUTTON IS PRESSED??
        if(openborvariant("in_level")){ //CHECK IF THE GAME IS IN ANY LEVEL AND ARCADE LOCK IS "0"
            if(!openborvariant("pause") && !openborvariant("in_options")){ //CHECK IF THE GAME IS NOT PAUSED OR IN OPTIONS

//CHECK THE GAME MODES ALLOWED
//IF ON THESE SETS, EXECUTE THE SCRIPT
if( openborvariant("current_set") == 4 ||
    openborvariant("current_set") == 5 ||
    openborvariant("current_set") == 6 ||
    openborvariant("current_set") == 7 ||
    openborvariant("current_set") == 8 ||
    openborvariant("current_set") == 9 ||
    openborvariant("current_set") == 10 ||
    openborvariant("current_set") == 11 ||
    openborvariant("current_set") == 12 ){


    setglobalvar("menuPartners", NULL());
}
//CHECK THE LEVELS/BRANCHES NOT ALLOWED
//IF ON LEVELS/BRANCHES, EXECUTE THE SCRIPT
if( openborvariant("current_branch") == "act01" ||
    openborvariant("current_branch") == "act02" ||
    openborvariant("current_branch") == "act03" ||
    openborvariant("current_branch") == "act04" ||
    openborvariant("current_branch") == "act05" ||
    openborvariant("current_branch") == "act06" ||
    openborvariant("current_branch") == "act07" ||
    openborvariant("current_branch") == "act08"){


    setglobalvar("menuPartners", NULL());
}


                if(getglobalvar("activeText") == 0){ //CHECK IF ANY MENU IS ALREADY ON
                    playsample(openborconstant("SAMPLE_BEEP2"), 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0); //PLAY SAMPLE
                    changeopenborvariant("nopause", 1); //LOCK PAUSE COMMAND
                    changeopenborvariant("textbox", 1); //CALL TEXTBOX TO FREEZE THE GAME
                    setglobalvar("highlight", 0); //SET TO THE FIRST HIGHLIGHTED OPTION
                    setglobalvar("activeText", "Partner"); //SET ACTIVE TEXT ON SCREEN TO "EXTRA MENU" TO ACTIVATE OTHER SCRIPTS
                }
                else
                if(getglobalvar("activeText") == "Partner"){ //CHECK IF EXTRA MENU IS ALREADY ON
                    playsample(openborconstant("SAMPLE_BEEP2"), 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0); //PLAY SAMPLE
                    changeopenborvariant("nopause", 0); //UNLOCK PAUSE COMMAND
                    changeopenborvariant("textbox", NULL()); //CLEAR TEXTBOX TO NOT FREEZE THE GAME
                    setglobalvar("highlight", 0); //RESET HIGHLIGHT VARIABLE TO DEFAULT
                    setglobalvar("activeText", 0); //SET ACTIVE TEXT ON SCREEN TO "0" TO DEACTIVATE OTHER SCRIPTS
                }
            }
        }
    }
    
    if(getglobalvar("activeText") == "Partner" && hasplayed){

        //HIGHLIGHT OPTIONS WHEN MOVE DOWN
        if(playerkeys(player, 1, "movedown")){
            playsample(openborconstant("SAMPLE_BEEP"), 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0); //PLAY SAMPLE
            if(highlight >= min && highlight < max){setglobalvar("highlight", highlight+add);}
            if(highlight == max){setglobalvar("highlight", min);}
        }
        
        //HIGHLIGHT OPTIONS WHEN MOVE UP
        if(playerkeys(player, 1, "moveup")){
            playsample(openborconstant("SAMPLE_BEEP"), 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0); //PLAY SAMPLE
            if(highlight > min && highlight <= max){setglobalvar("highlight", highlight-add);}
            if(highlight == min){setglobalvar("highlight", max);}
        }
        
        //CHANGE ALL OPTIONS INSIDE THIS MENU WHEN MOVE RIGHT
        if(playerkeys(player, 1, "moveright")){
            playsample(openborconstant("SAMPLE_BEEP"), 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0); //PLAY SAMPLE
            
            //IS PARTNER MODE HIGHLIGHTED??
            if(getglobalvar("highlight") == 0){
                if(getglobalvar("partnerMode") == "balanced"){setglobalvar("partnerMode", "attack");}else
                if(getglobalvar("partnerMode") == "attack"){setglobalvar("partnerMode", "defense");}else
                if(getglobalvar("partnerMode") == "defense"){setglobalvar("partnerMode", "balanced");}
            }
            
            //IS PARTNER AGGRESSION HIGHLIGHTED??
            if(getglobalvar("highlight") == 1){
                if(getglobalvar("partnerAggression") == "*"){setglobalvar("partnerAggression", "**");}else
                if(getglobalvar("partnerAggression") == "**"){setglobalvar("partnerAggression", "***");}else
                if(getglobalvar("partnerAggression") == "***"){setglobalvar("partnerAggression", "****");}else
                if(getglobalvar("partnerAggression") == "****"){setglobalvar("partnerAggression", "*****");}else
                if(getglobalvar("partnerAggression") == "*****"){setglobalvar("partnerAggression", "******");}else
                if(getglobalvar("partnerAggression") == "******"){setglobalvar("partnerAggression", "*******");}else
                if(getglobalvar("partnerAggression") == "*******"){setglobalvar("partnerAggression", "********");}else
                if(getglobalvar("partnerAggression") == "********"){setglobalvar("partnerAggression", "*********");}else
                if(getglobalvar("partnerAggression") == "*********"){setglobalvar("partnerAggression", "*");}
            }
            
            //IS PARTNER GET FOOD HIGHLIGHTED??
            if(getglobalvar("highlight") == 2){
                if(getglobalvar("partnerGetFood") == "yes"){setglobalvar("partnerGetFood", "no");}else
                if(getglobalvar("partnerGetFood") == "no"){setglobalvar("partnerGetFood", "yes");}
            }
            
            //IS PARTNER FOLLOW HIGHLIGHTED??
            if(getglobalvar("highlight") == 3){
                if(getglobalvar("partnerFollow") == "automatic"){setglobalvar("partnerFollow", "manual");}else
                if(getglobalvar("partnerFollow") == "manual"){setglobalvar("partnerFollow", "automatic");}
            }
            
            //IS PARTNER RESPAWN HIGHLIGHTED??
            if(getglobalvar("highlight") == 4){
                if(getglobalvar("partnerRespawn") == "instantly"){setglobalvar("partnerRespawn", "each_new_level");}else
                if(getglobalvar("partnerRespawn") == "each_new_level"){
                    if(getglobalvar("partnerAlive") == 0){setglobalvar("partnerIndex", NULL());}
                    setglobalvar("partnerRespawn", "instantly");
                }
            }

            //IS PARTNER LIFE BAR HIGHLIGHTED??
            if(getglobalvar("highlight") == 5){
                if(getglobalvar("partnerLifeBar") == "full_hud"){setglobalvar("partnerLifeBar", "simple");}else
                if(getglobalvar("partnerLifeBar") == "simple"){setglobalvar("partnerLifeBar", "full_hud");}
            }

            //IS PARTNER NAME HIGHLIGHTED??
            if(getglobalvar("highlight") == 6){
            if(getglobalvar("selectPartner") == "BALROG_"){setglobalvar("selectPartner", "VEGA_");}else
            if(getglobalvar("selectPartner") == "VEGA_"){setglobalvar("selectPartner", "ZANGIEF_");}else
            if(getglobalvar("selectPartner") == "ZANGIEF_"){setglobalvar("selectPartner", "BALROG_");}
}
        }
        
        //CHANGE ALL OPTIONS INSIDE THIS MENU WHEN MOVE LEFT
        if(playerkeys(player, 1, "moveleft")){
            playsample(openborconstant("SAMPLE_BEEP"), 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0); //PLAY SAMPLE
            
            //IS PARTNER MODE HIGHLIGHTED??
            if(getglobalvar("highlight") == 0){
                if(getglobalvar("partnerMode") == "balanced"){setglobalvar("partnerMode", "defense");}else
                if(getglobalvar("partnerMode") == "defense"){setglobalvar("partnerMode", "attack");}else
                if(getglobalvar("partnerMode") == "attack"){setglobalvar("partnerMode", "balanced");}
            }
            
            //IS PARTNER AGGRESSION HIGHLIGHTED??
            if(getglobalvar("highlight") == 1){
                if(getglobalvar("partnerAggression") == "*"){setglobalvar("partnerAggression", "*********");}else
                if(getglobalvar("partnerAggression") == "*********"){setglobalvar("partnerAggression", "********");}else
                if(getglobalvar("partnerAggression") == "********"){setglobalvar("partnerAggression", "*******");}else
                if(getglobalvar("partnerAggression") == "*******"){setglobalvar("partnerAggression", "******");}else
                if(getglobalvar("partnerAggression") == "******"){setglobalvar("partnerAggression", "*****");}else
                if(getglobalvar("partnerAggression") == "*****"){setglobalvar("partnerAggression", "****");}else
                if(getglobalvar("partnerAggression") == "****"){setglobalvar("partnerAggression", "***");}else
                if(getglobalvar("partnerAggression") == "***"){setglobalvar("partnerAggression", "**");}else
                if(getglobalvar("partnerAggression") == "**"){setglobalvar("partnerAggression", "*");}
            }
            
            //IS PARTNER GET FOOD HIGHLIGHTED??
            if(getglobalvar("highlight") == 2){
                if(getglobalvar("partnerGetFood") == "yes"){setglobalvar("partnerGetFood", "no");}else
                if(getglobalvar("partnerGetFood") == "no"){setglobalvar("partnerGetFood", "yes");}
            }
            
            //IS PARTNER FOLLOW HIGHLIGHTED??
            if(getglobalvar("highlight") == 3){
                if(getglobalvar("partnerFollow") == "automatic"){setglobalvar("partnerFollow", "manual");}else
                if(getglobalvar("partnerFollow") == "manual"){setglobalvar("partnerFollow", "automatic");}
            }
            
            //IS PARTNER RESPAWN HIGHLIGHTED??
            if(getglobalvar("highlight") == 4){
                if(getglobalvar("partnerRespawn") == "instantly"){setglobalvar("partnerRespawn", "each_new_level");}else
                if(getglobalvar("partnerRespawn") == "each_new_level"){
                    if(getglobalvar("partnerAlive") == 0){setglobalvar("partnerIndex", NULL());}
                    setglobalvar("partnerRespawn", "instantly");
                }
            }

            //IS PARTNER LIFE BAR HIGHLIGHTED??
            if(getglobalvar("highlight") == 5){
                if(getglobalvar("partnerLifeBar") == "full_hud"){setglobalvar("partnerLifeBar", "simple");}else
                if(getglobalvar("partnerLifeBar") == "simple"){setglobalvar("partnerLifeBar", "full_hud");}
            }

            //IS PARTNER NAME HIGHLIGHTED??
            if(getglobalvar("highlight") == 6){
            if(getglobalvar("selectPartner") == "BALROG_"){setglobalvar("selectPartner", "VEGA_");}else
            if(getglobalvar("selectPartner") == "VEGA_"){setglobalvar("selectPartner", "ZANGIEF_");}else
            if(getglobalvar("selectPartner") == "ZANGIEF_"){setglobalvar("selectPartner", "BALROG_");}
            }
        }

        //SPAWN CPU PARTNER IN-GAME
        if(playerkeys(player, 1, "attack")){ //ATTACK BUTTON IS PRESSED??
            if(getglobalvar("highlight") == max){ //IS PARTNER SPAWN OPTION HIGHLIGHTED??
                if(getglobalvar("partnerIndex") == NULL()){ //ONLY 1 PARTNER IS ALLOWED
                    playsample(openborconstant("SAMPLE_BEEP"), 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0); //PLAY SAMPLE
                    
                    //START THE SPAWN OPERATION
                    void vSpawn;
                    int height = 300;
                    loadmodel(getglobalvar("selectPartner"), 3);
                    clearspawnentry(); //CLEAR CURRENT SPAWN ENTRY
                    setspawnentry("name", getglobalvar("selectPartner")); //ACQUIRE SPAWN ENTITY BY NAME
                    vSpawn = spawn(); //SPAWN IN ENTITY
                    changeentityproperty(vSpawn, "position", x, z, y+height); //SET SPAWN POSITION
                    changeentityproperty(vSpawn, "direction", dir); //SET SPAWN DIRECTION
                    setglobalvar("highlight", 0); //RESET THE HIGHLIGHT OPTION
                    setglobalvar("partnerIndex", player); //SAVE THE CURRENT PARTNER "PARENT" INDEX
                    setglobalvar("currentPartner", vSpawn); //SAVE THE CURRENT PARTNER NAME
                    setglobalvar("partnerAlive", 1); //SET PARTNER'S ALIVE FLAG TO 1
                    setglobalvar("partnerFull", 0); //SET PARTNER'S FULL LIFE FLAG TO 0

                    //CLOSE PARTNER MENU INSTANTLY
                    if(getglobalvar("activeText") == "Partner"){ //CHECK IF EXTRA MENU IS ALREADY ON
                        playsample(openborconstant("SAMPLE_BEEP2"), 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0); //PLAY SAMPLE
                        changeopenborvariant("nojoin", 1); //PREVENT OTHER PLAYERS TO ENTER IN THE GAME
                        changeopenborvariant("nopause", 0); //UNLOCK PAUSE COMMAND
                        changeopenborvariant("textbox", NULL()); //CLEAR TEXTBOX TO NOT FREEZE THE GAME
                        setglobalvar("highlight", 0); //RESET HIGHLIGHT VARIABLE TO DEFAULT
                        setglobalvar("activeText", 0); //SET ACTIVE TEXT ON SCREEN TO "0" TO DEACTIVATE OTHER SCRIPTS
                    }
                }
            }
        }
    }
    
    //PARTNER CALL BUTTON AND CUSTOM PARROW USED IN ONDRAW.C AND THINK.C
    void player1 = getplayerproperty(0, "entity");
    void player2 = getplayerproperty(1, "entity");
    void player3 = getplayerproperty(2, "entity");
    void player4 = getplayerproperty(3, "entity");
    
    //USED TO MAKE THE SCRIPT WORKS WITH ANY PLAYER IN THE SCREEN AND WITH NO MENUS
    if(getglobalvar("activeText") == 0){
        if(playerkeys(player, 1, "attack4") && getglobalvar("partnerAlive") == 1){
            
            //USED TO CHANGE THE PARTNER INDEX IF THE CALLER IS DEAD
            if(getglobalvar("partnerIndex") == 0 && player1 == NULL()){
                if(player2 != NULL()){setglobalvar("partnerIndex", 1);}else
                if(player3 != NULL()){setglobalvar("partnerIndex", 2);}else
                if(player4 != NULL()){setglobalvar("partnerIndex", 3);}
            }
            if(getglobalvar("partnerIndex") == 1 && player2 == NULL()){
                if(player3 != NULL()){setglobalvar("partnerIndex", 2);}else
                if(player4 != NULL()){setglobalvar("partnerIndex", 3);}else
                if(player1 != NULL()){setglobalvar("partnerIndex", 0);}
            }
            if(getglobalvar("partnerIndex") == 2 && player3 == NULL()){
                if(player4 != NULL()){setglobalvar("partnerIndex", 3);}else
                if(player1 != NULL()){setglobalvar("partnerIndex", 0);}else
                if(player2 != NULL()){setglobalvar("partnerIndex", 1);}
            }
            if(getglobalvar("partnerIndex") == 3 && player4 == NULL()){
                if(player1 != NULL()){setglobalvar("partnerIndex", 0);}else
                if(player2 != NULL()){setglobalvar("partnerIndex", 1);}else
                if(player3 != NULL()){setglobalvar("partnerIndex", 2);}
            }
            
            //USED TO CALL PARTNER
            if(player == getglobalvar("partnerIndex")){
                if(getglobalvar("partnerParrow") != "call"){
                    playsample(openborconstant("SAMPLE_BEEP"), 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0); //PLAY SAMPLE
                    setglobalvar("partnerParrow", "call");
                }
                else
                {
                    playsample(openborconstant("SAMPLE_BEEP"), 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0); //PLAY SAMPLE
                    setglobalvar("partnerParrow", NULL());
                }
            }
        }
    }
}
 
What do I have to put instead of "doSomething();" so that the menu is not executed? :unsure:
This is not a function really, it is just to illustrate how the logic works. You need to put the set/branch filter in the same place I posted in my previous post.

Code:
    //MAIN COMMAND TO OPEN AND CLOSE PARTNER MENU
    if(playerkeys(player, 1, "screenshot") && hasplayed){ //SELECT BUTTON IS PRESSED??
        if(openborvariant("in_level")){ //CHECK IF THE GAME IS IN ANY LEVEL AND ARCADE LOCK IS "0"
            if(!openborvariant("pause") && !openborvariant("in_options")){ //CHECK IF THE GAME IS NOT PAUSED OR IN OPTIONS
               
                //CHECK THE GAME MODES NOT ALLOWED
                if( openborvariant("current_set") != 4 &&
                    openborvariant("current_set") != 5 &&
                    openborvariant("current_set") != 6 &&
                    openborvariant("current_set") != 7 &&
                    openborvariant("current_set") != 8 &&
                    openborvariant("current_set") != 9 &&
                    openborvariant("current_set") != 10 &&
                    openborvariant("current_set") != 11 &&
                    openborvariant("current_set") != 12 ){

                    if(getglobalvar("activeText") == 0){ //CHECK IF ANY MENU IS ALREADY ON
                        playsample(openborconstant("SAMPLE_BEEP2"), 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0); //PLAY SAMPLE
                        changeopenborvariant("nopause", 1); //LOCK PAUSE COMMAND
                        changeopenborvariant("textbox", 1); //CALL TEXTBOX TO FREEZE THE GAME
                        setglobalvar("highlight", 0); //SET TO THE FIRST HIGHLIGHTED OPTION
                        setglobalvar("activeText", "Partner"); //SET ACTIVE TEXT ON SCREEN TO "EXTRA MENU" TO ACTIVATE OTHER SCRIPTS
                    }
                    else
                    if(getglobalvar("activeText") == "Partner"){ //CHECK IF EXTRA MENU IS ALREADY ON
                        playsample(openborconstant("SAMPLE_BEEP2"), 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0); //PLAY SAMPLE
                        changeopenborvariant("nopause", 0); //UNLOCK PAUSE COMMAND
                        changeopenborvariant("textbox", NULL()); //CLEAR TEXTBOX TO NOT FREEZE THE GAME
                        setglobalvar("highlight", 0); //RESET HIGHLIGHT VARIABLE TO DEFAULT
                        setglobalvar("activeText", 0); //SET ACTIVE TEXT ON SCREEN TO "0" TO DEACTIVATE OTHER SCRIPTS
                    }
                }
            }
        }
    }

This way the core of the script will only work outside of these blacklisted levels. You can also mix the "current set" with the "current branch" in the same filter.
 
Upps! 😅
Sorry, my bad! 😬

Solved! :D
THANKS!!! 🤜🤛
C++:
#include "data/scripts/story/story_keys.c"

void main()
{//Global keyall scripts, detects player index
    int player = getlocalvar("player");
    storyKeys();   
    if(player == 0 && openborvariant("count_players") <= 1){
        menuPartners(player);
    }
}

void menuPartners(int player)
{//Adjust CPU partner mode and aggression
    void self        = getplayerproperty(player, "entity");
    int highlight    = getglobalvar("highlight");
    int hasplayed    = getplayerproperty(player, "hasplayed");
    int dir            = getentityproperty(self, "direction");
    int max            = 6;
    int min            = 0;
    int add            = 1;
    float x            = getentityproperty(self, "x");
    float y            = getentityproperty(self, "y");
    float z            = getentityproperty(self, "z");

    //MAIN COMMAND TO OPEN AND CLOSE PARTNER MENU
    if(playerkeys(player, 1, "screenshot") && hasplayed){ //SELECT BUTTON IS PRESSED??
        if(openborvariant("in_level")){ //CHECK IF THE GAME IS IN ANY LEVEL AND ARCADE LOCK IS "0"
            if(!openborvariant("pause") && !openborvariant("in_options")){ //CHECK IF THE GAME IS NOT PAUSED OR IN OPTIONS
              
                //CHECK THE GAME MODES NOT ALLOWED
                if( openborvariant("current_set") != 4 &&
                    openborvariant("current_set") != 5 &&
                    openborvariant("current_set") != 6 &&
                    openborvariant("current_set") != 7 &&
                    openborvariant("current_set") != 8 &&
                    openborvariant("current_set") != 9 &&
                    openborvariant("current_set") != 10 &&
                    openborvariant("current_set") != 11 &&
                    openborvariant("current_set") != 12 ){

                //CHECK THE LEVELS/BRANCHES NOT ALLOWED
                //IF ON LEVELS/BRANCHES, EXECUTE THE SCRIPT
                if( openborvariant("current_branch") != "act01" &&
                    openborvariant("current_branch") != "act02" &&
                    openborvariant("current_branch") != "act03" &&
                    openborvariant("current_branch") != "act04" &&
                    openborvariant("current_branch") != "act05" &&
                    openborvariant("current_branch") != "act06" &&
                    openborvariant("current_branch") != "act07" &&
                    openborvariant("current_branch") != "act08"){

                if(getglobalvar("activeText") == 0){ //CHECK IF ANY MENU IS ALREADY ON
                    playsample(openborconstant("SAMPLE_BEEP2"), 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0); //PLAY SAMPLE
                    changeopenborvariant("nopause", 1); //LOCK PAUSE COMMAND
                    changeopenborvariant("textbox", 1); //CALL TEXTBOX TO FREEZE THE GAME
                    setglobalvar("highlight", 0); //SET TO THE FIRST HIGHLIGHTED OPTION
                    setglobalvar("activeText", "Partner"); //SET ACTIVE TEXT ON SCREEN TO "EXTRA MENU" TO ACTIVATE OTHER SCRIPTS
                }
                else
                if(getglobalvar("activeText") == "Partner"){ //CHECK IF EXTRA MENU IS ALREADY ON
                    playsample(openborconstant("SAMPLE_BEEP2"), 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0); //PLAY SAMPLE
                    changeopenborvariant("nopause", 0); //UNLOCK PAUSE COMMAND
                    changeopenborvariant("textbox", NULL()); //CLEAR TEXTBOX TO NOT FREEZE THE GAME
                    setglobalvar("highlight", 0); //RESET HIGHLIGHT VARIABLE TO DEFAULT
                    setglobalvar("activeText", 0); //SET ACTIVE TEXT ON SCREEN TO "0" TO DEACTIVATE OTHER SCRIPTS
                }
            }
        }
    }
   }   
}

    if(getglobalvar("activeText") == "Partner" && hasplayed){

        //HIGHLIGHT OPTIONS WHEN MOVE DOWN
        if(playerkeys(player, 1, "movedown")){
            playsample(openborconstant("SAMPLE_BEEP"), 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0); //PLAY SAMPLE
            if(highlight >= min && highlight < max){setglobalvar("highlight", highlight+add);}
            if(highlight == max){setglobalvar("highlight", min);}
        }
        
        //HIGHLIGHT OPTIONS WHEN MOVE UP
        if(playerkeys(player, 1, "moveup")){
            playsample(openborconstant("SAMPLE_BEEP"), 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0); //PLAY SAMPLE
            if(highlight > min && highlight <= max){setglobalvar("highlight", highlight-add);}
            if(highlight == min){setglobalvar("highlight", max);}
        }
        
        //CHANGE ALL OPTIONS INSIDE THIS MENU WHEN MOVE RIGHT
        if(playerkeys(player, 1, "moveright")){
            playsample(openborconstant("SAMPLE_BEEP"), 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0); //PLAY SAMPLE
            
            //IS PARTNER MODE HIGHLIGHTED??
            if(getglobalvar("highlight") == 0){
                if(getglobalvar("partnerMode") == "balanced"){setglobalvar("partnerMode", "attack");}else
                if(getglobalvar("partnerMode") == "attack"){setglobalvar("partnerMode", "defense");}else
                if(getglobalvar("partnerMode") == "defense"){setglobalvar("partnerMode", "balanced");}
            }
            
            //IS PARTNER AGGRESSION HIGHLIGHTED??
            if(getglobalvar("highlight") == 1){
                if(getglobalvar("partnerAggression") == "*"){setglobalvar("partnerAggression", "**");}else
                if(getglobalvar("partnerAggression") == "**"){setglobalvar("partnerAggression", "***");}else
                if(getglobalvar("partnerAggression") == "***"){setglobalvar("partnerAggression", "****");}else
                if(getglobalvar("partnerAggression") == "****"){setglobalvar("partnerAggression", "*****");}else
                if(getglobalvar("partnerAggression") == "*****"){setglobalvar("partnerAggression", "******");}else
                if(getglobalvar("partnerAggression") == "******"){setglobalvar("partnerAggression", "*******");}else
                if(getglobalvar("partnerAggression") == "*******"){setglobalvar("partnerAggression", "********");}else
                if(getglobalvar("partnerAggression") == "********"){setglobalvar("partnerAggression", "*********");}else
                if(getglobalvar("partnerAggression") == "*********"){setglobalvar("partnerAggression", "*");}
            }
            
            //IS PARTNER GET FOOD HIGHLIGHTED??
            if(getglobalvar("highlight") == 2){
                if(getglobalvar("partnerGetFood") == "yes"){setglobalvar("partnerGetFood", "no");}else
                if(getglobalvar("partnerGetFood") == "no"){setglobalvar("partnerGetFood", "yes");}
            }
            
            //IS PARTNER FOLLOW HIGHLIGHTED??
            if(getglobalvar("highlight") == 3){
                if(getglobalvar("partnerFollow") == "automatic"){setglobalvar("partnerFollow", "manual");}else
                if(getglobalvar("partnerFollow") == "manual"){setglobalvar("partnerFollow", "automatic");}
            }
            
            //IS PARTNER RESPAWN HIGHLIGHTED??
            if(getglobalvar("highlight") == 4){
                if(getglobalvar("partnerRespawn") == "instantly"){setglobalvar("partnerRespawn", "each_new_level");}else
                if(getglobalvar("partnerRespawn") == "each_new_level"){
                    if(getglobalvar("partnerAlive") == 0){setglobalvar("partnerIndex", NULL());}
                    setglobalvar("partnerRespawn", "instantly");
                }
            }

            //IS PARTNER LIFE BAR HIGHLIGHTED??
            if(getglobalvar("highlight") == 5){
                if(getglobalvar("partnerLifeBar") == "full_hud"){setglobalvar("partnerLifeBar", "simple");}else
                if(getglobalvar("partnerLifeBar") == "simple"){setglobalvar("partnerLifeBar", "full_hud");}
            }

            //IS PARTNER NAME HIGHLIGHTED??
            if(getglobalvar("highlight") == 6){
            if(getglobalvar("selectPartner") == "BALROG_"){setglobalvar("selectPartner", "VEGA_");}else
            if(getglobalvar("selectPartner") == "VEGA_"){setglobalvar("selectPartner", "ZANGIEF_");}else
            if(getglobalvar("selectPartner") == "ZANGIEF_"){setglobalvar("selectPartner", "BALROG_");}
}
        }
        
        //CHANGE ALL OPTIONS INSIDE THIS MENU WHEN MOVE LEFT
        if(playerkeys(player, 1, "moveleft")){
            playsample(openborconstant("SAMPLE_BEEP"), 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0); //PLAY SAMPLE
            
            //IS PARTNER MODE HIGHLIGHTED??
            if(getglobalvar("highlight") == 0){
                if(getglobalvar("partnerMode") == "balanced"){setglobalvar("partnerMode", "defense");}else
                if(getglobalvar("partnerMode") == "defense"){setglobalvar("partnerMode", "attack");}else
                if(getglobalvar("partnerMode") == "attack"){setglobalvar("partnerMode", "balanced");}
            }
            
            //IS PARTNER AGGRESSION HIGHLIGHTED??
            if(getglobalvar("highlight") == 1){
                if(getglobalvar("partnerAggression") == "*"){setglobalvar("partnerAggression", "*********");}else
                if(getglobalvar("partnerAggression") == "*********"){setglobalvar("partnerAggression", "********");}else
                if(getglobalvar("partnerAggression") == "********"){setglobalvar("partnerAggression", "*******");}else
                if(getglobalvar("partnerAggression") == "*******"){setglobalvar("partnerAggression", "******");}else
                if(getglobalvar("partnerAggression") == "******"){setglobalvar("partnerAggression", "*****");}else
                if(getglobalvar("partnerAggression") == "*****"){setglobalvar("partnerAggression", "****");}else
                if(getglobalvar("partnerAggression") == "****"){setglobalvar("partnerAggression", "***");}else
                if(getglobalvar("partnerAggression") == "***"){setglobalvar("partnerAggression", "**");}else
                if(getglobalvar("partnerAggression") == "**"){setglobalvar("partnerAggression", "*");}
            }
            
            //IS PARTNER GET FOOD HIGHLIGHTED??
            if(getglobalvar("highlight") == 2){
                if(getglobalvar("partnerGetFood") == "yes"){setglobalvar("partnerGetFood", "no");}else
                if(getglobalvar("partnerGetFood") == "no"){setglobalvar("partnerGetFood", "yes");}
            }
            
            //IS PARTNER FOLLOW HIGHLIGHTED??
            if(getglobalvar("highlight") == 3){
                if(getglobalvar("partnerFollow") == "automatic"){setglobalvar("partnerFollow", "manual");}else
                if(getglobalvar("partnerFollow") == "manual"){setglobalvar("partnerFollow", "automatic");}
            }
            
            //IS PARTNER RESPAWN HIGHLIGHTED??
            if(getglobalvar("highlight") == 4){
                if(getglobalvar("partnerRespawn") == "instantly"){setglobalvar("partnerRespawn", "each_new_level");}else
                if(getglobalvar("partnerRespawn") == "each_new_level"){
                    if(getglobalvar("partnerAlive") == 0){setglobalvar("partnerIndex", NULL());}
                    setglobalvar("partnerRespawn", "instantly");
                }
            }

            //IS PARTNER LIFE BAR HIGHLIGHTED??
            if(getglobalvar("highlight") == 5){
                if(getglobalvar("partnerLifeBar") == "full_hud"){setglobalvar("partnerLifeBar", "simple");}else
                if(getglobalvar("partnerLifeBar") == "simple"){setglobalvar("partnerLifeBar", "full_hud");}
            }

            //IS PARTNER NAME HIGHLIGHTED??
            if(getglobalvar("highlight") == 6){
            if(getglobalvar("selectPartner") == "BALROG_"){setglobalvar("selectPartner", "VEGA_");}else
            if(getglobalvar("selectPartner") == "VEGA_"){setglobalvar("selectPartner", "ZANGIEF_");}else
            if(getglobalvar("selectPartner") == "ZANGIEF_"){setglobalvar("selectPartner", "BALROG_");}
            }
        }

        //SPAWN CPU PARTNER IN-GAME
        if(playerkeys(player, 1, "attack")){ //ATTACK BUTTON IS PRESSED??
            if(getglobalvar("highlight") == max){ //IS PARTNER SPAWN OPTION HIGHLIGHTED??
                if(getglobalvar("partnerIndex") == NULL()){ //ONLY 1 PARTNER IS ALLOWED
                    playsample(openborconstant("SAMPLE_BEEP"), 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0); //PLAY SAMPLE
                    
                    //START THE SPAWN OPERATION
                    void vSpawn;
                    int height = 300;
                    loadmodel(getglobalvar("selectPartner"), 3);
                    clearspawnentry(); //CLEAR CURRENT SPAWN ENTRY
                    setspawnentry("name", getglobalvar("selectPartner")); //ACQUIRE SPAWN ENTITY BY NAME
                    vSpawn = spawn(); //SPAWN IN ENTITY
                    changeentityproperty(vSpawn, "position", x, z, y+height); //SET SPAWN POSITION
                    changeentityproperty(vSpawn, "direction", dir); //SET SPAWN DIRECTION
                    setglobalvar("highlight", 0); //RESET THE HIGHLIGHT OPTION
                    setglobalvar("partnerIndex", player); //SAVE THE CURRENT PARTNER "PARENT" INDEX
                    setglobalvar("currentPartner", vSpawn); //SAVE THE CURRENT PARTNER NAME
                    setglobalvar("partnerAlive", 1); //SET PARTNER'S ALIVE FLAG TO 1
                    setglobalvar("partnerFull", 0); //SET PARTNER'S FULL LIFE FLAG TO 0

                    //CLOSE PARTNER MENU INSTANTLY
                    if(getglobalvar("activeText") == "Partner"){ //CHECK IF EXTRA MENU IS ALREADY ON
                        playsample(openborconstant("SAMPLE_BEEP2"), 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0); //PLAY SAMPLE
                        changeopenborvariant("nojoin", 1); //PREVENT OTHER PLAYERS TO ENTER IN THE GAME
                        changeopenborvariant("nopause", 0); //UNLOCK PAUSE COMMAND
                        changeopenborvariant("textbox", NULL()); //CLEAR TEXTBOX TO NOT FREEZE THE GAME
                        setglobalvar("highlight", 0); //RESET HIGHLIGHT VARIABLE TO DEFAULT
                        setglobalvar("activeText", 0); //SET ACTIVE TEXT ON SCREEN TO "0" TO DEACTIVATE OTHER SCRIPTS
                    }
                }
            }
        }
    }
    
    //PARTNER CALL BUTTON AND CUSTOM PARROW USED IN ONDRAW.C AND THINK.C
    void player1 = getplayerproperty(0, "entity");
    void player2 = getplayerproperty(1, "entity");
    void player3 = getplayerproperty(2, "entity");
    void player4 = getplayerproperty(3, "entity");
    
    //USED TO MAKE THE SCRIPT WORKS WITH ANY PLAYER IN THE SCREEN AND WITH NO MENUS
    if(getglobalvar("activeText") == 0){
        if(playerkeys(player, 1, "attack4") && getglobalvar("partnerAlive") == 1){
            
            //USED TO CHANGE THE PARTNER INDEX IF THE CALLER IS DEAD
            if(getglobalvar("partnerIndex") == 0 && player1 == NULL()){
                if(player2 != NULL()){setglobalvar("partnerIndex", 1);}else
                if(player3 != NULL()){setglobalvar("partnerIndex", 2);}else
                if(player4 != NULL()){setglobalvar("partnerIndex", 3);}
            }
            if(getglobalvar("partnerIndex") == 1 && player2 == NULL()){
                if(player3 != NULL()){setglobalvar("partnerIndex", 2);}else
                if(player4 != NULL()){setglobalvar("partnerIndex", 3);}else
                if(player1 != NULL()){setglobalvar("partnerIndex", 0);}
            }
            if(getglobalvar("partnerIndex") == 2 && player3 == NULL()){
                if(player4 != NULL()){setglobalvar("partnerIndex", 3);}else
                if(player1 != NULL()){setglobalvar("partnerIndex", 0);}else
                if(player2 != NULL()){setglobalvar("partnerIndex", 1);}
            }
            if(getglobalvar("partnerIndex") == 3 && player4 == NULL()){
                if(player1 != NULL()){setglobalvar("partnerIndex", 0);}else
                if(player2 != NULL()){setglobalvar("partnerIndex", 1);}else
                if(player3 != NULL()){setglobalvar("partnerIndex", 2);}
            }
            
            //USED TO CALL PARTNER
            if(player == getglobalvar("partnerIndex")){
                if(getglobalvar("partnerParrow") != "call"){
                    playsample(openborconstant("SAMPLE_BEEP"), 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0); //PLAY SAMPLE
                    setglobalvar("partnerParrow", "call");
                }
                else
                {
                    playsample(openborconstant("SAMPLE_BEEP"), 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0); //PLAY SAMPLE
                    setglobalvar("partnerParrow", NULL());
                }
            }
        }
    }
}
 
I would like to ask you a question. When the player summons a CPU partner for a photo, the partner appears in a blinking state. How can I turn it off? ?🤔🤔🤔
 
Back
Top Bottom