Jump to content

n0tttt

Members
  • Posts

    303
  • Joined

  • Days Won

    12

Posts posted by n0tttt

  1. I don't know if this will be useful for your or not.

    -	script	Monster_Walk	-1,{
    
    OnInit:
    
    	.@id = monster("prontera",150,150,"Poring",1002);
    	setarray .@path[0],	155,150,
    				155,155,
    				160,155,
    				165,160;
    
    	.@size = getarraysize(.@path);
    
    	while(true) {
    		unitwalk .@id,.@path[.@i*2],.@path[.@i*2 + 1];
    		.@i = (.@i + 2)%.@size;
    		sleep 1200;
    	}
    
    	end;
    
    }

     

    • Upvote 1
  2. As of now, there isn't a script command to retrieve the timer or the hunted amount of a given mob in a quest. There's only checkquest(<id>,PLAYTIME) or checkquest(<id>,HUNTING) which only retrieves if the timer has been reached, or if the amount has been hunted. It'd be useful to have a command which returns the sd->quest_log[id].time parameter or sd->quest_log.count[j]
    This way there wouldn't be a need for variables like etower_timer, and this would be useful to retrieve this info instantly for multiple specified quests.
    Here's what I propose:

    *getquestinfo(<quest>,<type>{,<mob id>{,<char_id>})
    
    Returns the quest information of the given character.
    
    Valid info types:
     PLAYTIME: returns the internal timer of the quest.
     HUNTING: returns the amount of <mob id> already hunted.
    
    Examples:
    
    	mes "You've hunted "+getquestinfo(60301,HUNTING,1155)+" Petit.";
    
    	.@timer = getquestinfo(60200,PLAYTIME);
    	mes "You still have to wait "+Time2Str(.@wait)+" to enter Endless Tower again.";

     

    And here's a little snippet to check instance timers easily, which would be one of the main uses of this type of command I think.

    	setarray .@instance$[0],"Endless Tower","Sealed Catacomb";
    	setarray .@quest_id[0],60200,3040;
    	setarray .@status$[0],"Unavaiaible","990000","Avaiaible","009900";
    	for(.@size = getarraysize(.@instance$);.@i < .@size;.@i++) {
    		.@time$ = "";
    		.@status = checkquest(.@quest_id[.@i],PLAYTIME);
    		.@status = .@status == -1 || .@status == 2;
    		if(.@status) {
    			.@timer = getquestinfo(.@quest_id[.@i],PLAYTIME);
    			.@time$ = Time2Str(.@timer);
    		}
    		dispbottom .@instance$[.@i]+": "+.@status$[.@status*2]+" "+.@time$+".","0x"+.@status$[.@status*2 + 1];
    	}
    	end;

     

    • Upvote 6
  3. You can't with that mapflag, but if you know how to recompile then you can do this.

    pc.cpp, change:

    	if( !battle_config.pk_mode && mapdata->flag[MF_PVP] && !mapdata->flag[MF_PVP_NOCALCRANK] ) {
    		sd->pvp_point -= 5;
    		sd->pvp_lost++;
    		if( src && src->type == BL_PC ) {
    			struct map_session_data *ssd = (struct map_session_data *)src;
    			ssd->pvp_point++;
    			ssd->pvp_won++;
    		}
    		if( sd->pvp_point < 0 ) {
    			add_timer(tick+1000, pc_respawn_timer,sd->bl.id,0);
    			return 1|8;
    		}
    	}

    to:

    	if( !battle_config.pk_mode && mapdata->flag[MF_PVP] && !mapdata->flag[MF_PVP_NOCALCRANK] ) {
    		sd->pvp_point -= 5;
    		sd->pvp_lost++;
    		if( src && src->type == BL_PC ) {
    			struct map_session_data *ssd = (struct map_session_data *)src;
    			ssd->pvp_point++;
    			ssd->pvp_won++;
    		}
    	}

    With this change you can just use pvp mapflag instead of pvp_nocalcrank and players won't be respawned. The counter will also remain.

    • Love 1
  4. It's %, not a fixed amount.

    Check the examples:

    // MC_MAMMONITE,BL_PC,1,50 // In normal maps, players deal +50% damage to other players with Mammonite.
    // MO_EXTREMITYFIST,BL_PC,6,-50 // In PVP and GVG, players deal -50% (half) damage to other players with Asura Strike.
    // AB_ADORAMUS,BL_PC,6,50,0,10,15 // In PVP and GVG, players deal +50% damage to other players, +0% to mobs, +10% to bosses, and +15% to other with Adoramus.

     

  5. I don't know if this will work but I don't lose anything trying...

    Change:

    	case WL_TETRAVORTEX:
    		if( sd && sc ) { // No SC? No spheres
    			int spheres[5] = { 0, 0, 0, 0, 0 },
    				positions[5] = {-1,-1,-1,-1,-1 },
    				i, j = 0, k, subskill = 0;
    
    			for( i = SC_SPHERE_1; i <= SC_SPHERE_5; i++ )
    				if( sc->data[i] ) {
    					spheres[j] = i;
    					positions[j] = sc->data[i]->val2;
    					j++;
    				}
    
    			// Sphere Sort, this time from new to old
    			for( i = 0; i <= j - 2; i++ )
    				for( k = i + 1; k <= j - 1; k++ )
    					if( positions[i] < positions[k] ) {
    						SWAP(positions[i],positions[k]);
    						SWAP(spheres[i],spheres[k]);
    					}
    
    			if(j == 5) { // If 5 spheres, remove last one and only do 4 actions (Official behavior)
    				status_change_end(src, static_cast<sc_type>(spheres[4]), INVALID_TIMER);
    				j = 4;
    			}
    
    			k = 0;
    			for( i = 0; i < j; i++ ) { // Loop should always be 4 for regular players, but unconditional_skill could be less
    				switch( sc->data[spheres[i]]->val1 ) {
    					case WLS_FIRE:  subskill = WL_TETRAVORTEX_FIRE; k |= 1; break;
    					case WLS_WIND:  subskill = WL_TETRAVORTEX_WIND; k |= 4; break;
    					case WLS_WATER: subskill = WL_TETRAVORTEX_WATER; k |= 2; break;
    					case WLS_STONE: subskill = WL_TETRAVORTEX_GROUND; k |= 8; break;
    				}
    				skill_addtimerskill(src, tick + i * 200, bl->id, k, 0, subskill, skill_lv, i, flag);
    				clif_skill_nodamage(src, bl, subskill, skill_lv, 1);
    				status_change_end(src, static_cast<sc_type>(spheres[i]), INVALID_TIMER);
    			}
    		}
    		break;

    to:

    	case WL_TETRAVORTEX:
    		if( sd && sc ) { // No SC? No spheres
    			int spheres[5] = { 0, 0, 0, 0, 0 },
    				positions[5] = {-1,-1,-1,-1,-1 },
    				i, j = 0, k, subskill = 0;
    
    			for( i = SC_SPHERE_1; i <= SC_SPHERE_5; i++ )
    				if( sc->data[i] ) {
    					spheres[j] = i;
    					positions[j] = sc->data[i]->val2;
    					j++;
    				}
    
    			// Sphere Sort, this time from new to old
    			for( i = 0; i <= j - 2; i++ )
    				for( k = i + 1; k <= j - 1; k++ )
    					if( positions[i] < positions[k] ) {
    						SWAP(positions[i],positions[k]);
    						SWAP(spheres[i],spheres[k]);
    					}
    
    			if(j == 5) { // If 5 spheres, remove last one and only do 4 actions (Official behavior)
    				status_change_end(src, static_cast<sc_type>(spheres[4]), INVALID_TIMER);
    				j = 4;
    			}
    
    			k = 0;
    			for( i = 0; i < j; i++ ) { // Loop should always be 4 for regular players, but unconditional_skill could be less
    				switch( sc->data[spheres[i]]->val1 ) {
    					case WLS_FIRE:  subskill = WL_TETRAVORTEX_FIRE; k |= 1; break;
    					case WLS_WIND:  subskill = WL_TETRAVORTEX_WIND; k |= 4; break;
    					case WLS_WATER: subskill = WL_TETRAVORTEX_WATER; k |= 2; break;
    					case WLS_STONE: subskill = WL_TETRAVORTEX_GROUND; k |= 8; break;
    				}
    				skill_addtimerskill(src, tick + i * 200, bl->id, k, 0, subskill, skill_lv, i, flag);
    				clif_skill_nodamage(src, bl, subskill, skill_lv, 1);
    				status_change_end(src, static_cast<sc_type>(spheres[i]), INVALID_TIMER);
    			}
    		} else if(!sd) {
    			int k;
    			for( i = 0; i < 4; i++ ) {
    				switch( i ) {
    					case 0:  subskill = WL_TETRAVORTEX_FIRE; k |= 1; break;
    					case 1:  subskill = WL_TETRAVORTEX_WIND; k |= 4; break;
    					case 2:  subskill = WL_TETRAVORTEX_WATER; k |= 2; break;
    					case 3:  subskill = WL_TETRAVORTEX_GROUND; k |= 8; break;
    				}
    				skill_addtimerskill(src, tick + i * 200, bl->id, k, 0, subskill, skill_lv, i, flag);
    				clif_skill_nodamage(src, bl, subskill, skill_lv, 1);
    			}
    		}
    		break;

     

  6. //===== rAthena Script =======================================
    //= Healer
    //===== By: ==================================================
    //= Euphy
    //===== Current Version: =====================================
    //= 1.1
    //===== Compatible With: =====================================
    //= rAthena Project
    //===== Description: =========================================
    //= Basic healer script.
    //===== Additional Comments: =================================
    //= 1.0 Initial script.
    //= 1.1 Aligned coordinates with @go.
    //============================================================
    
    -	script	Healer	-1,{
    
    	.@Price = 0;	// Zeny required for heal
    	.@Buffs = 0;	// Also buff players? (1: yes / 0: no)
    	.@Delay = 0;	// Heal delay, in seconds
    
    	if (@HD > gettimetick(2)) {
    		message strcharinfo(0),"You need to wait "+Time2Str(@HD)+" before using this service again.";
    		end;
    	}
    	if (.@Price) {
    		message strcharinfo(0), "Healing costs " + callfunc("F_InsertComma",.@Price) + " Zeny.";
    		if (Zeny < .@Price)
    			end;
    		if (select("^0055FFHeal^000000:^777777Cancel^000000") == 2)
    			end;
    		Zeny -= .@Price;
    	}
    	specialeffect2 EF_HEAL2;
    	percentheal 100,100;
    	if (.@Buffs) {
    		specialeffect2 EF_INCAGILITY;
    		sc_start SC_INCREASEAGI,240000,10;
    		specialeffect2 EF_BLESSING;
    		sc_start SC_BLESSING,240000,10;
    	}
    	if (.@Delay)
    		@HD = gettimetick(2) + .@Delay;
    	end;
    }
    
    
    // Duplicates
    //============================================================
    alberta,25,240,6	duplicate(Healer)	Healer#alb	909
    aldebaran,135,118,6	duplicate(Healer)	Healer#alde	909
    amatsu,200,79,4	duplicate(Healer)	Healer#ama	909
    ayothaya,207,169,6	duplicate(Healer)	Healer#ayo	909
    comodo,184,158,6	duplicate(Healer)	Healer#com	909
    einbech,57,36,6	duplicate(Healer)	Healer#einbe	909
    einbroch,57,202,6	duplicate(Healer)	Healer#einbr	909
    geffen,115,72,6	duplicate(Healer)	Healer#gef	909
    gonryun,156,122,6	duplicate(Healer)	Healer#gon	909
    hugel,89,150,6	duplicate(Healer)	Healer#hug	909
    izlude,121,150,6	duplicate(Healer)	Healer#izl	909	//Pre-RE: (125,118)
    jawaii,250,139,4	duplicate(Healer)	Healer#jaw	909
    lighthalzen,152,100,6	duplicate(Healer)	Healer#lhz	909
    louyang,226,103,4	duplicate(Healer)	Healer#lou	909
    manuk,272,144,6	duplicate(Healer)	Healer#man	909
    mid_camp,203,289,6	duplicate(Healer)	Healer#mid	909
    moc_ruins,72,164,4	duplicate(Healer)	Healer#moc	909
    morocc,153,97,6	duplicate(Healer)	Healer#mor	909
    moscovia,220,191,4	duplicate(Healer)	Healer#mos	909
    niflheim,212,182,5	duplicate(Healer)	Healer#nif	909
    payon,179,106,4	duplicate(Healer)	Healer#pay	909
    prontera,162,193,4	duplicate(Healer)	Healer#prt	909
    rachel,125,116,6	duplicate(Healer)	Healer#rac	909
    splendide,201,153,4	duplicate(Healer)	Healer#spl	909
    thor_camp,249,74,4	duplicate(Healer)	Healer#thor	909
    umbala,105,148,3	duplicate(Healer)	Healer#umb	909
    veins,217,121,4	duplicate(Healer)	Healer#ve	909
    xmas,143,136,4	duplicate(Healer)	Healer#xmas	909
    yuno,164,45,4	duplicate(Healer)	Healer#yuno	909
    
    // Duplicates (Renewal)
    //============================================================
    brasilis,194,221,6	duplicate(Healer)	Healer#bra	909
    dewata,195,187,4	duplicate(Healer)	Healer#dew	909
    dicastes01,201,194,4	duplicate(Healer)	Healer#dic	909
    ecl_in01,45,60,4	duplicate(Healer)	Healer#ecl	909
    malangdo,132,114,6	duplicate(Healer)	Healer#mal	909
    malaya,227,204,6	duplicate(Healer)	Healer#ma	909
    mora,55,152,4	duplicate(Healer)	Healer#mora	909

     

    • Upvote 1
  7. Don't know if works.

    //===== rAthena Script =======================================
    //= PvP log
    //===== By: ================================================== 
    //= Vietlubu
    //===== Description: =========================================
    //= Simple SQL PvP log
    //= Notes:
    //= - Create table `pvplog` when start script.
    //= - Add new record when has OnPCKillEvent
    //= - Remove NCP PvP Ranking if you don't want to use.
    //===== Compatible With: ===================================== 
    //= rAthena Project
    //===== Changelogs: ==========================================
    //= 1.0 First version.
    //============================================================
    
    prontera,155,181,5	script	PvP Ranking	430,{
    	.@limitRanking = 3;
    	.@limitEnemies = 3;
    
    	mes "[PvP Ranking]";
    	//menu "Ranking of month", L_RankMonth, "Ranking of week", L_RankWeek, "Ranking of day", L_RankDay;
    
    	select "Ranking of month", "Ranking of week", "Ranking of day", "My enemies";
    	if (@menu < 4) {
    		// Ranking
    		switch(@menu) {
    			case 1:
    				.@ranking$ = "MONTH";
    				.@message$ = "Ranking of month";
    				break;
    			case 2:
    				.@ranking$ = "WEEK";
    				.@message$ = "Ranking of week";
    				break;
    			case 3:
    				.@ranking$ = "DAY";
    				.@message$ = "Ranking of day";
    				break;
    		}
    
    		query_sql("SELECT `char`.`id``char`.`name`, COUNT(`char`.`name`) AS count_kill FROM `pvplog` INNER JOIN `char` ON `char`.`char_id` = `pvplog`.`killer_id` WHERE " + .@ranking$ + "(`pvplog`.`pvp_date`) = " + .@ranking$ + "(CURRENT_DATE()) GROUP BY `char`.`name` ORDER BY count_kill DESC LIMIT " + .@limitRanking, .@id, .@name$, .@count_kill);
    		
    		mes .@message$;
    		for( .@size = getarraysize(.@name$); .@i < .@size; .@i++ ) {
    			query_sql("SELECT COUNT(`pvplog`.`victim_id`) FROM `pvplog` WHERE `pvplog`.`victim_id` = '"+.@id[.@i]+" AND " + .@ranking$ + "(`pvplog`.`pvp_date`) = " + .@ranking$ + "(CURRENT_DATE())", .@count_death);
    			mes "Top " + (.@i+1) + ": ^2ecc71" + .@name$[.@i] + "^000000 kills times: ^e74c3c" + .@count_kill[.@i]/"+.@count_death+" + "^000000";	
    		}
    
    	} else if (@menu == 4) {
    		query_sql("SELECT `char`.`name`, COUNT(`char`.`name`) AS count_kill FROM `pvplog` INNER JOIN `char` ON `char`.`char_id` = `pvplog`.`killer_id` WHERE `pvplog`.`victim_id` = " + getcharid(0) + " GROUP BY `char`.`name` ORDER BY count_kill DESC LIMIT " + .@limitEnemies, .@name$, .@count_kill);
    		
    		mes "Top your enemies:";
    		for( .@size = getarraysize(.@name$); .@i < .@size; .@i++ ) {
    			mes "Top "+(.@i+1)+": ^e74c3c" + .@name$[.@i] + "^000000 kill you ^2ecc71" + .@count_kill[.@i] + "^000000 times" + "^000000";
    		}
    	}
    	close;
    
    	L_RankMonth:
    		mes "Ranking of month";
    		close;
    	
    	L_RankWeek:
    		mes "Ranking of week";
    		close;
    
    	L_RankDay:
    		mes "Ranking of day";
    		close;
    
    	end;
    }
    
    -	script	pvplog	-1,{
    	OnInit:
    		query_sql("CREATE TABLE IF NOT EXISTS `pvplog` (`pvp_id` mediumint(9) unsigned NOT NULL auto_increment, `pvp_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `killer_id` int(11) NOT NULL default '0', `victim_id` int(11) NOT NULL default '0', `map` varchar(11) NOT NULL default '', PRIMARY KEY  (`pvp_id`)) ENGINE=MyISAM AUTO_INCREMENT=1;");
    		end;
    
    	OnPCKillEvent:
    		query_sql("INSERT INTO `pvplog` (`killer_id`, `victim_id`, `map`) VALUES ('" + getcharid(0) + "', (SELECT `char_id` FROM `char` WHERE `name` = '" + rid2name(killedrid) + "'), '" + strcharinfo(3) + "');");
    		end;
    }

     

  8. I don't know if I got this right...

    item_db.txt:

    31024,Immortal_Cursed_Knight_Card,Immortal Cursed Knight Card,6,20,,10,,,,,,,,2,,,,,{ bonus bAtkRate,10; bonus5 bAutoSpell,2066,5,20,ATF_WEAPON,1; },{},{}
    31025,Immortal_Wind_Ghost_Card,Immortal Wind Ghost Card,6,20,,10,,,,,,,,2,,,,,{ bonus bMatkRate,10; bonus5 bAutoSpell,2450,5,20,ATF_MAGIC,1; },{},{}
    31026,Immortal_Cursed_Knight_Card,Immortal Cursed Knight Card,6,20,,10,,,,,,,,2,,,,,{ bonus5 bAutoSpellWhenHit,2443,5,35,ATF_WEAPON,0; bonus5 bAutoSpellWhenHit,2444,5,80,ATF_MAGIC,0; autobonus "{ bonus bFlee,200; }",30,10000,BF_WEAPON; autobonus "{ bonus bSpeedRate,10; }",25,10000,BF_MAGIC; },{},{}

    item_combo_db.txt:

    31024:31025:31025,{ bonus bAspd,1; bonus bVariableCastrate,-10; }

     

    • Love 2
  9. -	script	Megaphone	-1,{
    
    OnCommand:
    
    	if(vip_status(VIP_ACTIVE)) {
    		setarray .@color$[0],"ff0000","00ff00","0000ff";
    		for(.@size = getarraysize(.@color$);.@i < .@size;.@i++)
    			.@menu$+= "^"+.@color$[.@i]+"Sample:";
    		.@color = select(.@menu$) - 1;
    		input .@msg$;
    		if(.@msg$ != " " && .@msg$ != "0")
    			announce strcharinfo(0)+": "+.@msg$,bc_all,"0x"+.@color$[.@color];
    	} else {
    		message strcharinfo(0),"This command is only avaiaible to VIPs.";
    	}
    	end;
    
    OnInit:
    
    	bindatcmd "torpedo","Megaphone::OnCommand";
    	end;
    
    }

     

    • Love 1
  10. Maybe because you're casting a targeted skill to the ground?

    payon,162,219,4	script	Unit Master	101,{
    
    	.@amount = 1;
    	for (.@i = 0; .@i < .@amount; .@i++) {
    		monster ("payon",167,215,"Poporing",1031,.@amount);
    		.@mid[.@i] = $@mobid[0];
    		setunitdata .@mid[.@i],UMOB_LEVEL,1;
    		setunitdata .@mid[.@i],UMOB_MAXHP,10000;
    		setunitdata .@mid[.@i],UMOB_ATKMIN,10000;
    		setunitdata .@mid[.@i],UMOB_ATKMAX,21000;
    		setunitdata .@mid[.@i],UMOB_MATKMIN,10000;
    		setunitdata .@mid[.@i],UMOB_MATKMAX,21000;
    		setunitdata .@mid[.@i],UMOB_HIT,10000;
    		setunitdata .@mid[.@i],UMOB_ATKRANGE,5;
    		setunitdata .@mid[.@i],UMOB_ADELAY,100;
    	}
    
    	monster ("payon",172,215,"Mandragora",1020,.@amount);
    	.@target = $@mobid[0];
    	unitskilluseid .@mid[0],19,3,.@target;
    	end;
    
    }

     

    • Upvote 1
  11. -	script	Megaphone	-1,{
    
    OnCommand:
    
    	if(vip_status(VIP_ACTIVE)) {
    		setarray .@color$[0],"ff0000","00ff00","0000ff";
    		for(.@size = getarraysize(.@color$);.@i < .@size;.@i++)
    			.@menu$+= "^"+.@color$[.@i]+"Sample:";
    		.@color = select(.@menu$) - 1;
    		input .@msg$;
    		if(.@msg$ != " " && .@msg$ != "0")
    			announce .@msg$,bc_all,"0x"+.@color$[.@color];
    	} else {
    		message strcharinfo(0),"This command is only avaiaible to VIPs.";
    	}
    	end;
    
    OnInit:
    
    	bindatcmd "torpedo","Megaphone::OnCommand";
    	end;
    
    }

     

    • Upvote 1
  12. Maybe now? I read something about rids in unitattack.

    function	script	F_botex	{
    	set .@i,0;
    	set .@rid,getcharid(3);
    	while (.@i < 1) {
    		set .@b,0;
    		dispbottom .@i+"";
    		.@rid = getcharid(3);
    		getmapxy(.@m$,.@x0,.@y0,0);
    		sleep2 100;
    		.@x = rand(-13,13)+.@x0;
    		.@y = rand(-13,13)+.@y0;
    		sleep2 100;
    		if(!checkcell( .@m$,.@x,.@y,cell_chkpass )){
    			dispbottom "Coordinate not exists!";
    			continue;
    		} else if(checkcell( .@m$,.@x,.@y,cell_chkpass )){
    			dispbottom "Coordinate exists!";
    		}
    		sleep2 100;
    		while(.@x0 != .@x && .@y0 != .@y) {
    			set .@b,.@b+1;
    			viewpoint 1,.@x,.@y,1,0xFF0000;
    			dispbottom "auto walking to x = "+.@x+" y = "+.@y;
    			unitwalk getcharid(3),.@x,.@y,strnpcinfo(3)+"::OnReach";
    			sleep2 2000;
    			if(.@b > 5) break;
    			getmapxy(.@m$,.@x0,.@y0,0);
    			sleep2 100;
    		}
    		.@n = getareaunits(BL_MOB,.@m$,.@x0 + 5,.@y0 + 5,.@x0 - 5,.@y0 - 5,.@mob);
    		detachrid;
    		unitattack .@rid,.@mob[rand(.@n)],true;
    		attachrid .@rid;
    		percentheal 100,100;
    		sleep2 100;
    		dispbottom "JackJack";
    	}
    	end;
    }

     

    • Love 1
  13. Based on Mahiro's suggestion:

    -	script	paytowinbuffs	-1,{
    OnPCStatCalcEvent:
    	if(isequippedcnt(4263,1755) > 0) {
    		for(;.@i < .ele_size;.@i++)
    			sc_end .elements[.@i];
    	}
    	end;
    OnBuffs:
    	if(gettimetick(2) < @use_delay){
    		dispbottom( "You have to wait "+Time2Str(@use_delay)+" to use the command again.", 0xFF0000 );
    		end;
    	}
    	if(getgroupid() <= 4) {
    		message strcharinfo(0),"Falha, você não possui VIP.";
    		end;
    	}
    	if(isequippedcnt(4263,1755) > 0) {
    		message strcharinfo(0),"Não funciona equipado com Samurai Encarnado.";
    		end;
    	}
    	for(;.@i < .ele_size;.@i++)
    		sc_end .elements[.@i];
    	.@menu$ = implode(.buffs$,":");
    	.@i = prompt(.@menu$) -1;
    	if(.@i < 254 && gettimetick(2) >= @use_delay && isequippedcnt(4263,1755) < 1) {
    		sc_start .elements[.@i],180000,5;
    		@use_delay = gettimetick(2) + .use_delay;
    	}
    	end;
    OnInit:
    	.use_delay = 30; // 30 second use delay
    	setarray .buffs$, "^800080Envenenar Arma^000000", "^40E0D0Aspersio^000000", "^000000Sombrio^000000", "^FFD700Encantar com Ventania^000000", "^0000FFEncantar com Geada^000000", "^FF0000Encantar com Chama^000000", "^B8860BEncantar com Terremoto^000000";
    	setarray .elements, 26, 37, 144, 98, 97, 96, 99;
    	.ele_size = getarraysize(.elements);
    	bindatcmd "encantar","paytowinbuffs::OnBuffs",0,99;
    	end;
    }

     

    • Upvote 1
  14. -	script	Megaphone	-1,{
    
    OnCommand:
    
    	setarray .@color$[0],"ff0000","00ff00","0000ff";
    	for(.@size = getarraysize(.@color$);.@i < .@size;.@i++)
    		.@menu$+= "^"+.@color$[.@i]+"Sample:";
    	.@color = select(.@menu$) - 1;
    	input .@msg$;
    	if(.@msg$ != " " && .@msg$ != "0")
    		announce .@msg$,bc_all,"0x"+.@color$[.@color];
    	end;
    
    OnInit:
    
    	bindatcmd "torpedo","Megaphone::OnCommand",5;
    	end;
    
    }

     

    • Love 1
  15. prontera,100,100,4	script	VIP Room Winners	100,{
    
    	setarray .@castles$[0],
    		"prtg_cas01","prtg_cas02","prtg_cas03","prtg_cas04","prtg_cas05",
    		"payg_cas01","payg_cas02","payg_cas03","payg_cas04","payg_cas05",
    		"gefg_cas01","gefg_cas02","gefg_cas03","gefg_cas04","gefg_cas05",
    		"aldeg_cas01","aldeg_cas02","aldeg_cas03","aldeg_cas04","aldeg_cas05",
    		"arug_cas01","arug_cas02","arug_cas03","arug_cas04","arug_cas05",
    		"schg_cas01","schg_cas02","schg_cas03","schg_cas04","schg_cas05";
    
    	.@guild = getcharid(2);
    	for(.@size = getarraysize(.@castles$);.@i < .@size;.@i++) {
    		.@winner = getcastledata(.@castles$[.@i],CD_GUILD_ID);
    		if(.@winner && .@winner == .@guild) {
    			warp "viproom",0,0;
    			end;
    		}
    	}
    	mes "This room is only for winners.";
    	close;
    
    }

     

×
×
  • Create New...