Jump to content

ViewtifulNinja

Members
  • Posts

    35
  • Joined

  • Last visited

2 Followers

About ViewtifulNinja

  • Birthday 10/11/1984

Profile Information

Recent Profile Visitors

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

ViewtifulNinja's Achievements

Poring

Poring (1/15)

  • Reacting Well
  • Conversation Starter
  • First Post
  • Collaborator
  • Dedicated

Recent Badges

1

Reputation

  1. How do I make a script that automatically triggers an event when the character reaches a certain job level, without having to talk to any npc?
  2. Thank you, @Skorm. How do I do this reloading? What would the command be?
  3. So I didn't get what I wanted, even though the years had gone by. I went back to working on my server, and I did it as follows: - script DaynNight -1,{ OnInit: if(gettime(3) >= 18 || gettime(3) < 6){night;} else {day;} end; OnClock0600: day; setbattleflag "mob_count_rate",100; end; OnClock1800: night; setbattleflag "mob_count_rate",150; end; } But it doesn't work, whichever way I put it. I've tried it in different ways. If possible and they can help me...
  4. The size of the client has decreased. Please, can you tell us the reason?
  5. 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!
  6. 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!

  7. 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.
  8. 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.
  9. 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 .@i,0; .@i<getarraysize(.minrange); set .@i,.@i+1) { if(BaseLevel >= .minrange[.@i] && BaseLevel <= .maxrange[.@i]) { set .@stonesreq,.stones[.@i]; } } mes .npcname$; mes "For instance you ["+strcharinfo(0)+"] would require."; mes "["+.@stonesreq+"] "+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 .@i,0; .@i<getarraysize(.minrange); set .@i,.@i+1) { mes "Base Lvl ^000099"+.minrange[.@i]+" - "+.maxrange[.@i]+"^000000 ^009900["+.stones[.@i]+" "+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) >= .@stonesreq) { delitem .stoneid,.@stonesreq; 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?
  10. You know how I put a limiter so this formula only works up to level 175?
  11. 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
  12. This topic is wrong. Can delete.
  13. 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.
  14. 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.
×
×
  • Create New...