Jump to content

Litro

Members
  • Content Count

    365
  • Joined

  • Last visited

  • Days Won

    4

Everything posted by Litro

  1. you can use checkbound script command for it add this and change the array of .@Blacklist to your own ids // Headgear Blacklistsetarray .@Blacklist, 2201, 2202, 2203;for (.@c = 0; .@c < getarraysize(.@Blacklist); ++.@c) { if ( .@Blacklist[.@c] == .@id && checkbound(.@Blacklist[.@c]) ) { mes "You can't convert bound item."; close; }} after set .@Part, .@Position[ select(.@Menu$) ];set .@id, getequipid(.@Part);
  2. uh oh is this true? is there another tools good to replace it except the mapchace that come from master git, cause it will take a size in vps since it ask fro the map main (gat, rsw, gnd, extra) files I didn't know it until now but i have never got a problem in adding map with it, will it cause the problem for changin map_ids?
  3. Litro

    Charms

    ouch... that okay for me, won't complain about it look like you will dye herc pink sooner or later Thanks Litro
  4. Litro

    Charms

    as always, thank you ma'am.. 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
  5. there is the cap for the char name is 23 full of chars, so can we restrict the name lenght when creating the char ?
  6. *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
  7. Sky is high, Earth is deep, Sea is vast - I was amount to nothing :D

  8. Sky is high, Earth is deep, Sea is vast - I was amount to nothing :D

  9. - 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;}
  10. here click me to solve that error when saving inventory data
  11. 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).
  12. @@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?
  13. whoaa... even i have forgot about this script because when making thisscript and can't resolve how to generate menu like what i want i got a bad mood and move on to other script but well now i can try to go for it again and thanks again maam
  14. it seem you got uncompatible msgstringtable maam, you can get it from translation github either from here or this and if the inventory still have long window alternatively you can edit the msgstringtable for inventory.... Line: 1466 = Usable ItemsLine: 1472 = Etc. ItemsLine: 2051 = EquipmentLine: 2052 = Personal/Favourite Tab
  15. but AFAIK Ossi0110 said 2014-10-22 isn't yet ready for live server, but you can use it for test or local server 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
  16. 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'
  17. is this client can be used as stable now ? you have commit something in git hub 2 days ago it is the fix ?
  18. 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
  19. Litro

    QUEST SHOP NPC

    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;}}
  20. Litro

    QUEST SHOP NPC

    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;}
  21. no patcher have a feature like that for now, the only way available is using game guard OOT there is a launcher that will just (didn't have compare feature) make a file and listing all md5 files in current folder, i hope some one can make it for free release
  22. i never have visual bot, but i think visual bot can't do it againts script check, 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
  23. 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.
×
×
  • Create New...

Important Information

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