Jump to content


  • Posts

  • Joined

  • Last visited

1 Follower

About kalabasa

Recent Profile Visitors

2,956 profile views

kalabasa's Achievements

  1. for flag emotions it is located at. nemo\Input\flags.txt since the flags there are outdated just check here https://github.com/rathena/rathena/wiki/Emotion-List-Constants for the updated ones.
  2. I'm currently using the PRO style-coupon when im trying to delete a code it says ragnarok_db.reward_logs doen't exist already executed the sql files.
  3. thanks for the effort but i got a mistake here my fault. it should be on Zeny to Coin where in i want to limit the Zeny that can be exchanged into Coin up to 50m only. eg. so 1 Coin = 10m for example the user input/exchange 4 Coins so that's 4 coins = 40m if the user exchange again for example another 4 coins it should not convert because he got only 1 more coin left to exchange to complete the 50m limit should notify that the user has xxx more left to exchange then after that the cooldown applies.
  4. prontera,128,213,5 script Coin Manager#1::CM 733,{ // Your Server Max Zeny Amount set .MaxZeny,1000000000; // Coins Item ID and each Coins Costs setarray .Coins[1],677; setarray .Zeny[1],10000000; set [email protected]_zeny_per_day, 50000000; // Quest setarray [email protected]_need, 7227,5, 7444,100, 969,100, 999,100; [email protected]_need = getarraysize( [email protected]_need ); set @Menu$,""; for( set [email protected],1; [email protected] < getarraysize( .Coins ); set [email protected],[email protected]+1 ) set @Menu$,@Menu$ + getitemname( .Coins[[email protected]] )+":"; while( 1 ){ mes "Hello I am the Coin Manager, if you are interested in coins you have to talk with me,What can i help you with?"; next; switch( select( "I want trade Coin to Zeny:I want trade Zeny to Coin" ) ){ Case 1: mes "Very well. But im only interested on really expensive Coins made of Platinum:"; for( set [email protected],1; [email protected] < getarraysize( .Coins ); set [email protected],[email protected]+1 ){ mes "^0000FF"+getitemname( .Coins[[email protected]] )+" ^FF0000"+.Zeny[[email protected]]+"^000000 Zeny."; } next; set [email protected],select( @Menu$ ); mes "Select the Amount of Coins you want to trade into Zeny."; mes "You have "+countitem( .Coins[[email protected]] )+" "+getitemname( .Coins[[email protected]] )+"."; input @Amount,0,countitem( .Coins[[email protected]] ); if( @Amount < 1 ){ mes "You don't have that quantity of Coins."; }else if( ( Zeny + ( @Amount * .Zeny[[email protected]] ) ) > .MaxZeny ){ mes "You can't hold this amount of Zeny."; }else{ set Zeny,Zeny + ( @Amount * .Zeny[[email protected]] ); delitem .Coins[[email protected]],@Amount; mes "Done, you have traded "[email protected]+" of "+getitemname(.Coins[[email protected]])+" into "+( @Amount * .Zeny[[email protected]] )+" Zeny."; } next; break; Case 2: if ( zeny_coin_quest < gettimetick(2) ) { mes "im sory but you have to make platinum permit quest to trade zeny into platinum coins, do you want to make platinum permit quest?"; next; if ( select( "yes", "no" ) -1 ) end; mes "you need :"; for ( [email protected] = 0; [email protected] < [email protected]_need; [email protected] += 2 ) mes "- "+ [email protected]_need[[email protected]+1] +" "+ getitemname( [email protected]_need[[email protected]] ); mes "and 100,000,000z"; next; if ( select( "give the items", "leave" ) -1 ) close; [email protected] = 0; for ( [email protected] = 0; [email protected] < [email protected]_need; [email protected] += 2 ) if ( countitem( [email protected]_need[[email protected]] ) < [email protected]_need[[email protected]+1] ) { if ( [email protected] ) mes "I'm sorry you need"; mes "- "+ ( [email protected]_need[[email protected]+1] - countitem( [email protected]_need[[email protected]] ) ) +" "+ getitemname( [email protected]_need[[email protected]] ); [email protected]++; } if ( Zeny < 100000000 ) mes "You need "+ ( 100000000 - Zeny ) +" zeny."; if ( [email protected] || Zeny < 100000000 ) close; for ( [email protected] = 0; [email protected] < [email protected]_need; [email protected] += 2 ) delitem [email protected]_need[[email protected]], [email protected]_need[[email protected]+1]; Zeny = Zeny - 100000000; zeny_coin_quest = gettimetick(2) + 30 * 86400; close; } else if ( getstrlen( maxchange_zeny_per_day$ ) ) { explode( [email protected]$, maxchange_zeny_per_day$, "|" ); if ( atoi( [email protected]$ ) == gettime(4) && atoi( [email protected]$[1] ) > [email protected]_zeny_per_day ) { mes "I'm sorry you can't exchange more than "+ [email protected]_zeny_per_day +" zeny per day."; close; } else if ( atoi( [email protected]$ ) != gettime(4) ) [email protected]$[1] = 0; } mes "Very well. Here is the list on how much each coin is worth:"; for( set [email protected],1; [email protected] < getarraysize( .Coins ); set [email protected],[email protected]+1 ){ mes "^0000FF"+getitemname( .Coins[[email protected]] )+" ^FF0000"+.Zeny[[email protected]]+"^000000 Zeny."; } next; set [email protected],select( @Menu$ ); mes "Select the Amount of Zeny you want to trade into "+getitemname( .Coins[[email protected]] )+"."; mes "You can get maximum of "+Zeny/.Zeny[[email protected]]+" "+getitemname( .Coins[[email protected]] )+"."; input @Amount,0,Zeny/.Zeny[[email protected]]; if( @Amount < 1 ){ mes "You don't have that quantity of Zeny."; }else{ set Zeny,Zeny - ( @Amount * .Zeny[[email protected]] ); getitem .Coins[[email protected]],@Amount; mes "Done, you have traded "+( @Amount * .Zeny[[email protected]] )+" Zeny into "[email protected]+" of "+getitemname(.Coins[[email protected]])+" ."; [email protected]$ = gettime(4); [email protected]$[1] = atoi( [email protected]$[1] ) + @Amount * .Zeny[[email protected]]; maxchange_zeny_per_day$ = implode( [email protected]$, "|" ); } next; break; } } close; } can anyone update this script? for example i want to limit 5 coins to be exchanged per day. if i exactly input 5 coins it will automatically stop you from exchanging but let's say you exchange 4 coins first and then you exchange 4 again. it wont let you stop from exchanging it will only stop you from exchanging if you input the exact number
  5. im using two years behind to the latest i only have one error though chat_createchat identifier not found this part... cd = chat_createchat( &md->bl, market_title, "", 1, false, 0, "", 0, 1, MAX_LEVEL );
  6. i did try to add more letters on it. but it can only display up to 4 letters. i still cant find where did i got the script for the source.
  7. I want to add this NPC from here https://raw.githubusercontent.com/rathena/rathena/master/npc/re/merchants/hd_refiner.txt i also added this onto my refine_db from renewal refine_db - Type: REFINE_COST_OVER10 Price: 100000 Material: 6223 - Type: REFINE_COST_HD Price: 20000 - Type: REFINE_COST_OVER10_HD Price: 100000 Material: 6225 But, the NPC still cannot read the requirements needed to upgrade and the zeny cost. // Basta (+10 and up) :: cash_smelting //============================================================ - script ::Basta -1,{ disable_items; mes "[Basta]"; mes "I'm the best Blacksmith in the whole world, Basta."; mes "But I don't provide a normal refine service."; mes "I only refine equipment ^CC0000over +10^000000."; next; mes "[Basta]"; mes "Which equipment do you want to refine?"; next; setarray [email protected][1], EQI_HEAD_TOP, EQI_ARMOR, EQI_HAND_L, EQI_HAND_R, EQI_GARMENT, EQI_SHOES, EQI_ACC_L, EQI_ACC_R, EQI_HEAD_MID, EQI_HEAD_LOW; for ( [email protected] = 1; [email protected] <= 10; [email protected] ) [email protected]$ = [email protected]$ + ( getequipisequiped([email protected][[email protected]]) ? getequipname([email protected][[email protected]]) : F_getpositionname([email protected][[email protected]]) + "-[Unequipped]" ) + ":"; [email protected] = [email protected][ select([email protected]$) ]; if (!getequipisequiped([email protected])) { mes "[Basta]"; switch([email protected]) { case EQI_HEAD_TOP: mes "Is your head an equipment?"; break; case EQI_ARMOR: mes "What do you want me to do?"; break; case EQI_HAND_L: case EQI_HAND_R: mes "Making artificial hands is not my specialty."; break; case EQI_GARMENT: mes "Do you even know what a robe is?"; break; case EQI_SHOES: mes "If you want to refine your feet, don't come to me, try running a marathon."; break; case EQI_ACC_L: case EQI_ACC_R: mes "Where is the accessory?"; break; case EQI_HEAD_MID: mes "Well... I don't see any equipment worth refining."; break; case EQI_HEAD_LOW: mes "I can't make you smart. Go see a school teacher for that."; break; } close; } if (!getequipisenableref([email protected])) { mes "[Basta]"; mes "Even I cannot refine this item. There's no way."; close; } [email protected]_count = getequiprefinerycnt([email protected]); if ([email protected]_count < 10) { mes "[Basta]"; mes "Haven't I told you? I only refine equipment that are +10 and above."; close; } else if ([email protected]_count == 10) [email protected]_blessing_count = 7; else if ([email protected]_count == 11) [email protected]_blessing_count = 11; else if ([email protected]_count == 20) { mes "[Basta]"; mes "This weapon is perfect, no need to refine it anymore~"; close; } [email protected] = getequipid([email protected]); // save id of the item [email protected] = getiteminfo( [email protected], ITEMINFO_TYPE ); [email protected] = getequiprefinerycnt([email protected]); //save refinery count setarray [email protected][0], getequipcardid([email protected],0), getequipcardid([email protected],1), getequipcardid([email protected],2), getequipcardid([email protected],3); [email protected] = getequiprefinecost([email protected], REFINE_COST_HD, REFINE_ZENY_COST); [email protected] = getequiprefinecost([email protected], REFINE_COST_HD, REFINE_MATERIAL_ID); if ( [email protected] != IT_WEAPON ) [email protected]$ = "armor"; else [email protected]$ = "weapon"; mes "[Basta]"; mes "Hmm... is this the one you want to refine?"; mes "To refine this equipment, I need 1 ^ff9999" + getitemname([email protected]) + "^000000 and " + callfunc("F_InsertComma",[email protected]) + " zeny as a fee."; mes "Do you really want to refine this?"; next; if (select("Yes:No") == 2) { mes "[Basta]"; mes "Okay. If that's what you want..."; close; } if (getequippercentrefinery([email protected], true) < 100) { mes "[Basta]"; mes "This " + [email protected]$ + " has already been refined pretty high."; mes "If you try to refine it more, the refine level could decrease."; next; mes "[Basta]"; mes "I am different from the blacksmiths in others places."; mes "It is impossible that the refine level will drop by, say, 3 or 4... that sounds scary."; mes "Here it can only decrease by 1 level."; next; if ([email protected]_blessing_count == 0 || countitem(6635) < [email protected]_blessing_count) { mes "[Basta]"; mes "Compared to other blacksmiths, the risk is smaller."; mes "I've given all precautions. Do you want to try it?"; next; setarray [email protected]$[0], "", "Yes", "No"; } else { mes "[Basta]"; mes "Woah~ Is it the ^316AC5Blacksmith Blessing^000000? It is difficult to get~ But, you have it!"; next; mes "[Basta]"; mes "For +" + [email protected]_count + " " + [email protected]$ + " need ^316AC5" + [email protected]_blessing_count + " unit(s) Blacksmith Blessing^000000 can prevent the equipment from vanishing. Do you want to refine with Blacksmith Blessing?"; next; setarray [email protected]$[0], "Refine with Blacksmith Blessing", "Refine without Blacksmith Blessing", "Don't refine yet"; } switch( select([email protected]$[0], [email protected]$[1], [email protected]$[2]) ) { case 1: [email protected]_who = 1; break; case 2: break; case 3: mes "[Basta]"; mes "Well~"; mes "Not challenging at all could also be a kind of wisdom in life."; close; } } if (([email protected]_who && countitem(6635) < [email protected]_blessing_count) || countitem([email protected]) == 0 || Zeny < [email protected]) { mes "[Basta]"; mes "Hmm... You didn't bring all the materials needed."; mes "Come back when you have them all."; close; } if ([email protected]_who) delitem 6635, [email protected]_blessing_count; delitem [email protected],1; Zeny = Zeny - [email protected]; // anti-hack if (callfunc("F_IsEquipIDHack", [email protected], [email protected]) || callfunc("F_IsEquipCardHack", [email protected], [email protected][0], [email protected][1], [email protected][2], [email protected][3]) || callfunc("F_IsEquipRefineHack", [email protected], [email protected])) { mes "[Basta]"; emotion ET_FRET; mes "Wait a second..."; mes "Do you think I'm stupid?!"; mes "You switched the item while I wasn't looking! Get out of here!"; close; } mes "Pow! Pow! Pow! Pow!"; if (getequippercentrefinery([email protected], true) > rand(100)) { successrefitem [email protected]; next; emotion ET_BEST; mes "[Basta]"; mes "Great! Nicely done!!"; mes "I really am the best blacksmith in the whole wide world!"; close; } if ([email protected]_who == 1) { specialeffect EF_HOLYHIT; next; emotion (!rand(5))?ET_MONEY:ET_HUK; mes "[Basta]"; mes "Aaaaaaaaaaak!!!"; next; mes "[Basta]"; mes "Refining has failed!"; mes "The best blacksmith in the world like me..."; mes "doesn't guarantee 100% success~"; } else { downrefitem [email protected]; next; emotion (!rand(5))?ET_MONEY:ET_HUK; mes "[Basta]"; mes "Aaaaaaaaaaak!!!"; next; mes "[Basta]"; mes "Damn it!"; mes "Refining has failed and refine level has decreased!"; mes "Even the best blacksmith in the world doesn't guarantee 100% success!"; } mes "Too bad."; next; mes "[Basta]"; mes "I'll do better next time! Don't worry!"; close; } prt_in,57,54,3 duplicate(Basta) Basta#prt 4_M_DWARF morocc_in,68,30,3 duplicate(Basta) Basta#morocc 4_M_DWARF payon,148,174,3 duplicate(Basta) Basta#payon 4_M_DWARF alberta_in,18,56,3 duplicate(Basta) Basta#alberta 4_M_DWARF yuno_in01,173,18,3 duplicate(Basta) Basta#yuno 4_M_DWARF ein_in01,24,82,3 duplicate(Basta) Basta#einbroch 4_M_DWARF lhz_in02,280,17,3 duplicate(Basta) Basta#lighthalzen 4_M_DWARF
  8. IsEnsemble: true did you try already to set to false in skill_db?
  9. https://rathena.org/board/topic/71961-gold-room-request/
  10. First off im using 2015-11-04a and i decided to use 2018-06-20e as usual i do the basic thing diffing client after that works fine . i manage to run the game without errors. i can @item them and properly showing in the inventory so what i did was im using the same grf, same iteminfo.lua as i use wayback when im using the 2015 client can someone tell me if i miss something?
  11. if you unequipped any item that you already hide it will show up again upon re-equipping it
  12. if a player enters the PvP room and they have choose to turn OFF their annoucement the other players that have their annoucement ON on the other hand they will recieve the annoucement blank [PvP Annoucement]: has entered the PvP Room
  13. from doc\skill_db.txt always check for proper tab or alignment i guess you can always check for samples at db\pre-re\skill_db.yml or db\re\skill_db.yml Cooldown: Time before the character can use the same skill again in milliseconds. Can be defined in scalar form or sequence map form: Scalar Form Cooldown: 1000 Sequence Map Form Cooldown: - Level: 1 Time: 1000 - Level: 2 Time: 2000 - Level: 3 Time: 3000 - Level: 4 Time: 4000 - Level: 5 Time: 5000
  14. saw this at discord answered by nitrous Change `struct item_data *itemdata` to `std::shared_ptr<item_data> item_data`
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.