Jump to content

Racaae

Members
  • Posts

    263
  • Joined

  • Last visited

  • Days Won

    41

Everything posted by Racaae

  1. Hi! CLEAR_NPC works, but it will put a "npc click bubble" inside the portal which can be annoying. I recommend using signboardlist:
  2. Hi, find this line: setarray(getd("$wrkb_" + .@wrkb_id + "_products"),40036,1, 40011, 1); and replace to: if (countitem(40101) && rand(100) < 10) { // if have Butchering T2 has 10% chance to get the following items setarray(getd("$wrkb_" + .@wrkb_id + "_products"),40036,1, 948,1, 929,1); } else { // Butchering 1 list / commom items setarray(getd("$wrkb_" + .@wrkb_id + "_products"),40036,1, 40011, 1); }
  3. - script StatusMessage#command HIDDEN_WARP_NPC,{ OnMenu: mes "=== " + strcharinfo(0) + " status ==="; switch(select("- Weapon Skill", "- Bow Skill", "- Cancel")) { case 1: if (countitem(40040)) { mes "Your ^0000FFWeapon Skill^000000 is Lvl 1."; } else { mes "^FF0000You don't have this Skill.^000000"; } break; case 2: if (countitem(40041)) { mes "Your ^0000FFBow Skill^000000 is Lvl 1."; } else { mes "^FF0000You don't have this Skill.^000000"; } break; case 3: close; } switch(select("- Check other skill:- Cancel")) { case 1: clear; goto OnMenu; case 2: close; } OnInit: .@command$ = "status"; //CHANGE HERE @COMMAND TO SEE MESSAGE bindatcmd .@command$,strnpcinfo(3)+"::OnMenu"; end; }
  4. Hi, Your current script don't support 0% fail chance. Find rand(100) and change to rand(1,100)
  5. Don't worry too much about the english The chests appear everyday at 00:01 (midnight) automatic. The server needs to be running at this exact time for this to happen. You can change when they spawn in the same files you modified before.
  6. Hi. Add in \db\import\item_db.yml - Id: 4399 AegisName: Thanatos_Card Script: | if (BaseJob != Job_Monk) { bonus bDefRatioAtkClass,Class_All; bonus bSPDrainValue,-1; bonus bDef,-30; bonus bFlee,-30; }
  7. Hi If you want to remove investment in castle: Find in these two files: \npc\guild\agit_main.txt (WOE 1) and/or \npc\guild2\agit_main_se.txt (WOE 2) set .@Treasure,getcastledata(strnpcinfo(2),CD_CURRENT_ECONOMY)/5+4; And add this in the next line: .@Treasure = 24; //always spawn 24 treasures. (máx:24) Find in \npc\re\guild3\agit_main_te.txt (WOE 3) .@treasure_num = ( 4 + ( .@economy /5 ) ) *3;// x3 <-> data[] size And add this in the next line: .@treasure_num = 24; //always spawn 24 treasures. (máx:24) ------------------------------------------------------- Or if you want to accelerate the investment in castle: Find in these two files: \npc\guild\agit_main.txt (WOE 1) and/or \npc\guild2\agit_main_se.txt (WOE 2) set .@Economy,GetCastleData(strnpcinfo(2),CD_CURRENT_ECONOMY); And add this in the next line: .@Economy += 10; //accelerate the investment. +=(add) or *=(multiplication) Find in \npc\re\guild3\agit_main_te.txt (WOE 3) .@economy_today = getcastledata(.@map$,CD_INVESTED_ECONOMY); And add this in the next line: .@economy_today *= 2; //accelerate the investment. +=(add) or *=(multiplication) ------------------------------------------------------- To modify treasure drops: C:\Users\Ema\Documents\Alex\rag\rAthena2021\db\(pre-)re\mob_db.yml Each castle has it's own treasure box with different items. Find the Treasure Chest you want to change the contents and replace the IDs in the Drops: section. Treasure IDs:
  8. Hi set .@menu$, ""; for (.@i = 0; .@i < getarraysize(.orbs); .@i++) { .@qty = countitem(.orbs[.@i]); if (.@qty) .@menu$ += getitemname(.orbs[.@i])+" x"+.@qty+":"; else .@menu$ += ":"; } if(.@menu$=="") { mes .npc$; mes "Hmm, you don't seem to have any enchantment orbs."; close; } mes .npc$; mes "Please, select an enchantment from the menu."; next; select(.@menu$); set .@itm, .orbs[@menu-1]; OnInit: setarray .orbs, 4702,4712,4722,4732,4742,4752,4767,4834; end;
  9. Hi, Find this line: mes "Only for character with level 99 and above"; Change to: else mes "Only for character with level 99 and above";
  10. Yes you can //Examples setunitdata(getnpcid(0), UNPC_HAIRSTYLE, 2); setunitdata(getnpcid(0), UNPC_HAIRCOLOR, 5); setunitdata(getnpcid(0), UNPC_HEADTOP, 547); setunitdata(getnpcid(0), UNPC_HEADMIDDLE, 0); setunitdata(getnpcid(0), UNPC_HEADBOTTOM, 0); setunitdata(getnpcid(0), UNPC_CLOTHCOLOR, 1); setunitdata(getnpcid(0), UNPC_ROBE, 4);
  11. Hi, put this in your OnInit: label setunitdata(getnpcid(0), UNPC_CLASS, 1); setunitdata(getnpcid(0), UNPC_SEX, 1); //0=female 1=male
  12. Use makeitem instead of getitem. Example: if (rand(100) < 10) { getunitdata killedgid, .@data; makeitem 45018,1, mapid2name(.@data[UMOB_MAPID]),.@data[UMOB_X],.@data[UMOB_Y], true; }
  13. Hi. Find this line: .@time = gettimetick(2); And add above it: if (gettime(DT_HOUR) != 13 && gettime(DT_HOUR) != 17 && gettime(DT_HOUR) != 19) end;
  14. Use rand command before giving the item. Example: - script satan -1,{ OnNPCKillEvent: if ( killedrid != 31001 ) end; if ( getcharid(1) ) { getpartymember getcharid(1), 1; getpartymember getcharid(1), 2; for ( .@i = 0; .@i < $@partymembercount; .@i++ ) { if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { // what happens if someone in the party member is offline =/ .@partymemberaid[.@c] = $@partymemberaid[.@i]; .@c++; } } //Party has 10% chance to get the item 45018 if (rand(100) < 10) getitem 45018, 1, .@partymemberaid[ rand( .@c ) ]; announce "Party ["+ strcharinfo(1) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" at "+ strcharinfo(3), 0; } else { //Players without party has 15% chance to get the item 45018 if (rand(100) < 15) getitem 45018, 1; announce "Player ["+ strcharinfo(0) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" at "+ strcharinfo(3), 0; } end; }
  15. Hi, find these lines: if (.@q[4]) mes " > "+Chk(Zeny,.@q[4]*.@q[1])+(.@q[4]*.@q[1])+" Zeny^000000"; if (.@q[5]) mes " > "+Chk(getd(.Points$[0]),.@q[5]*.@q[1])+(.@q[5]*.@q[1])+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+(.@q[5]*.@q[1])+")^000000"; if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2) mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1]*.@q[1])+((.ShowID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+(.@q[.@i+1]*.@q[1])+")^000000"; And replace with: if (.@q[6]) for(.@i = (getarraysize(.@q) - 2); .@i >= 6; .@i-=2) mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1]*.@q[1])+((.ShowID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+(.@q[.@i+1]*.@q[1])+")^000000"; if (.@q[5]) mes " > "+Chk(getd(.Points$[0]),.@q[5]*.@q[1])+(.@q[5]*.@q[1])+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+(.@q[5]*.@q[1])+")^000000"; if (.@q[4]) mes " > "+Chk(Zeny,.@q[4]*.@q[1])+(.@q[4]*.@q[1])+" Zeny^000000";
  16. Hi, the script is working fine here. Try changing that line to: if ( killedrid != 31001 ) end; - script satan -1,{ OnNPCKillEvent: if ( killedrid != 1002 ) end; if ( getcharid(1) ) { getpartymember getcharid(1), 1; getpartymember getcharid(1), 2; for ( .@i = 0; .@i < $@partymembercount; .@i++ ) { if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { // what happens if someone in the party member is offline =/ .@partymemberaid[.@c] = $@partymemberaid[.@i]; .@c++; } } getitem 45018, 1, .@partymemberaid[ rand( .@c ) ]; announce "Party ["+ strcharinfo(1) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" at "+ strcharinfo(3), 0; } else { getitem 45018, 1; announce "Player ["+ strcharinfo(0) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" at "+ strcharinfo(3), 0; } end; }
  17. Share your script here please
  18. Hi, You need to fix your getmonsterinfo. If you want this to trigger only for a specific mvp, you have two options: if ( getmonsterinfo( killedrid, MOB_NAME ) != "Wounded Morocc" ) end; or if ( getmonsterinfo( killedrid, MOB_ID) != 31001 ) end; If you want this to trigger for ANY mvp: if ( !getmonsterinfo( killedrid, MOB_MVPEXP ) ) end;
  19. Hi. Find this line getitem 30203,2; //Fish with Blue Back And insert this below: .@silver_coins = 2; //coins fished just now $fishing_total += .@silver_coins; //server total .@current_points = 0; //anti bug query_sql "SELECT `points` FROM `fishing_rank` WHERE `player_id` = '"+getcharid(0)+"'", .@current_points; if (.@current_points) query_sql "UPDATE `fishing_rank` SET `points` = " + (.@current_points + .@silver_coins) + ", `last_fished` = now() WHERE `player_id` = '"+getcharid(0)+"'"; else query_sql "INSERT INTO fishing_rank VALUES ( "+ getcharid(0) +", "+ .@silver_coins +", now() )"; And put this NPC:
  20. NPC: barter,yml (bartershop only supports 5 item requirements max, some dyestuffs requires more than that).
  21. Racaae

    Healer+Buff

    switch (BaseJob) { case Job_Alchemist: .@s = 445; break; case Job_Monk: .@s = 447; break; case Job_Star_Gladiator:.@s = 448; break; case Job_Sage: .@s = 449; break; case Job_Crusader: .@s = 450; break; case Job_SuperNovice: .@s = 451; break; case Job_Knight: .@s = 452; break; case Job_Wizard: .@s = 453; break; case Job_Priest: .@s = 454; break; case Job_Bard: case Job_Dancer: .@s = 455; break; case Job_Rogue: .@s = 456; break; case Job_Assassin: .@s = 457; break; case Job_Blacksmith: .@s = 458; break; case Job_Hunter: .@s = 460; break; case Job_Soul_Linker: .@s = 461; break; default: if (Upper == 1 && BaseLevel < 70) .@s = 494; } if (.@s) { sc_start4 SC_SPIRIT, 350000, 5, .@s, 0, 0; specialeffect2 503; }
  22. I duplicated the shop so there's two of the same: "vip_shop" (can buy) and "see_shop" (can't buy). The NPC will open "see_shop" for Non-VIPs.
×
×
  • Create New...