Jump to content
Louis T Steinhil

Quests, Games: Endless Tower Instance with Difficulty

Recommended Posts

Endless Tower Instance with Difficulty


Good day! I've been an observer since the beginning of time and I want to share this script hoping that it will help fellow human beings who need it. This was a paid script of mine and I hired @sader1992 to help me finish it in 2020. I'm hoping someone will improve the code in the near future with other stuff to give another flavor for Endless Tower. This works with the latest version of rAthena.

Requirement: Y'all need this patch for +damage to work setunitdata script command monster stat recaulculation fixes #3968

About the script:
It is simply Endless Tower with Easy, Veteran, Nightmare, Hell & Torment Difficulties. You can edit the values I pre-assigned: 

Spoiler

            [email protected]_hp_rate += 0; // The zero / "0" is calculated in %
            [email protected]_dmg_rate += 0;
            [email protected]_damagetaken += 0;
            [email protected]_hit += 0;
            [email protected]_str += 0;
            [email protected]_agi += 0;
            [email protected]_vit += 0;
            [email protected]_int += 0;
            [email protected]_dex += 0;
            [email protected]_luk += 0;

This part is for the difficulty settings and adding stats to the monsters:

Spoiler

// Difficulty Function
//============================================================
function    script    F_Tower_Monster_Summon    {
    [email protected]$ = getarg(0, "");
    [email protected] = getarg(1, 0);
    [email protected] = getarg(2, 0);
    [email protected] = getarg(3, 0);
    [email protected] = getarg(4, 0);
    [email protected]_name$ = getarg(5, 0);
    [email protected]_id = getarg(6, 0);
    [email protected] = getarg(7, 0);
    [email protected]$ = getarg(8, "");

    switch('level_mode){
        case 1://Easy
            [email protected]_hp_rate += 0;
            [email protected]_dmg_rate += 0;
            [email protected]_damagetaken += 0;
            [email protected]_hit += 0;
            [email protected]_str += 0;
            [email protected]_agi += 0;
            [email protected]_vit += 0;
            [email protected]_int += 0;
            [email protected]_dex += 0;
            [email protected]_luk += 0;
            break;
        case 2://Veteran
            [email protected]_hp_rate += 100;
            [email protected]_dmg_rate += 100;
            [email protected]_damagetaken += -10;
            [email protected]_hit += 100;    
            [email protected]_str += 100;
            [email protected]_agi += 100;
            [email protected]_vit += 100;
            [email protected]_int += 100;
            [email protected]_dex += 100;
            [email protected]_luk += 100;            
            break;
        case 3://Nightmare
            [email protected]_hp_rate += 250;
            [email protected]_dmg_rate += 250;
            [email protected]_damagetaken += -20;
            [email protected]_hit += 250;            
            [email protected]_str += 250;
            [email protected]_agi += 250;
            [email protected]_vit += 250;
            [email protected]_int += 250;
            [email protected]_dex += 250;
            [email protected]_luk += 250;                
            break;
        case 4://Hell
            [email protected]_hp_rate += 500;
            [email protected]_dmg_rate += 500;
            [email protected]_damagetaken += -30;
            [email protected]_hit += 500;        
            [email protected]_str += 500;
            [email protected]_agi += 500;
            [email protected]_vit += 500;
            [email protected]_int += 500;
            [email protected]_dex += 500;
            [email protected]_luk += 500;                
            break;
        case 5://Torment
            [email protected]_hp_rate += 1000;
            [email protected]_dmg_rate += 1000;
            [email protected]_damagetaken += -40;
            [email protected]_hit += 1000;        
            [email protected]_str += 1000;
            [email protected]_agi += 1000;
            [email protected]_vit += 1000;
            [email protected]_int += 1000;
            [email protected]_dex += 1000;
            [email protected]_luk += 1000;                
            break;
    }
    deletearray [email protected],getarraysize([email protected]);
    areamonster [email protected]$, [email protected], [email protected], [email protected], [email protected], [email protected]_name$, [email protected]_id, [email protected], [email protected]$;
    copyarray [email protected], [email protected], getarraysize([email protected]);
    if([email protected]_hp_rate&& [email protected]_dmg_rate&& [email protected]_damagetaken&& [email protected]_hit&& [email protected]_str&& [email protected]_agi&& [email protected]_vit&& [email protected]_int&& [email protected]_dex&& [email protected]_luk)
        return;
    getunitdata [email protected], [email protected];

    if([email protected]_hp_rate){
        [email protected] = [email protected][UMOB_MAXHP] + (([email protected][UMOB_MAXHP] * [email protected]_hp_rate ) /100);
        for([email protected]=0;[email protected]<getarraysize([email protected]);[email protected]++){            
            setunitdata([email protected][[email protected]], UMOB_MAXHP, [email protected]);
            setunitdata([email protected][[email protected]], UMOB_HP, [email protected]);
        }
    }
    if([email protected]_dmg_rate){
        [email protected] = [email protected][UMOB_ATKMIN] + (([email protected][UMOB_ATKMIN] * [email protected]_dmg_rate) /100);
        [email protected] = [email protected][UMOB_ATKMAX] + (([email protected][UMOB_ATKMAX] * [email protected]_dmg_rate) /100);
        [email protected] = [email protected][UMOB_MATKMIN] + (([email protected][UMOB_MATKMIN] * [email protected]_dmg_rate) /100);
        [email protected] = [email protected][UMOB_MATKMAX] + (([email protected][UMOB_MATKMAX] * [email protected]_dmg_rate) /100);
        for([email protected]=0;[email protected]<getarraysize([email protected]);[email protected]++){
            setunitdata([email protected][[email protected]], UMOB_ATKMIN, [email protected]);
            setunitdata([email protected][[email protected]], UMOB_ATKMAX, [email protected]);
            setunitdata([email protected][[email protected]], UMOB_MATKMIN, [email protected]);
            setunitdata([email protected][[email protected]], UMOB_MATKMAX, [email protected]);
        }
    }
    if([email protected]_damagetaken){
        [email protected] = [email protected][UMOB_DAMAGETAKEN] + (([email protected][UMOB_DAMAGETAKEN] * [email protected]_damagetaken) /100);
        for([email protected]=0;[email protected]<getarraysize([email protected]);[email protected]++){        
            setunitdata([email protected][[email protected]], UMOB_DAMAGETAKEN, [email protected]);
        }
    }
    if([email protected]_hit){
        [email protected] = [email protected][UMOB_HIT] + (([email protected][UMOB_HIT] * [email protected]_hit) /100);
        for([email protected]=0;[email protected]<getarraysize([email protected]);[email protected]++){        
            setunitdata([email protected][[email protected]], UMOB_HIT, [email protected]);
        }
    }    
    if([email protected]_str){
        [email protected] = [email protected][UMOB_STR] + (([email protected][UMOB_STR] * [email protected]_str) /100);
        for([email protected]=0;[email protected]<getarraysize([email protected]);[email protected]++){        
            setunitdata([email protected][[email protected]], UMOB_STR, [email protected]);
        }
    }    
    if([email protected]_agi){
        [email protected] = [email protected][UMOB_AGI] + (([email protected][UMOB_AGI] * [email protected]_agi) /100);
        for([email protected]=0;[email protected]<getarraysize([email protected]);[email protected]++){        
            setunitdata([email protected][[email protected]], UMOB_AGI, [email protected]);
        }
    }    
    if([email protected]_vit){
        [email protected] = [email protected][UMOB_VIT] + (([email protected][UMOB_VIT] * [email protected]_vit) /100);
        for([email protected]=0;[email protected]<getarraysize([email protected]);[email protected]++){        
            setunitdata([email protected][[email protected]], UMOB_VIT, [email protected]);
        }
    }
    if([email protected]_int){
        [email protected] = [email protected][UMOB_INT] + (([email protected][UMOB_INT] * [email protected]_int) /100);
        for([email protected]=0;[email protected]<getarraysize([email protected]);[email protected]++){        
            setunitdata([email protected][[email protected]], UMOB_INT, [email protected]);
        }
    }    
    if([email protected]_dex){
        [email protected] = [email protected][UMOB_DEX] + (([email protected][UMOB_DEX]) * [email protected]_dex) /100);
        for([email protected]=0;[email protected]<getarraysize([email protected]);[email protected]++){        
            setunitdata([email protected][[email protected]], UMOB_DEX, [email protected]);
        }
    }    
    if([email protected]_luk){
        [email protected] = [email protected][UMOB_LUK] + (([email protected][UMOB_LUK] * [email protected]_luk) /100);
        for([email protected]=0;[email protected]<getarraysize([email protected]);[email protected]++){        
            setunitdata([email protected][[email protected]], UMOB_LUK, [email protected]);
        }
    }        
    return;
}

This part is for the rewards: It gives #INSTANCEPOINTS and EXP depending on the difficulty you're on.

Spoiler

// Reward Function
//============================================================
function    script    F_Tower_Reward    {
    setarray [email protected][1],1,3,6,12,24;
    setarray [email protected]$[1],"Easy Mode","Veteran Mode","Nightmare Mode","Hell Mode","Torment Mode";
    setarray [email protected][1],653047446,672905476,843378037,6160565694,45000661693;
    'rewardz = [email protected]['level_mode];
    'modez$ = [email protected]$['level_mode];
    'bonuzExp = [email protected]['level_mode];
    'party_id = instance_live_info(ILI_OWNER);
    getpartymember 'party_id, 1;
    getpartymember 'party_id, 2;
    'map$ = instance_mapname("[email protected]");
    copyarray [email protected],[email protected],[email protected];
    copyarray [email protected],[email protected],[email protected];
    for([email protected]=0;[email protected]<getarraysize([email protected]);[email protected]++){
        if(isloggedin([email protected][[email protected]],[email protected][[email protected]])){
            if(strcharinfo(3,[email protected][[email protected]]) == 'map$){
                set(#INSTANCEPOINTS,(getvar(#INSTANCEPOINTS,[email protected][[email protected]]) + 'rewardz),[email protected][[email protected]]);
                announce "The party [ "+ getpartyname('party_id) +" ] has defeated Endless Tower on " + 'modez$ + ".",bc_all;
                message strcharinfo(0,[email protected][[email protected]]),"You've been granted " + 'rewardz + " Instance Points.";
                message strcharinfo(0,[email protected][[email protected]]),"You now have " + getvar(#INSTANCEPOINTS,[email protected][[email protected]]) + " Instance Points";
                getexp 'bonuzExp,'bonuzExp,[email protected][[email protected]];
            }
        }
    }
    return;
}

I assigned a monster (1613 : metalling) to show us that the stats boost really works:

Spoiler

    //if(unitexists([email protected])){
    //    if([email protected]_id == 1613){
    //        debugmes "BEFORE UMOB_MAXHP " + [email protected][UMOB_MAXHP];
    //        debugmes "BEFORE UMOB_ATKMIN " + [email protected][UMOB_ATKMIN];
    //        debugmes "BEFORE UMOB_ATKMAX " + [email protected][UMOB_ATKMAX];
    //        debugmes "BEFORE UMOB_MATKMIN " + [email protected][UMOB_MATKMIN];
    //        debugmes "BEFORE UMOB_MATKMAX " + [email protected][UMOB_MATKMAX];
    //        debugmes "BEFORE UMOB_HIT " + [email protected][UMOB_HIT];            
    //        debugmes "BEFORE UMOB_STR " + [email protected][UMOB_STR];
    //        debugmes "BEFORE UMOB_AGI " + [email protected][UMOB_AGI];
    //        debugmes "BEFORE UMOB_VIT " + [email protected][UMOB_VIT];
    //        debugmes "BEFORE UMOB_INT " + [email protected][UMOB_INT];
    //        debugmes "BEFORE UMOB_DEX " + [email protected][UMOB_DEX];
    //        debugmes "BEFORE UMOB_LUK " + [email protected][UMOB_LUK];
    //       }
    //    }

    //if(unitexists([email protected])){
    //    if([email protected]_id == 1613){
    //    getunitdata [email protected], [email protected];
    //        debugmes "AFTER UMOB_MAXHP " + [email protected][UMOB_MAXHP];
    //        debugmes "AFTER UMOB_ATKMIN " + [email protected][UMOB_ATKMIN];
    //        debugmes "AFTER UMOB_ATKMAX " + [email protected][UMOB_ATKMAX];
    //        debugmes "AFTER UMOB_MATKMIN " + [email protected][UMOB_MATKMIN];
    //        debugmes "AFTER UMOB_MATKMAX " + [email protected][UMOB_MATKMAX];
    //        debugmes "AFTER UMOB_HIT " + [email protected][UMOB_HIT];    
    //        debugmes "AFTER UMOB_STR " + [email protected][UMOB_STR];
    //        debugmes "AFTER UMOB_AGI " + [email protected][UMOB_AGI];
    //        debugmes "AFTER UMOB_VIT " + [email protected][UMOB_VIT];
    //        debugmes "AFTER UMOB_INT " + [email protected][UMOB_INT];
    //        debugmes "AFTER UMOB_DEX " + [email protected][UMOB_DEX];
    //        debugmes "AFTER UMOB_LUK " + [email protected][UMOB_LUK];        
    //  }
    //}

 

image.png

 

PS: I'm also integrating this to other instances. Maybe I'll post it if people requests it. 


 

  • Love 2
Link to comment
Share on other sites

Nice ! Thx bro !

I tested the script and i have some errors in my console

 

errorinst.png

Link to comment
Share on other sites

On 5/4/2023 at 12:50 AM, Tiki59 said:

Nice ! Thx bro !

I tested the script and i have some errors in my console

 

errorinst.png

Increase your Event Queue https://rathena.org/board/topic/126700-warning-npc_event-players-event-queue-is-full-cant-add-event-onpcloadmapevent/

Link to comment
Share on other sites

On 5/3/2023 at 5:07 PM, Louis T Steinhil said:

Endless Tower Instance with Difficulty


Good day! I've been an observer since the beginning of time and I want to share this script hoping that it will help fellow human beings who need it. This was a paid script of mine and I hired @sader1992 to help me finish it in 2020. I'm hoping someone will improve the code in the near future with other stuff to give another flavor for Endless Tower. This works with the latest version of rAthena.

Requirement: Y'all need this patch for +damage to work setunitdata script command monster stat recaulculation fixes #3968

About the script:
It is simply Endless Tower with Easy, Veteran, Nightmare, Hell & Torment Difficulties. You can edit the values I pre-assigned: 

  Reveal hidden contents

            [email protected]_hp_rate += 0; // The zero / "0" is calculated in %
            [email protected]_dmg_rate += 0;
            [email protected]_damagetaken += 0;
            [email protected]_hit += 0;
            [email protected]_str += 0;
            [email protected]_agi += 0;
            [email protected]_vit += 0;
            [email protected]_int += 0;
            [email protected]_dex += 0;
            [email protected]_luk += 0;

This part is for the difficulty settings and adding stats to the monsters:

  Reveal hidden contents

// Difficulty Function
//============================================================
function    script    F_Tower_Monster_Summon    {
    [email protected]$ = getarg(0, "");
    [email protected] = getarg(1, 0);
    [email protected] = getarg(2, 0);
    [email protected] = getarg(3, 0);
    [email protected] = getarg(4, 0);
    [email protected]_name$ = getarg(5, 0);
    [email protected]_id = getarg(6, 0);
    [email protected] = getarg(7, 0);
    [email protected]$ = getarg(8, "");

    switch('level_mode){
        case 1://Easy
            [email protected]_hp_rate += 0;
            [email protected]_dmg_rate += 0;
            [email protected]_damagetaken += 0;
            [email protected]_hit += 0;
            [email protected]_str += 0;
            [email protected]_agi += 0;
            [email protected]_vit += 0;
            [email protected]_int += 0;
            [email protected]_dex += 0;
            [email protected]_luk += 0;
            break;
        case 2://Veteran
            [email protected]_hp_rate += 100;
            [email protected]_dmg_rate += 100;
            [email protected]_damagetaken += -10;
            [email protected]_hit += 100;    
            [email protected]_str += 100;
            [email protected]_agi += 100;
            [email protected]_vit += 100;
            [email protected]_int += 100;
            [email protected]_dex += 100;
            [email protected]_luk += 100;            
            break;
        case 3://Nightmare
            [email protected]_hp_rate += 250;
            [email protected]_dmg_rate += 250;
            [email protected]_damagetaken += -20;
            [email protected]_hit += 250;            
            [email protected]_str += 250;
            [email protected]_agi += 250;
            [email protected]_vit += 250;
            [email protected]_int += 250;
            [email protected]_dex += 250;
            [email protected]_luk += 250;                
            break;
        case 4://Hell
            [email protected]_hp_rate += 500;
            [email protected]_dmg_rate += 500;
            [email protected]_damagetaken += -30;
            [email protected]_hit += 500;        
            [email protected]_str += 500;
            [email protected]_agi += 500;
            [email protected]_vit += 500;
            [email protected]_int += 500;
            [email protected]_dex += 500;
            [email protected]_luk += 500;                
            break;
        case 5://Torment
            [email protected]_hp_rate += 1000;
            [email protected]_dmg_rate += 1000;
            [email protected]_damagetaken += -40;
            [email protected]_hit += 1000;        
            [email protected]_str += 1000;
            [email protected]_agi += 1000;
            [email protected]_vit += 1000;
            [email protected]_int += 1000;
            [email protected]_dex += 1000;
            [email protected]_luk += 1000;                
            break;
    }
    deletearray [email protected],getarraysize([email protected]);
    areamonster [email protected]$, [email protected], [email protected], [email protected], [email protected], [email protected]_name$, [email protected]_id, [email protected], [email protected]$;
    copyarray [email protected], [email protected], getarraysize([email protected]);
    if([email protected]_hp_rate&& [email protected]_dmg_rate&& [email protected]_damagetaken&& [email protected]_hit&& [email protected]_str&& [email protected]_agi&& [email protected]_vit&& [email protected]_int&& [email protected]_dex&& [email protected]_luk)
        return;
    getunitdata [email protected], [email protected];

    if([email protected]_hp_rate){
        [email protected] = [email protected][UMOB_MAXHP] + (([email protected][UMOB_MAXHP] * [email protected]_hp_rate ) /100);
        for([email protected]=0;[email protected]<getarraysize([email protected]);[email protected]++){            
            setunitdata([email protected][[email protected]], UMOB_MAXHP, [email protected]);
            setunitdata([email protected][[email protected]], UMOB_HP, [email protected]);
        }
    }
    if([email protected]_dmg_rate){
        [email protected] = [email protected][UMOB_ATKMIN] + (([email protected][UMOB_ATKMIN] * [email protected]_dmg_rate) /100);
        [email protected] = [email protected][UMOB_ATKMAX] + (([email protected][UMOB_ATKMAX] * [email protected]_dmg_rate) /100);
        [email protected] = [email protected][UMOB_MATKMIN] + (([email protected][UMOB_MATKMIN] * [email protected]_dmg_rate) /100);
        [email protected] = [email protected][UMOB_MATKMAX] + (([email protected][UMOB_MATKMAX] * [email protected]_dmg_rate) /100);
        for([email protected]=0;[email protected]<getarraysize([email protected]);[email protected]++){
            setunitdata([email protected][[email protected]], UMOB_ATKMIN, [email protected]);
            setunitdata([email protected][[email protected]], UMOB_ATKMAX, [email protected]);
            setunitdata([email protected][[email protected]], UMOB_MATKMIN, [email protected]);
            setunitdata([email protected][[email protected]], UMOB_MATKMAX, [email protected]);
        }
    }
    if([email protected]_damagetaken){
        [email protected] = [email protected][UMOB_DAMAGETAKEN] + (([email protected][UMOB_DAMAGETAKEN] * [email protected]_damagetaken) /100);
        for([email protected]=0;[email protected]<getarraysize([email protected]);[email protected]++){        
            setunitdata([email protected][[email protected]], UMOB_DAMAGETAKEN, [email protected]);
        }
    }
    if([email protected]_hit){
        [email protected] = [email protected][UMOB_HIT] + (([email protected][UMOB_HIT] * [email protected]_hit) /100);
        for([email protected]=0;[email protected]<getarraysize([email protected]);[email protected]++){        
            setunitdata([email protected][[email protected]], UMOB_HIT, [email protected]);
        }
    }    
    if([email protected]_str){
        [email protected] = [email protected][UMOB_STR] + (([email protected][UMOB_STR] * [email protected]_str) /100);
        for([email protected]=0;[email protected]<getarraysize([email protected]);[email protected]++){        
            setunitdata([email protected][[email protected]], UMOB_STR, [email protected]);
        }
    }    
    if([email protected]_agi){
        [email protected] = [email protected][UMOB_AGI] + (([email protected][UMOB_AGI] * [email protected]_agi) /100);
        for([email protected]=0;[email protected]<getarraysize([email protected]);[email protected]++){        
            setunitdata([email protected][[email protected]], UMOB_AGI, [email protected]);
        }
    }    
    if([email protected]_vit){
        [email protected] = [email protected][UMOB_VIT] + (([email protected][UMOB_VIT] * [email protected]_vit) /100);
        for([email protected]=0;[email protected]<getarraysize([email protected]);[email protected]++){        
            setunitdata([email protected][[email protected]], UMOB_VIT, [email protected]);
        }
    }
    if([email protected]_int){
        [email protected] = [email protected][UMOB_INT] + (([email protected][UMOB_INT] * [email protected]_int) /100);
        for([email protected]=0;[email protected]<getarraysize([email protected]);[email protected]++){        
            setunitdata([email protected][[email protected]], UMOB_INT, [email protected]);
        }
    }    
    if([email protected]_dex){
        [email protected] = [email protected][UMOB_DEX] + (([email protected][UMOB_DEX]) * [email protected]_dex) /100);
        for([email protected]=0;[email protected]<getarraysize([email protected]);[email protected]++){        
            setunitdata([email protected][[email protected]], UMOB_DEX, [email protected]);
        }
    }    
    if([email protected]_luk){
        [email protected] = [email protected][UMOB_LUK] + (([email protected][UMOB_LUK] * [email protected]_luk) /100);
        for([email protected]=0;[email protected]<getarraysize([email protected]);[email protected]++){        
            setunitdata([email protected][[email protected]], UMOB_LUK, [email protected]);
        }
    }        
    return;
}

This part is for the rewards: It gives #INSTANCEPOINTS and EXP depending on the difficulty you're on.

  Reveal hidden contents

// Reward Function
//============================================================
function    script    F_Tower_Reward    {
    setarray [email protected][1],1,3,6,12,24;
    setarray [email protected]$[1],"Easy Mode","Veteran Mode","Nightmare Mode","Hell Mode","Torment Mode";
    setarray [email protected][1],653047446,672905476,843378037,6160565694,45000661693;
    'rewardz = [email protected]['level_mode];
    'modez$ = [email protected]$['level_mode];
    'bonuzExp = [email protected]['level_mode];
    'party_id = instance_live_info(ILI_OWNER);
    getpartymember 'party_id, 1;
    getpartymember 'party_id, 2;
    'map$ = instance_mapname("[email protected]");
    copyarray [email protected],[email protected],[email protected];
    copyarray [email protected],[email protected],[email protected];
    for([email protected]=0;[email protected]<getarraysize([email protected]);[email protected]++){
        if(isloggedin([email protected][[email protected]],[email protected][[email protected]])){
            if(strcharinfo(3,[email protected][[email protected]]) == 'map$){
                set(#INSTANCEPOINTS,(getvar(#INSTANCEPOINTS,[email protected][[email protected]]) + 'rewardz),[email protected][[email protected]]);
                announce "The party [ "+ getpartyname('party_id) +" ] has defeated Endless Tower on " + 'modez$ + ".",bc_all;
                message strcharinfo(0,[email protected][[email protected]]),"You've been granted " + 'rewardz + " Instance Points.";
                message strcharinfo(0,[email protected][[email protected]]),"You now have " + getvar(#INSTANCEPOINTS,[email protected][[email protected]]) + " Instance Points";
                getexp 'bonuzExp,'bonuzExp,[email protected][[email protected]];
            }
        }
    }
    return;
}

I assigned a monster (1613 : metalling) to show us that the stats boost really works:

  Reveal hidden contents

    //if(unitexists([email protected])){
    //    if([email protected]_id == 1613){
    //        debugmes "BEFORE UMOB_MAXHP " + [email protected][UMOB_MAXHP];
    //        debugmes "BEFORE UMOB_ATKMIN " + [email protected][UMOB_ATKMIN];
    //        debugmes "BEFORE UMOB_ATKMAX " + [email protected][UMOB_ATKMAX];
    //        debugmes "BEFORE UMOB_MATKMIN " + [email protected][UMOB_MATKMIN];
    //        debugmes "BEFORE UMOB_MATKMAX " + [email protected][UMOB_MATKMAX];
    //        debugmes "BEFORE UMOB_HIT " + [email protected][UMOB_HIT];            
    //        debugmes "BEFORE UMOB_STR " + [email protected][UMOB_STR];
    //        debugmes "BEFORE UMOB_AGI " + [email protected][UMOB_AGI];
    //        debugmes "BEFORE UMOB_VIT " + [email protected][UMOB_VIT];
    //        debugmes "BEFORE UMOB_INT " + [email protected][UMOB_INT];
    //        debugmes "BEFORE UMOB_DEX " + [email protected][UMOB_DEX];
    //        debugmes "BEFORE UMOB_LUK " + [email protected][UMOB_LUK];
    //       }
    //    }

    //if(unitexists([email protected])){
    //    if([email protected]_id == 1613){
    //    getunitdata [email protected], [email protected];
    //        debugmes "AFTER UMOB_MAXHP " + [email protected][UMOB_MAXHP];
    //        debugmes "AFTER UMOB_ATKMIN " + [email protected][UMOB_ATKMIN];
    //        debugmes "AFTER UMOB_ATKMAX " + [email protected][UMOB_ATKMAX];
    //        debugmes "AFTER UMOB_MATKMIN " + [email protected][UMOB_MATKMIN];
    //        debugmes "AFTER UMOB_MATKMAX " + [email protected][UMOB_MATKMAX];
    //        debugmes "AFTER UMOB_HIT " + [email protected][UMOB_HIT];    
    //        debugmes "AFTER UMOB_STR " + [email protected][UMOB_STR];
    //        debugmes "AFTER UMOB_AGI " + [email protected][UMOB_AGI];
    //        debugmes "AFTER UMOB_VIT " + [email protected][UMOB_VIT];
    //        debugmes "AFTER UMOB_INT " + [email protected][UMOB_INT];
    //        debugmes "AFTER UMOB_DEX " + [email protected][UMOB_DEX];
    //        debugmes "AFTER UMOB_LUK " + [email protected][UMOB_LUK];        
    //  }
    //}

 

image.png

 

PS: I'm also integrating this to other instances. Maybe I'll post it if people requests it. 


 

sorry to bump in to this post

can i ask how can i put item as a reward for the party who cleared the ET

like 1 - 3 random items for whole party drop by NS or automatically transfer to party leaders inv

 

EDIT: i hope there is also for nidhogg nest 🙂

Edited by AinsLord
Link to comment
Share on other sites

	setarray .@item[1],[item_id],[item_id],[item_id],[item_id],[item_id];

	.......
				message strcharinfo(0,.@CID[.@i]),"You now have " + getvar(#MEMORIALDUNGEONPOINTS,.@CID[.@i]) + " Memorial Dungeon Points";
				.....
                getitem .@item['level_mode],1,[email protected][[email protected]];

You can declare it something like this. Just look for the function reward. You'll follow

Link to comment
Share on other sites

I have a problem with your endless tower script.

The monsters are only born in the easy level, in the other levels only the first monster of each line is born

Link to comment
Share on other sites

        case 1://Normal
            [email protected]_hp_rate += 0;
            [email protected]_dmg_rate += 0;
            [email protected]_damagetaken += 0;
            [email protected]_def += 0;
            [email protected]_mdef += 0;
            [email protected]_hit += 0;            
            [email protected]_flee += 0;

 

Is there a way to add level bonuses to the monster?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...