Jump to content

mrlongshen

Members
  • Content Count

    1126
  • Joined

  • Last visited

  • Days Won

    3

Posts posted by mrlongshen


  1. /* ______________________________________________________________  |                                                              |  | rAthena Script                                               |  |                                                              |  | Rewards NPC                                                  |  | By:                                                          |  | Viole                                                        |  |                                                              |  | Current Version                                              |  | 1.6                                                          |  |                                                              |  | Description:                                                 |  | NPC which you can assign a reward                            |  | to a 'specific' player and set                               |  | the quantity of the reward to be                             |  | given.                                                       |  |                                                              |    | Changelog:                                                   |  | Rewards NPC 1.0  Items recognized are only from item_db      |  | Rewards NPC 1.1  Items recognized from item_db to item_db2   |  | Rewards NPC 1.1  Prevent null from typing 0 in item & amount |  | Rewards NPC 1.1  Main: Can put many players now to give item |  | Rewards NPC 1.2  Fixed Cancel the process option             |  | Rewards NPC 1.2  Added Delete a process or all process option|  | Rewards NPC 1.3  Added Show Current Processes option         |  | Rewards NPC 1.4  Added Party Option in Assign Rewards        |  | Rewards NPC 1.4  Show Current Process (Player or Party)      |  | Rewards NPC 1.4  Added Delete Option for Party               |  | Rewards NPC 1.5  Added Guild Option in Assign Rewards        |  | Rewards NPC 1.5  Show Current Process (Player/Party/Guild)   |  | Rewards NPC 1.5  Added Delete Option for Guild               |  | Rewards NPC 1.5  Announce. GM adds a process for Party/Guild |  | Rewards NPC 1.6  Added View Logs (Credits: Euphy)            |  |                                  (Requested: bVersatile)     |  |                                                              |  | Note:                                                        |  | Players can view the logs too, or it's your choice to        |  | remove it, or not. Feel free to edit things inside.          |  |                                                              |  | If you added 2 items to a 'same' player/guild/party          |  | Only the first one is recognized.                            |  |                                                              |  | If you delete 1 player/party/guild process, all its          |  | player/party/guild's process will be deleted.                |  |                                                              |  | If some processes were deleted, and if you add a new process,|  | all those previous slots will be filled up.                  |  |                                                              |  | About the query sql's, I sucked at query sql, and got a prob |  | when adding only 1 sql, becuz of nulls..(I'll learn more)    |  |______________________________________________________________|*/  -	script	Rewards#101	-1,{	set .@n$, "^FF0000[Rewards NPC]^000000";	set .gmlvl, 40;	if (getgmlevel() >= .gmlvl)	{	admin_only:		mes .@n$;			mes "Hello, GM "+strcharinfo(0)+"!";		mes "What do you want to do?";		next;		switch(select("Assign Reward:Show Current Processes:Delete Process:View Logs"))		{		case 1:			next;			mes .@n$;			mes"Choose what category you want to give the reward.";			next;			switch(select("To a Player:To a Party:To a Guild"))			{			case 1:				next;				mes .@n$;				mes "To whom do you wanna give the reward?";				input @playername$;				query_sql "SELECT `char_id` FROM `char` WHERE `name` = '"+escape_sql(@playername$)+"'",.@charid;						if (!.@charid) {next; mes .@n$; mes "The name is invalid."; next; goto admin_only; }							else set .@charid,0;				next;				mes .@n$;				mes "What will be the reward item?";				mes "Please, input the Item ID #";				input @inputrewarditem;				if (getitemname(@inputrewarditem) == "null" || getitemname(@inputrewarditem) == "") {next; mes .@n$; mes "The item doesn't exists in the database."; next; goto admin_only; }				set @rewarditem, @inputrewarditem;				next;				mes .@n$;				mes "How many "+getitemname(@rewarditem)+" will be given to "+@playername$+"?";				input @rewardamount;				if(@rewardamount <= 0) {next; mes .@n$; mes "Please input a number greater than 0"; next; goto admin_only; }				next;				mes .@n$;				mes "So, player "+@playername$+" will have";				mes ""+@rewardamount+" "+getitemname(@rewarditem)+"s. Great~!";				next;				message @playername$,"Please claim your rewards from the Rewards NPC! "+@rewardamount+" "+getitemname(@rewarditem)+"s";				query_sql "INSERT INTO `rewardplayernpc` (`playername`, `reward_id`, `reward_amount`) VALUES ('"+@playername$+"', "+@rewarditem+", "+@rewardamount+")";				setarray $giverlog1$[getarraysize($giverlog1$)],strcharinfo(0);				setarray $receiverlog1$[getarraysize($receiverlog1$)],@playername$;				setarray $itemlog1[getarraysize($itemlog1)],@rewarditem;				setarray $amountlog1[getarraysize($amountlog1)],@rewardamount;				set @playername$, "";				close2;				end;			case 2:				next;				mes .@n$;				mes "Please input the party name..";				input @partyname$;				query_sql "SELECT `party_id` FROM `party` WHERE `name` = '"+escape_sql(@partyname$)+"'",.@partyid;					if (!.@partyid) {next; mes .@n$; mes "The party name is invalid."; next; goto admin_only; }						else set .@partyid,0;				next;				mes .@n$;				mes "What will be the reward item?";				mes "Please, input the Item ID #";				input @inputpartyrewarditem;				if (getitemname(@inputpartyrewarditem) == "null" || getitemname(@inputpartyrewarditem) == "") {next; mes .@n$; mes "The item doesn't exists in the database."; next; goto admin_only; }				set @partyrewarditem, @inputpartyrewarditem;				next;				mes .@n$;				mes "How many "+getitemname(@partyrewarditem)+" will be given to party "+@partyname$+"?";				input @partyrewardamount;				if(@partyrewardamount <= 0) {next; mes .@n$; mes "Please input a number greater than 0"; next; goto admin_only; }				next;				mes .@n$;				mes "So, party "+@partyname$+" will have";				mes ""+@partyrewardamount+" "+getitemname(@partyrewarditem)+"s. Great~!";				next;				announce "Party leader of the party ["+@partyname$+"], please claim your "+@partyrewardamount+" "+getitemname(@partyrewarditem)+"s from the Rewards NPC! ",0,0xDBA901;				query_sql "INSERT INTO `rewardpartynpc` (`partyname`, `reward_id`, `reward_amount`) VALUES ('"+@partyname$+"', "+@partyrewarditem+", "+@partyrewardamount+")";				setarray $giverlog2$[getarraysize($giverlog2$)],strcharinfo(0);				setarray $receiverlog2$[getarraysize($receiverlog2$)],@partyname$;				setarray $itemlog2[getarraysize($itemlog2)],@partyrewarditem;				setarray $amountlog2[getarraysize($amountlog2)],@partyrewardamount;				set @partyname$, "";				close2;				end;			case 3:				next;				mes .@n$;				mes "Please input the guild name..";				input @guildname$;				query_sql "SELECT `guild_id` FROM `guild` WHERE `name` = '"+escape_sql(@guildname$)+"'",.@guildid;						if (!.@guildid) {next; mes .@n$; mes "The guild name is invalid."; next; goto admin_only; }							else set .@guildid,0;				next;				mes .@n$;				mes "What will be the reward item?";				mes "Please, input the Item ID #";				input @inputguildrewarditem;				if (getitemname(@inputguildrewarditem) == "null" || getitemname(@inputguildrewarditem) == "") {next; mes .@n$; mes "The item doesn't exists in the database."; next; goto admin_only; }				set @guildrewarditem, @inputguildrewarditem;				next;				mes .@n$;				mes "How many "+getitemname(@guildrewarditem)+" will be given to the guild "+@guildname$+"?";				input @guildrewardamount;				if(@guildrewardamount <= 0) {next; mes .@n$; mes "Please input a number greater than 0"; next; goto admin_only; }				next;				mes .@n$;				mes "So, guild "+@guildname$+" will have";				mes ""+@guildrewardamount+" "+getitemname(@guildrewarditem)+"s. Great~!";				next;				announce "GuildMaster of the Guild ["+@guildname$+"], please claim your "+@guildrewardamount+" "+getitemname(@guildrewarditem)+"s from the Rewards NPC!",0,0xDBA901;				query_sql "INSERT INTO `rewardguildnpc` (`guildname`, `reward_id`, `reward_amount`) VALUES ('"+@guildname$+"', "+@guildrewarditem+", "+@guildrewardamount+")";				setarray $giverlog3$[getarraysize($giverlog3$)],strcharinfo(0);				setarray $receiverlog3$[getarraysize($receiverlog3$)],@guildname$;				setarray $itemlog3[getarraysize($itemlog3)],@guildrewarditem;				setarray $amountlog3[getarraysize($amountlog3)],@guildrewardamount;				setarray $numberlog3[getarraysize($numberlog3)],1;				set @guildname$, "";				close2;				end;			}		case 2:			show_process:			next;			mes .@n$;			mes "Choose from what category you would like to view current processes.";			next;			switch(select("Player:Party:Guild"))			{			case 1:				next;				mes "^FF0000[Current Processes]^000000";				mes "••••••••••••••••••••••••••••••••";				query_sql "SELECT `playername`, `reward_id`, `reward_amount` FROM `rewardplayernpc`", .@show_name$, .@show_item, .@show_amount;				for(set @i, 0; @i < getarraysize(.@show_name$); set @i, @i+1)				{					mes "To: ^FF0000Player^000000 ^0000FF"+.@show_name$[@i]+"^000000";					mes "Reward: "+.@show_amount[@i]+" "+getitemname(.@show_item[@i])+"s";					mes "••••••••••••••••••••••••••••••••";				}				goto show_process;							case 2:				next;				mes "^FF0000[Current Processes]^000000";				mes "••••••••••••••••••••••••••••••••";				query_sql "SELECT `partyname`, `reward_id`, `reward_amount` FROM `rewardpartynpc`", .@partyshow_name$, .@partyshow_item, .@partyshow_amount;				for(set @i, 0; @i < getarraysize(.@partyshow_name$); set @i, @i+1)				{					mes "To: ^088A4BParty^000000 ^0000FF"+.@partyshow_name$[@i]+"^000000";					mes "Reward: "+.@partyshow_amount[@i]+" "+getitemname(.@partyshow_item[@i])+"s";					mes "••••••••••••••••••••••••••••••••";				}				goto show_process;			case 3:				next;				mes "^FF0000[Current Processes]^000000";				mes "••••••••••••••••••••••••••••••••";				query_sql "SELECT `guildname`, `reward_id`, `reward_amount` FROM `rewardguildnpc`", .@guildshow_name$, .@guildshow_item, .@guildshow_amount;				for(set @i, 0; @i < getarraysize(.@guildshow_name$); set @i, @i+1)				{					mes "To: ^B18904Guild^000000 ^0000FF"+.@guildshow_name$[@i]+"^000000";					mes "Reward: "+.@guildshow_amount[@i]+" "+getitemname(.@guildshow_item[@i])+"s";					mes "••••••••••••••••••••••••••••••••";				}				goto show_process;			}		case 3:			next;			mes .@n$;			mes "Do you want to delete one process only or all processes?";			switch(select("Delete one process only:Delete all processes:Leave it as it is"))			{			case 1:				next;				mes .@n$;				mes "Please choose from what category you would like to delete a process.";				next;				switch(select("Player:Party:Guild"))				{				case 1:					next;					mes .@n$;					mes "Please input the player name you want to delete the process.";					input @deletename$;					next;					query_sql "SELECT `playername`, `reward_id`, `reward_amount` FROM `rewardplayernpc`", .@delete_name$, .@delete_item, .@delete_amount;					for (set @i, 0; @i < getarraysize(.@delete_name$); set @i, @i+1)					{					if(@deletename$ == .@delete_name$[@i])						{						mes .@n$;						mes "Deleting....";						query_sql "DELETE FROM `rewardplayernpc` WHERE `playername`='"+@deletename$+"'";						next;						mes .@n$;						mes "Deleted unclaimed process!";						close;						}					}					goto R_Invalid;				case 2:					next;					mes .@n$;					mes "Please input the party name you want to delete the process.";					input @partydeletename$;					next;					query_sql "SELECT `partyname`, `reward_id`, `reward_amount` FROM `rewardpartynpc`", .@partydelete_name$, .@partydelete_item, .@partydelete_amount;					for (set @i, 0; @i < getarraysize(.@partydelete_name$); set @i, @i+1)					{					if(@partydeletename$ == .@partydelete_name$[@i])						{						mes .@n$;						mes "Deleting....";						query_sql "DELETE FROM `rewardpartynpc` WHERE `partyname`='"+@partydeletename$+"'";						next;						mes .@n$;						mes "Deleted unclaimed process!";						close;						}					}					goto R_Invalid;				case 3:					next;					mes .@n$;					mes "Please input the guild name you want to delete the process.";					input @guilddeletename$;					next;					query_sql "SELECT `guildname`, `reward_id`, `reward_amount` FROM `rewardguildnpc`", .@guilddelete_name$, .@guilddelete_item, .@guilddelete_amount;					for (set @i, 0; @i < getarraysize(.@guilddelete_name$); set @i, @i+1)					{					if(@guilddeletename$ == .@guilddelete_name$[@i])						{						mes .@n$;						mes "Deleting....";						query_sql "DELETE FROM `rewardguildnpc` WHERE `guildname`='"+@guilddeletename$+"'";						next;						mes .@n$;						mes "Deleted unclaimed process!";						close;						}					}					goto R_Invalid;				}			case 2:				next;				mes .@n$;				mes "Please input DELETE to delete all the unclaimed processes.";				input @deleteall$;					if(@deleteall$ == "DELETE")					{						next;						mes .@n$;						mes "Deleting....";						query_sql "DELETE FROM `rewardplayernpc`";						query_sql "DELETE FROM `rewardpartynpc`";						query_sql "DELETE FROM `rewardguildnpc`";						next;						mes .@n$;						mes "Deleted all unclaimed processes!";						close;					}					next;					mes .@n$;					mes "Next time, please input DELETE correctly!";					close;			case 3:				next;				mes .@n$;				mes "Nothing Changed!";				close2;				end;			}		case 4:		viewlogs:			next;			mes .@n$;			mes "Choose what category you want to view the logs!";			next;			switch(select("Player Logs:Party Logs:Guild Logs",				( getgmlevel() < .gmlvl )?"":"Delete Logs"))			{			case 1:				next;				mes .@n$;				mes "Current logs: ^008000" + (getarraysize($giverlog1$)) + "^000000";				mes "--------------------------------";				set .@i,0;				while (.@i < getarraysize($giverlog1$)) {						mes ""+.@i+". ^B041FFGM " + $giverlog1$[.@i] + "^000000 gave "+$amountlog1[.@i]+"x "+getitemname($itemlog1[.@i])+" to Player^55AAFF " + $receiverlog1$[.@i] + "^000000";						mes "--------------------------------";						set .@i, .@i+1; }				next;				goto viewlogs;			case 2:				next;				mes .@n$;				mes "Current logs: ^008000" + (getarraysize($giverlog2$)) + "^000000";				mes "--------------------------------";				set .@j,0;				while (.@j < getarraysize($giverlog2$)) {						mes ""+.@j+". ^B041FFGM " + $giverlog2$[.@j] + "^000000 gave "+$amountlog2[.@j]+"x "+getitemname($itemlog2[.@j])+" to Party^55AAFF " + $receiverlog2$[.@j] + "^000000";						mes "--------------------------------";						set .@j, .@j+1; }				next;				goto viewlogs;			case 3:				next;				mes .@n$;				mes "Current logs: ^008000" + (getarraysize($giverlog3$)) + "^000000";				mes "--------------------------------";				set .@k,0;				while (.@k < getarraysize($giverlog3$)) {						mes ""+.@k+". ^B041FFGM " + $giverlog3$[.@k] + "^000000 gave "+$amountlog3[.@k]+"x "+getitemname($itemlog3[.@k])+" to Guild^55AAFF " + $receiverlog3$[.@k] + "^000000";						mes "--------------------------------";						set .@k, .@k+1; }				next;				goto viewlogs;			case 4:				next;				mes .@n$;				mes "^FF0000This action cannot be undone.^000000";				mes "Are you sure?";				mes " ";				if (select("Yes:No") == 2) { mes "Request cancelled."; next; goto Log_Menu; }				deletearray $giverlog1$[0],getarraysize($giverlog1$); deletearray $receiverlog1$[0],getarraysize($receiverlog1$);				deletearray $itemlog1[0],getarraysize($itemlog1); deletearray $amountlog1[0],getarraysize($amountlog1);				deletearray $giverlog2$[0],getarraysize($giverlog2$); deletearray $receiverlog2$[0],getarraysize($receiverlog2$);				deletearray $itemlog2[0],getarraysize($itemlog2); deletearray $amountlog2[0],getarraysize($amountlog2);				deletearray $giverlog3$[0],getarraysize($giverlog3$); deletearray $receiverlog3$[0],getarraysize($receiverlog3$);				deletearray $itemlog3[0],getarraysize($itemlog3); deletearray $amountlog3[0],getarraysize($amountlog3);				next;				mes .@n$;				mes "Logs cleared.";				next;				goto admin_only;			}		}	}	mes .@n$;	mes "Hello, "+strcharinfo(0)+"!";	next;	switch(Select("Claim Reward:View Logs:Leave"))	{	case 1:		mes .@n$;		mes "From what category you want to claim your reward?";		next;		switch(select("Player:Party:Guild"))		{		case 1:			mes .@n$;			mes "Please enter your Name:";			input @winnername$;			if (@winnername$!=strcharinfo(0)){next; mes .@n$; mes "You are a fake!"; close; end; }			next;			query_sql "SELECT `playername`, `reward_id`, `reward_amount` FROM `rewardplayernpc`", .@available_name$, .@available_item, .@available_amount;			for (set @i, 0; @i < getarraysize(.@available_name$); set @i, @i+1)			{			if(@winnername$ == .@available_name$[@i])				{				mes .@n$;				mes "You get ^0000FF" + getitemname(.@available_item[@i]) + " - " + .@available_amount[@i] + " ea.^000000";				query_sql "DELETE FROM `rewardplayernpc` WHERE `playername`='"+@winnername$+"'";				getitem .@available_item[@i],.@available_amount[@i];				announce "Player "+.@available_name$[@i]+" has claimed "+.@available_amount[@i]+" "+getitemname(.@available_item[@i])+"s from the Rewards NPC!",0,0xDBA901;				close;				}			}			goto R_Noreward;		case 2:			if( !getcharid(1) || getcharid(3) != getpartyleader( getcharid(1),1 ) ){next; mes .@n$; mes "Only party leaders are allowed here!"; close; end; }			mes .@n$;			mes "Please enter your party name:";			input @partywinnername$;			if (@partywinnername$!=strcharinfo(1)){next; mes .@n$; mes "You are a fake!"; close; end; }			next;			query_sql "SELECT `partyname`, `reward_id`, `reward_amount` FROM `rewardpartynpc`", .@partyavailable_name$, .@partyavailable_item, .@partyavailable_amount;			for (set @i, 0; @i < getarraysize(.@partyavailable_name$); set @i, @i+1)			{			if(@partywinnername$ == .@partyavailable_name$[@i])				{				mes .@n$;				mes "You get ^0000FF" + getitemname(.@partyavailable_item[@i]) + " - " + .@partyavailable_amount[@i] + " ea.^000000";				query_sql "DELETE FROM `rewardpartynpc` WHERE `partyname`='"+@partywinnername$+"'";				announce "Party "+.@partyavailable_name$[@i]+" has claimed "+.@partyavailable_amount[@i]+" "+getitemname(.@partyavailable_item[@i])+"s from the Rewards NPC!",0,0xDBA901;				getitem .@partyavailable_item[@i],.@partyavailable_amount[@i];				close;				}			}			goto R_Noreward;		case 3:			set @guildid, getcharid(2);			if( !getcharid(2) || strcharinfo(0) != getguildmaster(@guildid) ){next; mes .@n$; mes "Only guild masters are allowed here!"; close; end; }			mes .@n$;			mes "Please enter your guild name:";			input @guildwinnername$;			if (@guildwinnername$!=strcharinfo(2)){next; mes .@n$; mes "You are a fake!"; close; end; }			next;			query_sql "SELECT `guildname`, `reward_id`, `reward_amount` FROM `rewardguildnpc`", .@guildavailable_name$, .@guildavailable_item, .@guildavailable_amount;			for (set @i, 0; @i < getarraysize(.@guildavailable_name$); set @i, @i+1)			{			if(@guildwinnername$ == .@guildavailable_name$[@i])				{				mes .@n$;				mes "You get ^0000FF" + getitemname(.@guildavailable_item[@i]) + " - " + .@guildavailable_amount[@i] + " ea.^000000";				query_sql "DELETE FROM `rewardguildnpc` WHERE `guildname`='"+@guildwinnername$+"'";				announce "Guild "+.@guildavailable_name$[@i]+" has claimed "+.@guildavailable_amount[@i]+" "+getitemname(.@guildavailable_item[@i])+"s from the Rewards NPC!",0,0xDBA901;				getitem .@guildavailable_item[@i],.@guildavailable_amount[@i];				close;				}			}			goto R_Noreward;		}	case 2:		next;		goto viewlogs;	case 3:		mes .@n$;		mes "See yah.";		close;	}	R_Invalid:	mes "^FF0000[Rewards NPC]^000000";	mes "Invalid. Does not exists in the logs!";	close;	R_Noreward:	mes "^FF0000[Rewards NPC]^000000";	mes "No rewards at the meantime";	mes "Get out!";	close;OnInit:	query_sql "CREATE TABLE IF NOT EXISTS `rewardplayernpc` (`playername` TINYTEXT NOT NULL, `reward_id` INT NOT NULL, `reward_amount` INT NOT NULL, INDEX `playername` (`playername`(32)) ) ENGINE=MyISAM";	query_sql "CREATE TABLE IF NOT EXISTS `rewardpartynpc` (`partyname` TINYTEXT NOT NULL, `reward_id` INT NOT NULL, `reward_amount` INT NOT NULL, INDEX `partyname` (`partyname`(32)) ) ENGINE=MyISAM";	query_sql "CREATE TABLE IF NOT EXISTS `rewardguildnpc` (`guildname` TINYTEXT NOT NULL, `reward_id` INT NOT NULL, `reward_amount` INT NOT NULL, INDEX `guildname` (`guildname`(32)) ) ENGINE=MyISAM";}/* Add npc's here (duplicate) ciao */prontera,136,170,5	duplicate(Rewards#101)	Rewards NPC	566					

     

    You may try this ?


  2. For keeping things clear:

    • db/mob_db2.txt for creating custom mobs, with their stats, drops and basic parameters such as name, ID and exp. Mobs will have no other special attacks than basic attacks.
    • db/mob_avail.txt for assigning a sprite to your new mob based on another existent mob. Not requied if using mob sprites clientside.
    • db/mob_skill_db2.txt for assigning skills to your mob. Skills are any action the mob can do, other than basic attack.

    You have all this info (and quite a lot more!) on our Wiki page: http://herc.ws/wiki/Custom_Mobs

     

    thanks bro. I will do a research more about mob_skill_db2 :)

    thx alot..

    btw, i have look at mob_skill_db on renewal.

    why there are many duplicate but different syntax ?

     

    example..

     

    1086,Golden Thief Bug@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,1086,Golden Thief Bug@AL_TELEPORT,idle,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,1086,Golden Thief Bug@AL_TELEPORT,walk,26,1,5000,0,5000,yes,self,rudeattacked,,,,,,,,1086,Golden Thief Bug@HP_ASSUMPTIO,idle,361,5,10000,0,100000,yes,self,always,0,,,,,,36,1086,Golden Thief Bug@HP_ASSUMPTIO,attack,361,5,10000,0,100000,yes,self,always,0,,,,,,36,1086,Golden Thief Bug@CR_REFLECTSHIELD,attack,252,10,10000,0,300000,yes,self,always,0,,,,,,6,1086,Golden Thief Bug@CR_REFLECTSHIELD,chase,252,10,10000,0,300000,yes,self,always,0,,,,,,6,1086,Golden Thief Bug@MC_MAMMONITE,attack,42,20,2000,0,5000,no,target,always,0,,,,,,8,1086,Golden Thief Bug@SM_MAGNUM,attack,7,20,2000,0,5000,no,self,always,0,,,,,,,1086,Golden Thief Bug@MG_FIREBALL,chase,17,20,2000,0,5000,no,target,skillused,18,,,,,,,1086,Golden Thief Bug@NPC_GUIDEDATTACK,attack,172,5,500,0,20000,no,target,always,0,,,,,,,1086,Golden Thief Bug@NPC_SUMMONSLAVE,attack,196,10,10000,700,10000,no,self,slavele,5,1608,,,,,,1086,Golden Thief Bug@NPC_SUMMONSLAVE,idle,196,10,10000,700,10000,no,self,slavele,5,1608,,,,,,1086,Golden Thief Bug@NPC_SUMMONSLAVE,idle,196,10,10000,0,0,no,self,onspawn,0,1054,,,,,,1086,Golden Thief Bug@TF_HIDING,attack,51,1,1000,0,5000,no,self,myhpltmaxrate,20,,,,,,19,1086,Golden Thief Bug@AL_HEAL,idle,28,11,10000,0,5000,yes,self,mystatuson,hiding,,,,,,,

  3.  

    How to make a custom mob work perfectly ?

    Example I have a custom mobs, the effect I take from the baphomet, Why my custom mobs not strong and not summon their child ?

    like baphomet spawn baphomet jr. ? can someone explain give a guide how to add custom mob effect perfectly ?

    you can use db/mob_avail.txt

    // Structure of Database:// MobID,SpriteID{,Equipment}

    example:

    1002,1039		// Poring - Baphomet1970,1002,10013	// Displays a Poring with a backpack

    is that for clone ?


  4. How to make a custom mob work perfectly ?

    Example I have a custom mobs, the effect I take from the baphomet, Why my custom mobs not strong and not summon their child ?

    like baphomet spawn baphomet jr. ? can someone explain give a guide how to add custom mob effect perfectly ?


  5.  

     

    Add it to /conf/plugins.conf

     

    plugins_list: [	/* Enable HPMHooking when plugins in use rely on Hooking */	//"HPMHooking",	//"db2sql",	//"sample",	//"other",	"afk", // << have you added your plugins here.]

     

     

     

     

    Add it to /conf/plugins.conf

     

    plugins_list: [	/* Enable HPMHooking when plugins in use rely on Hooking */	//"HPMHooking",	//"db2sql",	//"sample",	//"other",	"afk", // << have you added your plugins here.]

     

     

    ouch sory bro ! my eyes blur ! T_T

    thanks alot .


  6.  

     

    @nemo,

    I have tested the custom font.

    I need to change the langtype to my country 1st.

    then for the first trial, I tested on candara font.

    attachicon.gifcandara.png

    its work !

     

    For the 2nd time, I tried on the Arial Black.

    attachicon.gifariablack.png

    its works !

     

    For third times, I tried on the Arial but italic.

    attachicon.gifarialitalic2.pngattachicon.gifarialitalic.png

    its fails.

     

    For the 4th times. I tried on the Arial but bold.

    attachicon.gifarialbold2.pngattachicon.gifarialbold1.png

     

    So, I realize, for normal font type is right.

    The bugs is on Italic, and bold. Maybe ?

    @nemo maybe take an action. hehe~

     

     

    mrlongshen actually you can only specify the font names... bold & italics etc is chosen by the client. Even in the WeeDiff patcher it was same way.

    I have updated Nemo to accept only font names now to avoid confusion.

     

     

    >

    @Neo

    Can you add "Add Custom DLL" Patch?

    Shikazu has already made a DLL importer. won't it be redundant to have a patch which loads custom dll?

     

    ok thanks alot.

    sir. can you add custom NPC range ID ?

    support 32k ?


  7.  

     

    @kyeme, now its work.

    +1 for you. Thanks alot :)

    is that possible for @go ?

    - script atcmd_godelay -1,{

    OnInit:

    bindatcmd "go",strnpcinfo(3)+"::OnAtcommand",0;

    end;

    OnAtcommand:

    set .@min,1; //delay in mins

    set .@gmlvl,2; // GM lvl to bypass the delay

    set .@delay,.@min * 60;

    if (@godelay > gettimetick(2)) && getgmlevel() < .@gmlvl) {

    set .@delaytime,@godelay - gettimetick(2);

    message strcharinfo(0),"You must wait "+.@delaytime+" seconds to use this command again.";

    end;

    }

    setarray .@param$,.@atcmd_parameters$[0],.@atcmd_parameters$[1],.@atcmd_parameters$[2];

    set .@map$,implode(.@param$," ");

    atcommand "@go "+.@map$+"";

    set @godelay,gettimetick(2) + .@delay;

    end;

    here for @go i just edit it :)

     

    thx alot :)


  8.  

    -	script	Sample	-1,{    OnInit:        bindatcmd "warp",strnpcinfo(3)+"::OnWarp";        end;    OnWarp:        if ( gettimetick(2) < delay ) {            dispbottom "Time left before you can use @warp : " +(delay - gettimetick(2))+ " seconds.";            end;        }        if ( .@atcmd_numparameters > 3 || !.@atcmd_numparameters ) {            dispbottom "Usage : @warp <map name>,<x>,<y>";            end;        }        atcommand "@warp " +implode(.@atcmd_parameters$, " ");        delay = gettimetick(2) + 100; // add 100 seconds delay        end;}

     

    i try this and my client crash.


  9. @nemo,

    I have tested the custom font.

    I need to change the langtype to my country 1st.

    then for the first trial, I tested on candara font.

    post-1425-0-86335400-1384700055_thumb.png

    its work !

     

    For the 2nd time, I tried on the Arial Black.

    post-1425-0-90371300-1384700040_thumb.png

    its works !

     

    For third times, I tried on the Arial but italic.

    post-1425-0-35598000-1384700338_thumb.pngpost-1425-0-22786100-1384700325_thumb.png

    its fails.

     

    For the 4th times. I tried on the Arial but bold.

    post-1425-0-16134300-1384701023_thumb.pngpost-1425-0-63875400-1384701008_thumb.png

     

    So, I realize, for normal font type is right.

    The bugs is on Italic, and bold. Maybe ?

    @nemo maybe take an action. hehe~


  10. @nemo its working now.

    but i have some issues.

    Enable Title Bar Menu
    -> I try minimize my client and its have a delay. haha.
    why ?

    Increase Attack Display
    -> This have problem. When i attack, my client crash.

    Nemo I hope you will add custom font :)


    This below is my diff for my client 2013-08-07a

    64 @ Bug Fix (Recommended)88 Allow space in guild name33 Always Call SelectKoreaClientInfo() (Recommended)51 Ascii & Arial on All Langtypes (Recommended)97 Cancel to Login Window (Recommended)8 Custom Window Title9 Disable 1rag1 type parameters (Recommended)15 Disable HShield (Recommended)14 Disable Hallucination Wavy Screen (Recommended)41 Disable Nagle Algorithm (Recommended)61 Disable Packet Encryption (Recommended)13 Disable Ragexe Filename Check (Recommended)90 Enable DNS Support (Recommended)49 Enable Multiple GRFs (Recommended)19 Enable Title Bar Menu20 Extend Chat Box21 Extend Chat Room Box69 Extend Npc Dialog Box22 Extend PM Box24 Fix Camera Angles (Recommended)71 Ignore Missing File Error72 Ignore Missing Palette Error28 Increase Headgear ViewID74 Increase Screenshot Quality32 Increase Zoom Out Max36 Read msgstringtable.txt (Recommended)37 Read questid2display.txt (Recommended)96 Remove GM Sprites38 Remove Gravity Ads (Recommended)39 Remove Gravity Logo (Recommended)73 Remove Hourly Announce (Recommended)84 Remove Serial Display (Recommended)40 Restore Login Window (Recommended)50 Skip License Screen44 Translate Client (Recommended)45 Use Custom Aura Sprites48 Use Plain Text Descriptions (Recommended)47 Use Ragnarok Icon

     

    Now getting happy :)
     

×
×
  • Create New...

Important Information

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