Jump to content

WhatFT

Members
  • Posts

    511
  • Joined

  • Last visited

Posts posted by WhatFT

  1. 1.

    OnPCDieEvent:
    if( strcharinfo(3) == "cell_game" ){
    sleep2 100;
    atcommand "@Alive";
    warp strcharinfo(3),0,0;
    

     

    2.

    cell_game    mapflag    nocommand    99 // 99 = GM Level to pass this mapflag

    Thank you for the reply, I already added this thanks :)

     

     

     

    Ohh I see, I have already Dota Script will it have any conflicts If I already have Dota Script and I added another Dota Script to this script?

  2. Hello rAthena, I'm learning how to make a NPC Script but right now I'm still below the amateur level lol  :)) Hope someone will help me..

     

    I made this script myself and It's working properly but I just had a few questions and few additions on my script.. thank you

     


    //Xerus RO Paulinds
    //[Simple] SUPER PVP ROOM
    
    //NPC 1
    gonryun,168,210,5	script	Super Deathmatch	451,{
    
    		mes "Looks like you want to participate the Rumble huh!?";
    		mes "Before I'll let you in, Do you want to know about information about the Rumble?";
    			menu "Sure !",Q_YES,"Just warp me in!",Q_YES1;
    
    	Q_YES:
    		mes "You will need the version 3.5 so you can participate in the Arena.";
    	next;
    		mes "First thing you'll do is you need to ^330000Survive^000000 this rumble";
    	next;
    		mes "You're original items will be stored instantly from your inventory";
    	next;
    		mes "You can also choose your equipments once you entered the arena.";
    	next;	
    		mes "Warping, Teleporting or any @commands are disabled inside the arena.";
    	next;
    		mes "The equipments available in the arena is only useful in that Rumble";
    	next;
    		mes "You can't even take that equipment outside the Rumble.";
    	next;
    		mes "Remember that those equipments are only available inside, you cannot keep as yours forever";
    	next;		
    		mes "Once you die, there is a chance that those equipment will be dropped and players can gather it as they want";
    	next;
    		mes "You can quit anytime you want, my partner is always inside the Arena to watch over";
    	next;
    		mes "Once you left the Arena, the equipments that you choose/gathered will be dropped and items in your inventory will be reset";
    	next;
    		mes "You can come anytime you want but you'll have to buy time when your choosing your equipments";
    	next;
    		mes "This can be hosted by a Game Master where you can get a BIG REWARD once hosted.";
    	close;
    
    	Q_YES1:
    		mes "Looks like your really into it !";
    		mes "Goodluck then.";
    		atcommand "@storeall";
    		warp "evt_coke",23,28;
    		
    	}
    
    
    //NPC 2
    evt_coke,33,33,5	script	Equipment Giver	452,{
    
    	if(#bonus == 0){
    		mes "You can only choose 1 set that gives equal effects to every participants";
    	next;
    		mes "This set is good for all jobs so everyone will have an equal PKs";
    		getitem	30114,1;
    		getitem	20037,1;
    		getitem	25208,1;
    		getitem	30115,2;
    		getitem	30116,2;
    		getitem	30117,3;
    		getitem	30118,2;
    	set #bonus,1;
    	next;
    		mes "There you go..";
    	next;
    		mes "You can also look for MvP Cards & Weapons over there.";
    		mes "Goodluck !";
    	close;
    	}
    	if(#bonus == 1){
    		mes "Looks like you're ready to enter the Arena !";
    	next;
    		mes "Are you ready?";
    			menu "Not yet",Q_QWE,"Let me in !",Q_QWER;
    	Q_QWE:
    		mes "Okay..";
    		close;
    
    	Q_QWER:
    		mes "Goodluck !";
    	announce strcharinfo(0)+" entered the Arena !",0;
    	warp "cell_game",0,0;
    		close;
    
    }
    	}	
    
    //NPC 3
    evt_coke,26,36,5	shop	Card Seller	453,4236:90,4425:90,4372:90,4147:90,4145:90,4168:90,4386:90,4142:90,4134:90,4137:90,4123:90,4330:90,4441:90,4324:90,4408:90,4128:90,4430:90,4263:90,4403:90,4318:90,4419:90,4376:90,4276:90,4146:90,4132:90,4131:90,4143:90,4135:90,4144:90,4148:90,4121:90,4342:90,4302:90,4399:90,4305:90,4407:90,4374:90,4352:90,4169:90,4174:90,4047:90,4354:90,4271:90,4278:90,4087:90,4412:90,4311:90,4411:90,4054:90,4114:90,4119:90,4170:90,4173:90,4141:90,4005:90,4092:90,4341:90,4348:90,4349:90,4064:90,4301:90,4051:90,4022:90,4103:90,4044:90,4058:90,4133:90,4334:90,4085:90,4097:90,4160:90,4172:90,4433:90,4416:90
    
    //NPC 4
    evt_coke,22,36,5	shop	Weapon Seller	453,13011:50000,1231:50000,1228:50000,13034:50000,1237:50000,13017:50000,13032:50000,13016:50000,13035:50000,13027:50000,1108:50000,1133:50000,1131:50000,1175:50000,1182:50000,1408:50000,1544:50000,1505:50000,16001:50000,1538:50000,1532:50000,1622:50000,1646:50000,1624:50000,1644:50000,1705:50000,1736:50000,1745:50000,1822:50000,1802:50000,1925:50000,1906:50000,1904:50000,1902:50000,1951:50000,1550:50000,1568:50000,1570:50000,1571:50000,1569:50000,1579:50000,1266:50000,1275:50000,1278:50000,1276:50000,1277:50000,1264:50000,13304:50000,13302:50000,13150:50000,13103:50000,13152:50000,13105:50000,13107:50000
    
    //NPC 5
    evt_coke,30,36,5	shop	Usable & Misc Items	453,12257:5000,678:5000,606:5000,645:5000,656:5000,657:5000,1025:5000,12114:5000,12115:5000,12116:5000,12117:5000,7139:5000,7136:5000,7135:5000,7138:5000,7137:5000,717:5000,715:5000,716:5000
    
    //NPC 6
    evt_coke,26,25,5	shop	Ammunitions	453,1766:50,1755:20,1750:10,1754:20,1761:20,1752:20,1760:20,1759:20,1772:100,1757:30,1770:20,1769:30,1765:40,1763:30,1762:30,1767:30,1764:30,1751:20,1768:30,1753:30,1756:30,1758:30,1771:1000,13200:50,13202:100,13201:300,13206:500,13203:500,13207:500,13204:500,13205:500,13252:50,13254:500,13251:100,13253:300,13250:50,13256:50,13259:50,13258:50,13255:50,13257:50,7522:500,7521:500,7523:500,7524:500
    
    //NPC 7
    cell_game,151,145,5	script	Exit#1	451,{
    
    		mes "Can't handle it anymore?";
    	next;
    		announce strcharinfo(0)+" left the Arena !",0;
    	atcommand "@dropall";
    	atcommand "@itemreset";
    	set #bonus,0;
    		warp "prontera",0,0;
    }
    
    //MAPFLAG
    cell_game	mapflag	nocommand	99
    

     

     

     

    • I want to add in my script, A Point System, once they enter the Arena, there will be a dispbottom they Arena Points & there will be an NPC where they can exchange their arena points just like Cash Points..
    • Everytime they kill a player with 3 kills, they will get 1 point.. If they die, it will be reduced by 1. 
    • 3 Kills = 1 Point, 1 Death = -1 Point
    • Once they clicked the Exit NPC, the Arena Points will show their total points. 
  3. prontera,156,177,5    script    WoE Prize    100,{//    setcastledata "prtg_cas01", 1, getcharid(2); // debug    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;    }    select "Kriemhild [Primary Castle]";    if ( getcastledata( "prtg_cas01", 1) != getcharid(2) ) {        mes "Your guild failed to take this castle";        close;    }    if ( $castle_claimed[1] ) {        mes "Your guild already received the reward for this castle";        close;    }    if ( getguildmasterid( getcharid(2) ) != getcharid(0) ) {        mes "Ask your Guild Master to see me";        close;    }    mes "receiving the reward for this castle";    if ( $castle_prtg1_gid != getcharid(2) ) {        $castle_claimed_times[1] = 0;        $castle_prtg1_gid = getcharid(2);    }    if ( !$castle_claimed_times[1] ) { // 1st time        getitem 7960,200;        getitem 12103,20;        getitem 7959,20;    }    else if ( $castle_claimed_times[1] == 1 ) { // 2nd time        getitem 7960,250;        getitem 12103,30;        getitem 7959,30;    }    else { // 3rd time onwards        getitem 7960,300;        getitem 12103,40;        getitem 7959,40;    }    $castle_claimed[1] = 1;    $castle_claimed_times[1]++;    close;OnAgitEnd:    $castle_claimed[1] = 0; // everytime woe ends the variable resets    end;OnInit:    waitingroom "Kriemhild Reward",0;    end;
    }

    I don't actually understand to tab this..

  4. Good day rAthena :) looking for some help to modify the script...

     

    -	script	FunctionOnAgitEndReward	-1,{
    
    OnAgitEnd:
    	if(attachrid(getcharid(3,getguildmaster(getcastledata("prtg_cas01",1)))))
    	{
    		callsub Getitemx;
    		end;
    	}
    	set .d,0;
    	while(getd("$d_OnAgitEndReward_prtg_cas01_"+.d))
    	{
    		set .d,.d+1;
    		if(.d>5)
    		{
    			while(getd("$d_OnAgitEndReward_prtg_cas01_"+.d))
    			{
    				setd "$d_OnAgitEndReward_prtg_cas01_"+.d,0;
    				set .d,.d-1;
    			}
    			set .d,-999;
    			break;
    		}
    	}
    	if(.d==-999)end;
    	setd "$d_OnAgitEndReward_prtg_cas01_"+.d,1;
    	end;
    
    Getitemx:
    	getitem 671,200;
    	getitem 30153,200;
    	getitem 13514,50;
    	getitem 29999,30;
    	getitem 12103,25;
    	return;
    
    OnPCLoginEvent:
    	if(getcharid(3)==getcharid(3,getguildmaster(getcastledata("prtg_cas01",1))))
    	{
    		
    		set @dx,0;
    		while(getd("$d_OnAgitEndReward_prtg_cas01_"+@dx))
    		{
    			setd "$d_OnAgitEndReward_prtg_cas01_"+@dx,0;
    			set @dx,@dx+1;
    			callsub Getitemx;
    		}
    	}
    	end;
    }
    

     

    • If the guild occupies Kriemhild wins another day of WoE. Increase the Prize amount by 5. (ex, 12103 = 25 and it will become 12103 = 30)
    • If the guild lose the kriemhild and occupied by other guild.. The prize will be reset and back to normal, but if they also defended it for straight 3 days.. the prize will be added by 15. 
    • The prize will just increase its amount per day.. (per day = 5 amount of each reward)

     

    Looking for some help, thanks !

  5. It's okay, I already changed it XD

     

    share it please :( for rathena

    Well, Don't just wait for an apple to fall., why don't you just use the Search Button or you can even check on post ##2

  6. it needs to update your database thats why its asking for the update.

    the password is located in your config/application.php and change the InstallerPassword to your password and use it for that

     

    I already open it but when I update it it shows lots of error, so what's the reason? Is my FluxCP not compatible with that addon? 

  7. Need help, how to fix Wall of Fog? When enemy enters the fog, it will cause blind and will have a chance to miss attacking the Professor...

    Em... that's how Wall of Fog is supposed to work o_O

     

     

    >Creates a 5 x 3 area mist that will inflict the blind status on all characters and monsters inside it, plus extra effects described below. When Blinding Mist is cast on Deluge, the skill duration of Blinding Mist is doubled.

    Characters inside the mist will have a 75% chance to completely avoid target skills (both magical and physical), both from outside the mist and inside. This gives protection to all characters within the mist. It is possible, however, to push characters from the mist using knockback skills like Arrow Repel (where it is possible). However, it will not prevent damage from Area of Effect skills. Blinding Mist can be combined with Safety Wall.

    Characters protected by the mist also receive extra protection from ranged normal attacks (ranged skills will have the previously described 75% chance to avoid) and skills which damage is lowered by range reduction (i.e. Horn card, Alligator card). If any ranged normal attack (from an Archer's bow or Gunslinger's gun, for example) is aimed at them, that attack will have a 75% damage penalty and -50 HIT (thus lowering the possibility of hitting, as well).

    Monsters are also affected in the same manner, but the effects of the mist will continue for the skill's duration even after the monster leaves the mist area. This does not apply to players, who will lose all benefits of mist's protection the moment they leave it.

     

    Well it doesn't work in my server, A player enters the fog and it doesn't make it blind or attack miss... 

  8. I've been re-editing this script's getgmlevel & getgroupid but still my acct (Admin:99) can't access it's required GM Level, Everytime I click the NPC, the npc shows Player Menu not GM Menu..

     

    //===== eAthena Script ======================================= 
    //= Itemizer
    //===== By: ================================================== 
    //= Latheesan (HeliosRO Server Admin) © 2009 HeliosRO.Com
    //===== Current Version: ===================================== 
    //= 1.5
    //===== Compatible With: ===================================== 
    //= Any SQL eAthena Version 
    //===== Description: ========================================= 
    //= To prevent GM Corruption, you can disable all item related
    //= commands and use this NPC to distribute Items and/or KCP.
    //===== Additional Comments: =================================
    //= v1.0 - Initial Release (Report Bugs On eAthena Board)
    //= v1.1 - Fixed A Few Typo In Script
    //= v1.2 - Fixed GM Detection Bug and Cleaned Up The Code
    //= v1.3 - Added User Menu In GM Menu
    //= v1.4 - Added New @check_online and @notify_player Config
    //= v1.5 - Added Announce Feature and code optimized
    //============================================================
    
    //===== SQL Table ============================================ 
    //= Execute This Query On Your Ragnarok Database Prior To Use.
    //= 
    //CREATE TABLE IF NOT EXISTS `itemizer` (
    //  `id` int(11) unsigned NOT NULL auto_increment,
    //  `item_id` int(11) NOT NULL,
    //  `item_amount` int(11) NOT NULL,
    //  `item_name` varchar(255) NOT NULL,
    //  `char_id` int(11) NOT NULL,
    //  `char_name` varchar(255) NOT NULL,
    //  `reason` varchar(255) NOT NULL,
    //  `by_gm` varchar(255) NOT NULL,
    //  `when` datetime NOT NULL,
    //  `for` varchar(255) NOT NULL,
    //  `collected` tinyint(1) NOT NULL,
    //  PRIMARY KEY  (`id`)
    //) ENGINE=MyISAM ;
    
    //
    // Script Interface For Event Prize NPC
    //
    prontera,166,176,5	script	Get Prize Here	906,{
    
    // Script Config
    set @npc$,"^008000[ Itemizer ]^000000"; // NPC Name
    
    // Advance Script Config
    set @dummy_kcp_id,123;		// Dummy Item ID Used To Identify If Collection Item == KCP
    set @check_weight,1;		// 1 == Yes | 0 == No (Check If Player Is Over Weight)
    set @min_gm_lvl,99;			// Minimum GM Level Required To "Make Item"
    set @min_eventgm_lvl,2;	// Minimum GM Level Required To "Give Item" and "Give KCP"
    set @min_item_amount,1;		// Minimum Item Amount
    set @max_item_amount,40;	// Maximum Item Amount
    set @min_kcp_amount,1;		// Minimum KCP Amount
    set @max_kcp_amount,1;		// Maximum KCP Amount
    set @check_online,1;		// Check If Target Player Is Online Before Giving Item
    set @notify_player,1;		// 1 == Yes | 0 == No (Notify Player When GM Gives Them Item)
    set @allow_announce,1;		// 1 == Yes | 0 == No (Let GM Choose If He/She Wants To Announce)
    setarray @announce_loc$,	// Possible Announce Locations
    			"bc_all",
    			"bc_map",
    			"bc_area"; 
    
    // Main Script
    L_Main:
    	mes @npc$;
    	mes " ";
    	if (getgroupid() > 99)
    	{
    		mes "Hello GM "+ strcharinfo(0) +".";
    		mes " ";
    		mes "What would you like today?";
    		switch(select("Make Item","Give Item","Give KCP","Player Menu","Nothing"))
    		{
    			// Make Item
    			case 1: goto L_EP_MakeItem; break;
    			
    			// Give Item
    			case 2: goto L_EP_GiveItem; break;
    			
    			// Give KCP
    			case 3: goto L_EP_GiveKCP; break;
    			
    			// Player Menu
    			case 4: goto L_EP_Collect; break;
    			
    			// Nothing
    			default: close; break;
    		}
    	}
    	else
    	{
    		mes "Hello, what would you like today?";
    		switch(select("Collect Event Prize","Collection Log","Nothing"))
    		{
    			// Collect Event Prize
    			case 1: goto L_EP_Collect; break;
    			
    			// Collection Log
    			case 2: goto L_EP_CLog; break;
    			
    			// Nothing
    			default: close; break;
    		}
    	}
    
    // Make Item [GM]
    L_EP_MakeItem:
    	next;
    	mes @npc$;
    	mes " ";
    	mes "What item would you like?";
    	mes "Enter the ID.";
    	input @ep_item_id;
    	next;
    	if (getitemname(@ep_item_id) == "" || getitemname(@ep_item_id) == "null")
    	{
    		mes @npc$;
    		mes " ";
    		mes "^CC0000Sorry, "+ @ep_item_id +" is an invalid item ID.^000000";
    		close;
    	}
    	mes @npc$;
    	mes " ";
    	mes "Okay, how many "+ getitemname(@ep_item_id) +" do you want?";
    	mes " ";
    	mes "Min "+ @min_item_amount +" and Max "+ @max_item_amount +".";
    	input @ep_item_count;
    	next;
    	if (@ep_item_count < @min_item_amount || @ep_item_count > @max_item_amount)
    	{
    		mes @npc$;
    		mes " ";
    		mes "^CC0000Sorry, "+ @ep_item_count +" is an invalid amount.";
    		mes " ";
    		mes "Min "+ @min_item_amount +" and Max "+ @max_item_amount +".^000000";
    		close;
    	}
    	if (@check_weight && checkweight(@ep_item_id, @ep_item_count) == 0)
    	{
    		mes @npc$;
    		mes " ";
    		mes "^CC0000Sorry, you cannot hold "+ @ep_item_count +"x "+ getitemname(@ep_item_id) +".";
    		mes " ";
    		mes "Your inventory is full.^000000";
    		close;
    	}
    	set @when$,callfunc("makeTimestamp");
    	set @nb,query_sql("INSERT INTO `itemizer` VALUES(NULL,'"+ escape_sql(@ep_item_id) +"','"+ escape_sql(@ep_item_count) +"','"+ escape_sql(getitemname(@ep_item_id)) +"','"+ escape_sql(getcharid(0)) +"','"+ escape_sql(strcharinfo(0)) +"','N/A','[GM] "+ escape_sql(strcharinfo(0)) +"','"+ escape_sql(@when$) +"','gm','1')");
    	getitem @ep_item_id,@ep_item_count;
    	mes @npc$;
    	mes " ";
    	mes "All done ~";	
    	close;
    
    // Give Item [GM]
    L_EP_GiveItem:
    	next;
    	mes @npc$;
    	mes " ";
    	if (getgroupid() < 2)
    	{
    		mes "^CC0000Access Denied!";
    		mes " ";
    		mes "You must be atleast level "+ @min_eventgm_lvl +" GM.^000000";
    		close;
    	}
    	mes "Enter the ID of the Item you would like to give a player.";
    	mes " ";
    	mes "E.g. ^0000FFID 512^000000 == ^008000Apple^000000";
    	input @ep_item_id;
    	next;
    	if (getitemname(@ep_item_id) == "" || getitemname(@ep_item_id) == "null")
    	{
    		mes @npc$;
    		mes " ";
    		mes "^CC0000Sorry, "+ @ep_item_id +" is an invalid item ID.^000000";
    		close;
    	}
    	mes @npc$;
    	mes " ";
    	mes "Okay, how many "+ getitemname(@ep_item_id) +" do you want to give a player?";
    	mes " ";
    	mes "Min "+ @min_item_amount +" and Max "+ @max_item_amount +".";
    	input @ep_item_count;
    	next;
    	if (@ep_item_count < @min_item_amount || @ep_item_count > @max_item_amount)
    	{
    		mes @npc$;
    		mes " ";
    		mes "^CC0000Sorry, "+ @ep_item_count +" is an invalid amount.";
    		mes " ";
    		mes "Min "+ @min_item_amount +" and Max "+ @max_item_amount +".^000000";
    		close;
    	}
    	mes @npc$;
    	mes " ";
    	mes "Okay, who do you want to give "+ @ep_item_count +"x "+ getitemname(@ep_item_id) +"?";
    	mes " ";
    	mes "Enter player name"+ (@check_online ? " (must be online)." : " .");
    	input @ep_char_name$;
    	next;
    	set @ep_char_id,getcharid(0,@ep_char_name$);
    	if (@check_online && !isloggedin(getcharid(3,@ep_char_name$)))
    	{
    		mes @npc$;
    		mes " ";
    		mes "^CC0000Sorry, "+ @ep_char_name$ +" is invalid.";
    		mes " ";
    		mes "This player either doesn't exist or s/he is not online now.^000000";
    		close;
    	}
    	mes @npc$;
    	mes " ";
    	mes "Now, enter the reason for giving "+ @ep_item_count +"x "+ getitemname(@ep_item_id) +" to "+ @ep_char_name$ +".";
    	input @ep_reason$;
    	next;
    	if (@ep_reason$ == "")
    	{
    		mes @npc$;
    		mes " ";
    		mes "^CC0000Sorry, that is not a valid reason.^000000";
    		close;
    	}
    	if (@allow_announce)
    	{
    		mes @npc$;
    		mes " ";
    		mes "Do you want to announce the following message?";
    		mes " ";
    		set @anounce_msg$,"[GM] "+ strcharinfo(0) +" Gave "+ @ep_item_count +"x "+ getitemname(@ep_item_id) +" to "+ @ep_char_name$ +". Reason - "+ @ep_reason$;
    		mes @anounce_msg$;
    		if (select("Yes:No") == 1) { set @do_announce,1; } else { set @do_announce,0; }
    		next;
    		if (@do_announce)
    		{
    			mes @npc$;
    			mes " ";
    			mes "Where would you like to announce this message?";
    			mes " ";
    			mes @anounce_msg$;
    			set @options$,"";
    			for (set @i,0; @i < getarraysize(@announce_loc$); set @i,@i+1)
    			{
    				if (@announce_loc$[@i] == "bc_all") {
    					set @options$,@options$+"Server Wide";
    				} else if (@announce_loc$[@i] == "bc_map") {
    					set @options$,@options$+"Everyone In The Same Map";
    				} else if (@announce_loc$[@i] == "bc_area") {
    					set @options$,@options$+"Everyone Near You";
    				}
    				if (@i != (getarraysize(@announce_loc$) - 1)) { set @options$,@options$+":"; }
    			}
    			set @choice,select(@options$);
    			set @a_loc$,@announce_loc$[@choice];
    			next;
    			mes @npc$;
    			mes " ";
    			mes "What color do you want to announce in?";
    			if (select("Yello:Blue") == 1) { set @a_color$,"bc_yellow"; } else { set @a_color$,"bc_blue"; }
    			next;
    		}
    	}
    	mes @npc$;
    	mes " ";
    	mes "Is this correct?";
    	mes " ";
    	mes "Give ^0000FF"+ @ep_item_count +"x^000000 ^008000"+ getitemname(@ep_item_id) +"^000000 to ^CC0000"+ @ep_char_name$ +"^000000.";
    	mes " ";
    	mes "Reason : "+ @ep_reason$;
    	if (select("Yes:No") == 1)
    	{
    		next;
    		set @when$,callfunc("makeTimestamp");
    		set @nb,query_sql("INSERT INTO `itemizer` VALUES(NULL,'"+ escape_sql(@ep_item_id) +"','"+ escape_sql(@ep_item_count) +"','"+ escape_sql(getitemname(@ep_item_id)) +"','"+ escape_sql(@ep_char_id) +"','"+ escape_sql(@ep_char_name$) +"','"+ escape_sql(@ep_reason$) +"','[GM] "+ escape_sql(strcharinfo(0)) +"','"+ escape_sql(@when$) +"','player','0')");
    		mes @npc$;
    		mes " ";
    		mes "All Done~";
    		close2;
    		if (@notify_player) { message @ep_char_name$,"[GM] "+ strcharinfo(0) +" Has Given You "+ @ep_item_count +"x "+ getitemname(@ep_item_id) +"."; }
    		if (@do_announce)
    		{
    			if (@a_color$ == "bc_yellow")
    			{
    				if (@a_loc$ == "bc_all") {
    					announce @anounce_msg$,bc_yellow|bc_all;
    				} else if (@a_loc$ == "bc_map") {
    					announce @anounce_msg$,bc_yellow|bc_map;
    				} else {
    					announce @anounce_msg$,bc_yellow|bc_area;
    				}
    			}
    			else
    			{
    				if (@a_loc$ == "bc_all") {
    					announce @anounce_msg$,bc_blue|bc_all;
    				} else if (@a_loc$ == "bc_map") {
    					announce @anounce_msg$,bc_blue|bc_map;
    				} else {
    					announce @anounce_msg$,bc_blue|bc_area;
    				}
    			}
    		}
    		end;
    	}
    	close;
    
    // Give KCP [GM]
    L_EP_GiveKCP:
    	next;
    	mes @npc$;
    	mes " ";
    	if (getgroupid() < 99)
    	{
    		mes "^CC0000Access Denied!";
    		mes " ";
    		mes "You must be atleast level "+ @min_eventgm_lvl +" GM.^000000";
    		close;
    	}
    	mes "Okay, how many KCP would you like to give?";
    	mes " ";
    	mes "Min "+ @min_kcp_amount +" and Max "+ @max_kcp_amount +".";
    	input @ep_kcp_count;
    	next;
    	if (@ep_kcp_count < @min_kcp_amount || @ep_kcp_count > @max_kcp_amount)
    	{
    		mes @npc$;
    		mes " ";
    		mes "^CC0000Sorry, "+ @ep_kcp_count +" is an invalid amount.";
    		mes " ";
    		mes "Min "+ @min_kcp_amount +" and Max "+ @max_kcp_amount +".^000000";
    		close;
    	}
    	mes @npc$;
    	mes " ";
    	mes "Okay, who do you want to give "+ @ep_kcp_count +" KCP?";
    	mes " ";
    	mes "Enter player name"+ (@check_online ? " (must be online)." : " .");
    	input @ep_char_name$;
    	next;
    	set @ep_char_id,getcharid(0,@ep_char_name$);
    	if (@check_online && !isloggedin(getcharid(3,@ep_char_name$)))
    	{
    		mes @npc$;
    		mes " ";
    		mes "^CC0000Sorry, "+ @ep_char_name$ +" is invalid.";
    		mes " ";
    		mes "This player either doesn't exist or s/he is not online now.^000000";
    		close;
    	}
    	mes @npc$;
    	mes " ";
    	mes "Now, enter the reason for giving "+ @ep_kcp_count +" KCP to "+ @ep_char_name$ +".";
    	input @ep_reason$;
    	next;
    	if (@ep_reason$ == "")
    	{
    		mes @npc$;
    		mes " ";
    		mes "^CC0000Sorry, that is not a valid reason.^000000";
    		close;
    	}
    	if (@allow_announce)
    	{
    		mes @npc$;
    		mes " ";
    		mes "Do you want to announce the following message?";
    		mes " ";
    		set @anounce_msg$,"[GM] "+ strcharinfo(0) +" Gave "+ @ep_kcp_count +"x Kafra Credit Point (KCP) to "+ @ep_char_name$ +". Reason - "+ @ep_reason$;
    		mes @anounce_msg$;
    		if (select("Yes:No") == 1) { set @do_announce,1; } else { set @do_announce,0; }
    		next;
    		if (@do_announce)
    		{
    			mes @npc$;
    			mes " ";
    			mes "Where would you like to announce this message?";
    			mes " ";
    			mes @anounce_msg$;
    			set @options$,"";
    			for (set @i,0; @i < getarraysize(@announce_loc$); set @i,@i+1)
    			{
    				if (@announce_loc$[@i] == "bc_all") {
    					set @options$,@options$+"Server Wide";
    				} else if (@announce_loc$[@i] == "bc_map") {
    					set @options$,@options$+"Everyone In The Same Map";
    				} else if (@announce_loc$[@i] == "bc_area") {
    					set @options$,@options$+"Everyone Near You";
    				}
    				if (@i != (getarraysize(@announce_loc$) - 1)) { set @options$,@options$+":"; }
    			}
    			set @choice,select(@options$);
    			set @a_loc$,@announce_loc$[@choice];
    			next;
    			mes @npc$;
    			mes " ";
    			mes "What color do you want to announce in?";
    			if (select("Yello:Blue") == 1) { set @a_color$,"bc_yellow"; } else { set @a_color$,"bc_blue"; }
    			next;
    		}
    	}
    	mes @npc$;
    	mes " ";
    	mes "Is this correct?";
    	mes " ";
    	mes "Give ^0000FF"+ @ep_kcp_count +"^000000 ^008000KCP^000000 to ^CC0000"+ @ep_char_name$ +"^000000.";
    	mes " ";
    	mes "Reason : "+ @ep_reason$;
    	if (select("Yes:No") == 1)
    	{
    		next;
    		set @when,callfunc("makeTimestamp");
    		set @nb,query_sql("INSERT INTO `itemizer` VALUES(NULL,'"+ @dummy_kcp_id +"','"+ @ep_kcp_count +"','Kafra Credit Point (KCP)','"+ @ep_char_id +"','"+ @ep_char_name$ +"','"+ @ep_reason$ +"','[GM] "+ strcharinfo(0) +"','"+ @when +"','player','0')");
    		mes @npc$;
    		mes " ";
    		mes "All Done~";
    		close2;
    		if (@notify_player) { message @ep_char_name$,"[GM] "+ strcharinfo(0) +" Has Given You "+ @ep_kcp_count +" Kafra Credit Point (KCP)."; }
    		if (@do_announce)
    		{
    			if (@a_color$ == "bc_yellow")
    			{
    				if (@a_loc$ == "bc_all") {
    					announce @anounce_msg$,bc_yellow|bc_all;
    				} else if (@a_loc$ == "bc_map") {
    					announce @anounce_msg$,bc_yellow|bc_map;
    				} else {
    					announce @anounce_msg$,bc_yellow|bc_area;
    				}
    			}
    			else
    			{
    				if (@a_loc$ == "bc_all") {
    					announce @anounce_msg$,bc_blue|bc_all;
    				} else if (@a_loc$ == "bc_map") {
    					announce @anounce_msg$,bc_blue|bc_map;
    				} else {
    					announce @anounce_msg$,bc_blue|bc_area;
    				}
    			}
    		}
    		end;
    	}
    	close;
    
    // Collect Event Prize (Part 1) [Player]
    L_EP_Collect:
    	next;
    	mes @npc$;
    	mes " ";
    	mes "Would you like to check if any item is waiting to be collected?";
    	if (select("Yes Please:No Thanks") == 1)
    	{
    		next;
    		if (getarraysize(@db_id))
    		{
    			deletearray @db_id,127;
    			deletearray @item_id,127;
    			deletearray @item_name$,127;
    			deletearray @item_amount,127;
    			deletearray @reason$,127;
    			deletearray @by_gm$,127;
    		}
    		set @result,query_sql("SELECT `id`,`item_id`,`item_name`,`item_amount`,`reason`,`by_gm` FROM `itemizer` WHERE (`char_id` = '"+ getcharid(0) +"' AND `for` = 'player' AND `collected` = 0) LIMIT 127",
    							  @db_id,
    							  @item_id,
    							  @item_name$,
    							  @item_amount,
    							  @reason$,
    							  @by_gm$);
    		if (!@result)
    		{
    			mes @npc$;
    			mes " ";
    			mes "^CC0000No items are waiting to be collected by you.^000000";
    			close;
    		}
    		else
    		{
    			goto L_EP_C_Final;
    		}
    	}
    	close;
    
    // Collect Event Prize (Part 2) [Player]
    L_EP_C_Final:
    	set @options$,"";
    	for (set @i,0; @i < @result; set @i,@i+1)
    	{
    		set @options$,@options$+@item_amount[@i] +"x "+@item_name$[@i]+":";
    	}
    	mes @npc$;
    	mes " ";
    	mes "Here is a list of item(s) waiting to be collected by you.";
    	mes " ";
    	mes "Pick the item you want to collect now.";
    	set @choice,select(@options$) - 1;
    	next;
    	mes @npc$;
    	mes " ";
    	if (@item_id[@choice] != @dummy_kcp_id) { mes "ID - "+ @item_id[@choice]; }
    	mes "Name - "+ @item_name$[@choice];
    	mes "Amount - "+ @item_amount[@choice] +"x";
    	mes "By - "+ @by_gm$[@choice];
    	mes " ";
    	mes "Reason - "+ @reason$[@choice];
    	if (select("Collect Now:Collect Later") == 1)
    	{
    		next;
    		if (@item_id[@choice] != @dummy_kcp_id)
    		{
    			if (@check_weight && checkweight(@item_id[@choice], @item_amount[@choice]) == 0)
    			{
    				mes @npc$;
    				mes " ";
    				mes "^CC0000Sorry, you cannot hold "+ @item_amount[@choice] +"x "+ @item_name$[@choice] +".";
    				mes " ";
    				mes "Your inventory is full.^000000";
    				close;
    			}
    		}
    		set @nb,query_sql("UPDATE `itemizer` SET `collected` = 1 WHERE (`id` = '"+ @db_id[@choice] +"') LIMIT 1");
    		if (@item_id[@choice] != @dummy_kcp_id)
    		{
    			getitem @item_id[@choice],@item_amount[@choice];
    		}
    		else
    		{
    			set #CASHPOINTS,(#CASHPOINTS + @item_amount[@choice]);
    		}
    		set @result,(@result - 1);
    		deletearray @db_id[@choice],1;
    		deletearray @item_id[@choice],1;
    		deletearray @item_name$[@choice],1;
    		deletearray @item_amount[@choice],1;
    		deletearray @reason$[@choice],1;
    		deletearray @by_gm$[@choice],1;
    		goto L_EP_C_Final;
    	}
    	else
    	{
    		next;
    		goto L_EP_C_Final;
    	}
    
    // Collection Log [Player]
    L_EP_CLog:
    	next;
    	mes @npc$;
    	mes " ";
    	if (getarraysize(@item_name$))
    	{
    		deletearray @item_name$,127;
    		deletearray @item_amount,127;
    		deletearray @reason$,127;
    		deletearray @by_gm$,127;
    		deletearray @when$,127;
    	}
    	if (!@offset){ set @offset,0; }
    	if (!@rows_per_page) { set @rows_per_page,10; }
    	set @result,query_sql("SELECT `item_name`,`item_amount`,`reason`,`by_gm`,`when` FROM `itemizer` WHERE (`char_id` = '"+ getcharid(0) +"' AND `for` = 'player' AND `collected` = 1) ORDER BY `when` DESC LIMIT "+ @offset +","+ @rows_per_page,
    				@item_name$,
    				@item_amount,
    				@reason$,
    				@by_gm$,
    				@when$);
    	if(!@result)
    	{
    		if (@offset == 10) {
    			mes "^CC0000You have not collected any items from me yet.^000000";
    		} else {
    			mes "^CC0000Sorry, there is no more data.^000000";
    		}
    		close2;
    		if (@offset) { set @offset,0; }
    		end;
    	}
    	else
    	{
    		for (set @i,0; @i < @result; set @i,@i+1)
    		{
    			mes "^0000FF"+ @item_amount[@i] +"x^000000 ^008000"+ @item_name$[@i] +"^000000";
    			mes "Reason - "+ @reason$[@i];
    			mes "By - "+ @by_gm$[@i];
    			mes "When - "+ @when$[@i];
    			if (@i != (@result - 1)) { mes " "; }
    		}
    		set @offset,(@offset + @rows_per_page);
    		if (select("Next "+ @rows_per_page +" Logs:Cancel") == 2)
    		{
    			close2;
    			if (@offset) { set @offset,0; }
    			end;
    		}
    		goto L_EP_CLog;
    	}
    
    }
    
    //
    // Func To Make MySQL Friendly Timestamp
    //
    function	script	makeTimestamp	{
    
    // Get Current Date & Time Variables
    set @curYear,gettime(7);
    set @curMonth,gettime(6);
    set @curDay,gettime(5);
    set @curHour,gettime(3);
    set @curMinute,gettime(2);
    set @curSecond,gettime(1);
    
    // Start A New Timestamp Variable
    set @timestamp$,"";
    
    // MySQL Timestamp Friendly :: Year
    set @timestamp$,@timestamp$+@curYear+"-";
    
    // MySQL Timestamp Friendly :: Month
    if (@curMonth <= 9) {
    	set @timestamp$,@timestamp$+"0"+@curMonth+"-";
    } else {
    	set @timestamp$,@timestamp$+@curMonth+"-";
    }
    
    // MySQL Timestamp Friendly :: Day
    if (@curDay <= 9) {
    	set @timestamp$,@timestamp$+"0"+@curDay+" ";
    } else {
    	set @timestamp$,@timestamp$+@curDay+" ";
    }
    
    // MySQL Timestamp Friendly :: Hour
    if (@curHour <= 9) {
    	set @timestamp$,@timestamp$+"0"+@curHour+":";
    } else {
    	set @timestamp$,@timestamp$+@curHour+":";
    }
    
    // MySQL Timestamp Friendly :: Minute
    if (@curMinute <= 9) {
    	set @timestamp$,@timestamp$+"0"+@curMinute+":";
    } else {
    	set @timestamp$,@timestamp$+@curMinute+":";
    }
    
    // MySQL Timestamp Friendly :: Second
    if (@curSecond <= 9) {
    	set @timestamp$,@timestamp$+"0"+@curSecond;
    } else {
    	set @timestamp$,@timestamp$+@curSecond;
    }
    
    // Return MySQL Friendly Timestamp
    return @timestamp$;
    
    }
    

     

     

  9. OnInit:
        setmapflag "bat_room", mf_loadevent;
        end;
    
    // Trigger when a player enters a map with "loadevent" mapflag.
    OnPCLoadMapEvent:
    
        // Only run for map "bat_room".
        if (strcharinfo(3) != "bat_room") end;
    
        // Get list of accounts with attached character's IP address.
        set .@size, query_sql("SELECT `account_id` FROM `login` WHERE `last_ip` = '"+getcharip()+"'",.@aid);
    
        // Passed check if only the attached player is returned.
        if (.@size < 2) end;
    
        // Check all online characters using the IP address if they are on a Battlegrounds map.
        set .@self, getcharid(3);
        for(set .@i,0; .@i<.@size; set .@i,.@i+1) {
            if (.@aid[.@i] == .@self)
                continue;
            if (attachrid(.@aid[.@i])) {
                if (compare(strcharinfo(3),"bat_")) {
                    set .@name$, strcharinfo(0);
                    attachrid(.@self);
                    message strcharinfo(0),"Character "+.@name$+" is already logged into Battlegrounds with your IP.";
                    sleep2 2000;
                    warp "SavePoint",0,0;
                    end;
                }
            }
        }
    
        // Passed check.
        end;
    }
    

     

    I tried this script and change "bat_room" to "guild_vs2" but after I reload/load it, It doesn't work ~ 

  10. Is this the right line for editing it? I add "//" it doesn't work lol :)) I don't know how to remove this can anyone help me? 

     

    I want the Injustice Card Auto Cast Sonic Blow will not stop even attacking (/nc)

     

    			if (skill == AS_SONICBLOW)
    				pc_stop_attack(sd); //Special case, Sonic Blow autospell should stop the player attacking.
    			else if (skill == PF_SPIDERWEB) //Special case, due to its nature of coding.
    				type = CAST_GROUND;
    
    

     

     

  11.  

    if you can't understand some of this please ask me

     

    will you pay for this script?

    Oh, you mean this script is possible but ? It's paid if you'll work on it? Well, I'm just looking for a public release/works..

  12. This is how it works :

     

    • Saves data in SQL
    • Players can see the menu. (Add Item, Buy Item, Item List, Exit)
    • Player(Seller) will give <amount> of item to the NPC, once the NPC receives the item, the NPC then will save the <amount> of item in SQL.
    • Player(Seller) can check if the <amount> of item is still there or got sold pcs per pcs. (ex, 123 Apple Left ------ 121 Apple Left)
    • Player(Buyer) will type Player(Seller)'s IGN, after that he can buy the Item of Player(Seller).
    • Player can check Item List and show the list of items based on the data that has been saved in the SQL.
    • Items Listed in SQL will show their "Item Name, Item ID & Amount Left"
    • Player(Buyer) will just input "IGN of Seller" & "ID # of Item + Amount" after that once bought it will be send and notified in @mail.

    If I forgot something or if you can't understand some of this can you please ask me or any suggestions are free.. THANK YOU

  13. I had an idea of making a simple script but I'm just having a hard time on this part..

     

    M_Mute2:
    		mes "Enter the COMPLETE name";
    	next;
    		input .@c_name$;
    	next;
                    mes "How many minutes will you mute [ "+ .@c_name$ +" ]?";
                    input .@min_mute$;
            next;
    
    	atcommand "@mute "+ .@min_mute$ "+ .@c_name$;
    	next;
    		mes " [ "+ .@c_name$ +" ] has been muted for [ "+ .@min_mute$ +" ] minutes.";
    	close;
    
    

     

    This is part of my script. I don't really understand it lol :)) I'm new in making scripts and still aiming high to make better scripts..

     

    This is the line that I'm talking about/taking error..

     

    atcommand "@mute "+ .@min_mute$ "+ .@c_name$;
    
    "+ .@min_mute$
    

     

     

    Hope someone will help me ! 

    atcommand "@mute "+.@min_mute$+" "+.@c_name$;

     

    Oh great ! Thanks TrojanWorm :)

×
×
  • Create New...