Jump to content

Dynasty

Members
  • Posts

    151
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Dynasty

  1. download this: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk/ compile then.
  2. para activar la ropa gm tienes que ir a tu clieninfo.xml en tu data y en la parte: <admin></admin> pones la id de tu cuenta (la id se obtiene de la tabla login en tu sql) seria algo asi: <admin>2000000</admin> tambien le puedes agregar la ropa a usuarios normales con tan solo ponerlo en tu clientinfo.xml. para poner mas de una sola id haces esto: <admin> 2000000 2000001 2000002 2000003 2000004 </admin> o asi <admin>2000000</admin> <admin>2000001</admin> <admin>2000002</admin> <admin>2000003</admin> <admin>2000004</admin> y eso seria todo.
  3. //===== rAthena Script ======================================= //= Job Master //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.3 //===== Compatible With: ===================================== //= rAthena SVN r16114+ //===== 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.3a Rebellion added. [Dynasty] //============================================================ prontera,151,183,6 script Job Master 123,{ function Job_Menu; function A_An; if(class == 24){ if(baselevel >= 99) && (joblevel >= 70) { if (.SkillPointCheck && SkillPoint) { mes "Please use all your skill points before proceeding."; close; } jobchange 4215; end; }else{ mes "you are not ready for pass to your next job"; close; } }else if (Class > 4049) { mes "No more jobs are available."; close; } if (checkfalcon() || checkcart() || checkriding() || ismounting()) { mes "Please remove your "+((checkfalcon())?"falcon":"")+((checkcart())?"cart":"")+((checkriding())?"Peco":"")+((ismounting())?"mount":"")+" before proceeding."; close; } if (.SkillPointCheck && SkillPoint) { mes "Please use all your skill points before proceeding."; close; } set .@eac, eaclass(); set .@i, ((.ThirdClass)?roclass(.@eac&EAJ_UPPERMASK):Class); if (.@i > 6 && .@i < 22) { if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) { set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .Rebirth[1]-JobLevel; mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue."; close; } if (Class > 21) { mes "Switch to third class?"; next; Job_Menu(roclass(.@eac|EAJL_THIRD)); close; } while(1) { mes "Select an option."; next; set .@i, select(" ~ ^0055FFRebirth^000000:"+((.ThirdClass)?" ~ ^FF0000Third Class^000000":"")+": ~ ^777777Cancel^000000"); if (.@i==3) close; mes "[Job Master]"; mes "Are you sure?"; next; Job_Menu(((.@i==1)?4001:roclass(.@eac|EAJL_THIRD))); mes "[Job Master]"; } } set .@j1, roclass(.@eac|EAJL_2_1); set .@j2,roclass(.@eac|EAJL_2_2); if ((.@eac&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE) setarray .@exp[0],roclass(.@eac|EAJL_THIRD),99; if (Class == Job_Ninja) setarray .@exp[0],.@j1,70; if (.@exp[0] && .ThirdClass) { if (BaseLevel < .Rebirth[0] || JobLevel < .@exp[1]) { set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .@exp[1]-JobLevel; mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue."; close; } mes "Switch to "+jobname(.@exp[0])+"?"; next; Job_Menu(.@exp[0]); 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 < .JobReq[0]) mes "A job level of "+.JobReq[0]+" is required to change into the 1st Class."; else if (Class == 4001 && .LastJob && lastJob) { mes "Switch classes now?"; next; Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER)); } else switch(Class) { case 0: Job_Menu(1,2,3,4,5,6,23,4046,24,25,4023); case 4001: Job_Menu(4002,4003,4004,4005,4006,4007); case 4023: Job_Menu(4024,4025,4026,4027,4028,4029,4045); default: mes "An error has occurred."; break; } 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 < .JobReq[1]) mes "A job level of "+.JobReq[1]+" is required to change into the 2nd Class."; else if (.LastJob && lastJob && (.@eac&EAJL_UPPER)) { mes "Switch classes now?"; next; Job_Menu(lastJob+4001); } else Job_Menu(.@j1,.@j2); close; function Job_Menu { while(1) { if (getargcount() > 1) { mes "Select a job."; set .@menu$,""; for(set .@i,0; .@i<getargcount(); set .@i,.@i+1) set .@menu$, .@menu$+" ~ "+jobname(getarg(.@i))+":"; set .@menu$, .@menu$+" ~ ^777777Cancel^000000"; next; set .@i, getarg(select(.@menu$)-1,0); if (!.@i) close; if ((.@i == 23 || .@i == 4045) && BaseLevel < .SNovice) { mes "[Job Master]"; mes "A base level of "+.SNovice+" is required to turn into a "+jobname(.@i)+"."; close; } mes "[Job Master]"; mes "Are you sure?"; next; } else set .@i, getarg(0); if (select(" ~ Change into ^0055FF"+jobname(.@i)+"^000000 class: ~ ^777777"+((getargcount() > 1)?"Go back":"Cancel")+"^000000")==1) { mes "[Job Master]"; mes "You are now "+A_An(jobname(.@i))+"!"; if (.@i==4001 && .LastJob) set lastJob, Class; jobchange .@i; if (.@i==4001 || .@i==4023) resetlvl(1); if (.Platinum) callsub Get_Platinum; close; } if (getargcount() == 1) return; mes "[Job Master]"; } end; } function A_An { setarray .@A$[0],"a","e","i","o","u"; set .@B$, "_"+getarg(0); for(set .@i,0; .@i<5; set .@i,.@i+1) if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0); return "a "+getarg(0); } Get_Platinum: skill 142,1,0; switch(BaseClass) { case 0: if (Class !=23) skill 143,1,0; break; case 1: skill 144,1,0; skill 145,1,0; skill 146,1,0; break; case 2: skill 157,1,0; break; case 3: skill 147,1,0; skill 148,1,0; break; case 4: skill 156,1,0; break; case 5: skill 153,1,0; skill 154,1,0; skill 155,1,0; break; case 6: skill 149,1,0; skill 150,1,0; skill 151,1,0; skill 152,1,0; break; default: break; } switch(roclass(eaclass()&EAJ_UPPERMASK)) { case 7: skill 1001,1,0; break; case 8: skill 1014,1,0; break; case 9: skill 1006,1,0; break; case 10: skill 1012,1,0; skill 1013,1,0; break; case 11: skill 1009,1,0; break; case 12: skill 1003,1,0; skill 1004,1,0; break; case 14: skill 1002,1,0; break; case 15: skill 1015,1,0; skill 1016,1,0; break; case 16: skill 1007,1,0; skill 1008,1,0; skill 1017,1,0; skill 1018,1,0; skill 1019,1,0; break; case 17: skill 1005,1,0; break; case 18: skill 238,1,0; break; case 19: skill 1010,1,0; break; case 20: skill 1011,1,0; break; default: break; } return; OnInit: setarray .Rebirth[0],99,50; // Minimum base level, job level to rebirth OR change to third class setarray .JobReq[0],10,40; // Minimum job level to turn into 1st class, 2nd class set .ThirdClass,1; // Enable third classes? (1: yes / 0: no) set .SNovice,45; // Minimum base level to turn into Super Novice set .LastJob,1; // Enforce linear class changes? (1: yes / 0: no) set .SkillPointCheck,1; // Force player to use up all skill points? (1: yes / 0: no) set .Platinum,1; // Get platinum skills automatically? (1: yes / 0: no) end; } this one for meanwhile, this is the official jobmaster + my addon, for the rebellion setting you have to configure the max base and job lvl forget the jobchange here: if(baselevel >= 99) && (joblevel >= 70) { it is because the rebellion is not 100% done so if u want a oficial you have to wait
  4. ademas de esto, para poner la cuenta lvl GM (para ser mas especifico) tienes que ir a el navicat o cualquier otra consola que uses e ir a la carpeta login/columna group_id y poner 99 ("99" es el id de las cuentas gm)
  5. you must compile the "rAthena-12.sln" no the rAthena-10.sln for compile rAthena-12.sln you havet o download the visual basic 2012
  6. if (countitem(9524) < .@count*1000) goto L_Noitem; delitem 9524,.@count*1000; getitem 7179,.@count*1; after the "getitem 7179,.@count*1; if (countitem(9524) < .@count*1000) goto L_Noitem; delitem 9524,.@count*1000; getitem 7179,.@count*1; specialeffect2 248; close;
  7. Replace you script for this: rachel,163,122,4 script Title Manager 1002,{ //======== Configuration ======= set @npc_name$,"Title Manager"; // NPC's name set @gm_level,99; // GM level required //============================== if(getgmlevel()>=@gm_level) if(select("Normal","Admin") == 2) goto L_admin; mes "["+@npc_name$+"]"; mes "Hi, I can give you titles."; next; mes "["+ @npc_name$ +"]"; mes "Here is the list."; query_sql("SELECT `a1`.`id`,`a1`.`title` FROM `title` `a1` WHERE EXISTS(SELECT `id`,`char_id` FROM `title_player` WHERE `id`=`a1`.`id` AND `char_id`="+ getcharid(0) +") ORDER BY `a1`.`title` ASC",@title_id,@title$); query_sql("SELECT `a1`.`title` FROM `title` `a1` WHERE NOT EXISTS(SELECT `id`,`char_id` FROM `title_player` WHERE `id`=`a1`.`id` AND `char_id`="+ getcharid(0) +") ORDER BY `a1`.`title`",@title_no$); query_sql("SELECT COUNT(*) FROM `title` `a1` WHERE EXISTS(SELECT `id`,`char_id` FROM `title_player` WHERE `id`=`a1`.`id` AND `char_id`="+ getcharid(0) +")",@title_count); query_sql("SELECT COUNT(*) FROM `title` `a1` WHERE NOT EXISTS(SELECT `id`,`char_id` FROM `title_player` WHERE `id`=`a1`.`id` AND `char_id`="+ getcharid(0) +")",@title_nocount); if(!@title_count && !@title_nocount){ goto L_notitle; }else{ goto L_normal;} L_normal: menu "Avaible titles ("+ @title_count +")",L_avaible,"Unaivable titles ("+ @title_nocount +")",L_unaivable,"Remove my title",L_remove,"Cancel",-; close; L_avaible: if(!@title_count) goto L_normal; set @menu$,""; for(set i,0;i<@title_count;set i,i+1) set @menu$,(@menu$=="") ? @title$[i] : @menu$ +":"+ @title$[i]; set @menu$,@menu$ +":Back"; menu @menu$,-; set @title_choice,@menu-1; if(@title_choice==@title_count) goto L_normal; next; mes "["+ @npc_name$ +"]"; mes "The title : \"" + @title$[@title_choice] + "\" is avaible to you."; if(select("Change my title","Cancel")==2) close; atcommand "@fakename "+strcharinfo(0) + @title$[@title_choice]; set title$,@title$[@title_choice]; next; mes "["+ @npc_name$ +"]"; mes "That's it."; mes "Bye."; close; L_unaivable: if(!@title_nocount) goto L_normal; set @menu$,""; for(set i,0;i<@title_nocount; set i,i+1) set @menu$,(@menu$=="") ? "^FF0000"+ @title_no$[i] +"^000000" : @menu$ +":^FF0000"+ @title_no$[i] +"^000000"; set @menu$,@menu$ +":Back"; menu @menu$,-; goto L_normal; L_remove: if(title$=="") { mes "You don't have any title."; close; } mes "That's it."; atcommand "@fakename"; set title$,""; close; L_admin: query_sql("SELECT COUNT(*) FROM `title`",@title_count); mes "Hi."; mes "What do you want to do?"; menu "Delete a title",-,"Add a title",addT,"Modify a title",modifyT,"Modify a player",modifyP; next; mes "["+ @npc_name$ +"]"; mes "What title do you want to delete?"; if(!@title_count) goto L_notitle; query_sql("SELECT * FROM `title`",@title_id,@title$); set @menu$,""; for(set i,0;i<@title_count;set i,i+1) set @menu$,(@menu$=="") ? @title$[i] : @menu$ +":"+ @title$[i]; set @menu$,@menu$ +":Back"; menu @menu$,-; set @title_choice,@menu-1; if(@title_choice==@title_count) { next; mes "["+ @npc_name$ +"]"; goto L_admin; } next; mes "["+@npc_name$+"]"; mes "Are you sure you want to delete : \""+ @title$[@title_choice] +"\"?"; if(select("No","Yes")==2) { next; mes "["+ @npc_name$ +"]"; mes "The title has been deleted!"; query_sql("DELETE FROM `title` WHERE `id`="+ @title_id[@title_choice]); query_sql("DELETE FROM `title_player` WHERE `id`="+ @title_id[@title_choice]); goto L_admin; } next; mes "["+ @npc_name$ +"]"; goto L_admin; addT: next; mes "["+ @npc_name$ +"]"; mes "What title do you want to add?"; next; input @addT$; if(@addT$==" ") { next; mes "["+ @npc_name$ +"]"; goto L_admin; } mes "["+ @npc_name$ +"]"; if(!callfunc("Add a title",@addT$)) { mes "This title is already in use!"; goto L_admin; } mes "That's it!"; goto L_admin; modifyT: next; mes "["+@npc_name$+"]"; if(!@title_count) goto L_notitle; mes "What title do you want to modify?"; query_sql("SELECT * FROM `title`",@title_id,@title$); set @menu$,""; for(set i,0;i<@title_count;set i,i+1) set @menu$,(@menu$=="") ? @title$[i] : @menu$ +":"+ @title$[i]; set @menu$,@menu$ +":Back"; menu @menu$,-; set @title_choice,@menu-1; if(@title_choice==@title_count) { next; mes "["+ @npc_name$ +"]"; goto L_admin; } mes "Currently modifying : "+ @title$[@title_choice] +"."; mes "Those players have this title avaible."; fastMod: query_sql("SELECT COUNT(*) FROM `title_player` WHERE `id`="+ @title_id[@title_choice],@title_player_count); query_sql("SELECT `char_id`,`name` FROM `title_player` WHERE `id`="+ @title_id[@title_choice],@title_player_charid,@title_player_name$); if(!@title_player_count) mes "No player."; for(set i,0;i<@title_player_count;set i,i+1) mes "- "+ @title_player_name$[i]; menu "Add a player",L_addP,"Remove a player",remP,"Modify the title's name",modT,"Modify another title",modifyT,"Return to main menu",-; next; mes "["+ @npc_name$ +"]"; goto L_admin; L_addP: next; mes "["+ @npc_name$ +"]"; mes "Please, enter the player's name."; input @addP$; if(@addP$==" ") goto fastMod; next; mes "["+ @npc_name$ +"]"; switch(callfunc("Add a player",@title$[@title_choice],@addP$)) { case 1: mes "The player doesn't exist."; break; case 2: mes "The title doesn't exist."; break; case 3: mes "Player has already this title avaible."; break; default: mes "That's it!"; break; } next; mes "["+ @npc_name$ +"]"; goto fastMod; remP: if(!@title_player_count) goto fastMod; mes "What player do you want to remove?"; set @menu$,""; for(set i,0;i<@title_player_count;set i,i+1) set @menu$,(@menu$=="") ? @title_player_name$[i] : @menu$ +":"+ @title_player_name$[i]; set @menu$,@menu$ +":Back"; menu @menu$,-; set @title_player_choice,@menu-1; if(@title_player_choice==@title_player_count) { next; mes "["+ @npc_name$ +"]"; goto fastMod; } query_sql("DELETE FROM `title_player` WHERE `id`="+ @title_id[@title_choice] +" AND `char_id`="+ @title_player_charid[@title_player_choice] +" AND `name`='"+ @title_player_name$[@title_player_choice] +"'"); next; mes "["+ @npc_name$ +"]"; mes "That's it!"; goto fastMod; modT: next; mes "["+ @npc_name$ +"]"; mes "Title : \""+ @title$[@title_choice] +"\"."; if(select("Modify","Back")==2) { next; mes "["+ @npc_name$ +"]"; goto fastMod; } next; mes "["+ @npc_name$ +"]"; mes "Enter the new title."; input @newT$; next; for(set i,0;i<@title_count;set i,i+1) { if(@title$[i]!=@newT$) continue; mes "["+ @npc_name$ +"]"; mes "This title is already in use!"; goto modT; } if(select("Save names","Don't save names") == 2 ) query_sql("DELETE FROM `title_player` WHERE `id`="+ @title_id[@title_choice]); mes "["+ @npc_name$ +"]"; mes "That's it!"; query_sql("UPDATE `title` SET `title`='"+ @newT$ +"' WHERE `id`="+ @title_id[@title_choice]); query_sql("SELECT * FROM `title`",@title_id,@title$); goto fastMod; modifyP: next; mes "["+ @npc_name$ +"]"; query_sql("SELECT COUNT(DISTINCT `char_id`) FROM `title_player`",@player_count); mes ((@modGP) ? "What player do you want to add?" : "What player do you want to modify?"); query_sql("SELECT `char_id`,`name`,COUNT(*) FROM `title_player` GROUP BY `char_id` ORDER BY `name` ASC",@title_player_charid,@title_player_name$,@title_player_count); fastModP: set @menu$,""; for(set i,0;i<@player_count;set i,i+1) set @menu$,(@menu$=="") ? @title_player_name$[i] +"("+ @title_player_count[i] +")" : @menu$ +":"+ @title_player_name$[i] +"("+ @title_player_count[i] +")"; set @menu$,(@menu$=="") ? "Type a name" : @menu$ +":Type a name"; set @menu$,@menu$ +":Back"; menu @menu$,-; set @title_player_choice,@menu-1; if(@title_player_choice==@player_count) { input @title_player_name$[@title_player_choice]; query_sql("SELECT `char_id` FROM `char` WHERE `name`='"+ @title_player_name$[@title_player_choice] +"'",@charid); if(!@charid[0]) { mes "Player doesn't exist."; goto fastModP; } set @title_player_charid[@title_player_choice],@charid[0]; } else if(@title_player_choice==@player_count+1 && !@modGP) { next; mes "["+ @npc_name$ +"]"; goto L_admin; } fastModPP: next; mes "["+ @npc_name$ +"]"; mes "Currently modifying : "+ @title_player_name$[@title_player_choice] +"."; menu "Add a title",-,"Remove a title",L_removeTP,"Modify another player",modifyP,"Return to main menu",L_admin; query_sql("SELECT COUNT(*) FROM `title` `a1` WHERE NOT EXISTS(SELECT `id`,`char_id` FROM `title_player` WHERE `id`=`a1`.`id` AND `char_id`="+ @title_player_charid[@title_player_choice] +")",@title_nocount); if(!@title_nocount) { mes "This player has all titles avaible."; goto fastModPP; } query_sql("SELECT `a1`.`id`,`a1`.`title` FROM `title` `a1` WHERE NOT EXISTS(SELECT `id`,`char_id` FROM `title_player` WHERE `id`=`a1`.`id` AND `char_id`="+ @title_player_charid[@title_player_choice] +") ORDER BY `a1`.`title` ASC",@title_noid,@title_no$); mes "Add title ..."; set @menu$,""; for(set i,0;i<@title_nocount;set i,i+1) set @menu$,(@menu$=="") ? @title_no$[i] : @menu$ +":"+ @title_no$[i]; set @menu$,@menu$ +":Back"; menu @menu$,-; set @title_choice,@menu-1; if(@title_choice==@title_nocount) goto fastModPP; callfunc("Add a player",@title_no$[@title_choice],@title_player_name$[@title_player_choice]); mes "Title \""+ @title_no$[@title_choice] +"\" added for player \""+ @title_player_name$[@title_player_choice] +"\"."; goto fastModPP; L_removeTP: query_sql("SELECT COUNT(*) FROM `title` `a1` WHERE EXISTS(SELECT `id`,`char_id` FROM `title_player` WHERE `id`=`a1`.`id` AND `char_id`="+ @title_player_charid[@title_player_choice] +")",@title_count); if(!@title_count) { mes "This player doesn't have any title."; goto fastModPP; } query_sql("SELECT `a1`.`id`,`a1`.`title` FROM `title` `a1` WHERE EXISTS(SELECT `id`,`char_id` FROM `title_player` WHERE `id`=`a1`.`id` AND `char_id`="+ @title_player_charid[@title_player_choice] +") ORDER BY `a1`.`title` ASC",@title_id,@title$); mes "Remove the title ..."; set @menu$,""; for(set i,0;i<@title_count;set i,i+1) set @menu$,(@menu$=="") ? @title$[i] : @menu$ +":"+ @title$[i]; set @menu$,@menu$ +":Back"; menu @menu$,-; set @title_choice,@menu-1; if(@title_choice==@title_count) goto fastModPP; query_sql("DELETE FROM `title_player` WHERE `id`="+ @title_id[@title_choice] +" AND `char_id`="+ @title_player_charid[@title_player_choice]); mes "Title \""+ @title$[@title_choice] +"\" removed for player \""+ @title_player_name$[@title_player_choice] +"\"."; goto fastModPP; L_notitle: mes "I don't have any title."; close; OnPCLoginEvent: if(title$!="") atcommand "@fakename "+ strcharinfo(0)+title$; end; } function script Add a title { // callfunc "Add a title","Title name" query_sql("SELECT COUNT(*) FROM `title`",@title_count); query_sql("SELECT * FROM `title`",@title_id,@title$); for(set i,0;i<@title_count;set i,i+1) { if(getarg(0)!=@title$[i]) continue; return 0; } query_sql("INSERT INTO `title` VALUES(NULL,'"+ getarg(0) +"')"); return 1; } function script Add a player { // callfunc "Add a player","Title name","Player name" query_sql("SELECT COUNT(*) FROM `char` WHERE `name`='"+ getarg(1) +"'",@title_charid_check); query_sql("SELECT `char_id` FROM `char` WHERE `name`='"+ getarg(1) +"'",@title_charid); if(!@title_charid_check) return 1; query_sql("SELECT COUNT(*) FROM `title` WHERE `title`='"+ getarg(0) +"'",@title_check); if(!@title_check) return 2; query_sql("SELECT `char_id`,`name` FROM `title_player` WHERE `id`="+ @title_id[0],@title_player_charid,@title_player_name$); query_sql("SELECT `id` FROM `title` WHERE `title`='"+ getarg(0) +"'",@title_id); query_sql("SELECT COUNT(*) FROM `title_player` WHERE `id`="+ @title_id[0],@title_player_count); for(set i,0;i<@title_player_count;set i,i+1) { if(@title_charid[0]!=@title_player_charid[i]) continue; return 3; } query_sql("INSERT INTO `title_player` VALUES("+ @title_id[0] +","+ @title_charid[0] +",'"+ getarg(1) +"')"); return 0; } function script Has title { // callfunc "Has title","Title name",char_id query_sql("SELECT `id` FROM `title` WHERE `title`='"+ getarg(0) +"'",@title_id); query_sql("SELECT COUNT(*) FROM `title_player` WHERE `id`="+ @title_id[0] +" AND `char_id`="+ getarg(1),@title_check); if(@title_check) return 1; else return 0; } //==================================================================================================================================== - script pvptitle -1,{ OnPCKillEvent: if(callfunc("Has title","Killer",getcharid(0)) || callfunc("Has title","God Like",getcharid(0))) end; set player_count,player_count+1; if(player_count>=10) { if(!callfunc("Add a player","Killer",strcharinfo(0))){ announce "something",bc_self; }else{ debugmes "Incorrect title (Killer)."; } } else if(player_count>=100) { if(!callfunc("Add a player","God Like",strcharinfo(0))){ announce "something",bc_self; }else{ debugmes "Incorrect title (God Like)."; } }else if(player_count > 100){end;} end; } //==================================================================================================================================== //==================================================================================================================================== //CREATE TABLE IF NOT EXISTS `title` ( // `id` int(11) NOT NULL AUTO_INCREMENT, // `title` varchar(255) NOT NULL, // PRIMARY KEY (`id`) //) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=9; // //CREATE TABLE IF NOT EXISTS `title_player` ( // `id` int(3) NOT NULL, // `char_id` int(6) NOT NULL, // `name` varchar(255) NOT NULL //==================================================================================================================================== Changes that i did: 20 - if(!@title_count && !@title_nocount) goto L_notitle; 21 - 20 + if(!@title_count && !@title_nocount){ goto L_notitle; 21 + }else{ goto L_normal;} 75 - goto L_noTitle; 75 + goto L_notitle; 118 - goto L_noTitle; 118 + goto L_notitle; 280 - L_noTitle: 280 + L_notitle: 333 - if(!callfunc("Add a player","Killer",strcharinfo(0))) 333 + if(!callfunc("Add a player","Killer",strcharinfo(0))){ 340 - else 341 + }else{ 337 + } 337 338 } else if(player_count==100) { 338 - if(!callfunc("Add a player","God Like",strcharinfo(0))) 339 + if(!callfunc("Add a player","God Like",strcharinfo(0))){ 339 340 announce "something",bc_self; 340 - else 341 + }else{ 341 342 debugmes "Incorrect title (God Like)."; 343 + } 342 - } 343 + } 344 + }else if(player_count > 100){end;} You did this part? - script pvptitle -1,{ OnPCKillEvent: if(callfunc("Has title","Killer",getcharid(0)) || callfunc("Has title","God Like",getcharid(0))) end; set player_count,player_count+1; if(player_count==10) { if(!callfunc("Add a player","Killer",strcharinfo(0))){ announce "something",bc_self; }else{ debugmes "Incorrect title (Killer)."; } } else if(player_count==100) { if(!callfunc("Add a player","God Like",strcharinfo(0))){ announce "something",bc_self; }else{ debugmes "Incorrect title (God Like)."; } } end; }
  8. look what happen with that area... it is actually a map of event that have mapflag, maybe there is a mapflag that restricts that area..
  9. if you want that the var reset at 00h you have to do this: - script resetvar -1,{ Onclock0000: if(##reward >= 1){ set ##reward,0; }else{end;} end; }
  10. hmmm... try this one http://rathena.org/board/topic/77632-devil-square/ it is a Redo so.. it could work better
  11. well... is like this: achievement: kill 100 poring, kill 100 fabre, get the max lvl.... if u won a 100 achievement you will win a reward for that also you can see you progress (sql i think) ex: - script first_login -1,{ OnInit: set .var,1; end; OnPCLoginEvent: if((.var ? #fst_login : fst_login) == 1 && Class == Job_Novice && BaseLevel != 1 && JobLevel != 1) end; set (.var ? #fst_login : fst_login),1; set #poring1$,"[Locked]"; end; } - script KillPoring1 -1,{ OnNPCKillEvent: if(#poring1$ == "[Locked]"){ getmapxy(@mapa$,@x,@y,0); if(killedrid == 1002) { set killpcount,killpcount+1; if(killpcount >= 50) { set killpcount,0; // Evita que pase de la cantidad maxima. dispbottom "Felicidades has desbloqueado Killerporing!"; set #poring1$,"[Unlocked]"; attachnpctimer; initnpctimer; end; OnTimer10: specialeffect2 75; cutin "sign_01",2; end; Ontimer9000: cutin "",255; stopnpctimer; detachnpctimer; end; } end; } end; }else if(#poring1$ == "[Unlocked]"){ end; } } When a player get the achievement (kill x amount of porings) the npc will show a cutin that you can also still playing when you have the cutin on the screen.. but the thing is how is the best way to do this?
  12. here the 20 after the 1369 it is the amount of mob that you want will spawn guild_vs5,0,0,52,52 monster Grand Peco 1369,20,10,10; Following this: http://rathena.org/wiki/Permanent_Monster_Spawn read this and you would be able to edit permanent spawn without problems
  13. You also have to do this Change this the 7 after the ,0xFFFFFFFF, 20323,Thunder_Dragon_Helm,Thunder Dragon Helm,5,10000,,1000,,10,,0,0xFFFFFFFF,7,2,1024,,0,0,1138,{},{},{} for this 63 20323,Thunder_Dragon_Helm,Thunder Dragon Helm,5,10000,,1000,,10,,0,0xFFFFFFFF,63,2,1024,,0,0,1138,{},{},{} Followin this: On rathena/doc/item_db.txt Class: Equippable upper-types. Uses the following bitmasks: 1: Normal classes (no Baby/Transcendent/Third classes) 2: Transcedent classes (no Transcedent-Third classes) 4: Baby classes (no Third-Baby classes) 8: Third classes (no Transcedent-Third or Third-Baby classes) 16: Transcedent-Third classes 32: Third-Baby classes If u do this: 1+2+4= 7 this 7 means (normal.transcedent and baby classes can use the item) i hope that i help you
  14. hi Someone can tell me the best way to make a achievenment system? It is just tell me i do all the scriping part (without src editting ) I call for help because i want to do it, but i dont know how Bumm :c?
  15. emmm... change it for this xD query_sql "SELECT `base_level` FROM char WHERE `base_level` = `99`", .@acclvl; if (.@acclvl <.MaxLvl) { mes "No one reached the maximum level yet"; close } -w-
  16. Well you know that is not 100% solved and if anybody reach the max lvl the npc will show you the rank anyway but i going to see how i can make it... maybe it work change this if($Rank$ != "") { mes "No one reached the maximum level yet"; close; } for that query_sql "SELECT `base_level` FROM char WHERE `base_level` = `99`", .@acclvl; if (.@acclvl==.MaxLvl) { mes "No one reached the maximum level yet"; close } It only work if you run sql tables
  17. ooohhhh... so those event will start 2 times each day... if is like that Dice.txt disguise.txt mushroom_event.txt RFYL.txt RND.txt Royal Rumbel.txt
  18. Let me see if a understand... you want that 1 event start and then finish and then the other event • • • ?
  19. i used that hours o.O disguise.txt Royal Rumbel.txt
  20. change this part OnClock0000: reward = 0; end; for this OnClock0000: ##reward = 0; end; and tell me plz if i help you
  21. here is Dice.txt disguise.txt mushroom_event.txt RFYL.txt RND.txt Royal Rumbel.txt
×
×
  • Create New...