ViewtifulNinja

Members
  • Content Count

    31
  • Avg. Content Per Day

    0
  • Joined

  • Last visited

Community Reputation

1 Neutral

1 Follower

About ViewtifulNinja

  • Rank
    Drops

Profile Information

  • Gender
    Male
  • Location
    Rio de Janeiro
  • Github
    ViewtifulNinja

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. I would like to thank you for everything ... Today I walk with my own legs, but your topic helped me a lot in the beginning. Thank you @anacondaq!
  2. How did you solve it?

    1. domez86

      domez86

      add file -> data\luafiles514\lua files\service_usa\externalsettings_usa.lub

      and change <langtype>1</langtype> in sclientinfo.xml

    2. ViewtifulNinja

      ViewtifulNinja

      Thanks... I got it!

  3. How do I put in a NPC script a command that calls the mob_count_rate configuration of the conf\battle\monster.conf file? I want in a given game event, the mob_count_rate setting to increase from 100 to 150.
  4. It worked ... I do not know why, but when I gave <tab>, it came in as two spaces. I had to compose the line from another NPC and replace the values. But now it's working. Thank you so much.
  5. I have an NPC that uses Reset Stones to reset the attributes. However, when I run the server, it generates the following error in mapserv.bat: [Error]: npc_parsesrcfile: Unknown syntax in file 'npc/custom/reseter.txt', line '1'. Stopping... * w1=prontera,146,304,5 script Reseter 407,{ * w2= * w3= * w4= Here is the code for the NPC: prontera,146,304,5 script Reseter 407,{ mes .npcname$; mes "So are you satisfied with your"; mes "current stat allocation?"; mes "Of course not, if you want to make"; mes "a change then listen on."; next; mes .npcname$; mes "I use the power of the"; mes "^009900"+getitemname(.stoneid)+"^000000 to help adventurers"; mes "reset their stat choices."; mes "Of course the more powerful the"; mes "adventurer, the more ^009900"+getitemname(.stoneid)+"s^000000"; mes "I need the perform the reset."; next; for(set [email protected],0; [email protected]<getarraysize(.minrange); set [email protected],[email protected]+1) { if(BaseLevel >= .minrange[[email protected]] && BaseLevel <= .maxrange[[email protected]]) { set [email protected],.stones[[email protected]]; } } mes .npcname$; mes "For instance you ["+strcharinfo(0)+"] would require."; mes "["[email protected]+"] "+getitemname(.stoneid)+" to reset all your stats to 1 and get all your status points back."; next; switch(select("Tell me More!","Lets reset NOW","First Time Free Reset","Later")) { case 1: mes .npcname$; for(set [email protected],0; [email protected]<getarraysize(.minrange); set [email protected],[email protected]+1) { mes "Base Lvl ^000099"+.minrange[[email protected]]+" - "+.maxrange[[email protected]]+"^000000 ^009900["+.stones[[email protected]]+" "+getitemname(.stoneid)+"]^000000"; } close; case 2: mes .npcname$; mes "Ok let's start checking."; next; if(Weight > 0) { mes .npcname$; mes "Lower your weight to 0"; close; } if(checkcart()) { setcart 0; } if(checkfalcon()) { setfalcon 0;} if(checkriding()) { setriding 0;} if(countitem(.stoneid) >= [email protected]) { delitem .stoneid,[email protected]; resetstatus; close; } else { mes .npcname$; mes "You do not have enough ^009900"+getitemname(.stoneid)+"s^000000"; close; } case 3: if( !Freebies ){ set Freebies,1; mes "Welcome...this is your first character free reset..."; resetstatus; }else{ mes "You have reset for free already."; } close; case 4: close; } OnInit: set .stoneid,6320; //reset stone id = 6320 ? set .npcname$,"["+strnpcinfo(0)+"]"; setarray .minrange[0],1 , 41, 71, 91, 111, 126, 141; setarray .maxrange[0],40, 70, 90, 110,125, 140, 150; setarray .stones[0], 1, 2, 3, 4, 5, 6, 7; end; } Does anyone know what it could be?
  6. You know how I put a limiter so this formula only works up to level 175?
  7. Where can I find the ATK status formula, which appears in the status window? Something like this that shows in iRO? StatusATK = floor[(BaseLevel ÷ 4) + Str + (Dex ÷ 5) + (Luk ÷ 3)] https://irowiki.org/wiki/ATK#StatusATK
  8. This topic is wrong. Can delete.
  9. I was able to change the formulas. However, the ATK and ATK2 formula do not have the level variable. Could anyone tell me how to change these two formulas? // Atk stat = (status_get_homstr(bl) + status_get_homdex(bl)) / 5; status->rhw.atk = cap_value(stat, 0, SHRT_MAX); // Atk2 stat = (status_get_homluk(bl) + status_get_homstr(bl) + status_get_homdex(bl)) / 3; status->rhw.atk2 = cap_value(stat, 0, SHRT_MAX); I wish these two formulas would stop being influenced by the level from level 176, and would only be influenced by stats. Or if possible, can you tell me a source language manual that I can download and study? I would be very grateful.
  10. Hello masters I would like to know how to modify the formulas of the substats (atk, atk2, def, def2, mdef, mdef2, hit, flee) so that after level 175, stop evolving due to level and are influenced only by stat points. I know the formula is in status.c, but I do not know how to modify it. I looked a lot, but could not. I think something like a level limiter is missing for the formula. The code I found is the following: #ifdef RENEWAL // Renewal formulas if (bl->type == BL_HOM) { // Def2 stat = status_get_homvit(bl) + status_get_homagi(bl) / 2; status->def2 = cap_value(stat, 0, SHRT_MAX); // Mdef2 stat = (status_get_homvit(bl) + status_get_homint(bl)) / 2; status->mdef2 = cap_value(stat, 0, SHRT_MAX); // Def stat = status->def; stat += status_get_homvit(bl) + level / 2; status->def = cap_value(stat, 0, SHRT_MAX); // Mdef stat = (int)(((float)status_get_homvit(bl) + level) / 4 + (float)status_get_homint(bl) / 2); status->mdef = cap_value(stat, 0, SHRT_MAX); // Hit stat = level + status->dex + 150; status->hit = cap_value(stat, 1, SHRT_MAX); // Flee stat = level + status_get_homagi(bl); status->flee = cap_value(stat, 1, SHRT_MAX); // Atk stat = (status_get_homstr(bl) + status_get_homdex(bl)) / 5; status->rhw.atk = cap_value(stat, 0, SHRT_MAX); // Atk2 stat = (status_get_homluk(bl) + status_get_homstr(bl) + status_get_homdex(bl)) / 3; status->rhw.atk2 = cap_value(stat, 0, SHRT_MAX); } else { // Hit stat = status->hit; stat += level + status->dex + (bl->type == BL_PC ? status->luk / 3 + 175 : 150); //base level + ( every 1 dex = +1 hit ) + (every 3 luk = +1 hit) + 175 status->hit = cap_value(stat, 1, SHRT_MAX); // Flee stat = status->flee; stat += level + status->agi + (bl->type == BL_MER ? 0 : bl->type == BL_PC ? status->luk / 5 : 0) + 100; //base level + ( every 1 agi = +1 flee ) + (every 5 luk = +1 flee) + 100 status->flee = cap_value(stat, 1, SHRT_MAX); // Def2 if (bl->type == BL_MER) stat = (int)(status->vit + ((float)level / 10) + ((float)status->vit / 5)); else { stat = status->def2; stat += (int)(((float)level + status->vit) / 2 + (bl->type == BL_PC ? ((float)status->agi / 5) : 0)); //base level + (every 2 vit = +1 def) + (every 5 agi = +1 def) } status->def2 = cap_value(stat, 0, SHRT_MAX); // Mdef2 if (bl->type == BL_MER) stat = (int)(((float)level / 10) + ((float)status->int_ / 5)); else { stat = status->mdef2; stat += (int)(bl->type == BL_PC ? (status->int_ + ((float)level / 4) + ((float)(status->dex + status->vit) / 5)) : ((float)(status->int_ + level) / 4)); //(every 4 base level = +1 mdef) + (every 1 int = +1 mdef) + (every 5 dex = +1 mdef) + (every 5 vit = +1 mdef) } status->mdef2 = cap_value(stat, 0, SHRT_MAX); } // MAtk status->matk_min = status->matk_max = status_base_matk(bl, status, level); ///! TODO: Confirm these RENEWAL calculations. Currently is using previous calculation before 083cf5d9 (issue: #321) and until re/mob_db.txt is updated. //switch (bl->type) { // case BL_MOB: // status->matk_min += 70 * ((TBL_MOB*)bl)->status.rhw.atk2 / 100; // status->matk_max += 130 * ((TBL_MOB*)bl)->status.rhw.atk2 / 100; // break; // case BL_MER: // status->matk_min += 70 * ((TBL_MER*)bl)->battle_status.rhw.atk2 / 100; // status->matk_max += 130 * ((TBL_MER*)bl)->battle_status.rhw.atk2 / 100; // break; //} #else // Matk status->matk_min = status_base_matk_min(status); status->matk_max = status_base_matk_max(status); // Hit stat = status->hit; stat += level + status->dex; status->hit = cap_value(stat, 1, SHRT_MAX); // Flee stat = status->flee; stat += level + status->agi; status->flee = cap_value(stat, 1, SHRT_MAX); // Def2 stat = status->def2; stat += status->vit; status->def2 = cap_value(stat, 0, SHRT_MAX); // Mdef2 stat = status->mdef2; stat += status->int_ + (status->vit>>1); status->mdef2 = cap_value(stat, 0, SHRT_MAX); #endif Can someone help me? Thanks.
  11. Hi, GM Takumirai. Your NPC really interests me, but he is giving error on line 1. [Error]: npc_parsesrcfile: Unknown syntax in file 'npc/custom/reseter.txt', line '1'. Stopping... * w1=prontera,146,304,5 script Reseter 407,{ * w2= * w3= * w4= You know what's going on? Thanks
  12. Guys, editing by Visual Studio worked perfectly. Thanks for the answers. The only problem is that for each line, the program works a lot of time. When I edit by Notepad ++, it gives error in the game when I start. However, they have helped me a lot. Is there any other editor that can be faster to edit? Visual Studio Code is different from the regular Visual Studio?
  13. Good question. I am from Brazil, and here there are some symbols in the words that do not exist in English. For example, Red Potion is written Poção Vermelha here. I need the encode in ANSI, or it will not recognize the ã and ç. Or some way to convert the file names of items into the texture folder.
  14. When I open the itemInfo.lua by Visual Studio, the PC almost gives bug so heavy that the file is.