Dynasty
Members-
Posts
151 -
Joined
-
Last visited
-
Days Won
1
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by Dynasty
-
download this: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk/ compile then.
-
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.
-
yep -w-
-
Need Help 3rd Job Instant Jobchanger + Oboro/Kagerou Class and Rebellion Class
Dynasty replied to Obiwan's question in Script Requests
//===== 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 -
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)
-
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
-
R> Cash points exchanger to pods newbie here
Dynasty replied to gyroguevarra's question in Script Requests
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; -
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; }
-
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..
-
Variable reset at 00h and IP cooldown
Dynasty replied to HelloKekette's question in Scripting Support
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; } -
hmmm... try this one http://rathena.org/board/topic/77632-devil-square/ it is a Redo so.. it could work better
-
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?
-
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
-
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
-
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?
-
yes, you have change it
-
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-
-
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
-
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
-
Variable reset at 00h and IP cooldown
Dynasty replied to HelloKekette's question in Scripting Support
nou... i dont have enough exp to do that -
Let me see if a understand... you want that 1 event start and then finish and then the other event • • • ?
-
i used that hours o.O disguise.txt Royal Rumbel.txt
-
Variable reset at 00h and IP cooldown
Dynasty replied to HelloKekette's question in Scripting Support
change this part OnClock0000: reward = 0; end; for this OnClock0000: ##reward = 0; end; and tell me plz if i help you -
here is Dice.txt disguise.txt mushroom_event.txt RFYL.txt RND.txt Royal Rumbel.txt
-
he is faster than me