Jump to content

Kuya Jeo

Members
  • Content Count

    596
  • Joined

  • Last visited

  • Days Won

    24

Everything posted by Kuya Jeo

  1. This script is compatible only for rathena you can use this one //===== Hercules Script ====================================== //= Job Master //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.4 //===== Description: ========================================= //= A fully functional job changer. //===== Additional Comments: ================================= //= 1.1 Fixed reset on Baby job change. [Euphy] //= 1.2 Added Expanded Super Novice support and initial Kagerou/Oboro support. [Euphy] //= 1.3 Kagerou/Oboro added. [Euphy] //= 1.4 Improved legibility (renamed variables, replaced // numbers with constants; Changed syntax to match // Hercules standards; Fixed status point exploit upon // Baby Novice job change. [Haru] //============================================================ prontera,153,193,6 script Job Master 2_F_MAGICMASTER,{ function Job_Menu; function A_An; mes "[Job Master]"; if (Class > Job_Soul_Linker) { mes "No more jobs are available."; close; } if (checkfalcon() || checkcart() || checkmount() || hascashmount()) { mes "Please remove your "+((checkfalcon())?"falcon":"")+((checkcart())?"cart":"")+((checkmount() || hascashmount())?"mount":"") +" before proceeding."; close; } if (.skill_point_check && SkillPoint > 0) { mes "Please use all your skill points before proceeding."; close; } .@eac = eaclass(); .@base = .third_classes ? roclass(.@eac&EAJ_UPPERMASK) : Class; if (.@base >= Job_Knight && .@base <= Job_Crusader2) { if (BaseLevel < .rebirth_blevel || JobLevel < .rebirth_jlevel) { .@blvl = .rebirth_blevel - BaseLevel; .@jlvl = .rebirth_jlevel - JobLevel; mes "You need " + (BaseLevel < .rebirth_blevel ? ((.rebirth_blevel - BaseLevel) +" more base levels "+ (JobLevel < .rebirth_jlevel ? "and " : "")) : "") + (JobLevel < .rebirth_jlevel ? (.rebirth_jlevel - JobLevel) +" more job levels " : "") + "to continue."; close; } if (Class > Job_Crusader2) { mes "Switch to third class?"; next; Job_Menu(roclass(.@eac|EAJL_THIRD)); close; } while (true) { mes "Select an option."; next; .@[member=choice] = select(" ~ ^0055FFRebirth^000000:"+(.third_classes ? " ~ ^FF0000Third Class^000000" : "")+": ~ ^777777Cancel^000000"); if (.@[member=choice] == 3) close; mes "[Job Master]"; mes "Are you sure?"; next; if (.@[member=choice] == 1) Job_Menu(Job_Novice_High); else Job_Menu(roclass(.@eac|EAJL_THIRD)); mes "[Job Master]"; } } .@job1 = roclass(.@eac|EAJL_2_1); .@job2 = roclass(.@eac|EAJL_2_2); if ((.@eac&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE) { .@newclass = roclass(.@eac|EAJL_THIRD); .@required_jlevel = 99; } else if (Class == Job_Ninja || Class == Job_Gunslinger) { .@newclass = .@job1; .@required_jlevel = 70; } if (.@newclass && .third_classes) { if (BaseLevel < .rebirth_blevel || JobLevel < .@required_jlevel) { mes "You need " + (BaseLevel < .rebirth_blevel ? ((.rebirth_blevel - BaseLevel) +" more base levels "+ (JobLevel < .@required_jlevel ? "and " : "")) : "") + (JobLevel < .@required_jlevel ? (.@required_jlevel - JobLevel) +" more job levels " : "") + "to continue."; close; } mes "Switch to "+jobname(.@newclass)+"?"; next; Job_Menu(.@newclass); close; } if (.@eac&EAJL_2) if (.@eac&(EAJL_UPPER|EAJL_BABY) || roclass(.@eac|EAJL_UPPER) == -1) { mes "No more jobs are available."; close; } if ((.@eac&EAJ_BASEMASK) == EAJ_NOVICE) { if (JobLevel < .jobchange_first) { mes "A job level of "+.jobchange_first+" is required to change into the 1st Class."; } else if (Class == Job_Novice_High && .linear_jobchange && lastJob) { mes "Switch classes now?"; next; Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER)); } else if (Class == Job_Novice) { Job_Menu(Job_Swordman, Job_Mage, Job_Archer, Job_Acolyte, Job_Merchant, Job_Thief, Job_SuperNovice, Job_Taekwon, Job_Gunslinger, Job_Ninja, Job_Baby); } else if (Class == Job_Novice_High) { Job_Menu(Job_Swordman_High, Job_Mage_High, Job_Archer_High, Job_Acolyte_High, Job_Merchant_High, Job_Thief_High); } else if (Class == Job_Baby) { Job_Menu(Job_Baby_Swordman, Job_Baby_Mage, Job_Baby_Archer, Job_Baby_Acolyte, Job_Baby_Merchant, Job_Baby_Thief, Job_Super_Baby); } else { mes "An error has occurred."; } close; } if (roclass(.@eac|EAJL_2_1) == -1 || roclass(.@eac|EAJL_2_2) == -1) { mes "No more jobs are available."; } else if (!(.@eac&EAJL_2) && JobLevel < .jobchange_second) { mes "A job level of "+.jobchange_second+" is required to change into the 2nd Class."; } else if (.linear_jobchange && lastJob && (.@eac&EAJL_UPPER)) { mes "Switch classes now?"; next; Job_Menu(lastJob+Job_Novice_High); } else { Job_Menu(.@job1, .@job2); } close; function Job_Menu { while (true) { if (getargcount() > 1) { mes "Select a job."; .@menu$ = ""; for (.@i = 0; .@i < getargcount(); ++.@i) .@menu$ += " ~ "+jobname(getarg(.@i))+":"; .@menu$ += " ~ ^777777Cancel^000000"; next; .@newjob = getarg(select(.@menu$)-1, 0); if (!.@newjob) close; if ((.@newjob == Job_SuperNovice || .@newjob == Job_Super_Baby) && BaseLevel < .supernovice_level) { mes "[Job Master]"; mes "A base level of "+.supernovice_level+" is required to turn into a "+jobname(.@newjob)+"."; close; } mes "[Job Master]"; mes "Are you sure?"; next; } else { .@newjob = getarg(0); } if (select(" ~ Change into ^0055FF"+jobname(.@newjob)+"^000000 class: ~ ^777777"+(getargcount() > 1 ? "Go back" : "Cancel")+"^000000") == 1) { mes "[Job Master]"; mes "You are now "+A_An(jobname(.@newjob))+"!"; if (.@newjob == Job_Novice_High && .linear_jobchange) lastJob = Class; // Note: This is incompatible with the Valkyrie rebirth script. jobchange .@newjob; if (.@newjob == Job_Novice_High) resetlvl(1); if (.@newjob == Job_Baby) { resetlvl(4); SkillPoint = 0; } specialeffect2 EF_ANGEL2; specialeffect2 EF_ELECTRIC; if (.platinum) callsub Get_Platinum; close; } if (getargcount() == 1) return; mes "[Job Master]"; } end; } function A_An { setarray .@vowels$, "a", "e", "i", "o", "u"; .@firstletter$ = strtolower(charat(getarg(0), 0)); for (.@i = 0; .@i < getarraysize(.@vowels); ++.@i) { if (.@vowels$[.@i] == .@firstletter$) return "an "+getarg(0); } return "a "+getarg(0); } Get_Platinum: skill NV_FIRSTAID, 1, 0; if (BaseClass == Job_Novice) { if (Class != Job_SuperNovice) skill NV_TRICKDEAD, 1, 0; } else if (BaseClass == Job_Swordman) { skill SM_MOVINGRECOVERY, 1, 0; skill SM_FATALBLOW, 1, 0; skill SM_AUTOBERSERK, 1, 0; } else if (BaseClass == Job_Mage) { skill MG_ENERGYCOAT, 1, 0; } else if (BaseClass == Job_Archer) { skill AC_MAKINGARROW, 1, 0; skill AC_CHARGEARROW, 1, 0; } else if (BaseClass == Job_Acolyte) { skill AL_HOLYLIGHT, 1, 0; } else if (BaseClass == Job_Merchant) { skill MC_CARTREVOLUTION, 1, 0; skill MC_CHANGECART, 1, 0; skill MC_LOUD, 1, 0; } else if (BaseClass == Job_Thief) { skill TF_SPRINKLESAND, 1, 0; skill TF_BACKSLIDING, 1, 0; skill TF_PICKSTONE, 1, 0; skill TF_THROWSTONE, 1, 0; } if (BaseJob == Job_Knight) { skill KN_CHARGEATK, 1, 0; } else if (BaseJob == Job_Priest) { skill PR_REDEMPTIO, 1, 0; } else if (BaseJob == Job_Wizard) { skill WZ_SIGHTBLASTER, 1, 0; } else if (BaseJob == Job_Blacksmith) { skill BS_UNFAIRLYTRICK, 1, 0; skill BS_GREED, 1, 0; } else if (BaseJob == Job_Hunter) { skill HT_PHANTASMIC, 1, 0; } else if (BaseJob == Job_Assassin) { skill AS_SONICACCEL, 1, 0; skill AS_VENOMKNIFE, 1, 0; } else if (BaseJob == Job_Crusader) { skill CR_SHRINK, 1, 0; } else if (BaseJob == Job_Monk) { skill MO_KITRANSLATION, 1, 0; skill MO_BALKYOUNG, 1, 0; } else if (BaseJob == Job_Sage) { skill SA_CREATECON, 1, 0; skill SA_ELEMENTWATER, 1, 0; skill SA_ELEMENTGROUND, 1, 0; skill SA_ELEMENTFIRE, 1, 0; skill SA_ELEMENTWIND, 1, 0; } else if (BaseJob == Job_Rogue) { skill RG_CLOSECONFINE, 1, 0; } else if (BaseJob == Job_Alchemist) { skill AM_BIOETHICS, 1, 0; } else if (BaseJob == Job_Bard) { skill BA_PANGVOICE, 1, 0; } else if (BaseJob == Job_Dancer) { skill DC_WINKCHARM, 1, 0; } return; OnInit: .rebirth_blevel = 99; // Minimum base level to reborn OR change to third class .rebirth_jlevel = 50; // Minimum base job level to reborn OR change to third class .jobchange_first = 10; // Minimum job level to turn into 1st class .jobchange_second = 40; // Minimum job level to turn into 2nd class .third_classes = 1; // Enable third classes/Extended Classes? (1: yes / 0: no) .supernovice_level = 45; // Minimum base level to turn into Super Novice .linear_jobchange = 1; // Enforce linear class changes? (1: yes / 0: no) .skill_point_check = 1; // Force player to use up all skill points? (1: yes / 0: no) .platinum = 1; // Get platinum skills automatically? (1: yes / 0: no) end; }
  2. try to put a comment on this line src/config/core.h #define AUTOTRADE_PERSISTENCY
  3. @@butasro here you go //===========================================// // Charwipe Script // version 1.0 // By Zhao Chow // Plug and Play Philippines // https://facebook.com/plugandplayPH //==========================================// - script plugandplay#charwipe -1,{ OnInit: bindatcmd "charwipe",strnpcinfo( 3 )+"::OnCharWipe",99,99; end; OnCharWipe: if ( .@atcmd_numparameters < 1 ) { message strcharinfo( 0 ),"Usage: @charwipe <char name>"; } else { .@charname$ = ""; for (.@i = 0; .@i < .@atcmd_numparameters; ++.@i) { .@charname$ += (.@i > 0 ? " " : "") + .@atcmd_parameters$[.@i]; } // Sql query // query_sql("SELECT `name` , `online` FROM `char` WHERE `name` = '"+.@charname$+"'",.@CharNameqry$, .@Onlineqry ); //----------// if ( .@CharNameqry$ != .@charname$ ) { message strcharinfo( 0 ),"Invalid Character Name"; end; } if ( .@CharNameqry$ == .@charname$ && .@Onlineqry == 1 ) { message strcharinfo( 0 ),"Character "+.@charname$+" has been reseted"; atcommand "@kick "+.@charname$; query_sql("UPDATE `char` SET `class`= 0 , `base_level` = 1 , `job_level` = 1 , `base_exp` = 1 , `job_exp` = 1 , `str` = 1 , `agi` = 1 , `vit` = 1 , `INT` = 1 , `dex` = 1 , `luk` = 1 , `status_point` = 48 , `skill_point` = 0 , `homun_id` = 0 WHERE `name`='"+.@charname$+"'"); end; } if ( .@CharNameqry$ == .@charname$ && .@Onlineqry == 0 ) { message strcharinfo( 0 ),"Character "+.@charname$+" has been reseted"; query_sql("UPDATE `char` SET `class`= 0 , `base_level` = 1 , `job_level` = 1 , `base_exp` = 1 , `job_exp` = 1 , `str` = 1 , `agi` = 1 , `vit` = 1 , `INT` = 1 , `dex` = 1 , `luk` = 1 , `status_point` = 48 , `skill_point` = 0 , `homun_id` = 0 WHERE `name`='"+.@charname$+"'"); end; } } end; }
  4. Probably he means, delete all entries of specific character However I feel, this kind of thing should be atcommand but rather be scriptcommand for safety reasons. Like deleting the whole character for example : @charwipe dastgir, then all entries in dbase would be deleted? something like that? sorry i mean, rivert back the character to lvl 1 all stats and skill will be gone, and stats point, it will rivert as new character, something like that Hmm, give us the whole info Only the Characters? How about Inventory Items? Storage Items? Cart Items? it will wipe or stay the same? just the skillpoint statpoint joblevel baselevel of specific character, , example : @charwipe butasro then your char will become novice and blvl & jlvl will turn into 1 right? Edit : give me 10mins to make the script
  5. Probably he means, delete all entries of specific character However I feel, this kind of thing should be atcommand but rather be scriptcommand for safety reasons. Like deleting the whole character for example : @charwipe dastgir, then all entries in dbase would be deleted? something like that? sorry i mean, rivert back the character to lvl 1 all stats and skill will be gone, and stats point, it will rivert as new character, something like that Hmm, give us the whole info Only the Characters? How about Inventory Items? Storage Items? Cart Items? it will wipe or stay the same?
  6. open trunk/src/map/skill.c Find : case MO_ABSORBSPIRITS: Add after case MO_ABSORBSPIRITS: if( tsc && (tsc->option&(OPTION_HIDE|OPTION_CLOAK|OPTION_CHASEWALK))) { clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); return 0; } i added the Cloacking and Chasewalk for those who used Greatest General Card Recompile your server after you edit the source
  7. Solved : I just put a diversion within the connection of both ports OT : This topic is not related to Ragnarok Online Philippines
  8. @@Dastgir gonna ask how can i get the TCPDUMP? What commands? Host said that they need the TCPDUMP to resolve the problem
  9. I notice that, when we put the proxy IP (Singapore) we get this issue about the lag-delay, even in direct IP or in proxy IP, the big question was, players from the same country with the host location is getting this kind of issue so it might be server not able to handle the connections. what do you mean server? The trunk or the host server?
  10. I notice that, when we put the proxy IP (Singapore) we get this issue about the lag-delay, even in direct IP or in proxy IP, the big question was, players from the same country with the host location is getting this kind of issue
  11. @@Dastgir oh yeah forgot it haha, but im using that and it works fine, im using old emu haha
  12. Probably he means, delete all entries of specific character However I feel, this kind of thing should be atcommand but rather be scriptcommand for safety reasons. Like deleting the whole character for example : @charwipe dastgir, then all entries in dbase would be deleted? something like that?
  13. @@butasro explain it so that we can make a script
  14. Open src/map/atcommand.c Find this : /*========================================== * Feel (SG save map) Reset [HiddenDragon] *------------------------------------------*/ ACMD(feelreset) { pc->resetfeel(sd); clif->message(fd, msg_txt(1324)); // Reset 'Feeling' maps. return true; } Add this after the code for FEELRESET /*========================================== * Hatred Reset [Plug and Play] *------------------------------------------*/ ACMD(hatredreset) { pc->resethate(sd); clif->message(fd, "Reset 'hate' mobs, kicking..."); clif->GM_kick(NULL, sd); return true; } Then recompile your server in the NPC Custom Script you can use this - script Hatred_Reset FAKE_NPC,{ OnInit: bindatcmd "hatredreset",strnpcinfo(3)+"::OnHatredReset"; end; OnHatredReset: if(Class == Job_Star_Gladiator){ message strcharinfo(0),"You will be kick after 3 seconds to reset your Hatred Skill"; sleep2 3000; atcommand "@hatredreset"; } else{ message strcharinfo(0),"Sorry, Only Star Gladiator Job can use @hatredreset"; } end; }
  15. I want to release all my script here, Soon i will :)

  16. We got server lag, we though that it cause DDOS ATTACK but when we ask the host, they said As per the logs and graphs there is no attack on your server. This seems normal traffic routing through port 5121 for your gaming server. Further, you should be able to set the temporary diversion from your client area for an hour and even permanent diversion can be set from there. If you are still facing the issue, then please provide the tcpdump output. In-game we experience lag/delay issue, not totally* lag but its a delay, we can see some players walking and talking then we got Disconnected or sometimes "Now log outing" in the popup window ingame How can resolve this issue? Anyone can't answer?
  17. In feeling just use @feeling In thr hatred, just search the keyword "hatred reset herc.ws" in google
  18. @@ZelosAvalon check your application.php and server.php in config
  19. Yeah its hard to know or memories those NPC names but once you learned it, it like eating pizza
  20. @@ZelosAvalon delete all the files inside this folder except index.html data>schemas>charmapdb data>schemas>logindb
  21. Try this @@Kubix // ----------------------------------- // - shop PvPPoints_Shop -1,512:100 prontera,101,80,6 script Kafra Shop 4_F_LGTGIRL,{ function ShopSettings; function ValidateCost; function CurrencyInfo; function ClearData; function ValueConvert; function ErrorNotice; mes "Each Shop from the Menu may purchase using ^FF0000Different Currency^000000."; mes "^00FF00____________________________^000000"; mes "So,Which shop you would like to look at it"; next; // Menu Selection select("Usable Items"); ClearData(); ShopSettings( @menu ); npcshopitem "PvPPoints_Shop",512,100; npcshopdelitem "PvPPoints_Shop",512; for(set .@i,0; .@i < getarraysize( @ItemLists ); set .@i,.@i+1) npcshopadditem "PvPPoints_Shop",@ItemLists[.@i],@ItemCost[.@i]; mes "Okay...wait awhile"; mes "^00FF00____________________________^000000"; CurrencyInfo( @Currency$ ); mes "^00FF00____________________________^000000"; callshop "PvPPoints_Shop",1; npcshopattach "PvPPoints_Shop"; end; function ShopSettings { switch( getarg(0) ){ case 1: // Currency [ Item ID / Variable Name ] set @Currency$,"PvPPoints"; // Item ID Lists setarray @ItemLists[0],505,506,507; // Item Price setarray @ItemCost[0],100,150,200; break;; default: ErrorNotice( "Invalid Menu Selection for Menu "+@menu+"." ); close; } if( @Currency$ == "" ) ErrorNotice( "Invalid Currency Setting in Menu "+@menu+" ." ); if( getarraysize( @ItemCost ) != getarraysize( @ItemLists ) || getarraysize( @ItemLists ) != getarraysize( @ItemCost ) ) ErrorNotice( "Missing or Extra Value of Item or Cost Settings in Menu "+@menu+" ." ); return; } function ErrorNotice { mes "^FF0000ERROR^000000 - "+getarg(0); mes "^00FF00____________________________^000000"; mes "Inform this Message to ^0000FFGame Staffs^000000 immediately !"; close; } function CurrencyInfo { if( getitemname( atoi( getarg(0) ) ) != "null" ){ mes "Item Currency : ^FF0000"+getitemname( atoi( getarg(0) ) )+"^000000"; mes "Available Amount : ^0000FF"+ValueConvert( countitem( atoi( getarg(0) ) ) )+"^000000"; }else if( getitemname( atoi( getarg(0) ) ) == "null" ){ mes "Variable Currency : ^00FFCCPvP Points^000000"; mes "Available Amount : ^0000FF"+ValueConvert( getd( getarg(0) ) )+"^000000"; } return; } function ValidateCost { if( getitemname( atoi( getarg(0) ) ) != "null" ){ if( countitem( atoi( getarg(0) ) ) < getarg(1) ) return 1; }else{ if( getd( getarg(0) ) < getarg(1) ) return 1; } return 0; } function ClearData { set @Currency$,""; set @TotalCost,0; deletearray @bought_nameid[0],getarraysize( @bought_nameid ); deletearray @bought_quantity[0],getarraysize( @bought_quantity ); deletearray @ItemLists[0],getarraysize( @ItemLists ); deletearray @ItemCost[0],getarraysize( @ItemCost ); return; } function ValueConvert { set .@num, atoi(""+getarg(0)); if ( .@num == 0 || .@num >= 2147483647 ) return getarg(0); set .@l, getstrlen(""+.@num); for ( set .@i,0; .@i < .@l; set .@i, .@i + 1 ) { set .@num$, .@num % pow(10,.@i+1) / pow(10,.@i) + .@num$; if ( (.@i+1) % 3 == 0 && .@i+1 != .@l ) set .@num$, ","+ .@num$; } return .@num$; } OnBuyItem: ShopSettings( @menu ); for(set @i,0; @i < getarraysize( @bought_nameid ); set @i,@i+1) for(set @j,0; @j < getarraysize( @ItemLists ); set @j,@j+1) if( @ItemLists[@j] == @bought_nameid[@i] ) set @TotalCost,@TotalCost + ( @ItemCost[@j] * @bought_quantity[@i] ); mes "^FF0000 BILLING LIST^000000"; mes "^00FF00____________________________^000000"; for( set @i,0; @i < getarraysize( @bought_nameid ); set @i,@i+1 ) mes "^FF0000"+@bought_quantity[@i]+" x ^0000FF"+getitemname( @bought_nameid[@i] )+"^000000"; mes "^00FF00____________________________^000000"; if( getitemname( atoi( @Currency$ ) ) != "null" ) mes "Total Cost : ^0000FF"+ValueConvert( @TotalCost )+" x "+getitemname( atoi( @Currency$ ) )+"^000000"; else if( getitemname( atoi( "PvP Points" ) ) == "null" ){ mes "Total Cost : ^0000FF"+ValueConvert( @TotalCost )+" PvP Points^000000"; } mes "^00FF00____________________________^000000"; if( ValidateCost( @Currency$,@TotalCost ) ){ if( getitemname( atoi( @Currency$ ) ) != "null" ) mes "[ ^FF0000X^000000 ] Insufficient ^0000FF"+getitemname( atoi( @Currency$ ) )+"^000000"; else{ mes "[ ^FF0000X^000000 ] Insufficient ^0000FF"+@Currency$+"^000000"; } }else{ if( select( "^0000FFPurchase^000000:Cancel" ) == 1 ){ if( getitemname( atoi( @Currency$ ) ) != "null" ) delitem atoi( @Currency$ ),@TotalCost; else{ set getd( @Currency$ ),getd( @Currency$ ) - @TotalCost; } for(set @i,0; @i < getarraysize( @bought_nameid ); set @i,@i+1) getitem @bought_nameid[@i],@bought_quantity[@i]; message strcharinfo(0),"Purchased "+getarraysize( @bought_nameid )+" Items."; mes "Thank you for shopping."; } } ClearData(); close; }
  22. @@InfinityRO Kindly pm me on https://facebook.com/plugandplayPH
  23. Just turn off the anti-virus, replace it with the new cps.dll if not then remove/delete the file
×
×
  • Create New...

Important Information

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