Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 02/06/20 in Posts

  1. View File Euphy's WoE Controller + @woe command Report all error/bugs in the forum post not in the PM for faster fix, Thanks! By downloading this file, you agree with my Terms of Service: • You are not allowed remove my signature from any of the included files. • You are not allowed claim my work as yours. • I can give you support, but please, do not message me. If you like it, give me a Submitter BeWan Submitted 02/02/2020 Category PvP, GvG, WoE, Battleground Video Content Author Euphy, BeWan  
    1 point
  2. Hey guys, i never share things here, but hey, glad to help ~ This is my custom implementation of the Mechanic new costume, and work like this. This new sprite only work when u use the "Bodystyle 1" on the mechanic class, that means we keep the old mechanic costume as "bodystyle 0" In addition to that, i add the Attack animation for 2 genders and the first 3 palettes. In the file i put the new Gravitational Cart as "Cart 3" but, u guys can rename or replace it as you like ~ To make it work, just drag all the rar content on your current grf and it´s done ~ Additional note: Some old clients read the mechanic sprite or palete whit a different name, so, in that case, just replace the name of the files as the name that your client or grf are reading it. mechanic_full_new_stuff.rar
    1 point
  3. Use sql query to ban accounts until 20-02-2020 00:00:00 UPDATE `login` SET `unban_time` = '1582146000' WHERE `account_id` >= 2000002 AND `account_id` <= 2000343; Accounts automaticly unbanned at '1582146000' (Use UnixTime converter)
    1 point
  4. @NKCYBER you can edit the points and the item. prontera,150,150,5 script Bring Shopping 122,{ mes "[Item Trader]"; mes "Hi, "+strcharinfo(0)+"!"; mes "What can I do for you?"; next; switch(select(" > Information: > Trade in Items: > Point shop (^0055FF"+getd(.Points$)+"^000000): > Leave")) { case 1: mes "[Item Trader]"; mes "Do you find that you've got"; mes "useless Items lying around?"; mes "I'll be glad to take them off"; mes "your hands!"; next; mes "[Item Trader]"; mes "I'll give you ^0055FF"+.Points[0]+" Point"+((.Points[0] == 1)?"":"s")+"^000000 for normal Item each"; mes "Item you give me, and"; mes "^0055FF"+.Points[1]+" Points^000000 for Items."; mes "You can trade those points"; mes "for items later on."; mes "How does that sound?"; emotion ET_MONEY; close; case 2: mes "[Item Trader]"; mes "Select the Items you"; mes "want to trade in."; if (.Level) { mes " "; mes "They must be dropped"; mes "by monsters of level"; mes .Level+" and above."; } deletearray @sold_nameid[0],getarraysize(@sold_nameid); callshop "item_shopp",2; npcshopattach "item_shopp"; end; case 3: mes "[Item Trader]"; mes "You have ^0055FF"+getd(.Points$)+"^000000 Point"+((getd(.Points$) == 1)?".":"s."); callshop "item_shopp",1; npcshopattach "item_shopp"; end; case 4: mes "[Item Trader]"; mes "*yawn*"; mes "See you later!"; emotion ET_SLEEPY; close; } OnSellItem: mes "Items to sell:"; mes "-----------------------------------"; for(set .@i,0; .@i<getarraysize(@sold_nameid); set .@i,.@i+1) if (@sold_nameid[.@i] > 4000 && @sold_nameid[.@i] < 4700) { if (.Level) { query_sql("SELECT `LV` FROM `mob_db` WHERE `DropItemid` = "+@sold_nameid[.@i],.@lv); if (.@lv < .Level) { dispbottom getitemname(@sold_nameid[.@i])+" is under the minimum level."; continue; } } set .@Item_id[getarraysize(.@Item_id)], @sold_nameid[.@i]; set .@Item_amt[getarraysize(.@Item_amt)], @sold_quantity[.@i]; set .@item, compare(.ITEM$,""+@sold_nameid[.@i]); mes ((.@item)?" ^FF0000":" ^777777")+@sold_quantity[.@i]+"x "+getitemname(@sold_nameid[.@i])+"^000000"; set .@Item_total, .@Item_total+(@sold_quantity[.@i]*((.@item)?.Points[1]:.Points[0])); } deletearray @sold_nameid[0], getarraysize(@sold_nameid); deletearray @sold_quantity[0], getarraysize(@sold_quantity); if (!.@Item_id) { mes " ^777777(none)^000000"; emotion ET_SWEAT; close; } mes " "; mes "---------- Total: ^0055FF"+.@Item_total+" pt.^000000 -------"; next; if(select(" > ^0055FFComplete trade...^000000: > ^777777Cancel^000000") == 2) { mes "[Item Trader]"; mes "Oh, okay..."; emotion ET_SCRATCH; close; } for(set .@i,0; .@i<getarraysize(.@Item_id); set .@i,.@i+1) delitem .@Item_id[.@i],.@Item_amt[.@i]; setd .Points$, getd(.Points$)+.@Item_total; mes "[Item Trader]"; mes "All done!"; emotion ET_DELIGHT; close; OnBuyItem: for(set .@i,0; .@i<getarraysize(@bought_nameid); set .@i,.@i+1) for(set .@j,0; .@j<getarraysize(.Shop); set .@j,.@j+2) if (@bought_nameid[.@i] == .Shop[.@j]) { set .@cost, .@cost+(.Shop[.@j+1]*@bought_quantity[.@i]); break; } if (.@cost > getd(.Points$)) { mes "[Item Trader]"; mes "You don't have enough Points."; emotion ET_HUK; } else { mes "Items purchased:"; mes "-----------------------------------"; for(set .@i,0; .@i<getarraysize(@bought_nameid); set .@i,.@i+1) { getitem @bought_nameid[.@i], @bought_quantity[.@i]; mes " ^777777"+@bought_quantity[.@i]+"x "+getitemname(@bought_nameid[.@i])+"^000000"; } mes " "; mes "---------- Total: ^0055FF"+.@cost+" pt.^000000 -------"; setd .Points$, getd(.Points$)-.@cost; emotion ET_MONEY; } deletearray @bought_nameid[0], getarraysize(@bought_nameid); deletearray @bought_quantity[0], getarraysize(@bought_quantity); close; OnInit: //waitingroom "Item Trader",0; set .Level,0; // Minimum monster level to trade corresponding Items. set .Points$,"#Item_Points"; // Variable to store points. setarray .Shop[0], // Item Shop items: <ID>,<point cost> 512,10; setarray .Points[0],0,1,1; // Points per <normal Item>,<Item> set .ITEM$, // List of Items. "2504,2311"+ "2403,2103"; npcshopdelitem "item_shopp",909; for(set .@i,0; .@i<getarraysize(.Shop); set .@i,.@i+2) npcshopadditem "item_shopp",.Shop[.@i],.Shop[.@i+1]; end; } - shop item_shopp -1,909:-1
    1 point
  5. Debes revisar esto: https://github.com/rathena/rathena/wiki También estaría bueno que revisases la biblia de Judas: https://rathena.org/board/topic/60968-step-by-step-guide-at-how-to-start-a-ro-server/#comment-89389 Luego debes curiosear mucho en la carpeta doc del emulador ?
    1 point
  6. 100% working. tested already 12118,Resist_Fire,Fireproof Potion,2,2,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_end SC_ARMOR_ELEMENT_FIRE; sc_end SC_ARMOR_ELEMENT_WATER; sc_end SC_ARMOR_ELEMENT_EARTH; sc_end SC_ARMOR_ELEMENT_WIND; sc_start4 SC_ARMOR_ELEMENT_FIRE,1200000,-15,0,20,0; },{},{} 12119,Resist_Water,Coldproof Potion,2,2,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_end SC_ARMOR_ELEMENT_FIRE; sc_end SC_ARMOR_ELEMENT_WATER; sc_end SC_ARMOR_ELEMENT_EARTH; sc_end SC_ARMOR_ELEMENT_WIND; sc_start4 SC_ARMOR_ELEMENT_WATER,1200000,20,0,0,-15; },{},{} 12120,Resist_Earth,Earthproof Potion,2,2,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_end SC_ARMOR_ELEMENT_FIRE; sc_end SC_ARMOR_ELEMENT_WATER; sc_end SC_ARMOR_ELEMENT_EARTH; sc_end SC_ARMOR_ELEMENT_WIND; sc_start4 SC_ARMOR_ELEMENT_EARTH,1200000,0,20,-15,0; },{},{} 12121,Resist_Wind,Thunderproof Potion,2,2,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_end SC_ARMOR_ELEMENT_FIRE; sc_end SC_ARMOR_ELEMENT_WATER; sc_end SC_ARMOR_ELEMENT_EARTH; sc_end SC_ARMOR_ELEMENT_WIND; sc_start4 SC_ARMOR_ELEMENT_WIND,1200000,0,-15,0,20; },{},{}
    1 point
  7. The topic has been removed because of rAthena staff double standards and hypocrisy things. (rA staff blame me that I made a money on this topic while it's not and never was) All that I did for the last 2.5 years with around ~1k answers from my side is help for free for newbies here, but to rA staff, my topic is a pain in the ass. Sorry guys, but the topic can't be maintained on such a community anymore because of its admins. Bye
    1 point
  8. You can try this script by Sehrentos, it's one of the most configurable enchanters I've seen: //===== rAthena Script ======================================= //= Enchant NPC //===== By: ================================================== //= Sehrentos //===== Current Version: ===================================== //= 1.2 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= Enchant player's equipment. Support multiple enchants. //===== Additional Comments: ================================= //= 1.0 Initial script. //= 1.1 Remove enchant option. //= 1.2 Added .max_enchant option. //============================================================ // shop/cashshop/itemshop/pointshop - shop enc_atk -1,501:300; - shop enc_def -1,501:300; - shop enc_stats -1,501:300; prt_in,65,68,4 script Enchant#prt1 4_M_MERCAT1,{ disable_items; switch(select("Attack:Defence:Stats:Remove")) { case 1: @shop_name$ = "enc_atk"; break; case 2: @shop_name$ = "enc_def"; break; case 3: @shop_name$ = "enc_stats"; break; case 4: callsub S_Remove; break; default: end; } callshop @shop_name$, 1; npcshopattach @shop_name$; end; OnInit: // Settings: shop names, currencies, items, prices .max_enchant = 2; // Max amount of enchants 0-4 setarray .shop_name$[0], "enc_atk", "enc_def", "enc_stats"; setarray .shop_currency$[0],"Zeny", "Zeny", "Zeny"; setarray .enc_atk_id[0], 4760, 4761, 4806, 4815, 4814, 4813, 4812, 4826, 4827, 4828, 4829, 4830, 4831, 4819, 4766, 4767,4764,4765, 4807, 4842, 4818, 4817, 4816, 4843, 4844, 4811, 4810, 4809, 4808, 4820, 4821, 4822, 4823, 4824, 4825, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841; setarray .enc_atk_price[0],10000,20000,30000,10000,20000,30000,40000,50000,60000,70000,80000,90000,100000,10000,20000,30000,5000,7000,10000,20000,10000,20000,30000,40000,50000,10000,20000,30000,40000,50000,60000,70000,80000,90000,100000,10000,20000,30000,40000,50000,60000,70000,80000,90000,100000; setarray .enc_def_id[0], 4805, 4850, 4851, 4852,4762, 4763,4786,4787,4788,4789, 4790,4791,4792,4793, 4794,4795,4796,4797,4798,4799,4800,4801, 4802; setarray .enc_def_price[0],10000,20000,40000,60000,5000,12000,2000,4000,6000,8000,10000,3000,5000,9000,12000,1000,2000,3000,4000,5000,2500,5000,10000; setarray .enc_stats_id[0], 4700,4710,4720,4730,4740,4750, 4701,4711,4721,4731,4741,4751, 4702,4712,4722,4732,4742,4752, 4703,4713,4723,4733,4743,4753, 4704,4714,4724,4734,4744,4754, 4705,4715,4725,4735,4745,4755, 4706,4716,4726,4736,4746,4756, 4707,4717,4727,4737,4747,4757, 4708,4718,4728,4738,4748,4758, 4709, 4719, 4729, 4739, 4749, 4759; setarray .enc_stats_price[0],1500,1500,1500,1500,1500,1500, 2500,2500,2500,2500,2500,2500, 3500,3500,3500,3500,3500,3500, 4500,4500,4500,4500,4500,4500, 5500,5500,5500,5500,5500,5500, 6500,6500,6500,6500,6500,6500, 7500,7500,7500,7500,7500,7500, 8500,8500,8500,8500,8500,8500, 9500,9500,9500,9500,9500,9500, 10500,10500,10500,10500,10500,10500; // Load shop items for(.@i = 0; .@i < getarraysize(.shop_name$); .@i++) { .@npc$ = .shop_name$[.@i]; deletearray .@id[0],getarraysize(.@id); deletearray .@price[0],getarraysize(.@price); copyarray .@id[0], getd("."+.@npc$+"_id[0]"), getarraysize(getd("."+.@npc$+"_id")); copyarray .@price[0], getd("."+.@npc$+"_price[0]"), getarraysize(getd("."+.@npc$+"_price")); npcshopdelitem .@npc$,501;// Remove apple for(.@j = 0; .@j < getarraysize(.@id); .@j++) { npcshopadditem .@npc$, .@id[.@j], .@price[.@j]; } } end; OnSellItem: end; OnBuyItem: .@bought_count = getarraysize(@bought_nameid); if(.@bought_count < 1) end; // Get shop data by @shop_name$ .@shop_index = inarray(.shop_name$[0], @shop_name$); if(.@shop_index == -1 || getarraysize(.shop_name$) < 1) { message strcharinfo(0), "Shop was not found!"; debugmes "Incorrect shop array detected in '"+@shop_name$+"'! FIXME!"; end; } copyarray .@shop_id[0], getd("."+@shop_name$+"_id"), getarraysize(getd("."+@shop_name$+"_id")); copyarray .@shop_price[0], getd("."+@shop_name$+"_price"), getarraysize(getd("."+@shop_name$+"_price")); for(.@i = 0; .@i < .@bought_count; .@i++) { .@index = inarray(.@shop_id[0], @bought_nameid[.@i]); if(.@index == -1) { message strcharinfo(0), "Price was not found!"; debugmes "Incorrect price array detected in '"+@shop_name$+"'! FIXME!"; end; } setarray .@bought_cost[getarraysize(.@bought_cost)],.@shop_price[.@index]*@bought_quantity[.@i]; for (.@j = 0; .@j < @bought_quantity[.@i]; .@j++) { setarray .@enchant[getarraysize(.@enchant)],@bought_nameid[.@i]; } } // Count total cost for(.@i = 0; .@i < .@bought_count; .@i++) { .@total_cost = .@total_cost + .@bought_cost[.@i]; } // Currency check if(.shop_currency$[.@shop_index] == "Zeny" && Zeny < .@total_cost) { message strcharinfo(0), "("+.@total_cost+") Not enough "+.shop_currency$[.@shop_index]+"!"; end; } // Other currency checks... // Select equipment (EQI) mes "[ " + strnpcinfo(1) + " ]"; mes "Please select which equipment you want me to enchant."; .@position = callsub(S_SelectPosition); // Check if position has equipment if(!getequipisequiped(.@position)) { clear; mes "[ " + strnpcinfo(1) + " ]"; mes "You don't have anything equipped there!"; close; } .@item_id = getequipid(.@position); //Equipped item id .@refine = getequiprefinerycnt(.@position); //Equipped refine value .@slots = getitemslots(.@item_id); setarray .@cards[0], getequipcardid(.@position,0), getequipcardid(.@position,1), getequipcardid(.@position,2), getequipcardid(.@position,3); .@cards_count = getarraysize(.@cards); .@enchant_count = getarraysize(.@enchant); /*if(.@enchant_count > .max_enchant) { clear; mes "[ " + strnpcinfo(1) + " ]"; mes "This item has been crafted or produced and cannot be enchanted."; close; }*/ // Check for enabled refinement /*if(!getequipisenableref(.@position)) { clear; mes "[ " + strnpcinfo(1) + " ]"; mes "I don't think I can enchant this item at all."; mes "Sorry..."; close; }*/ // Add all card slots for(.@i = 0; .@i < .@slots; .@i++) { setarray .@item[getarraysize(.@item)], (.@cards[.@i] > 0 ? .@cards[.@i] : -1); } // Add previous enchants for(.@i = .@slots; .@i < .@cards_count; .@i++) { if(.@cards[.@i] > 0) { setarray .@item[getarraysize(.@item)], .@cards[.@i]; } } // Add new enchants for(.@i = 0; .@i < .@enchant_count; .@i++) { setarray .@item[getarraysize(.@item)], .@enchant[.@i]; } // Check for produced/crafted items 254,255 if(.@cards[0] == CARD0_FORGE || .@cards[0] == CARD0_CREATE) { clear; mes "[ " + strnpcinfo(1) + " ]"; mes "This item has been crafted or produced and cannot be enchanted."; close; } // Has card sockets 4 - slots if(.@enchant_count > (.max_enchant - .@slots)) { clear; mes "[ " + strnpcinfo(1) + " ]"; mes "This equipment can hold "+(.max_enchant - .@slots)+" enchant."; close; } // Has free sockets if((.@slots + .@enchant_count) > .max_enchant || getarraysize(.@item) > .max_enchant) { clear; mes "[ " + strnpcinfo(1) + " ]"; mes "This item does not have enough free sockets to enchant."; close; } // Confirm the setup clear; mes "[ " + strnpcinfo(1) + " ]^6E6E6E Setup^000000"; for(.@i = 0; .@i < .@enchant_count; .@i++) { mes "Enchant: "+ getitemname(.@enchant[.@i]); } mes "Equipment: "+ getitemname(getequipid(.@position)); mes "Cost: "+.@total_cost+" "+.shop_currency$[.@shop_index]+"."; if (select("Create enchant:Cancel") != 1) { clear; mes "[ " + strnpcinfo(1) + " ]"; mes "Farewell."; close; } // Create selected enchant clear; mes "[ " + strnpcinfo(1) + " ]^6E6E6E Done^000000"; mes "Here is your enchanted equipment!"; delequip(.@position); specialeffect2 154; if(.shop_currency$[.@shop_index] == "Zeny") { Zeny = Zeny - .@total_cost; } getitem2 .@item_id, 1, 1, .@refine, 0, (.@item[0] > 0 ? .@item[0] : 0), (.@item[1] > 0 ? .@item[1] : 0), (.@item[2] > 0 ? .@item[2] : 0), (.@item[3] > 0 ? .@item[3] : 0); close; S_Remove: // Select equipment (EQI) mes "[ " + strnpcinfo(1) + " ]"; mes "Please select which equipment you want me to work on."; .@position = callsub(S_SelectPosition); // Check if position has equipment if(!getequipisequiped(.@position)) { clear; mes "[ " + strnpcinfo(1) + " ]"; mes "You don't have anything equipped there!"; close; } .@item_id = getequipid(.@position); //Equipped item id .@refine = getequiprefinerycnt(.@position); //Equipped refine value .@slots = getitemslots(.@item_id); setarray .@cards[0], getequipcardid(.@position,0), getequipcardid(.@position,1), getequipcardid(.@position,2), getequipcardid(.@position,3); .@cards_count = getarraysize(.@cards); .@enchant_count = getarraysize(.@enchant); // Create selected item clear; mes "[ " + strnpcinfo(1) + " ]^6E6E6E Done^000000"; mes "Here is your equipment back!"; delequip(.@position); specialeffect2 169; getitem2 .@item_id, 1, 1, .@refine, 0,0,0,0,0; for(.@i=0; .@i<.@slots; .@i++) { if(.@cards[.@i] > 0) getitem .@cards[.@i], 1; } close; S_SelectPosition: setarray .@indices[1], EQI_HEAD_TOP, EQI_HEAD_MID, EQI_HEAD_LOW, EQI_ARMOR, EQI_HAND_L, EQI_HAND_R, EQI_GARMENT, EQI_SHOES, EQI_ACC_L, EQI_ACC_R; setarray .@position$[1], "Top", "Mid", "Low", "Armor", "Left Hand", "Right Hand", "Garment", "Shoes", "Accessory L", "Accessory R"; setarray .@option[1], 1, 1, 1, 1, 1, 1, 1, 1, 1, 1; // 1=allow, 0=deny for(.@i=1; .@i<getarraysize(.@indices); .@i++) { if(.@option[.@i] && getequipisequiped(.@indices[.@i])) { .@menu$ = .@menu$ + .@position$[.@i] + "-[" + getequipname(.@indices[.@i]) + "]"; } .@menu$ = .@menu$ + ":"; } .@part = .@indices[select(.@menu$)]; return .@part; }
    1 point
  9. Seu desejo é uma ordem! /////////////////////////////////////////////////////// // ___________ _____.__ // \__ ___/__.__.________/ ____\__| ____ ____ // | | < | |\_ __ \ __\| |/ \ / ___\ // | | \___ | | | \/| | | | | \/ /_/ > // |____| / ____| |__| |__| |__|___| /\___ / // \/ Scripts \//_____/ // //===================================================== // Name: Poring Reporter // // Description: // A poring reporter will spread the news about your // server walking randomly throughout Prontera. // // Instructions: // Toggle walking by whispering to NPC! // (To whisper the NPC, simply send a private message // in Ragnarok to "npc:Poring Reporter") // Say "walk" and it'll start walking. // Anything else and it'll stop as soon as possible. //===================================================== /////////////////////////////////////////////////////// prontera,147,190,5 script Poring Reporter 909,{ set .@gm_level, 99; // Necessary GM Level set .@npc_name$, "Poring Reporter"; function NewsList; Begin: if (getgmlevel() < .@gm_level) end; npcstop; if (.walking != 0) npctalk "Stopped walking. Tell me to \"walk\".", "", bc_self; set .walking, 0; clear; mes "[ ^f442a7"+ .@npc_name$ +"^000000 ]"; mes "Hello, master! What are the news today?"; menu "Show news",ShowNews, "Remove news",RemoveNews, "Register news",RegisterNews; ShowNews: clear; mes "[ ^f442a7"+ .@npc_name$ +"^000000 ]"; if (getarraysize(.news$) > 0) { mes "These are the news:"; NewsList; } else { mes "There are no news."; } next; goto Begin; RemoveNews: clear; NewsList; mes "Enter the number of the new you want to remove:"; input .@remove; clear; mes "[ ^f442a7"+ .@npc_name$ +"^000000 ]"; mes "Do you want to remove \"" + .news$[.@remove-1] + "\"?"; if (select("Yes:No") == 1) { .@arrsize = getarraysize(.news$); for (.@i = .@remove-1; .@i < .@arrsize; .@i++) { set .news$[.@i], .news$[.@i+1]; } set .news$[.@arrsize], ""; } goto Begin; RegisterNews: clear; mes "[ ^f442a7"+ .@npc_name$ +"^000000 ]"; mes "What should I spread throughout Prontera?"; input .@new$; clear; mes "[ ^f442a7"+ .@npc_name$ +"^000000 ]"; mes "\"" + .@new$ + "\""; mes "Is that right?"; if (select("Yes:No") == 2) goto RegisterNews; set .news$[getarraysize(.news$)], .@new$; clear; mes "[ ^f442a7"+ .@npc_name$ +"^000000 ]"; mes "Okay!~"; next; goto Begin; function NewsList { for (.@i = 0; .@i < getarraysize(.news$); .@i++) { if (.news$[.@i] != "") mes (.@i+1) + ". \""+ .news$[.@i] +"\""; } } OnWhisperGlobal: if (getgmlevel() < .@gm_level) end; if (@whispervar0$ == "walk") { set .walking, 1; } else { set .walking, 0; } while (.walking == 1) { set .@posxmin, 142; set .@posxmax, 192; set .@posymin, 189; set .@posymax, 217; npcwalkto rand(.@posxmin, .@posxmax), rand(.@posymin, .@posymax); npctalk .news$[rand(getarraysize(.news$))]; sleep 5000; } end; } Para que o poring ande pelo mapa, é necessário ativá-lo enviando uma mensagem para o npc. Para fazer isso, no lugar onde você coloca o nome dos jogadores com quem deseja ter uma conversa privada, coloque o seguinte: "npc:Poring Reporter". Se você mandar a mensagem "walk", ele vai começar a andar ao redor da parte central de Prontera. Você pode alterar as coordenadas mínimas e máximas.
    1 point
  10. make sure you set this option on conf/char_athena.conf set to 1 for "email" // Restrict character deletion by email address or birthdate. // This restricts players from changing the langtype and deleting characters. // Defaults based on client date. // 1: Email address // 2: Birthdate // 3: Email address or Birthdate // IMPORTANT! // - This config only works for clients that send 0x0068 or 0x01fb for delete request. // - Use langtype 1 for newer clients (2013+), to use 0x01fb. // - Clients that are not using 0x0068 or 0x01fb, only use birthdate (YYMMDD) as default. char_del_option: 2 after diff your client with NEMO with "Always use email for character deletion"
    1 point
×
×
  • Create New...