Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 02/21/19 in all areas

  1. View File Customize your iteminfo with import V2 Version 2 Information: now support more then 2 iteminfo , you can check line 17 to add as much as you want! IInfo = {"System.import_iteminfo","System.kro_iteminfo5","System.kro_iteminfo4","System.kro_iteminfo3","System.kro_iteminfo2","System.kro_iteminfo1","System.kro_iteminfo"} now it's much much much faster for big files! remove functions.lua move url functions to the iteminfo itself 2 Big files loading test : this test is not loading in the client , but loading in the debugger! If you are new to this > Details: this an example and template on how you Customize your iteminfo read the ReadMe!! file before you ask anything this work as the import folders in rathena (if you don't know what i mean than i suggest you use rathena search or google) ALL THE FILES MUST BE .lua !!! the way it work: you add your custom and edited items in the import iteminfo file you add kro iteminfo file you add the server url in the function file the client will read the iteminfo import first than the kro iteminfo than you can update your kro iteminfo at anytime you need without any edit to it without the need to re-add your custom and edited items to a new kro iteminfo the kro_iteminfo included is from https://github.com/zackdreaver/ROenglishRE this file is added for example on how you use it i suggest you get the last iteminfo after you make sure there is no error! i would highly suggest you check out his great project every time you want to update your iteminfo! Please report any error in the forum post not in the PM , Thanks. Submitter sader1992 Submitted 02/21/2019 Category Client Resources Video Content Author sader1992 , zackdreaver  
    3 points
  2. Version 2.0.0

    1633 downloads

    Version 2 Information: now support more then 2 iteminfo , you can check line 17 to add as much as you want! IInfo = {"System.import_iteminfo","System.kro_iteminfo5","System.kro_iteminfo4","System.kro_iteminfo3","System.kro_iteminfo2","System.kro_iteminfo1","System.kro_iteminfo"} now it's much much much faster for big files! remove functions.lua move url functions to the iteminfo itself 2 Big files loading test : this test is not loading in the client , but loading in the debugger! If you are new to this > Details: this an example and template on how you Customize your iteminfo read the ReadMe!! file before you ask anything this work as the import folders in rathena (if you don't know what i mean than i suggest you use rathena search or google) ALL THE FILES MUST BE .lua !!! the way it work: you add your custom and edited items in the import iteminfo file you add kro iteminfo file you add the server url in the function file the client will read the iteminfo import first than the kro iteminfo than you can update your kro iteminfo at anytime you need without any edit to it without the need to re-add your custom and edited items to a new kro iteminfo the kro_iteminfo included is from https://github.com/zackdreaver/ROenglishRE (which is old , I suggest you use the one from https://github.com/llchrisll/ROenglishRE) this file is added for example on how you use it I suggest you get the last iteminfo after you make sure there is no error! I would highly suggest you check out his great project every time you want to update your iteminfo! Please report any error in the forum post not in the PM , Thanks.
    Free
    3 points
  3. 100% scripting btw scripting is my absolute strong point https://irowiki.org/wiki/War_of_Emperium#Benefits - script ksdjfs FAKE_NPC,{ OnMinute00: for ( .@i = 0; .@i < 20; ++.@i ) { if ( getcastledata( .castle$[.@i], CD_GUILD_ID ) ) { if ( rand(100) < 50 ) { // 50% chance setcastledata .castle$[.@i], CD_GUILD_ID, 0; donpcevent "Agit#"+ .castle$[.@i] +"::OnStartArena"; } } else { if ( rand(100) < 50 ) // 50% chance setcastledata .castle$[.@i], CD_CURRENT_ECONOMY, getcastledata( .castle$[.@i], CD_CURRENT_ECONOMY ) - 5; } } end; OnInit: setarray .castle$[0], "aldeg_cas01","aldeg_cas02","aldeg_cas03","aldeg_cas04","aldeg_cas05", "gefg_cas01","gefg_cas02","gefg_cas03","gefg_cas04","gefg_cas05", "payg_cas01","payg_cas02","payg_cas03","payg_cas04","payg_cas05", "prtg_cas01","prtg_cas02","prtg_cas03","prtg_cas04","prtg_cas05"; end; } npc/guild/agit_main.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/npc/guild/agit_main.txt b/npc/guild/agit_main.txt index c2925487c..964e701fb 100644 --- a/npc/guild/agit_main.txt +++ b/npc/guild/agit_main.txt @@ -1135,8 +1135,8 @@ OnClock0001: set .@GID, GetCastleData(strnpcinfo(2),CD_GUILD_ID); - // If there is no owner, do nothing. - if (!.@GID) end; + // only spawn treasure chest when there is no owner + if (.@GID) end; // Is there Economy in this castle? set .@Treasure,GetCastleData(strnpcinfo(2),CD_CURRENT_ECONOMY)/5+4; npc/guild/agit_main.txt | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/npc/guild/agit_main.txt b/npc/guild/agit_main.txt index c2925487c..abe5c3cda 100644 --- a/npc/guild/agit_main.txt +++ b/npc/guild/agit_main.txt @@ -657,22 +657,18 @@ OnRecvCastle: else if ((.@Economy >= 86) && (.@Economy <= 90)) { set .@eco_invest,770000; } else if ((.@Economy >= 91) && (.@Economy <= 95)) { set .@eco_invest,860000; } else if ((.@Economy >= 96) && (.@Economy <= 100)) { set .@eco_invest,955000; } - //Quadruple the cost of investing if you've already invested once. - if (GetCastleData(strnpcinfo(2),CD_INVESTED_ECONOMY)) { - set .@eco_invest,.@eco_invest*4; - } mes "["+strnpcinfo(1)+"]"; mes "If you invest in commercial growth, the quantity of goods made by the guild will increase. Therfore, if you consider our future, investments will be a necessity."; mes " "; - mes "Initially, you are able to invest just once but if you pay more money, you will be able to invest twice."; + mes "You are able to invest just once."; if (.@Economy >= 100) { mes " "; mes "^ff0000The commercial growth level of our Castle is at it's highest, 100%. No more investments are needed. Just as I have expected from a great economist like you, Master.^000000"; close; } - if (GetCastleData(strnpcinfo(2),CD_INVESTED_ECONOMY) >= 2) { + if (GetCastleData(strnpcinfo(2),CD_INVESTED_ECONOMY) >= 1) { mes " "; - mes "^ff0000You have already invested twice today. You cannot invest any more.^000000 I expect riches of the guild to grow at a high rate."; + mes "^ff0000You have already invested today. You cannot invest any more.^000000 I expect riches of the guild to grow at a high rate."; close; } if (GetCastleData(strnpcinfo(2),CD_INVESTED_ECONOMY) == 0) { npc/guild/agit_main.txt | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/npc/guild/agit_main.txt b/npc/guild/agit_main.txt index c2925487c..fd76a0582 100644 --- a/npc/guild/agit_main.txt +++ b/npc/guild/agit_main.txt @@ -177,17 +177,57 @@ OnRecvCastle: if (compare(strnpcinfo(2),"aldeg")) { // Normal Spawns monster strnpcinfo(2),0,0,"Evil Druid",1117,10; + for ( .@i = 0; .@i < 10; ++.@i ) { + setunitdata $@mobid[.@i], UMOB_MAXHP, getmonsterinfo( 1117, MOB_MAXHP ) * getcastledata( strnpcinfo(2), CD_CURRENT_ECONOMY ) / 100; + setunitdata $@mobid[.@i], UMOB_HP, getmonsterinfo( 1117, MOB_MAXHP ) * getcastledata( strnpcinfo(2), CD_CURRENT_ECONOMY ) / 100; + } monster strnpcinfo(2),0,0,"Khalitzburg",1132,4; + for ( .@i = 0; .@i < 4; ++.@i ) { + setunitdata $@mobid[.@i], UMOB_MAXHP, getmonsterinfo( 1132, MOB_MAXHP ) * getcastledata( strnpcinfo(2), CD_CURRENT_ECONOMY ) / 100; + setunitdata $@mobid[.@i], UMOB_HP, getmonsterinfo( 1132, MOB_MAXHP ) * getcastledata( strnpcinfo(2), CD_CURRENT_ECONOMY ) / 100; + } monster strnpcinfo(2),0,0,"Abysmal Knight",1219,2; + for ( .@i = 0; .@i < 2; ++.@i ) { + setunitdata $@mobid[.@i], UMOB_MAXHP, getmonsterinfo( 1219, MOB_MAXHP ) * getcastledata( strnpcinfo(2), CD_CURRENT_ECONOMY ) / 100; + setunitdata $@mobid[.@i], UMOB_HP, getmonsterinfo( 1219, MOB_MAXHP ) * getcastledata( strnpcinfo(2), CD_CURRENT_ECONOMY ) / 100; + } monster strnpcinfo(2),0,0,"Executioner",1205,1; + setunitdata $@mobid[.@i], UMOB_MAXHP, getmonsterinfo( 1205, MOB_MAXHP ) * getcastledata( strnpcinfo(2), CD_CURRENT_ECONOMY ) / 100; + setunitdata $@mobid[.@i], UMOB_HP, getmonsterinfo( 1205, MOB_MAXHP ) * getcastledata( strnpcinfo(2), CD_CURRENT_ECONOMY ) / 100; monster strnpcinfo(2),0,0,"Penomena",1216,10; + for ( .@i = 0; .@i < 10; ++.@i ) { + setunitdata $@mobid[.@i], UMOB_MAXHP, getmonsterinfo( 1216, MOB_MAXHP ) * getcastledata( strnpcinfo(2), CD_CURRENT_ECONOMY ) / 100; + setunitdata $@mobid[.@i], UMOB_HP, getmonsterinfo( 1216, MOB_MAXHP ) * getcastledata( strnpcinfo(2), CD_CURRENT_ECONOMY ) / 100; + } monster strnpcinfo(2),0,0,"Alarm",1193,18; + for ( .@i = 0; .@i < 18; ++.@i ) { + setunitdata $@mobid[.@i], UMOB_MAXHP, getmonsterinfo( 1193, MOB_MAXHP ) * getcastledata( strnpcinfo(2), CD_CURRENT_ECONOMY ) / 100; + setunitdata $@mobid[.@i], UMOB_HP, getmonsterinfo( 1193, MOB_MAXHP ) * getcastledata( strnpcinfo(2), CD_CURRENT_ECONOMY ) / 100; + } monster strnpcinfo(2),0,0,"Clock",1269,9; + for ( .@i = 0; .@i < 9; ++.@i ) { + setunitdata $@mobid[.@i], UMOB_MAXHP, getmonsterinfo( 1269, MOB_MAXHP ) * getcastledata( strnpcinfo(2), CD_CURRENT_ECONOMY ) / 100; + setunitdata $@mobid[.@i], UMOB_HP, getmonsterinfo( 1269, MOB_MAXHP ) * getcastledata( strnpcinfo(2), CD_CURRENT_ECONOMY ) / 100; + } monster strnpcinfo(2),0,0,"Raydric Archer",1276,7; + for ( .@i = 0; .@i < 7; ++.@i ) { + setunitdata $@mobid[.@i], UMOB_MAXHP, getmonsterinfo( 1276, MOB_MAXHP ) * getcastledata( strnpcinfo(2), CD_CURRENT_ECONOMY ) / 100; + setunitdata $@mobid[.@i], UMOB_HP, getmonsterinfo( 1276, MOB_MAXHP ) * getcastledata( strnpcinfo(2), CD_CURRENT_ECONOMY ) / 100; + } monster strnpcinfo(2),0,0,"Wanderer",1208,3; + for ( .@i = 0; .@i < 3; ++.@i ) { + setunitdata $@mobid[.@i], UMOB_MAXHP, getmonsterinfo( 1208, MOB_MAXHP ) * getcastledata( strnpcinfo(2), CD_CURRENT_ECONOMY ) / 100; + setunitdata $@mobid[.@i], UMOB_HP, getmonsterinfo( 1208, MOB_MAXHP ) * getcastledata( strnpcinfo(2), CD_CURRENT_ECONOMY ) / 100; + } monster strnpcinfo(2),0,0,"Alice",1275,1; + setunitdata $@mobid[.@i], UMOB_MAXHP, getmonsterinfo( 1275, MOB_MAXHP ) * getcastledata( strnpcinfo(2), CD_CURRENT_ECONOMY ) / 100; + setunitdata $@mobid[.@i], UMOB_HP, getmonsterinfo( 1275, MOB_MAXHP ) * getcastledata( strnpcinfo(2), CD_CURRENT_ECONOMY ) / 100; monster strnpcinfo(2),0,0,"Bloody Knight",1268,1; + setunitdata $@mobid[.@i], UMOB_MAXHP, getmonsterinfo( 1268, MOB_MAXHP ) * getcastledata( strnpcinfo(2), CD_CURRENT_ECONOMY ) / 100; + setunitdata $@mobid[.@i], UMOB_HP, getmonsterinfo( 1268, MOB_MAXHP ) * getcastledata( strnpcinfo(2), CD_CURRENT_ECONOMY ) / 100; monster strnpcinfo(2),0,0,"Dark Lord",1272,1; + setunitdata $@mobid[.@i], UMOB_MAXHP, getmonsterinfo( 1272, MOB_MAXHP ) * getcastledata( strnpcinfo(2), CD_CURRENT_ECONOMY ) / 100; + setunitdata $@mobid[.@i], UMOB_HP, getmonsterinfo( 1272, MOB_MAXHP ) * getcastledata( strnpcinfo(2), CD_CURRENT_ECONOMY ) / 100; // Set Emperium room spawn coordinates and spawn monsters. if (strnpcinfo(2) == "aldeg_cas01") { setarray .@emproom[0],216,23; } else if (strnpcinfo(2) == "aldeg_cas02") { setarray .@emproom[0],213,23; } lazy to do the rest ... anyway you get the point disable the npc/guild/agit_controller.txt file and use this - script ksdjfs FAKE_NPC,{ OnInit: agitstart; end; } npc/guild/agit_main.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/npc/guild/agit_main.txt b/npc/guild/agit_main.txt index c2925487c..d979649fa 100644 --- a/npc/guild/agit_main.txt +++ b/npc/guild/agit_main.txt @@ -769,6 +769,8 @@ OnRecvCastle: } case 4: mes "["+strnpcinfo(1)+"]"; + mes "Summon a Guardian is disabled"; + close; mes "Will you summon a Guardian? It'll be a protector to defend us loyally."; mes "Please select a guardian to defend us."; next; for me, it is easy as 1 2 3 , A B C npc/guild/agit_main.txt | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/npc/guild/agit_main.txt b/npc/guild/agit_main.txt index c2925487c..133012e87 100644 --- a/npc/guild/agit_main.txt +++ b/npc/guild/agit_main.txt @@ -177,17 +177,45 @@ OnRecvCastle: if (compare(strnpcinfo(2),"aldeg")) { // Normal Spawns monster strnpcinfo(2),0,0,"Evil Druid",1117,10; + for ( .@i = 0; .@i < 10; ++.@i ) { + setunitdata $@mobid[.@i], UMOB_LEVEL, 99; + } monster strnpcinfo(2),0,0,"Khalitzburg",1132,4; + for ( .@i = 0; .@i < 4; ++.@i ) { + setunitdata $@mobid[.@i], UMOB_LEVEL, 99; + } monster strnpcinfo(2),0,0,"Abysmal Knight",1219,2; + for ( .@i = 0; .@i < 2; ++.@i ) { + setunitdata $@mobid[.@i], UMOB_LEVEL, 99; + } monster strnpcinfo(2),0,0,"Executioner",1205,1; + setunitdata $@mobid[.@i], UMOB_LEVEL, 99; monster strnpcinfo(2),0,0,"Penomena",1216,10; + for ( .@i = 0; .@i < 10; ++.@i ) { + setunitdata $@mobid[.@i], UMOB_LEVEL, 99; + } monster strnpcinfo(2),0,0,"Alarm",1193,18; + for ( .@i = 0; .@i < 18; ++.@i ) { + setunitdata $@mobid[.@i], UMOB_LEVEL, 99; + } monster strnpcinfo(2),0,0,"Clock",1269,9; + for ( .@i = 0; .@i < 9; ++.@i ) { + setunitdata $@mobid[.@i], UMOB_LEVEL, 99; + } monster strnpcinfo(2),0,0,"Raydric Archer",1276,7; + for ( .@i = 0; .@i < 7; ++.@i ) { + setunitdata $@mobid[.@i], UMOB_LEVEL, 99; + } monster strnpcinfo(2),0,0,"Wanderer",1208,3; + for ( .@i = 0; .@i < 3; ++.@i ) { + setunitdata $@mobid[.@i], UMOB_LEVEL, 99; + } monster strnpcinfo(2),0,0,"Alice",1275,1; + setunitdata $@mobid[.@i], UMOB_LEVEL, 99; monster strnpcinfo(2),0,0,"Bloody Knight",1268,1; + setunitdata $@mobid[.@i], UMOB_LEVEL, 99; monster strnpcinfo(2),0,0,"Dark Lord",1272,1; + setunitdata $@mobid[.@i], UMOB_LEVEL, 99; // Set Emperium room spawn coordinates and spawn monsters. if (strnpcinfo(2) == "aldeg_cas01") { setarray .@emproom[0],216,23; } else if (strnpcinfo(2) == "aldeg_cas02") { setarray .@emproom[0],213,23; } change all monsters to level 99 yes, 1. it happens to be using agitstart2 ... 2. use npc\guild2 folder ... 3. rathena also has woe training edition ... btw you ask too many question at once
    3 points
  4. Euphy's Scripts Disclaimer You may use, modify, and host all of my released scripts. You may not sell them, re-release them in any way (modified or otherwise), or remove the credits. < Event Manager > < Hunting Missions > < Queue System > < Euphy's WOE Controller > < All-In-One NPC > < Euphy's Quest Shop > < Euphy's Warper > < Item Rewards > < Custom Currency Multi-Shop > < Build Manager + > < Class Mastery System > < Class Specialization > < Badge System > < Guarantee Refine Ticket > < Item Fusion > < Euphy's MVP Ladder > < Card Trader > < NPC Duplicate Generator > < Auto-Potion >
    1 point
  5. This is a tutorial on how to Open Port on Google Cloud for your rAthena server to be online! Linux only for now How to Open Ports on Google Cloud VPS for rAthena Linux Machines First, go to your Google Cloud Dashboard Click Networking > VPC Network > Firewall Rules After that, click Create Firewall Rule On name, put a Name you desire On the Targets, change it to: All instances in the Network Put 0.0.0.0/0 on Source IP Ranges On Protocol and ports, choose Specified Protocols and Ports Place these default ports: tcp: 5121,6121,6900; udp: 5121,6121,6900; If you have different ports, change it! ( 5121: Map 6121: Char 6900: Login ) ( Optional ) On your firewalls, add those Ports, UDP and TCP
    1 point
  6. Pega esse aqui, é o que a gente usa: //===== Gogcel Ro Scripts ================================== //= No double login in one map //===== By: ================================================== //= Tauro //===== Current Version: ===================================== //= 1.00 //===== Compatible With: ===================================== //= rAthena SVN //===== Description: ========================================= //= Avoid double login in 1 designated map and has unique_id //= by gepard //===== Comments: ============================================ //= Edit line 26 to use gepard authenticator or ip //= Edit line 64 if you use the system by ip //= Edit loadevent maps in line 86 //===== Contact Info: ======================================== //= [Tauro] //= Email: [email protected] //= Discord: Trinity#7962 //============================================================ - script dl_map -1,{ end; OnInit: // 1= if you have gepard 0=if you do not use gepard set .Gepard,1; end; OnPCLoadMapEvent: if (.Gepard == 1) { getmapxy(.@map$,.@mapx,.@mapy,0); query_sql("SELECT last_unique_id FROM `login` WHERE account_id = "+getcharid(3)+"", .@UniqueId$); query_sql("SELECT account_id FROM `login` WHERE last_unique_id = '"+.@UniqueId$+"'", .@CuentaId); set .@error,getcharid(3,strcharinfo(0)); for(set .@i ,0;.@i<getarraysize(.@CuentaId);set .@i,.@i+1) { if(attachrid(.@CuentaId[.@i])) { if (.@CuentaId == 2000001) { set .@j,0; } else { getmapxy(.@map2$,.@mapx2,.@mapy2,0); if (.@map2$ == .@map$){ set .@j,.@j+1; } } } } detachrid; attachrid .@error; if(.@j > 1) { dispbottom "[Servidor] Me desculpe, mas para evitar abuusos, Double Clients não são permitidos nesse mapa."; atcommand "@kick " + strcharinfo(0); } end; } else { getmapxy(.@map$,.@mapx,.@mapy,0); query_sql("SELECT last_ip FROM `login` WHERE account_id = "+getcharid(3)+"", .@UltimaIp$); query_sql("SELECT account_id FROM `login` WHERE last_ip = '"+.@UltimaIp$+"'", .@CuentaId); set .@error,getcharid(3,strcharinfo(0)); for(set .@i ,0;.@i<getarraysize(.@CuentaId);set .@i,.@i+1) { if(attachrid(.@CuentaId[.@i])) { //if .Gepard is 0 add id of accounts to which the system will not affect, brothers, couple, gms, etc ... .@CuentaId == accountId if (.@CuentaId == 2000029) { set .@j,0; } else { getmapxy(.@map2$,.@mapx2,.@mapy2,0); if (.@map2$ == .@map$){ set .@j,.@j+1; } } } } detachrid; attachrid .@error; if(.@j > 1) { dispbottom "[Servidor] Me desculpe, mas para evitar abuusos, Double Clients não são permitidos nesse mapa."; atcommand "@kick " + strcharinfo(0); } } end; } pvp_n_3-5 mapflag loadevent guild_vs3 mapflag loadevent Você configura os mapas aplicando a mapflag loadevent (como nas últimas linhas do Script) Exemplo: mapa<tab>mapflag<tab>loadevent prontera mapflag loadevent Lembrando que pra aplicar as mudanças de Mapflag pelo Script você precisará reiniciar o servidor. Caso não queira reiniciar e testar se funcionou, vai até o mapa que você quer bloquear Dual e usa o comando: @mapflag loadevent 1 Se ajudei, dá aquele Upvote maroto. ?
    1 point
  7. I already lost count how many times I have been using getinventorylist this month ... function script F_MesItemInfo { .@item = getarg(0); .@itemname$ = getitemname(.@item); if (.@itemname$ == "null") .@itemname$ = "Unknown Item"; if (PACKETVER >= 20150729) return sprintf("<ITEM>%s<INFO>%d</INFO></ITEM>", .@itemname$, .@item); else if (PACKETVER >= 20130130) return sprintf("<ITEMLINK>%s<INFO>%d</INFO></ITEMLINK>", .@itemname$, .@item); else return .@itemname$; } prontera,155,185,5 script jdshfjsdfh 1_F_MARIA,{ getinventorylist; for ( .@i = 0; .@i < @inventorylist_count; ++.@i ) { if ( inarray(.itemlist, @inventorylist_id[.@i] ) >= 0 ) { .@itemid[.@c++] = @inventorylist_id[.@i]; .@menu$ += getitemname( @inventorylist_id[.@i] ) +":"; } } if ( !.@c ) { mes "You don't have any ticket on you"; close; } .@s = select( .@menu$ ) -1; mes "You have selected "+ F_MesItemInfo(.@itemid[.@s]); close; OnInit: setarray .itemlist, 909,910,911,912, 34993,34994,34995,34996; end; }
    1 point
  8. switch(select( (countitem(34996) >= 1)? "wow you have item 34996":"some text")) { }
    1 point
  9. for the labels , the rathena official labels controled by the src , you can not call it , it would be called automatically , however you can make your own label (see goto or callsub command scripts) for the Condition i think you are missing something >> see this example and figure it out mes ((1 != 0)?"true":"false");
    1 point
  10. Hello, Please check this link :
    1 point
  11. Version 1.0.0

    137 downloads

    Greetings rAthena! I hope you enjoy this npc of Trickster Online, it is the seventh I have done. Please do not claim my work as yours. Please do not sell it or resell it.
    Free
    1 point
  12. Version 1.0.0

    538 downloads

    you need at least 55acdb9863382d8935d9df25e1462d5d1ebd7d54 or above this npc let the players check the guild storage log to access the guild storage log the player must have guild storage permission
    Free
    1 point
  13. The thing is, we don't quite understand what are you guys need. can you please be more specific. EDIT: Okay so i re-read it, and somehow i know what you guys want. let me take a few minutes. EDIT 2: Here's what you guys need P.S Dont forget to upvote if i helped prontera,154,177,5 script Yumi Haruka 811,{ mes .name$; mes "Hello, i can reset an instance."; mes "What instance do you want to reset?"; next; for(.@i=0;.@i<getarraysize(.instances$);.@i+=5) set .@menu$,.@menu$+.instances$[.@i]+":"; set .@ans,select(.@menu$)-1; set .@instance$,.instances$[.@ans*5]; set .@qid,atoi(.instances$[(.@ans*5)+1]); set .@item,atoi(.instances$[(.@ans*5)+2]); set .@amt,atoi(.instances$[(.@ans*5)+3]); set .@zeny,atoi(.instances$[(.@ans*5)+4]); next; if(checkquest(.@qid,PLAYTIME)==2 || checkquest(.@qid,PLAYTIME) < 0){ mes .name$; mes "Eh? You don't need to reset this instance. You are already allowed to enter it."; end; } mes .name$; mes "So you want to reset ^FF0000"+.@instance$+"^000000?"; mes "It will cost you: "; if(.@item) mes ""+.@amt+"x ^0000FF"+getitemname(.@item)+"^000000"; if(.@zeny) mes "and ^0000FF"+.@zeny+"^000000 Zeny!"; mes "Would you like to reset now?"; next; if(select("Yes, Please Reset:No sorry")==2){ mes .name$; mes "Okay, Please come at me again once you decided"; end; } close2; if(.@item && countitem(.@item)<.@amt) goto L_NotEnough; if(.@zeny && Zeny<.@zeny) goto L_NotEnough; if(.@item) delitem .@item,.@amt; Zeny-=.@zeny; erasequest .@qid; message strcharinfo(0),"Instance has been Reset!"; end; L_NotEnough: mes .name$; mes "Sorry! But unfortunately, You don't have the requirements to reset the instance"; end; OnInit: // Instance Name, Quest ID, Item ID for Reset,Item Amount, Zeny Amount set .name$,"[ Yumi ]"; setarray .instances$[0], "Endless Tower","60200","501","10","100000", "Nidhogg Nest","3135","502","30","0", "Sealed Shrine","3045","0","0","999999"; end; }
    1 point
  14. You need to make a fix on the system so that the @autotrade system after rebooting the server returns with the item that was selected for trading, quite simple. In the do_init_vending_autotrade function, find: at-> sd-> state.monster_ignore = (battle_config.autotrade_monsterignore); add after: // Extended Vending System Fix Bug [CreativeSD] at-> sd-> vend_loot = at-> vend_loot;
    1 point
  15. Version 1.0.0

    1327 downloads

    Hello again, rAthena. Years before the release of Ragnarök Online, Gravity made an RPG game called Arcturus. Due the similarities of the styles and structures, some content can be brought back to life on our beloved RO. Today I presente you one new Foe or Boss for your fields, instances or yet, quests: The Lightning Guardian! This is a free release, use it as you wish, but please, don't claim my work as yours, it took quite some effort to make this conversion. I'll try to make a release weekly, contact me if you want to support me by any way. Hope you all like it. Regards, Haziel
    Free
    1 point
×
×
  • Create New...