-
Posts
2407 -
Joined
-
Last visited
-
Days Won
52
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by Capuche
-
When the mob is killed, there is an announce and 100 items are dropped on the map. In this script the mob doesn't respawn.. you can use Permanent_Monster_Spawn to set the spawn
-
http://rathena.org/board/topic/86860-map-drop-when-kill-a-specific-monster/?p=220088
-
Request - Script to counter bugs/exploits
Capuche replied to Veracious's question in Script Requests
I think the if must be if( .@aid == 0 ){ -
SC_NOCHAT ?
-
input(.@charname$); query_sql "SELECT account_id FROM `char` WHERE name = '"+.@charname$+"'",.@accid2; just to point this line.. don't forget to use escape_sql to prevent sql injection
-
prontera,150,180,5 script Hunter monster 87,{ end; OnEvent: waitingroom "Mob to hunt: "+ getmonsterinfo( getvariableofnpc( .monster_hunt_id,"atcmd_monsterhunt" ),0 ) + " (ID: " + getvariableofnpc( .monster_hunt_id,"atcmd_monsterhunt" ) + ")",0; } - script atcmd_monsterhunt -1,{ OnInit: bindatcmd "monsterhunt",strnpcinfo(3)+"::OnCmd"; end; OnCmd: if ( .monster_hunt_id == 0 && ( .@atcmd_numparameters == 0 || .@atcmd_parameters$[0] == "on" || .@atcmd_parameters$[0] == "off" ) ) message strcharinfo(0), "there is none monster to hunt"; else if ( .@atcmd_numparameters == 0 ) message strcharinfo(0), "the new monster to hunt is " + getmonsterinfo( .monster_hunt_id,0 ) + " (ID: " + .monster_hunt_id + ")"; else if ( .@atcmd_parameters$[0] == "on" ) { if ( @display_message == 0 ) message strcharinfo(0), "killing a " + getmonsterinfo( .monster_hunt_id,0 ) + " (ID: " + .monster_hunt_id + ") already display a message"; else { message strcharinfo(0), "killing a " + getmonsterinfo( .monster_hunt_id,0 ) + " (ID: " + .monster_hunt_id + ") will display a message"; @display_message = 0; } } else if ( .@atcmd_parameters$[0] == "off" ) { if ( @display_message == 1 ) message strcharinfo(0), "killing a " + getmonsterinfo( .monster_hunt_id,0 ) + " (ID: " + .monster_hunt_id + ") already don't display a message"; else { message strcharinfo(0), "killing a " + getmonsterinfo( .monster_hunt_id,0 ) + " (ID: " + .monster_hunt_id + ") won't display a message"; @display_message = 1; } } else if ( getgmlevel() >= 25 ) { if ( .@atcmd_parameters$[0] == "0" ) { message strcharinfo(0), "you stop the hunt"; .monster_hunt_id = 0; delwaitingroom "Hunter monster"; } else { .@mob_name$ = getmonsterinfo( atoi(.@atcmd_parameters$[0]),0 ); if ( .@mob_name$ == "null" ) { message strcharinfo(0), "wrong mob id\n"+ "-> " + .@atcmd_command$ + " to display the mob to hunt.\n"+ "-> " + .@atcmd_command$ + " on/off to display a message killing the mob\n"+ "-> " + .@atcmd_command$ + " 0 to stop the hunt\n"+ "-> " + .@atcmd_command$ + " <mob_id> to hunt the mob\n"; } else { .monster_hunt_id = atoi(.@atcmd_parameters$[0]); message strcharinfo(0), "the new monster to hunt is "+ .@mob_name$ + " (ID: " + .monster_hunt_id + ")"; donpcevent "Hunter monster::OnEvent"; } } } else message strcharinfo(0), .@atcmd_command$ + " failed. " + .@atcmd_command$ + " to display the mob to hunt. " + .@atcmd_command$ + " on/off to display a message killing the mob"; end; OnNPCKillEvent: if ( killedrid != .monster_hunt_id ) end; if ( ( hunter_points_today >> 10 ) % pow(2,10) == gettime(8) ) { if ( hunter_points_today % pow(2,10) < 1000 ) hunter_points_today++; else { if ( @display_message == 0 ) message strcharinfo(0), "you can exceed 1000 hunters points today (" + ( hunter_points_today % pow(2,10) ) + "/1000). Total: " + hunter_points + " hunters points."; end; } } else hunter_points_today = ( gettime(8) << 10 ) + 1; hunter_points++; if ( @display_message == 0 ) message strcharinfo(0), "you have now " + ( hunter_points_today % pow(2,10) ) + "/1000 points for killing a " + getmonsterinfo( .monster_hunt_id,0 ) + ". Total: " + hunter_points + " hunters points"; end; }
-
prontera,150,180,5 script Hunter monster 87,{ end; OnEvent: waitingroom "Mob to hunt: "+ getmonsterinfo( getvariableofnpc( .monster_hunt_id,"atcmd_monsterhunt" ),0 ) + " (ID: " + getvariableofnpc( .monster_hunt_id,"atcmd_monsterhunt" ) + ")",0; } - script atcmd_monsterhunt -1,{ OnInit: bindatcmd "monsterhunt",strnpcinfo(3)+"::OnCmd"; end; OnCmd: if ( .monster_hunt_id == 0 && ( .@atcmd_numparameters == 0 || .@atcmd_parameters$[0] == "on" || .@atcmd_parameters$[0] == "off" ) ) dispbottom "there is none monster to hunt"; else if ( .@atcmd_numparameters == 0 ) dispbottom "the new monster to hunt is " + getmonsterinfo( .monster_hunt_id,0 ) + " (ID: " + .monster_hunt_id + ")"; else if ( .@atcmd_parameters$[0] == "on" ) { if ( @display_message == 0 ) dispbottom "killing a " + getmonsterinfo( .monster_hunt_id,0 ) + " (ID: " + .monster_hunt_id + ") already display a message"; else { dispbottom "killing a " + getmonsterinfo( .monster_hunt_id,0 ) + " (ID: " + .monster_hunt_id + ") will display a message"; @display_message = 0; } } else if ( .@atcmd_parameters$[0] == "off" ) { if ( @display_message == 1 ) dispbottom "killing a " + getmonsterinfo( .monster_hunt_id,0 ) + " (ID: " + .monster_hunt_id + ") already don't display a message"; else { dispbottom "killing a " + getmonsterinfo( .monster_hunt_id,0 ) + " (ID: " + .monster_hunt_id + ") won't display a message"; @display_message = 1; } } else if ( getgmlevel() >= 25 ) { if ( .@atcmd_parameters$[0] == "0" ) { dispbottom "you stop the hunt"; .monster_hunt_id = 0; delwaitingroom "Hunter monster"; } else { .@mob_name$ = getmonsterinfo( atoi(.@atcmd_parameters$[0]),0 ); if ( .@mob_name$ == "null" ) dispbottom "wrong mob id"; else { .monster_hunt_id = atoi(.@atcmd_parameters$[0]); dispbottom "the new monster to hunt is "+ .@mob_name$ + " (ID: " + .monster_hunt_id + ")"; donpcevent "Hunter monster::OnEvent"; } } } else dispbottom "@" + .@atcmd_command$ + " failed. @" + .@atcmd_command$ + " to display the mob to hunt. @" + .@atcmd_command$ + " on/off to display a message killing the mob"; end; OnNPCKillEvent: if ( .monster_hunt_id == 0 || killedrid != .monster_hunt_id ) end; if ( hunter_points >= 1000 && @display_message == 0 ) message strcharinfo(0), "you can exceed 1000 hunters points (you have " + hunter_points + " hunters points)"; else if ( hunter_points < 1000 ) { hunter_points++; if ( @display_message == 0 ) message strcharinfo(0), "you have now " + hunter_points + " hunters points for killing a " + getmonsterinfo( .monster_hunt_id,0 ); } end; }
-
//===== eAthena Script ======================================= //= eAthena Jobchanger AKA Job Master //===== By: ================================================== //= eAthena Dev Team [Ori:LunatikBunnie] [Cur:Lance] //===== Current Version: ===================================== //= 1.5a //===== Compatible With: ===================================== //= eAthena SVN Trunk 6674 //===== Description: ========================================= //= Changes your job without asking too much //= For other info, please contact me at [email protected] //= Editted menu to avoid button mashing. //= 1.3 Added TK/SL/SG, thanks to Haplo. Fixed minor bugs [Lupus] //= script leaves grabage variable: 'lastJob' //= 1.4 Added NJ/GS, changed all job numbers to Job_* constants. //= All credits go to pxxx [Skotlex] //= 1.5 Rewrite everything from scratch. [Lance] //= 1.5a fixed Baby -> Super Baby change. Switched to JobName() [Lupus] //============================================================ prontera,153,193,6 script Job Master 123,{ mes "^ff0000[Job Master]^000000"; if(Upper == 1 && Class >= Job_Lord_Knight) goto L_noReq; if(SkillPoint != 0){ mes "I'm sorry, please use up all your skill points before changing jobs"; mes "Please come again soon!"; close; } if(JobLevel < 10) goto L_LvError; switch(Class){ case Job_Novice_High: case Job_Baby: case Job_Novice: skill 142,1,0; skill 143,1,0; mes "Welcome, please select the job you wish to change into"; if(lastJob != 0 && Class == Job_Novice_High){ switch(lastJob){ case Job_Knight: case Job_Crusader: set @target_job, Job_Swordman_High; break; case Job_Monk: case Job_Priest: set @target_job, Job_Acolyte_High; break; case Job_Alchemist: case Job_Blacksmith: set @target_job, Job_Merchant_High; break; case Job_Rogue: case Job_Assassin: set @target_job, Job_Thief_High; break; case Job_Wizard: case Job_Sage: set @target_job, Job_Mage_High; break; case Job_Hunter: case Job_Bard: case Job_Dancer: set @target_job, Job_Archer_High; break; } } else { switch(select("Swordsman","Mage","Archer","Acolyte","Merchant","Thief", "Super Novice","Taekwon","Gunslinger","Ninja")){ case 7: if(Class == Job_Novice_High) goto L_noReq; if($@JC_SupNovM > BaseLevel) goto L_BvError; if(Upper == 2) set @target_job, Job_Super_Baby; else set @target_job, Job_SuperNovice; break; case 8: if(Class == Job_Novice_High) goto L_noReq; if(Upper == 2) goto L_noReq; set @target_job, Job_Taekwon; break; case 9: case 10: if(Class == Job_Novice_High || Upper == 2) goto L_noReq; set @target_job, @menu + 15; break; default: set @target_job, @menu; if(Class == Job_Novice_High) set @target_job, @target_job + 4001; break; } } mes "Are you sure you want to change to " + JobName(@target_job) + "?"; if(select("No","Yes") == 2){ callfunc "Job_Change", @target_job; if(@target_job == Job_Gunslinger || @target_job == Job_Ninja || @target_job == Job_Taekwon) { callfunc "F_ClearJobVar"; } else { if($@JC_Plat) goto L_GivePlat; } } close; break; default: if(JobLevel < $@JC_MinimumJB) goto L_LvError; deletearray @job_opt, getarraysize(@job_opt); if(Class < Job_Knight || Class == Job_Taekwon || (Class > Job_Baby && Class < Job_Baby_Knight) || (Class > Job_Novice_High && Class < Job_Lord_Knight)){ if(lastJob != 0){ set @target_job, lastJob + 4001; } else { switch(Class){ case Job_Swordman_High: case Job_Baby_Swordman: case Job_Swordman: set @job_opt[0], Job_Knight; set @job_opt[1], Job_Crusader; break; case Job_Mage_High: case Job_Baby_Mage: case Job_Mage: set @job_opt[0], Job_Wizard; set @job_opt[1], Job_Sage; break; case Job_Archer_High: case Job_Baby_Archer: case Job_Archer: set @job_opt[0], Job_Hunter; if(Sex == 0) set @job_opt[1], Job_Dancer; else set @job_opt[1], Job_Bard; break; case Job_Acolyte_High: case Job_Baby_Acolyte: case Job_Acolyte: set @job_opt[0], Job_Priest; set @job_opt[1], Job_Monk; break; case Job_Merchant_High: case Job_Baby_Merchant: case Job_Merchant: set @job_opt[0], Job_Blacksmith; set @job_opt[1], Job_Alchemist; break; case Job_Thief_High: case Job_Baby_Thief: case Job_Thief: set @job_opt[0], Job_Assassin; set @job_opt[1], Job_Rogue; break; default: set @job_opt[0], Job_Star_Gladiator; set @job_opt[1], Job_Soul_Linker; break; } mes "Welcome, please select the job you wish to change into"; set @target_job, @job_opt[select(JobName(@job_opt[0]), JobName(@job_opt[1]))-1]; if(Class > Job_Novice_High && Class < Job_Lord_Knight) set @target_job, @target_job + 4001; } mes "Are you sure you want to change to " + JobName(@target_job) + "?"; if(select("No","Yes")==2){ callfunc "Job_Change", @target_job; if(@target_job == Job_Star_Gladiator || @target_job == Job_Soul_Linker) { callfunc "F_ClearJobVar"; } else { if($@JC_Plat) goto L_GivePlat; } } close; } if(checkfalcon() || checkcart() || checkriding()) goto L_remove; if((Class >=Job_Knight) && (Class <=Job_Crusader2)){ mes "Do you want to reborn?"; if(select("Yes","No")==1){ if(BaseLevel < 99 || JobLevel < 50) goto L_cantCh; set lastJob, Class; if(Class == Job_Knight2){ set lastJob, Job_Knight; } else { if(Class == Job_Crusader2){ set lastJob, Job_Crusader; } } jobchange roclass(eaclass()|EAJL_UPPER); resetlvl(1); skill 142,1,0; skill 143,1,0; } close; } } mes "I'm sorry, there are no further classes for your job."; close; L_GivePlat: if (BaseClass==Job_SuperNovice) goto L_sSuperN; if (BaseClass==Job_Swordman) goto L_sSword; if (BaseClass==Job_Mage) goto L_sMage; if (BaseClass==Job_Archer) goto L_sArcher; if (BaseClass==Job_Acolyte) goto L_sAcolyte; if (BaseClass==Job_Merchant) goto L_sMerchant; if (BaseClass==Job_Thief) goto L_sThief; close; L_sSuperN: skill 142,1,0; close; L_sSword: skill 142,1,0; skill 144,1,0; skill 145,1,0; skill 146,1,0; close; L_sMage: skill 142,1,0; skill 157,1,0; close; L_sArcher: skill 142,1,0; skill 147,1,0; skill 148,1,0; close; L_sAcolyte: skill 142,1,0; skill 156,1,0; close; L_sMerchant: skill 142,1,0; skill 153,1,0; skill 154,1,0; skill 155,1,0; close; L_sThief: skill 142,1,0; skill 149,1,0; skill 150,1,0; skill 151,1,0; skill 152,1,0; close; L_cantCh: mes "I'm sorry, you do not meet the requirements to change"; mes "Please come again soon!"; close; L_LvError: mes "I'm sorry, you do not seem to have enough Job Levels"; mes "Please come again soon!"; close; L_BvError: mes "I'm sorry, you do not seem to have enough Base Levels"; mes "Please come again soon!"; close; L_noReq: mes "I'm sorry, you do not meet the requirements to change"; mes "Please come again soon!"; close; L_remove: mes "Please remove your cart,falcon or peco"; mes "Please come again soon!"; close; OnInit: // Variable Setup set $@JC_MinimumJB, 40; //Minimum job level for changing between 2nd and advance Class (Default : 40) set $@JC_Plat, 1; //Give Platinum skills on Jobchange (Default : 1-yes) set $@JC_SupNovM, 45; //Base Level to change into Super Novice (Default : 45) end; }
-
My mistake Increment the hunt point before display the message else if ( hunter_points < 1000 ) { + hunter_points++; if ( @display_message == 0 ) message strcharinfo(0), "you have now " + hunter_points + " hunters points for killing a " + getmonsterinfo( .monster_hunt_id,0 ); - hunter_points++; }
-
There is a bug with the case Change the label OnAtcommand to OnCmd for example
-
or /* CREATE TABLE IF NOT EXISTS `E-MVPRank` ( `char_id` int(11) unsigned NOT NULL default '0', `name` varchar(30) NOT NULL DEFAULT '', `Count` int(11) unsigned NOT NULL default '0', PRIMARY KEY (`char_id`) ) ENGINE=MyISAM; CREATE TABLE IF NOT EXISTS `E-MVPRank_dummy` ( `id` int(11) NOT NULL auto_increment, `char_id` int(11) unsigned NOT NULL default '0', `name` varchar(30) NOT NULL DEFAULT '', `Count` int(11) unsigned NOT NULL default '0', PRIMARY KEY (`id`), KEY `char_id` (`char_id`) ) ENGINE=MyISAM AUTO_INCREMENT=1; */ prontera,148,167,5 script Sample 757,{ query_sql( "SELECT `id`, `Count` FROM `E-MVPRank_dummy` where char_id = " + getcharid(0), .@rank, .@count ); if ( .@count ) { query_sql "delete from `E-MVPRank_dummy` where char_id = " + getcharid(0); if ( .@rank == 1 ) getitem 501,5; else if ( .@rank <= 10 ) getitem 501,10; else if ( .@rank <= 50 ) getitem 501,15; // etc.. mes "you were rank " + .@rank + " in the previous rank"; close; } query_sql( "SELECT `name`,`Count` FROM `E-MVPRank` ORDER BY `Count` DESC LIMIT 5",.@Name$,.@Count ); if( getarraysize( .@Name$ ) ){ for( set .@i,0; .@i < getarraysize( .@Name$ ); set .@i,.@i + 1 ) mes "[ "+( .@i + 1 )+". ] "+.@Name$[.@i]+" - "+.@Count[.@i]+" Points"; }else{ mes "No Record Found."; } close; OnNPCKillEvent: if( getmonsterinfo( killedrid,MOB_MVPEXP ) ) query_sql( "INSERT INTO `E-MVPRank` SET `char_id`='"+getcharid(0)+"',`name`='"+strcharinfo(0)+"',`Count`='1' ON DUPLICATE KEY UPDATE `Count`=`Count`+1" ); end; OnHour00: query_sql "truncate table `E-MVPRank_dummy`"; query_sql "INSERT into `E-MVPRank_dummy` (`id`,`char_id`,`name`,`Count`) SELECT '',`char_id`,`name`,`Count` FROM `E-MVPRank` order by `Count` desc"; query_sql "truncate table `E-MVPRank`"; }
-
maybe like this - script atcmd_monsterhunt -1,{ OnInit: bindatcmd "monsterhunt",strnpcinfo(3)+"::OnCmd"; end; OnCmd: if ( .monster_hunt_id == 0 && ( .@atcmd_numparameters == 0 || .@atcmd_parameters$[0] == "on" || .@atcmd_parameters$[0] == "off" ) ) dispbottom "there is none monster to hunt"; else if ( .@atcmd_numparameters == 0 ) dispbottom "the new monster to hunt is " + getmonsterinfo( .monster_hunt_id,0 ) + " (ID: " + .monster_hunt_id + ")"; else if ( .@atcmd_parameters$[0] == "on" ) { if ( @display_message == 0 ) dispbottom "killing a " + getmonsterinfo( .monster_hunt_id,0 ) + " (ID: " + .monster_hunt_id + ") already display a message"; else { dispbottom "killing a " + getmonsterinfo( .monster_hunt_id,0 ) + " (ID: " + .monster_hunt_id + ") will display a message"; @display_message = 0; } } else if ( .@atcmd_parameters$[0] == "off" ) { if ( @display_message == 1 ) dispbottom "killing a " + getmonsterinfo( .monster_hunt_id,0 ) + " (ID: " + .monster_hunt_id + ") already don't display a message"; else { dispbottom "killing a " + getmonsterinfo( .monster_hunt_id,0 ) + " (ID: " + .monster_hunt_id + ") won't display a message"; @display_message = 1; } } else if ( getgmlevel() >= 25 ) { if ( .@atcmd_parameters$[0] == "0" ) { dispbottom "you stop the hunt"; .monster_hunt_id = 0; } else { .@mob_name$ = getmonsterinfo( atoi(.@atcmd_parameters$[0]),0 ); if ( .@mob_name$ == "null" ) dispbottom "wrong mob id"; else { .monster_hunt_id = atoi(.@atcmd_parameters$[0]); dispbottom "the new monster to hunt is "+ .@mob_name$ + " (ID: " + .monster_hunt_id + ")"; } } } else dispbottom "@" + .@atcmd_command$ + " failed. @" + .@atcmd_command$ + " to display the mob to hunt. @" + .@atcmd_command$ + " on/off to display a message killing the mob"; end; OnNPCKillEvent: if ( .monster_hunt_id == 0 || killedrid != .monster_hunt_id ) end; if ( hunter_points >= 1000 && @display_message == 0 ) message strcharinfo(0), "you can exceed 1000 hunters points (you have " + hunter_points + " hunters points)"; else if ( hunter_points < 1000 ) { if ( @display_message == 0 ) message strcharinfo(0), "you have now " + hunter_points + " hunters points for killing a " + getmonsterinfo( .monster_hunt_id,0 ); hunter_points++; } end; } players : - @monsterhunt : display the monster to hunt - @monsterhunt on/off : display a message or not when killing the mob gm : - @monsterhunt 0 : stop the hunt - @monsterhunt <mob_id> : mob to hunt - @monsterhunt : display the monster to hunt - @monsterhunt on/off : display a message or not when killing the mob
-
I think the issue came from your client file about the unidentified item.. the monsters drop an unidentified item
-
Try to replace jobchange Job_Novice_High; by jobchange roclass(eaclass()|EAJL_UPPER);
-
turbo_room,93,117,5 script Woe Prize Reward 986,{ // setcastledata "prtg_cas01", 1, getcharid(2); // just testing .. if ( agitcheck() ) { mes "a war is currently in progress"; mes "if your guild owned a castle ask your guild master to see me to claim the reward"; close; } set .@menu, select(.menu$) -1; if ( getcastledata( .map_castle$[.@menu], 1) == getcharid(2) ) { if ( $castle_claimed & pow(2, .@menu) ) { mes "your guild already received the reward for "+ .castlename$[.@menu]; close; } else if ( getguildmasterid( getcharid(2) ) == getcharid(0) ) { mes "receiving the reward for "+ .castlename$[.@menu]; getitem 7179, 50; // some mathematics ... set $castle_claimed, $castle_claimed | pow(2, .@menu); close; } else { mes "ask your guild master to see me"; close; } } mes "your guild failed to take "+ .castlename$[.@menu]; mes "if your guild owned a castle ask your guild master to claim reward from me"; close; OnAgitEnd: set $castle_claimed, 0; // everytime woe ends the variable resets end; OnInit: waitingroom "Woe Rewarder",0; setarray .castlename$, "Kriemhild", "Swanhild", "Fadhgridh", "Skoegul", "Gondul", "Bright Arbor", "Scarlet Palace"; setarray .map_castle$, "prtg_cas01", "prtg_cas02", "prtg_cas03", "prtg_cas04", "payg_cas01", "payg_cas02"; for ( set .@i, 0; .@i < 7; set .@i, .@i +1 ) set .menu$, .menu$ + .castlename$[.@i] +":"; }
-
prontera,155,180,5 script dksfsdfkb 100,{ mes "select which skill you want to be copy, your existing one will be overwrite"; next; set .@menu, select(.menu$) -1; if ( getskilllv(.skill$[.@menu * 3 +1]) ) { mes "you already copied that skill"; close; } mes "are you sure you want to copy "+ .skill$[.@menu * 3] +"?"; mes "you'll need to relogin again"; next; if ( select ( "Yes", "No" ) == 2 ) close; .@text$ = atoi( .skill$[.@menu * 3 +2] ) > 1 ? "-" + .skill$[.@menu * 3 +2] : "" ; mes "choose a level (1" + .@text$ + ")"; if ( input( .@input, 1, ( atoi( .skill$[.@menu * 3 +2] ) > 1 ? atoi( .skill$[.@menu * 3 +2] ) : 1 )) != 0 ) { mes "wrong level"; close; } set CLONE_SKILL, atoi( .skill$[.@menu * 3 +1] ); set CLONE_SKILL_LV, .@input; atcommand "@kick "+ strcharinfo(0); end; OnInit: setarray .skill$, // "< Remove >", 0, 0, "Fire Bolt", 19, 10, "Cold Bolt", 14, 10, "Lightning Bolt", 20, 10; set .@skillsize, getarraysize(.skill$); for ( set .@i,0; .@i < .@skillsize; set .@i, .@i +3 ) set .menu$, .menu$ + .skill$[.@i] +":"; end; }
-
you could use sc_xmas like in the santa's bag 12132,Red_Bag,Santa's Bag,2,0,,200,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_Xmas,600000,0; },{},{}
-
nothing happen when the ladder is empty indeed I made a mistake. For eathena it should be a close instead of end query_sql "update guild set woe_points = 0"; end; this script use the variable of euphy's woe controller..
-
prontera,155,181,5 script Woe Points 100,{ if ( getgmlevel() > 80 ) { if ( select( "Rank", "Reset" ) == 2 ) { query_sql "update guild set woe_points = 0"; end; } } set .@nb, query_sql( "select name, woe_points from guild order by woe_points desc limit 10", .@guild_name$, .@points ); for ( set .@i, 0; .@i < .@nb; set .@i, .@i +1 ) { if ( !.@points[.@i] ) break; mes ( .@i +1 )+". "+ .@guild_name$[.@i] +" -> "+ .@points[.@i]; } close; OnClock1930: OnClock2000: OnClock2030: OnClock2100: for ( set .@i, 0; .@i < 30; set .@i, .@i +1 ) { set .@castle_guild_id, getcastledata( getvariableofnpc( .Castles$[.@i], "WOE_CONTROL" ), 1 ); if ( getvariableofnpc( .Active[0], "WOE_CONTROL" ) & 1 << .@i && .@castle_guild_id ) query_sql "update guild set woe_points = woe_points +1 where guild_id = "+ .@castle_guild_id; } end; }
-
you don't get it.. for example a mvp like thanatos (or ktu, Naght Sieger...) summoned by quest won't drop a tgc card because it will call it own event when dying.. but the others mvp will give the card.. did the other mvp give the card for you?
-
you don't have preg_match script command then try .@exclude$ = "prtg_cas01 | prtg_cas02 | payg_cas04 | payg_cas05" ;// etc.. if ( compare( .@exclude$,strcharinfo(3) ) == 0 ) query_sql "update guild set woe_points = woe_points +1 where guild_id = "+ getcharid(2);
-
The mvp with theirs owns event don't trigger onnpckillevent abbey02,236,78,21,18 boss_monster Fallen Bishop 1871,1,7200000,600000,1 will trigger onnpckillevent and give a tgc abbey02,236,78,21,18 boss_monster Fallen Bishop 1871,1,7200000,600000,"npcbiddon:OnEvent" won't give a tgc .. maybe because of that?
-
N>Script that disables MVP and Mini Boss Cards in a certain maps
Capuche replied to xxx69's question in Script Requests
replace for( .@i = 0; .@i < .item_size; .@i++ ){ by for( .@i = 0; .@i < .map_size; .@i++ ){ -
- script Sample -1,{ OnPCLoadMapEvent: .@map$ = strcharinfo(3); if ( .@map$ == "guild_vs1" || .@map$ == "guild_vs2" || .@map$ == "guild_vs3" ) { query_sql "SELECT `guild_lv` FROM `guild` WHERE `guild_id` = '" +getcharid(2)+ "'",.@c; if ( .@c > 30 ) { message strcharinfo(0),"Your guild members are over the limit"; sleep2 2000; warp "prontera",150,150; } } end; } guild_vs1 mapflag loadevent guild_vs2 mapflag loadevent guild_vs3 mapflag loadevent