Jump to content

Litro

Members
  • Content Count

    365
  • Joined

  • Last visited

  • Days Won

    4

Posts posted by Litro


  1. as always, thank you ma'am..  :wub:

     

    OOT:

    are you using visual studio ma'am ? and in other topic there is saying (forgot who is saying this) the project (plugin project (sample plugin project)) can be copy pasted to make other plugin to work, are you using this method? if yes can you make tutorial about it? the lazy and ungrateful me is always have to open wiki to get the plugin to work


  2. *Cool Down : amount of time until character can re-use this skill, in miliseconds

    SkillID			19CastingTime		700:1400:2100:2800:3500:4200:4900:5600:6300:7000AfterCastActDelay	1000:1200:1400:1600:1800:2000:2200:2400:2600:2800AfterCastWalkDelay	0Duration1		0Duration2		0Cool Down		0

    change

    ​//-- MG_FIREBOLT19,700:1400:2100:2800:3500:4200:4900:5600:6300:7000,1000:1200:1400:1600:1800:2000:2200:2400:2600:2800,0,0,0,0

    to

    ​//-- MG_FIREBOLT19,700:1400:2100:2800:3500:4200:4900:5600:6300:7000,1000:1200:1400:1600:1800:2000:2200:2400:2600:2800,0,0,0,1000

     

    and add in skill_castnodex_db.txt

    19,0,4

  3. -	shop	dynamicshop	-1,501:50prontera,150,150,4	script	Dynamic Shop	100,{	callshop "dynamicshop",1;	npcshopattach "dynamicshop";	end;	OnBuyItem:		for ( set .@j, 0; .@j < getarraysize(.items); set .@j, .@j + 2 ) {			for ( set .@k, 0; .@k < getarraysize(@bought_nameid); set .@k, .@k + 1 ) {				if ( @bought_nameid[.@k] == .items[.@j] ) {					if ( checkweight( @bought_nameid[.@k], @bought_quantity[.@k] ) ) {						if ( getd(.currency$) < .items[.@j+1] )							dispbottom "You don't have enough kill points to purchase this item.";						else {							setd .currency$, getd(.currency$) - .items[.@j+1] * @bought_quantity[.@k];							getitem @bought_nameid[.@k], @bought_quantity[.@k];						}					} else dispbottom "You cannot carry out more items with you";				}			}		}		deletearray @bought_quantity, getarraysize(@bought_quantity);		deletearray @bought_nameid, getarraysize(@bought_nameid);		end;	OnInit:		set .currency$, "#KILLPOINTS"; // kill points is used to buy items		setarray .items, 7227,5; // Usage : <item id>,<price>		npcshopitem "dynamicshop",0,0;		for ( set .@i, 0; .@i < getarraysize(.items); set .@i, .@i + 2 )			npcshopadditem "dynamicshop", .items[.@i], .items[.@i+1];		end;}

  4.  

    @@Angelmelody, I did as said on this post. I can see the item everything description but when equipped I can't see the view of the item o.O

    I am getting this error, items really  dont save when char logs out but the view of them exists. The ones passed the max cap of 32768 or w/e it is. D:

     

     [SQL]: DB error - data of field 'nameid' was truncated.[Debug]: column - 1[Debug]: data   - type=UNSIGNED MYSQL_TYPE_LONG, length=2[Debug]: buffer - type=MYSQL_TYPE_SHORT, length=2[Info]: Saved char 150000 - Aeromesi: inventory status skills.

     

    here click me to solve that error when saving inventory data


  5. try this

    -	script	give skill	-1,{	setarray .@skill_ids, 98, 99;	setarray .@skill_lvl,  1,  1;	for (.@i = 0; .@i < getarraysize(.@skill_ids); .@i++) {		skill .@skill_ids[.@i], .@skill_lvl[.@i], 0;	}	end;}

    and you need to read the complete documentation of *skill or *addtoskill to get what you want, 98 is BS_DAGGER if the player is Black Smith and have maxed this skill level and you give him BS_DAGGER skill level lower than skill max level it would never appear, not tested yet though just a theory of mine

    *skill <skill id>,<level>{,<flag>};*skill "<skill name>",<level>{,<flag>};*addtoskill <skill id>,<level>{,<flag>};*addtoskill "<skill name>",<level>{,<flag>};These commands will give the invoking character a specified skill. This is also used for item scripts.Level is obvious. Skill id is the ID number of the skill in question as per 'db/(pre-)re/skill_db.txt'. It is not known for certain whether this can be used to give a character a monster's skill, but you're welcome to try with the numbers given in 'db/(pre-)re/mob_skill_db.txt'.Flag is 0 if the skill is given permanently (will get written with the character data) or 1 if it is temporary (will be lost eventually, this is meant for card item scripts usage.).  The flag parameter is optional, and defaults to 1 in 'skill' and to 2 in 'addtoskill'.Flag 2 means that the level parameter is to be interpreted as a stackable additional bonus to the skill level. If the character did not have that skill previously, they will now at 0+the level given.// This will permanently give the character Stone Throw // (TF_THROWSTONE,152), at level 1.    skill 152,1,0;Flag 3 is the same as flag 0 in that it saves to the database. However, these skills are ignored when any action is taken that adjusts the skill tree (reset/job change).

  6. @@Triedge,  You can read first post, haru give instruction how to convert mob_db old format to new one, you still can make dozen mob and convert it easily

     

    Just Go to http://haru.ws/hercu...mobdbconverter/ and paste (or upload) your mob_db2.txt (or even your mob_db.txt if you have custom entries there), pick between renewal or pre-renewal (or upload your item_db if it's customized), press the Convert button, wait a few seconds and you're done! It's already converted for you. Easy, isn't it?


  7. Look here:

    http://herc.ws/board/topic/7617-2014-10-22-client-download/?p=59717

     

    Use a VPN/proxy if you're unable to download from there (wouldn't see why you can't though).

     

    but AFAIK Ossi0110 said 2014-10-22 isn't yet ready for live server, but you can use it for test or local server

     

    everyone said that 2012-04-10 and 2013-08-07 are the stable client. but it's 2015 now. is there a 2014 or 2015 stable clients?

     

    you can visit Client-Side releases and thread client released by Ossi0110 they are ready to use

    - 2012-04-10

    - 2013-12-23

    - 2014-01-15

    - 2014-02-05


  8. Hi there..

     

    I have some trouble when it compiling plugins with (make plugins), overall when compiling server with make sql it was fine but when i do compile plugins it give me some warning just warning, if anyone can shed the light please...

     

    gcc version: gcc (GCC) 4.9.3

     

    Warning

            MAKE    pluginsmake[1]: Entering directory '/home/Admin/Hercules-master/src/plugins'        CC      HPMHooking.c (CHAR)HPMHooking.c:1:0: warning: -fPIC ignored for target (all code is position independent) // Copyright (c) Hercules Dev Team, licensed under GNU GPL. ^        PLUGIN  HPMHooking_char        CC      HPMHooking.c (LOGIN)HPMHooking.c:1:0: warning: -fPIC ignored for target (all code is position independent) // Copyright (c) Hercules Dev Team, licensed under GNU GPL. ^        PLUGIN  HPMHooking_login        CC      HPMHooking.c (MAP)HPMHooking.c:1:0: warning: -fPIC ignored for target (all code is position independent) // Copyright (c) Hercules Dev Team, licensed under GNU GPL. ^        PLUGIN  HPMHooking_map        CC      sendmail.csendmail.c:1:0: warning: -fPIC ignored for target (all code is position independent) //===== Hercules Plugin ====================================== ^sendmail.c: In function ‘buildin_sendmail’:sendmail.c:144:2: warning: suggest parentheses around assignment used as truth value [-Wparentheses]  if ( sd = map->charid2sd( charid ) ) {  ^sendmail.c:166:3: warning: format ‘%d’ expects argument of type ‘int’, but argument 17 has type ‘time_t’ [-Wformat=]   if ( SQL->Query( map->mysql_handle, "insert into mail ( dest_id, send_name, title, message, zeny, nameid, amount, refine, attribute, identify, card0, card1, card2, card3, time ) values ( %d, '%s', '%s', '%s', %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d )", charid, send_name, title, body, zeny, itemid, amount, refine, attribute, identify, card0, card1, card2, card3, time(NULL) ) == SQL_ERROR )   ^        PLUGIN  sendmailmake[1]: Leaving directory '/home/Admin/Hercules-master/src/plugins'

     


  9. Just a Small note ,  i figured out the Problem with the Equip window while checking the EQ of other players, it will be fixed in the next days.

     

    is this client can be used as stable now ? you have commit something in git hub 2 days ago it is the fix ?

     

    Also i will release a new Full client for a Recent 2015 Client

     

    and when all its done the 2015-10-01 Client will be released too with the New Dorma race

     

    :wub:


  10. you can use mysql query for it but i can't point out how since i didn't have knowledge about it atm,

     

    1st. search account id with group id 2

    2nd. list the char of that account (Optional)

    3rd. go to atcommandlog and search that account id that listed in 1st step

     

    might who with mysql query knowledge about that can help you..

    if you wan it via script that i can help you, tell me if you want it i can make it for you


  11. try this ripped form Euphy's Quest Shop, i'm trying to match your request , do not use it in live server before you test it in your local server this script yet be tested by my self but it pas script check

    -    script    Item Trader    -1,{    function Chk;    mes .@npc_name$ = "["+strnpcinfo(1)+"]";    mes "I can trade you some TCG, do you want it?";    next;    .@s = select(.menu$);    copyarray .@q[0],getd(".q_"+.@s+"[0]"),getarraysize(getd(".q_"+.@s));    mes .@npc_name$;    mes "I can trade you...";    mes .@q[2]+"x "+getitemname(.@q[1]);    mes "For exchange..";    if (.@q[3]) mes " > "+Chk(Zeny,.@q[4])+(.@q[4])+" Zeny^000000";    if (.@q[4]) for (.@i = 4; .@i < getarraysize(.@q); .@i += 2)        mes " > "+Chk(countitem(.@q[.@i]), .@q[.@i+1])+getitemname(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+(.@q[.@i+1])+")^000000";    next;    if (select("Trade:No") == 2) {        mes .@npc_name$;        mes "All right "+callfunc("F_Bye");        close;    }    if (@qe[0]) {        mes .@npc_name$;        mes "You're missing one or more requirements.";        @qe = 0;        close;    }    if (!checkweight(.@q[1],.@q[2])) {        mes .@npc_name$;        mes "^FF0000You need "+(((.@q[2]*getiteminfo(.@q[1],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000";        close;    }    if (.@q[3]) Zeny -= .@q[4];    if (.@q[4])        for (.@i = 4; .@i < getarraysize(.@q); .@i += 2)            delitem .@q[.@i], .@q[.@i+1];    getitem .@q[1], .@q[2];    mes .@npc_name$;    mes "Thanks, Glad to have a bussines with you "+callfunc("F_Bye");    specialeffect2 EF_FLOWERLEAF;    close;OnInit:    function Add;    .menu$ = "";    // Add(<menu index>, <item reward id>, <item reward amount>, <zeny requirement>, <item requirement id>, <item requiremnt amount>{,...});    Add(1, 7227,1, 1000000000, 501,1);    Add(2, 7227,2, 1500000000, 502,2,503,3);    Add(3, 7227,3, 2000000000, 503,3,504,4,505,5);    end;    function Chk {    if (getarg(0) < getarg(1)) {        @qe = 1;        return "^FF0000";    } else        return "^00FF00";}function Add {    if (getitemname(getarg(1)) == "null") {        debugmes "Item Trader: invalid item id in index #"+getarg(0)+" (skipped).";        return;    }    setarray .@j[0],getarg(0), getarg(1), getarg(2),getarg(3);    for(.@i = 4; .@i < getargcount(); .@i += 2) {        if (getitemname(getarg(.@i)) == "null") {            debugmes "Item Trader: index #"+getarg(0)+" have invalid requirement item id #"+getarg(.@i)+" (skipped).";            return;        } else            setarray .@j[.@i], getarg(.@i), getarg(.@i+1);    }    copyarray getd(".q_"+getarg(0)+"[0]"), .@j[0],getarraysize(.@j);    .menu$ += getarg(2)+"x "+getitemname(getarg(1))+":";    return;}}

  12. how you intend to give a player 5 M zeny ? if you will give 5M zeny as an item or coin, you can use this but the menu will have ugly outcome since it have long pharase, do not use in live server before you test it, i never test this script to make sure it was working as intended

     

    -	script	Item Trader	-1,{	mes .@npc_name$ = "["+strnpcinfo(1)+"]";	mes "Do yo want to trade some items?";	next;	.@s = select(.menu$) -1;	.@choice = .@s * 6;	mes .@npc_name$;	mes "I can trade you...";	mes .item_list[.@choice+1]+"x "+getitemname(.item_list[.@choice])+" + "+.item_list[.@choice+3]+"x "+getitemname(.item_list[.@choice+2]);	mes "For exchange..";	mes .item_list[.@choice+5]+"x "+getitemname(.item_list[.@choice+4]);	mes " ";	mes "Do you want to?";	next;	if (select("Yes:No") == 2) {		mes .@npc_name$;		mes "All right "+callfunc("F_Bye");		close;	}	mes .@npc_name$;	if (countitem(.item_list[.@choice+4]) < .item_list[.@choice+5]) {		mes "You dont have enought item I want.";		close;	}	mes "Glad to do bussines with you";	delitem .item_list[.@choice+4], .item_list[.@choice+5];	for (.@i = .@choice; .@i < .@choice+4; .@i+=2)		getitem item_list[.@i], .item_list[.@i+1];	close;OnInit:	setarray .item_list, 7539,1, 501,1, 7227,1, // <Item ID>,<Amount>,<Item ID>,<Amount>,<Item Price>,<Amount>						 7539,2, 502,2, 7227,2,						 7539,3, 503,3, 7227,3;	.menu$ = "";	for (.@i = 0; .@i < getarraysize(.item_list); .@i+=6)		.menu$ += .item_list[.@i+1]+"x "+getitemname(.item_list[.@i])+" + "+.item_list[.@i+3]+"x "+getitemname(.item_list[.@i+2])+" = "+.item_list[.@i+5]+"x "+getitemname(.item_list[.@i+4])+":";	end;}

  13. VisualBot, can it by-pass the botcheck script?

     

    i never have visual bot, but i think visual bot can't do it againts script check,

     

    Correct me if I'm wrong but. 0delaysprite.grf is still just a regular sprite, the only difference is it has NoAnimation for delay. Since MyServerGRF is secured, why not I get those WithAnimation sprites to MyServerGRF so regardless of what they would do to their data.grf it will still have it's animation because the first to read is MyServerGRF. My problem is what are those sprites....

    I'm also thinking about getting those WithDelaySprites on my SecuredGRF. My problem is what are those sprites...

     

    even you embed data.ini into your exe those way just can fool average cheater or leecher, but from what my experience from 130 player i have 15 of them can see through it

     

    this is the work around with out integrity check if the player can tell the priority of grfs he can just merge (oh yes the secureed grf is not to get extracted data but you can still merge / add file in to it) the edited sprite on the 1st grf not data grf (data.grf & rdata.grf always come last), so it will come back to check the integrity of grfs file, yes ? open patcher -> clikc start game -> compare the grf to the server if match open the exe, if not dont open it don't give the player notice about it let them think the exe was failed because their file


  14. Q: Still have exploits ?

    A: Yes

     

    Q: What are those and how to prevent them?

    A: a loot to put it in detail

     

    some of them is:

    1. Packet Hack, since you set packet obfuscation you could avoid it and the way to make it avail again is to tamper the client but you have set the MD5 Hash check for the client at least for minimum standart you have it already

    2. Sprite edit (0 delay) it was headache if you didn't have a game guard to check the integrity of grf file

    3. Macro, Bot, Visual Bot

     

    Point 2 and 3 for now you only can have a game guard to prevent it but even you have it no 100% guarante it will protect perfectly since there is always way found to fool the guard and worse it was the how to fool the guard is available in the net for free.


  15. true... i have used this script before and the original script was fine before the user modified the script, the only thing can go wrong is script handler since the engine betwen emulator have huge different in one way or another, mf_nogo wasn't found in the hercules emulator db/const.txt that why it give the warning, since the question is why there is no mob spawning? i assumes the script stoped when mf_nogo throw the warning... CMIIW

     

    AFAIK it was Emistry script released in rAthena, that mean if there was there and not here script user need to adjust the script to work intendedly


  16. can't see where is error that cause no mobs spawning except for mapflag nogo (not sure that will stop the script to run again or stop entirely at that point), there is 2 nogo in the first post in code box except that i think the script will run as supposed to be... if you want you can try this one

     

    prontera,164,172,5	script	Farm Zone	4_F_JPN2,{	while(1) {		mes "How can i help you ?";		switch( select( "Information:Farm Items" )) {		case 1:			mes "This is a Farm Zone.";			mes "You are able to Hunt Monster inside this Room.";			mes "Every Monster will award you random items.";			next;			mes "But there is some Condition..";			mes "You can only go in ^FF0000once every "+.RoomCleanMin+" minutes for 1 times.^000000";			mes "And Maximum of ^FF0000"+.MaxPlayers+" Players per "+.RoomCleanMin+" Minutes.^000000";			mes "Maximum Hunting Limit ^FF0000"+.MaxItemLimit+"^000000";			next;			mes "There will be a ^FF0000Room Cleaning^000000 from time to time...";			mes "All players will be kicked out, it is your bad luck if you meet this.";			mes "Delay will still apply even though you just go in for 1 Seconds..";			next;			break;		case 2:			if (#HuntRoomDelay > gettimetick(2)) {				.@last = #HuntRoomDelay - gettimetick(2);				.@min = .@last % ( 24 * 3600 ) % 3600 / (60);				mes "Wait for ^FF0000"+.@min+" Minutes^000000.";				close;			} else if (getarraysize(.Hunter) >= .MaxPlayers ) {				mes "Currently the Room is Full. Please try again later.";				close;			} else {				warp .Map$,0,0;				.Hunter[getarraysize( .Hunter )] = strcharinfo(0);				#HuntRoomDelay = gettimetick(2) + ( .DelayMin * 60 );				#FarmHunt = 0;				end;			}		}	}OnInit:	function	RandomizeItem;	.MaxPlayers = 2;		// Maximum Player can join per X Minutes.	.DelayMin = 1;			// Adding X Minutes of Delay before can go in again.	.MaxItemLimit = 10;		// Maximum Hunt Limit per round inside the Zone.	.Map$ = "guild_vs5";	// Map that will be used in thos Zone.	.RoomCleanMin = 15;		// Clear Map Every X Minutes.		// Mapflag Initialization	setarray .@mapflag, mf_nomobloot, mf_nomvploot, mf_nowarp, mf_nowarpto, mf_nochat, mf_novending, mf_nojobexp, mf_nobaseexp;	for (.@i = 0; .@i < getarraysize(.@mapflag); .@i++)		setmapflag .Map$, .@mapflag[.@i];	setmapflag .Map$, mf_nocommand, 60;	while(1) {		killmonster .Map$,"All";		mapwarp .Map$,"prontera",155,181;		monster .Map$, 0, 0,"[ Farm Zone ] Resident", -1, 80, strnpcinfo(0)+"::OnNormalKill";		monster .Map$, 0, 0,"[ Farm Zone ] Guardian", -3,  5, strnpcinfo(0)+"::OnBossKill";		deletearray .Hunter,getarraysize( .Hunter );		announce "[ Farm Zone ] : Farming Zone has been Cleaned up, another 5 Players may go in now.",bc_blue;		sleep ( .RoomCleanMin * 60000 );		mapannounce .Map$,"[ Farm Zone ] : Room Clean Up now...All Users will be warped Out.",0;		killmonster .Map$,"All";		sleep 3000;	}	end;OnNormalKill:	RandomizeItem( 0,rand(1,5) );	monster .Map$,0,0,"--ja--",-1,1,strnpcinfo(0)+"::OnNormalKill";	end;OnBossKill:	RandomizeItem( 1,rand(1,3) );	monster .Map$,0,0,"--ja--",-3,1,strnpcinfo(0)+"::OnBossKill";	end;// Function that used to Generate Random Itemsfunction	RandomizeItem	{	#FarmHunt += getarg(1);		// Normal Monster in Zone Drops Lists	if( getarg(0) == 0 ) setarray .ItemList[0],13989,14232,13517,7139,12033,12016,14534;	// Normal Boss in Zone Drops Lists	if( getarg(0) == 1 ) setarray .ItemList[0],14536,12912,12267,12266,14601,13830,13831,13832,13833;		for(.@i = 1; .@i <= getarg(1); .@i++)		getitem .ItemList[rand(getarraysize(.ItemList))], 1;			deletearray .ItemList, getarraysize(.ItemList);	dispbottom "[ Farm Zone ] : Farmed "+#FarmHunt+" / "+.MaxItemLimit+" Items";	if (#FarmHunt >= .MaxItemLimit) {		message strcharinfo(0),"Limit Reach , you may join again later.";		sleep2 2000;		warp "prontera",155,181;	}	return;}}

  17. if it was used by high rate server it will be hard to suggest but the low ~ mid rate server will open more benefits option,

     

    How about this

    Bed: if the user use bed in time of rest of real life time he will get base or job exp or both ? the formula it for you to decide

    Library: the user can collect and reading guide of maybe custom potion ? *readbook <book id>,<page>;

     

    litte addition from Jman post http://herc.ws/board/topic/10915-wip-modern-housing-using-instances/#entry64406

     

    * A shop that sells some potions and other things to aid in questing for slightly cheaper than if you went to Prontera to grab them. Addition: Sell random item from listed item and in random amount using the NST_MARKET trader type

    * A heal/buff NPC if the server already doesn't have one to buff you for some zeny. Addition: Read Kitchen or Stove~

    * An NPC that will grant you special potions or bonuses or just items for talking to them X number of times per day as a chance thing. Talk
    to them enough, the chances of getting rewarded is higher. Addition: it was house keeper isn't it ? Alice will be prefered house keper and make her walk around the house and talk some time if you know harvest mooon make her like that if the house owner give her item that was coocked in the house the love bar will growth

     

    Kitchen or Stove: You can make an item that can be used ass buff but to use it you have to give it to npc buffer after it was given to buffer npc he will give you a buff from the item you give in pre-defined amount of time, to begin cooking the house owner must have the receipt in the library

×
×
  • Create New...

Important Information

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