Jump to content

Luffy

Members
  • Content Count

    303
  • Joined

  • Last visited

  • Days Won

    3

Posts posted by Luffy


  1. Quote

     

    On 1/17/2019 at 5:14 PM, AnnieRuru said:

    5. Download latest KRO Client and client translation files

    Step 5a. Download latest KRO from
    http://herc.ws/board/topic/15592-collection-official-full-clients-latest-kro/
    https://rathena.org/board/topic/106413-kro-full-client-2018-08-13-includes-bgm-rsu/ <-- I pick this

     

    // ========== THIS PART IS CONTROVERSIAL ===== BUT IT WORKS FOR ME ========

    Step 5b. Create another 2 folders
    let's name it Asheraf and zackdreaver ... the author of making client translation
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 5b.png
    then download their translation files by git clone them

    https://github.com/Asheraf/Translation

    
    
    https://github.com/Asheraf/Translation

    https://github.com/zackdreaver/ROenglishRE

    
    
    https://github.com/zackdreaver/ROenglishRE

     

    Step 5c. Download GRF Editor
    http://www.mediafire.com/file/aflylbhblrzpz0h/GRF+Editor+v1.8.2.7.zip <-- author forgot to update in that topic, mediafire link is latest one

     

    Step 5d. Compile GRF Editor
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 5d.png
    double click GRFEditor.sln

     

    Step 5e. Open GRF Editor file
    Navigate to the directory  \GRF Editor Sources v1.8.2.7\GRF Editor\GRFEditor\bin\Release and open GRF Editor.exe
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 5e.png
    I also wondering why the author makes the execution files hide so deep inside

     

    Step 5f. Drag the data folder from Asheraf client translation to new.grf
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 5f.png
    then save it as Asheraf.grf
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 5f2.png

     

    Step 5g. Repeat the process for zackdreaver translation
    Close Grf. New -> Grf, Drag the data folder from zackdreaver/Ragnarok/data to new.grf, then save it as zackdreaver.grf

     

    Now you have learn how to pack your own grf. You should have 2 new grf in client folder

     

    Step 5h. open data.ini in your ragnarok client and edit DATA.INI
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 5h.png

    [Data] 1=Asheraf.grf 2=zackdreaver.grf 3=rdata.grf 4=data.grf

    
    
    [Data]
    1=Asheraf.grf
    2=zackdreaver.grf
    3=rdata.grf
    4=data.grf

     

    Step 5i. Replace Asheraf/system folder into client/system folder
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 5i.png

     

    // ========== CONTROVERSIAL PART ENDS HERE ===== I'm sure many client experts having your doubts why I do like this ========

     

    A lot of problems can appear in this step, these problems also recent and changes with every client

     


  2. On 4/1/2020 at 7:29 AM, onceelace said:

    Hi All,

     

    Thank you for sharing this tutorial and the files.

    I was able to compile the solution in Visual Studio 2015.

    However when I tried to login in the client, I am getting this error.

    image.thumb.png.dd22d1b16ed379d9768e622dbd99c416.png

    I have no idea how to fix this and what is the cause of this error.

    Please help me.

     

    THank you in advance.

     

    did you just @changejob or @changehairstyle? 

    you are missing cloth sprite or hair sprite.


  3. hi i got this problem that the port 5121, 6121, 6900 on windows.

     

    i did all the guides, like adding a rule on windows firewall , inbound and outbound of 5121 6121 6900 tcp/udp.

     

    and then check the port online still not open.

     

    ----------------------------------------------------------------------

     

    P.S. About No-Ip app.

     

    Hercules\conf\char     Char-server.conf

    // Login Server IP
            // The character server connects to the login server using this IP address.
            // NOTE: This is useful when you are running behind a firewall or are on
            // a machine with multiple interfaces.
            login_ip: "my-no-ip"
    
            // The character server listens on the interface with this IP address.
            // NOTE: This allows you to run multiple servers on multiple interfaces
            // while using the same ports for each server.
            //bind_ip: "127.0.0.1"
    
            // Login Server Port
            login_port: 6900
    
            // Character Server IP
            // The IP address which clients will use to connect.
            // Set this to what your server's public IP address is.
            char_ip: "my-no-ip"
    
            // Character Server Port
            char_port: 6121

     

    MAP-SERVER.conf

     

    		// Character Server IP
    		// The map server connects to the character server using this IP address.
    		// NOTE: This is useful when you are running behind a firewall or are on
    		// a machine with multiple interfaces.
    		char_ip: "my-no-ip"
    
    		// The map server listens on the interface with this IP address.
    		// NOTE: This allows you to run multiple servers on multiple interfaces
    		// while using the same ports for each server.
    		//bind_ip: "127.0.0.1"
    
    		// Character Server Port
    		char_port: 6121
    
    		// Map Server IP
    		// The IP address which clients will use to connect.
    		// Set this to what your server's public IP address is.
    		map_ip: "my-no-ip"
    
    		// Map Server Port
    		map_port: 5121

     

    Network.conf

     

    what suppose to be the format input here. im bit lost .

     

    lan_subnets: (

    "255.255.255.0:no-ip:no-ip",

    )

     

    allowed: (

    "127.0.0.1:255.0.0.0"

    )

    trusted: (
        "127.0.0.1:255.0.0.0",
    )

     


  4. 52 minutes ago, Zhao Chow said:

    I rather used MYSQL Lines because im putting it on the database

     

    If you want to add +3 Days it should be like this DATE_ADD(NOW(), INTERVAL 3 DAY)

    oh i get it, thanks. i cant seem to make it work. setting up an array for 1 , 3 , 7 days whenever the item call func a 3 day it will activate the 3 days.


  5. [Error]: timer_do_delete error : function mismatch [269]008F3970(npc_timerevent) != 00AFFF10(unit_walk_toxy_timer)

     

    i got this error. i dunno why. 

    [Error]: UnknownStatusChange [271]
    [Error]: UnknownStatusChange [271]
    [Error]: UnknownStatusChange [271]
    [Error]: UnknownStatusChange [271]
    [Error]: UnknownStatusChange [271]
    [Error]: UnknownStatusChange [271]
    [Error]: UnknownStatusChange [271]
    [Error]: UnknownStatusChange [271]
    [Error]: UnknownStatusChange [271]
    [Error]: UnknownStatusChange [271]
    [Error]: UnknownStatusChange [271]
    [Error]: UnknownStatusChange [271]


  6. 22 minutes ago, Zhao Chow said:

    i use DATE_ADD(NOW(), INTERVAL 1 DAY)

    can you explain how it work? we just need to change the day? ex. DATE_ADD(NOW(), INTERVAL 1 DAY) for 1 day and DATE_ADD(NOW(), INTERVAL 3DAY) for 3 days?


  7. Hi Good day all,

     

    i just want to ask if i can config announce to such form like this. 
    EXP RATE : 
    DROP RATE :
    Death Penalty : 

    rathena.png.72f26d9869dabc76f12d742e449165b9.png

     

     

    i did search for such code but xD im not lucky to find one. i tried coding but it seems to announce it just by one line.
    anyone got idea? please enlighten me.

    screenCoronaVirus002.thumb.jpg.b836809216e7cac81ba0c9f8f71b5748.jpg


  8. 1 hour ago, X-EcutiOnner said:

    Open it with Notepad++ see encoding is ANSI or not, if not you can use menu Encoding -> Convert to ANSI (Only Eng can use UTF8).

    Make sure in your (s)clientinfo.xml setting in true lang <langtype>XXX</langtype> Pinoy can set to 7 (can see in https://rathena.org/board/topic/120145-2018-09-19aregexe-problem/#comment-366930)

    Server Status you can edit at line 3262 - 3265

     

    image.png.c9c5b9b3902b0ac3df236e28773301dc.png

    ahh i see the problem is only on my msgstringtable. its all okay now. thanks bro helped alot.


  9. Can someone make this work on Hercules emu?

     

     

     

     

    
    
    /*
    
    CREATE TABLE IF NOT EXISTS `ero_gm_reward` (
    	`id` int(11) NOT NULL AUTO_INCREMENT,
    	`gm_aid` int(11) NOT NULL default '0',
    	`gm_name` varchar(30) NOT NULL default '',
    	`nameid` int(11) NOT NULL default '0',
    	`amount` int(11) unsigned NOT NULL default '0',
    	`refine` tinyint(3) unsigned NOT NULL default '0',
    	`card1` smallint(4) unsigned NOT NULL default '0',
    	`card2` smallint(4) unsigned NOT NULL default '0',
    	`card3` smallint(4) unsigned NOT NULL default '0',
    	`card4` smallint(4) unsigned NOT NULL default '0',
    	`format_name` varchar(30) NOT NULL default 'null',
    	`reward_time` datetime NOT NULL default '0000-00-00 00:00:00',
    	`status` tinyint(1) NOT NULL default '0',
    	`claim_aid` int(11) NOT NULL default '0',
    	`claim_name` varchar(30) NOT NULL DEFAULT '',
    	`claim_time` datetime NOT NULL default '0000-00-00 00:00:00',
    	`note` varchar(255) NOT NULL default 'none',
    	PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM;
    
    */
    
    
    prt_in,35,109,4	script	Sample#gmreward	4_F_KAFRA9,{
    	doevent "gm_reward_main::OnTalk";
    }
    
    
    -	shop	gm_reward_shop	-1,909:-1
    
    -	script	gm_reward_main	-1,{
    	function func_sql_reward;
    	function func_item_name;
    	function func_list_char;
    	function func_display_card;
    	function func_list_reward;
    	function func_view_reward;
    	
    	OnInit:
    		.gm_level = 60;
    		.shop_name$ = "gm_reward_shop";
    		end;
    		
    	OnTalk:
    		.@gm_level = getgmlevel();
    		.@not_gm = ( .@gm_level < .gm_level || !.gm_level || !.@gm_level );
    		
    		cutin "kafra_09",2;
    		mes "^FF0000[ GM Reward - Introduction ]^000000";
    		mes "Hi "+strcharinfo(0)+", what can I do for you today?";
    		next;
    		switch ( select(
    			( .@not_gm )? "Check Pending Reward":"",
    			( .@not_gm )? "Check Reward History":"",
    			( .@not_gm )? "":"^FF0000[GM]^000000 Send Reward",
    			( .@not_gm )? "":"^FF0000[GM]^000000 Delete Reward",
    			( .@not_gm )? "":"^FF0000[GM]^000000 Check History",
    			"Information"
    		)) {
    			case 1:
    				mes "^FF0000[ GM Reward - Pending Reward ]^000000";
    				mes "I will show you a list of rewards that are still not yet claimed.";
    				func_list_reward( "`claim_name` = '"+escape_sql( strcharinfo(0) )+"' AND `status` = 0" );
    				break;
    			case 2:
    				mes "^FF0000[ GM Reward - History ]^000000";
    				mes "I will show you a list of rewards that are claimed previously.";
    				func_list_reward( "`claim_name` = '"+escape_sql( strcharinfo(0) )+"' AND `status` = 1" );
    				break;
    			case 3:
    				mes "^FF0000[ GM Reward - Setup ]^000000";
    				mes "Please place all the items that you want to sent to player into the selling shop window.";
    				// close2;
    				callshop .shop_name$,2;
    				npcshopattach .shop_name$;
    				end;
    			case 4:
    				mes "^FF0000[ GM Reward - Remove Rewards ]^000000";
    				mes "I will show you a list of rewards that are sent out but not yet claimed.";
    				func_list_reward( "`status` = 0" );
    				break;
    			case 5:
    				mes "^FF0000[ GM Reward - Reward History ]^000000";
    				mes "I will show you a list of recent rewards based on the status you selected.";
    				.@i = select( "Pending Reward","Claimed Reward","Deleted Reward" ) - 1;
    				func_list_reward( "`status` = "+.@i );
    				break;
    			default: 
    				mes "^FF0000[ GM Reward - Information ]^000000";
    				mes "Hi, I work for Game Master. I assist GM to distribute or manage the rewards setup by GM.";
    				break;
    		}
    		close2;
    		cutin "",255;
    		end;
    		
    	OnSellItem:
    		cutin "kafra_09",2;
    		mes "^FF0000[ GM Reward - Checklist ]^000000";
    		if ( getgmlevel() < .gm_level ) {
    			mes "You're not authorized to perform this actions.";
    		}
    		else {
    			.@reward_size = getarraysize( @sold_nameid );
    			if ( .@reward_size < 1 ) {
    				mes "Failed, no items found in the list.";
    			}
    			else {
    				mes "Enter Player name:";
    				mes "^777777------------------------------^000000";
    				for ( .@i = 0; .@i < .@reward_size; .@i++ ) {
    					mes "^6495ED# ^000000"+func_item_name( @sold_nameid[.@i],@sold_quantity[.@i],@sold_refine[.@i] );
    					.@item_type = getiteminfo( @sold_nameid[.@i],2 );
    					if ( .@item_type == IT_ARMOR || .@item_type == IT_WEAPON )
    						func_display_card( @sold_card1[.@i],@sold_card2[.@i],@sold_card3[.@i],@sold_card4[.@i] );
    				}
    				.@player_name$ = func_list_char();
    				if ( .@player_name$ != "" ) {
    					next;
    					mes "^FF0000[ GM Reward - Confirmation ]^000000";
    					mes "Player: ^FF0000"+.@player_name$+"^000000";
    					mes "^777777------------------------------^000000";
    					for ( .@i = 0; .@i < .@reward_size; .@i++ ) {
    						mes "^6495ED > ^000000"+func_item_name( @sold_nameid[.@i],@sold_quantity[.@i],@sold_refine[.@i] );
    						.@item_type = getiteminfo( @sold_nameid[.@i],2 );
    						if ( .@item_type == IT_ARMOR || .@item_type == IT_WEAPON )
    							func_display_card( @sold_card1[.@i],@sold_card2[.@i],@sold_card3[.@i],@sold_card4[.@i] );
    					}
    					if ( select( "Confirm","Cancel" ) == 1 ) {
    						next;
    						mes "^FF0000[ GM Reward - Confirmation ]^000000";
    						mes "Enter a Title:";
    						do {
    							.@length = input( .@note$,4,70 );
    							.@check = ( compare( .@note$,":" ) || .@length );
    							if ( .@check ) {
    								mes "^777777Invalid title^000000";
    							}
    						}while ( .@check );
    						
    						.@gm_aid = getcharid(3);
    						.@gm_name$ = strcharinfo(0);
    						
    						query_sql( "SELECT `account_id`,`char_id`,`online` FROM `char` WHERE `name` = '"+escape_sql( .@player_name$ )+"' LIMIT 1",.@player_aid,.@player_cid,.@online );
    						
    						for ( .@i = 0; .@i < .@reward_size; .@i++ ) {
    							.@formatted_name$ = func_item_name( @sold_nameid[.@i],@sold_quantity[.@i],@sold_refine[.@i] );
    							if ( func_sql_reward( .@gm_aid,escape_sql( .@gm_name$ ),@sold_nameid[.@i],@sold_quantity[.@i],@sold_refine[.@i],escape_sql( .@formatted_name$ ),@sold_card1[.@i],@sold_card2[.@i],@sold_card3[.@i],@sold_card4[.@i],.@player_aid,.@player_name$,.@note$ ) )
    								dispbottom "[Reward Sent] "+.@player_name$+" - "+.@formatted_name$;
    							else 
    								dispbottom "[Reward Sent Failure] "+.@player_name$+" - "+.@formatted_name$;
    						}
    						
    						if ( .@player_aid > 0 && isloggedin( .@player_aid,.@player_cid ) ) {
    							message .@player_name$,"You received "+.@reward_size+" reward(s) from "+.@gm_name$;
    							message .@gm_name$,"You sent "+.@reward_size+" reward(s) to "+.@player_name$;
    						}
    						mes "Rewards sent.";
    					}
    				}
    			}
    		}
    		close2;
    		cutin "",255;
    		end;
    		
    	function	func_sql_reward	{
    
    		if ( getargcount() >= 12 ) {
    			.@gm_aid = getarg(0);
    			.@gm_name$ = getarg(1);
    			.@sold_nameid = getarg(2);
    			.@sold_quantity = getarg(3);
    			.@sold_refine = getarg(4);
    			.@formatted_name$ = getarg(5);
    			.@sold_card1 = getarg(6);
    			.@sold_card2 = getarg(7);
    			.@sold_card3 = getarg(8);
    			.@sold_card4 = getarg(9);
    			.@player_aid = getarg(10);
    			.@player_name$ = getarg(11);
    			.@note$ = getarg(12);
    			
    			query_sql( "INSERT INTO `ero_gm_reward` ( `gm_aid`,`gm_name`,`nameid`,`amount`,`refine`,`format_name`,`card1`,`card2`,`card3`,`card4`,`reward_time`,`claim_aid`,`claim_name`,`note` ) VALUES ( "+.@gm_aid+",'"+escape_sql( .@gm_name$ )+"',"+.@sold_nameid+","+.@sold_quantity+","+.@sold_refine+",'"+escape_sql( .@formatted_name$ )+"',"+.@sold_card1+","+.@sold_card2+","+.@sold_card3+","+.@sold_card4+",NOW(),"+.@player_aid+",'"+escape_sql( .@player_name$  )+"','"+.@note$+"' )" );	
    			return 1;
    		}
    		
    		return 0;
    	}
    
    	function	func_item_name	{
    		.@item_id = getarg(0);
    		.@amount = getarg(1);
    		.@refine = getarg(2);
    		
    		.@string$ = getitemname( .@item_id );
    		.@type = getiteminfo( .@item_id,2 );
    			
    		if ( .@string$ == "null" )
    			return "none";
    			
    		if ( .@refine ) 
    			.@string$ = "+"+.@refine+" "+.@string$;
    		if ( .@type == IT_WEAPON || .@type == IT_ARMOR )
    			.@string$ = .@string$ + " ["+getitemslots( .@item_id )+"]";
    		if ( .@amount > 1 )
    			.@string$ = .@amount+" x "+.@string$;
    			
    		return .@string$;
    	}
    	
    	function	func_list_char	{
    		__OnInput:
    			while( input( .@player_name$,3,24 ) );
    			query_sql( "SELECT `name`,`class` FROM `char` WHERE `name` LIKE '%"+escape_sql( .@player_name$ )+"%' ORDER BY `name` LIMIT 50",.@temp_name$,.@class );
    			.@temp_name_size = getarraysize( .@temp_name$ );
    			
    			if ( .@temp_name_size <= 0 ) {
    				dispbottom "[ GM Reward - Checklist ] '"+.@player_name$+"' doesnt exist.";
    				// next;
    				if( select( "Search another Name","Cancel" ) == 1 ) goto __OnInput;
    				return "";
    			}
    			else if ( .@temp_name_size > 1 ) {
    				dispbottom "[ GM Reward - Checklist ] Pick a player.";
    				for ( .@i = 0; .@i < .@temp_name_size; .@i++ )
    					.@menu$ = .@menu$ + "^FF0000["+jobname( .@class[.@i] )+"] ^000000" + .@temp_name$[.@i] +":";
    				.@i = select( .@menu$ ) - 1;
    			}
    		return .@temp_name$[.@i];
    	}
    	
    	function	func_display_card	{
    		for ( .@i = 0; .@i < 4; .@i++ ) {
    			.@card_id = getarg( .@i );
    			if ( .@card_id ) {
    				.@card_found++;
    				.@card[.@i] = .@card_id;
    				setd( ".@card_"+.@card_id+"_count" ),getd( ".@card_"+.@card_id+"_count" ) + 1;
    			}
    		}
    		if ( .@card_found ) {
    			.@exist_card$ = "#";
    			for ( .@i = 0; .@i < 4; .@i++ )
    				if ( .@card[.@i] ) {
    					if ( !compare( .@exist_card$,"#"+.@card[.@i]+"#" ) )
    						mes "  ^6495ED>^000000 "+func_item_name( .@card[.@i] )+" ( "+getd( ".@card_"+.@card[.@i]+"_count" )+"x )";
    					.@exist_card$ = .@exist_card$ + .@card[.@i] + "#";
    				}
    		}
    		return;
    	}
    
    	function	func_list_reward	{
    		.@condition$ = getarg( 0,"" );
    
    		query_sql( "SELECT `id`,`nameid`,`amount`,`refine`,`status`,`note` FROM `ero_gm_reward` WHERE "+.@condition$+" ORDER BY `id` DESC LIMIT 50",.@id,.@nameid,.@amount,.@refine,.@status,.@note$ );
    		.@id_size = getarraysize( .@id );
    		
    		mes " ";
    		if ( .@id_size <= 0 ) {
    			mes "^FF0000No records are founds.^000000";
    		}
    		else {
    			mes "Found "+.@id_size+" Reward(s).";
    			while( .@id_size > 0 ) {
    				
    				.@menu$ = "";
    				for ( .@i = 0; .@i < .@id_size; .@i++ ) {
    					// .@menu$ = .@menu$ + func_item_name( .@nameid[.@i],.@amount[.@i],.@refine[.@i] );
    					.@menu$ = .@menu$ + .@note$[.@i];
    					.@menu$ = .@menu$ + ":";
    				}
    				next;
    				.@reward = select( .@menu$ ) - 1;
    			
    				if ( func_view_reward( .@id[.@reward],.@status[.@reward] ) > 0 ) {
    					deletearray .@id[.@reward],1;
    					deletearray .@nameid[.@reward],1;
    					deletearray .@amount[.@reward],1;
    					deletearray .@amount[.@reward],1;
    					deletearray .@status[.@reward],1;
    					.@id_size--;
    				}
    			}
    		}
    		return;
    	}
    	
    	function	func_view_reward	{
    		.@id = getarg(0);
    		.@status = getarg(1);
    		
    		if ( .@id <= 0 ) {
    			mes "Invalid Reward - "+.@id;
    			return 0;
    		}
    		else {
    			query_sql( "SELECT `gm_name`,`nameid`,`amount`,`refine`,`reward_time`,`claim_name`,`claim_time`,`note`,`card1`,`card2`,`card3`,`card4` FROM `ero_gm_reward` WHERE `id` = '"+.@id+"' LIMIT 1",.@gm_name$,.@nameid,.@amount,.@refine,.@reward_time$,.@claim_name$,.@claim_time$,.@note$,.@card1,.@card2,.@card3,.@card4 );
    			
    			.@item_name$ = func_item_name( .@nameid,.@amount,.@refine );
    			mes "^0055FF[ Reward # "+.@id+" ]^000000";
    			mes "GM : ^777777"+.@gm_name$+"^000000";
    			mes "Player : ^777777"+.@claim_name$+"^000000";
    			mes "Item: ^0055FF"+.@item_name$+"^000000";
    			.@item_type = getiteminfo( .@nameid,2 );
    			if ( .@item_type == IT_ARMOR || .@item_type == IT_WEAPON )
    				func_display_card( .@card1,.@card2,.@card3,.@card4 );
    				
    			mes "Date: ^777777"+.@reward_time$+"^000000";
    			mes "Claimed: "+( ( .@status )? "^777777"+.@claim_time$:"^FF0000not yet" )+"^000000";
    			mes "GM Note : ";
    			mes "^777777"+.@note$+"^000000";
    			
    			.@char_name$ = strcharinfo(0);
    			.@is_gm = ( getgmlevel() >= .gm_level );
    			
    			switch( select( 
    				( .@char_name$ == .@claim_name$ && !.@status && .@claim_time$ == "0000-00-00 00:00:00" ) ? "Claim Reward":"",
    				( .@is_gm && .@status == 0 ) ? "^FF0000Delete Reward^000000":"",
    				( .@is_gm && .@status == 2 ) ? "^FF0000Recover Reward^000000":"",
    				"Back"
    			)){
    				default: return 0;
    				case 1:
    					if ( !checkweight( .@nameid,.@amount ) ) {
    						message .@char_name$,"Overweight Detected!";
    					}
    					else {
    						query_sql( "UPDATE `ero_gm_reward` SET `status` = 1,`claim_time` = NOW() WHERE `id` = "+.@id+" LIMIT 1" );
    						getitem2 .@nameid,.@amount,1,.@refine,0,.@card1,.@card2,.@card3,.@card4;
    						message .@char_name$,"Claimed Reward # "+.@id+" - "+.@item_name$;
    						break;
    					}
    				case 2:
    					query_sql( "UPDATE `ero_gm_reward` SET `status` = 2 WHERE `id` = "+.@id+" LIMIT 1" );
    					message .@char_name$,"Deleted Reward # "+.@id+" - "+.@item_name$;
    					break;
    				case 3:
    					query_sql( "UPDATE `ero_gm_reward` SET `status` = 0 WHERE `id` = "+.@id+" LIMIT 1" );
    					message .@char_name$,"Recovered Reward # "+.@id+" - "+.@item_name$;
    					break;
    			}
    		}
    		return 1;
    	}
    }
    
    
    
    
    
    
    

     

     

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.