xlaws27
Members-
Content Count
225 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Staff Applications
Calendar
Everything posted by xlaws27
-
case SC_FREEZE: sc_def = st->mdef*100; sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10); tick_def = st->luk*25; tick_def2 = status_get_luk(src) * -10; //Caster can increase final duration with luk break; helllo! thanks for this but i haven't seen any mdef changes does mdef will still affect the freeze chance/freeze duration?
-
how to disable hpmhooking when using "make plugins"? (i got error)
xlaws27 posted a question in Plugin Support
i need hpm for @costumeitem but since i got this error(they say it's because i got a low ram) i want to remove it to "make plugins" so i can insert the @security or @itemmap. make[1]: Entering directory `/root/Desktop/trunk/src/plugins' CC HPMHooking.c{standard input}: Assembler messages:{standard input}:173042: Warning: end of file not at end of a line; newline insertedgcc: Internal error: Killed (program cc1)Please submit a full bug report.See <URL:http://bugzilla.redhat.com/bugzilla> for instructions.make[1]: *** [../../plugins/HPMHooking.so] Error 1make[1]: Leaving directory `/root/Desktop/trunk/src/plugins'make: *** [plugins] Error 2 -
actually i solved it by do2unix something well tnx for the clue
-
[root@@ragnarok ha2]# ./configure -bash: ./configure: Permission denied help me please
-
someone help me please!! help me to make mdef won't affect freeze duration/freeze status and every 40 luk there will be a 10% reduce of freeze duration. case SC_FREEZE: sc_def = st->mdef*100; sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10); tick_def2 = status_get_luk(src) * -10; //Caster can increase final duration with luk break;
-
it happens when i choose an equipment to refine. im using the latest hercules okay i understand now thnk you. im looking forward to your updates!! keep up the good work!!
-
im very thankful for this... i was waiting for this and i just saw it now. can you help me to configure this refiner? i tried it but i dont know if it will work. i want my refiner just to be an official refiner(normal refiner) with a capability to do fail results. but i dont know how to configure this its confusing according to http://ratemyserver.net/index.php?page=misc_table_refine on +7 level 1 weapon there's a 60% chance that you can refine it to +8 so what if i put 40, // Stay as is so what's gonna happen? 50, // Go down one level 60% chance to make it to +8 40% chance to stay as is 50% chance to go down one level..??? because on + 9 level 4 weapon there's a 10% chance that you can refine it to +10 that's why i put 40 and 50 and .DisplayRefineInfo = true; // Should NPC display information about // refine (such as success chance) is it possible for you to include the FailResults? and also i got this warning or debug hope you could fix it
-
maybe try 199 aspd? or this skill.conf // Minimum allowed delay for ANY skills after casting (in milliseconds) (Note 1) // Note: Setting this to anything above 0 can stop speedhacks. min_skill_delay_limit: 100 set it to 0 or 1
-
i need help to disable players hexing my client.exe
xlaws27 posted a question in Client-Side Support
there are some cheats that needs hexing the client.exe (which my friend use) is it possible to disable it? like encrypting it? -
@@kyeme i looked for some post similar to this error and i just followed what they say @@Zhao Chow thanks for that idea i didn't know that i don't need to include the first two letters 0x i copied paste the packetkey from the notepad to nemo and the last letter is not there -solved-
-
@@Zhao Chow its okay since it is only a test server i already put the packet keys on the nemo @@kyeme i didn't uncomment it. I comment it.
-
forgot to get the client_hash http://onlinemd5.com/ then open your trunk/conf/login-server.conf Find this line client_hash_check: off and change to client_hash_check: on Find this line //client_hash: 0, cb1ea78023d337c38e8ba5124e2338ae //client_hash: 10, cb1ea78023d337c38e8ba5124e2338ae //client_hash: 99, disabled and change to ( remove the // ) client_hash: 0, Put Your Client Hash Here client_hash: 10, Put Your Client Hash Here client_hash: 99, Put Your Client Hash Here but show your error first, you just miss this thing im so sorry i was going to edit it but suddenly my internet got a problem here you go. @@Zhao Chow im gonna try that forgot to get the client_hash http://onlinemd5.com/ then open your trunk/conf/login-server.conf Find this line client_hash_check: off and change to client_hash_check: on Find this line //client_hash: 0, cb1ea78023d337c38e8ba5124e2338ae //client_hash: 10, cb1ea78023d337c38e8ba5124e2338ae //client_hash: 99, disabled and change to ( remove the // ) client_hash: 0, Put Your Client Hash Here client_hash: 10, Put Your Client Hash Here client_hash: 99, Put Your Client Hash Here but show your error first, you just miss this thing hi zhao chao i used level 99 so there's no need for me to use md5 hash generator(because i don't know how to use it ) client_hash: 99, disabled client_hash_check: on this is what i did. and after trying it i still got error @@Zhao Chow
-
i have no idea why i get this because i think i did this right 1. i enabled the packet on client conf. // Whether to enable the official packet obfuscation support (good vs WPE) // 0: disabled // 1: optional (not recommended) -- identifies whether it is required // 2: enabled (recommended) packet_obfuscation: 2 2. i diff my client with my PACKET KEYS and i uncheck the skip obfuscation something 3. on mmo.h i already comment the #ifndef PACKETVER #define PACKETVER 20130807 #endif // PACKETVER //Uncomment the following line if your client is ragexeRE instead of ragexe (required because of conflicting packets in ragexe vs ragexeRE). //#define ENABLE_PACKETVER_RE #ifdef ENABLE_PACKETVER_RE //#define PACKETVER_RE <--------------------- #undef ENABLE_PACKETVER_RE #endif // DISABLE_PACKETVER_RE 4. in packets.h (it is passed on the robrowser something for packet checker) #if PACKETVER >= 20130807 packetKeys(0x63224335,0x0F3A1F27,0x6D217B24); #endif 5. i recompiled it. so what did i miss?
-
[request] is it possible for someone to make this script?
xlaws27 posted a question in Script Requests
hi guys is it possible for someone to create this script? if a player converted his costume to this costumeitem npc then the player will be allowed to put one stat (ex. str+1) in his converted costume from the costumeitem npc the npc who will add stats is separated from the costume npc //===== Hercules Script ======================================//= Headgear to Costume converter >> Costume to Headgear converter//===== By: ==================================================//= Rebel, Zephyrus [rAthena]//= Mhalicot [Hercules]//===== Current Version: =====================================//= 1.1//===== Compatible With: =====================================//= Hercules//===== Description: =========================================//= Allows a user to convert the equipped headgear // (on Top, Mid or Low) into a costume item. // It will remove any card and refine of the Item.//= Allows a user to restore the equipped costume headgear // (on Top, Mid or Low) into its original form. // It will not return any card or refine of the item.//===== Additional Comments: =================================//= 1.0 Initial script [All of this script are credit to// Rebel, Zephyrus of [rAthena] and revised by [Mhalicot]// to make it compatible in Hercules.]//= 1.1 Denied if Headgear is rental, has refine,// or has card[Mhalicot]// Note: You must apply the patch in order to use this script//============================================================- script Costume Clown -1,{ mes "[Clown]"; mes "Here you can convert your headgears into a Costume Headgear or restore to its Original form."; switch(select("I want to convert.:I want to restore.:No thanks.")) { case 1: next; mes "[Clown]"; mes "Please, select what to convert."; mes "Remember, cards and refine will be removed."; next; setarray .@Position$[1],"Top","Mid","Low"; setarray .@Position[1], 1, 9, 10; set .@Menu$,""; for( set .@i, 1; .@i < 5; set .@i, .@i + 1 ) { if( getequipisequiped(.@Position[.@i]) ) set .@Menu$, .@Menu$ + .@Position$[.@i] + "-" + "[" + getequipname(.@Position[.@i]) + "]"; set .@Menu$, .@Menu$ + ":"; } set .@Part, .@Position[ select(.@Menu$) ]; set .@id, getequipid(.@Part); set .@ref, getequiprefinerycnt(.@Part); if( !getequipisequiped(.@Part) ) { mes "[Clown]"; mes "Your not wearing anything there..."; close; } mes "[Clown]"; mes "You want to Costume your " + getitemname(getequipid(.@Part)) + "?"; next; if( select("Yes, proceed:No, I am sorry.") == 2 ) { mes "[Clown]"; mes "Need some time to think about it, huh?"; mes "Alright, I can understand."; close; } for(set .@i,0; .@i<4; set .@i,.@i+1) set .@slot[.@i], getequipcardid(.@Part,.@i); if (.@slot[0]>4000 && .@slot[0]<5000) { // If it has card don't convert mes "[Clown]"; mes "A card? Here?!"; mes "As I said before, I don't convert headgear with cards."; emotion e_hmm; close; } getinventorylist; for(set .@i,0; .@i<@inventorylist_count; set .@i,.@i+1) if (@inventorylist_expire[.@i] != 0 && @inventorylist_equip[.@i] != 0) { // If rental don't convert mes "[Clown]"; mes "Sorry, I don't convert a rental headgear!"; emotion e_hmm; close; } if (.@ref > 0) { // If refine don't convert mes "[Clown]"; mes "Sorry please keep in mind."; mes "I don't convert headgear with refine."; emotion e_hmm; close; } if (!countitem(.@id)) { mes "[Clown]"; mes "Where is "+getitemname(@id)+"...?"; npctalk "You're a snoozy cheater!"; logmes "CHEATER: Tried to sign an item not having it: "+getitemname(@id); emotion e_wah; close; } costume .@Part; // Convert the Headgear mes "[Clown]"; mes "Done, enjoy your costume headgear."; close; case 2: next; mes "Please, select what to restore."; mes "Remember, I will only restore it back without refine and cards."; next; setarray .@Position$[1],"Top","Mid","Low"; setarray .@Position[1], 13, 12, 11; set .@Menu$,""; for( set .@i, 1; .@i < 5; set .@i, .@i + 1 ) { if( getequipisequiped(.@Position[.@i]) ) set .@Menu$, .@Menu$ + .@Position$[.@i] + "-" + "[" + getequipname(.@Position[.@i]) + "]"; set .@Menu$, .@Menu$ + ":"; } set .@Part, .@Position[ select(.@Menu$) ]; if( !getequipisequiped(.@Part) ) { mes "[Clown]"; mes "Your not wearing anything there..."; close; } mes "[Clown]"; mes "You want to restore your " + getitemname(getequipid(.@Part)) + "?"; next; if( select("Yes, proceed:No, I am sorry.") == 2 ) { mes "[Clown]"; mes "Need some time to think about it, huh?"; mes "Alright, I can understand."; close; } a = getequipid(.@Part); delitem a,1; getitem a,1; mes "[Clown]"; mes "Done, enjoy your restored headgear."; close; case 3: mes "[Clown]"; mes "Very well. Return at once if you seek my services."; close; }}// --------------------------------------------------------------------------// Use duplicates to put your npc on different cities// --------------------------------------------------------------------------prontera,155,181,4 duplicate(Costume Clown) Costume Clown#1 715 -
why do i have black dots on my maps? can someone help me please?
-
Upon reading the topic, you need to patch the source mod, you can read that on the topic about @costumeitem plugin I checked it but cant find any comment regarding patching the source mod
-
// Copyright (c) Hercules Dev Team, licensed under GNU GPL.// See the LICENSE file// CostumeItem Hercules Plugin// Special Thanks for Mr. [Hercules/Ind]#include "common/hercules.h"#include <stdio.h>#include <stdlib.h>#include <string.h>#include "common/memmgr.h"#include "common/timer.h"#include "common/HPMi.h"#include "common/mmo.h"#include "map/itemdb.h"#include "map/battle.h"#include "map/script.h"#include "map/status.h"#include "map/clif.h"#include "map/pet.h"#include "map/map.h"#include "map/mob.h"#include "map/pc.h"#include "common/HPMDataCheck.h"#define cap_value(a, min, max) (((a) >= (max)) ? (max) : ((a) <= (min)) ? (min) : (a))/*1.0 Initial Release [Mhalicot]1.0a Fixed Typo (usage: @ci <item name/ID>) changed to (usage: @costumeitem <item name/ID>) thx to DP2.0 Converted Costume Items will now removed normal stats and Bonuses. [Mhalicot]3.0 Item Combos will now Ignore Converted Costume Items. [Mhalicot]3.1 Fixed HP/SP becomes 1/1 [Mhalicot]3.2 Fixed Sinx Can't Equipt dagger/sword on both arms(L/R), Special Thanks to Haru for Help [Mhalicot]3.3 Fixed Error when compiling.3.4 Fixed Error when compiling.3.4a Updated According to new hercules.[Dastgir]3.5 Updated Costume with new Hercules, some other changes. [Dastgir]*/HPExport struct hplugin_info pinfo = { "costumeitem", // Plugin name SERVER_TYPE_MAP, // Which server types this plugin works with? "3.5", // Plugin version HPM_VERSION, // HPM Version (don't change, macro is automatically updated)};static inline void status_cpy(struct status_data* a, const struct status_data* { memcpy((void*)&a->max_hp, (const void*)&b->max_hp, sizeof(struct status_data)-(sizeof(a->hp)+sizeof(a->sp)));}// Costume Systemint reserved_costume_id = 999998;void costume_id(const char *val) { reserved_costume_id = atoi(val);}uint16 GetWord(uint32 val, int idx) { switch( idx ) { case 0: return (uint16)( (val & 0x0000FFFF) ); case 1: return (uint16)( (val & 0xFFFF0000) >> 0x10 ); default: ShowDebug("GetWord: invalid index (idx=%d)n", idx); return 0; }}uint32 MakeDWord(uint16 word0, uint16 word1) { return ( (uint32)(word0 ) )| ( (uint32)(word1 << 0x10) );}int alternate_item(int index){ switch(index){ case EQP_HEAD_LOW: return EQP_COSTUME_HEAD_LOW; case EQP_HEAD_TOP: return EQP_COSTUME_HEAD_TOP; case EQP_HEAD_MID: return EQP_COSTUME_HEAD_MID; case EQP_HAND_R: return EQP_SHADOW_WEAPON; case EQP_HAND_L: return EQP_SHADOW_SHIELD; case EQP_ARMOR: return EQP_SHADOW_ARMOR; case EQP_SHOES: return EQP_SHADOW_SHOES; case EQP_GARMENT: return EQP_COSTUME_GARMENT; case EQP_ACC_L: return EQP_SHADOW_ACC_L; case EQP_ACC_R: return EQP_SHADOW_ACC_R; default: return -1; }}void script_stop_costume(struct map_session_data *sd, struct item_data *data, int oid){ if (data->equip <= 512){ int alternate = alternate_item(data->equip); if (alternate != -1 && pc->checkequip(sd,alternate) == data->nameid){ hookStop(); } }}/* called when a item with combo is worn */int pc_checkcombo_mine(struct map_session_data *sd, struct item_data *data ) { int i, j, k, z; int index, success = 0; struct pc_combos *combo; for( i = 0; i < data->combos_count; i++ ) { /* ensure this isn't a duplicate combo */ if( sd->combos != NULL ) { int x; ARR_FIND( 0, sd->combo_count, x, sd->combos[x].id == data->combos[i]->id ); /* found a match, skip this combo */ if( x < sd->combo_count ) continue; } for( j = 0; j < data->combos[i]->count; j++ ) { int id = data->combos[i]->nameid[j]; bool found = false; for( k = 0; k < EQI_MAX; k++ ) { index = sd->equip_index[k]; if( index < 0 ) continue; if( k == EQI_HAND_R && sd->equip_index[EQI_HAND_L] == index ) continue; if( k == EQI_HEAD_MID && sd->equip_index[EQI_HEAD_LOW] == index ) continue; if( k == EQI_HEAD_TOP && (sd->equip_index[EQI_HEAD_MID] == index || sd->equip_index[EQI_HEAD_LOW] == index) ) continue; if( (int)MakeDWord(sd->status.inventory[index].card[2],sd->status.inventory[index].card[3]) == reserved_costume_id ) continue; if(!sd->inventory_data[index]) continue; if ( itemdb_type(id) != IT_CARD ) { if ( sd->inventory_data[index]->nameid != id ) continue; found = true; break; } else { //Cards if ( sd->inventory_data[index]->slot == 0 || itemdb_isspecial(sd->status.inventory[index].card[0]) ) continue; for (z = 0; z < sd->inventory_data[index]->slot; z++) { if (sd->status.inventory[index].card[z] != id) continue; // We have found a match found = true; break; } } } if( !found ) break;/* we haven't found all the ids for this combo, so we can return */ } /* means we broke out of the count loop w/o finding all ids, we can move to the next combo */ if( j < data->combos[i]->count ) continue; /* we got here, means all items in the combo are matching */ RECREATE(sd->combos, struct pc_combos, ++sd->combo_count); combo = &sd->combos[sd->combo_count - 1]; combo->bonus = data->combos[i]->script; combo->id = data->combos[i]->id; success++; } return success;}int HPM_map_reqnickdb(struct map_session_data * sd, int *char_id) { if( !sd ) return 0; if( reserved_costume_id && reserved_costume_id == *char_id ) { clif->solved_charname(sd->fd, *char_id, "Costume"); } hookStop(); return 1;}int HPM_pc_equippoint(int retVal, struct map_session_data *sd, int *nn) { int char_id = 0, n = *nn; if (!sd || !retVal) // If the original function returned zero, we don't need to process it anymore return retVal; if( reserved_costume_id && sd->status.inventory[n].card[0] == CARD0_CREATE && (char_id = MakeDWord(sd->status.inventory[n].card[2],sd->status.inventory[n].card[3])) == reserved_costume_id ) { // Costume Item - Converted if( retVal&EQP_HEAD_TOP ) { retVal &= ~EQP_HEAD_TOP; retVal |= EQP_COSTUME_HEAD_TOP; } if( retVal&EQP_HEAD_LOW ) { retVal &= ~EQP_HEAD_LOW; retVal |= EQP_COSTUME_HEAD_LOW; } if( retVal&EQP_HEAD_MID ) { retVal &= ~EQP_HEAD_MID; retVal |= EQP_COSTUME_HEAD_MID; } } return retVal;}ACMD(costumeitem) { char item_name[100]; int item_id, flag = 0; struct item item_tmp; struct item_data *item_data; if( !sd ) return 0; if (!message || !*message || ( sscanf(message, ""%99[^"]"", item_name) < 1 && sscanf(message, "%99s", item_name) < 1 )) { clif->message(fd, "Please enter an item name or ID (usage: @costumeitem <item name/ID>)."); return false; } if ((item_data = itemdb->search_name(item_name)) == NULL && (item_data = itemdb->exists(atoi(item_name))) == NULL) { clif->message(fd, "Invalid item ID or name."); return false; } if( !reserved_costume_id ) { clif->message(fd, "Costume conversion is disabled."); return false; } if( !(item_data->equip&EQP_HEAD_LOW) && !(item_data->equip&EQP_HEAD_MID) && !(item_data->equip&EQP_HEAD_TOP) && !(item_data->equip&EQP_COSTUME_HEAD_LOW) && !(item_data->equip&EQP_COSTUME_HEAD_MID) && !(item_data->equip&EQP_COSTUME_HEAD_TOP) ) { clif->message(fd, "You cannot costume this item. Costume only work for headgears."); return false; } item_id = item_data->nameid; //Check if it's stackable. if (!itemdb->isstackable2(item_data)) { if( (item_data->type == IT_PETEGG || item_data->type == IT_PETARMOR) ) { clif->message(fd, "Cannot create costume pet eggs or pet armors."); return false; } } // if not pet egg if (!pet->create_egg(sd, item_id)) { memset(&item_tmp, 0, sizeof(item_tmp)); item_tmp.nameid = item_id; item_tmp.identify = 1; item_tmp.card[0] = CARD0_CREATE; item_tmp.card[2] = GetWord(reserved_costume_id, 0); item_tmp.card[3] = GetWord(reserved_costume_id, 1); if ((flag = pc->additem(sd, &item_tmp, 1, LOG_TYPE_COMMAND))) clif->additem(sd, 0, 0, flag); } if (flag == 0) clif->message(fd,"item created."); return true;}/*========================================== * Costume Items Hercules/[Mhalicot] *------------------------------------------*/BUILDIN(costume) { int i = -1, num, ep; TBL_PC *sd; num = script_getnum(st,2); // Equip Slot sd = script->rid2sd(st); if( sd == NULL ) return 0; if( num > 0 && num <= ARRAYLENGTH(script->equip) ) i = pc->checkequip(sd, script->equip[num - 1]); if( i < 0 ) return 0; ep = sd->status.inventory[i].equip; if( !(ep&EQP_HEAD_LOW) && !(ep&EQP_HEAD_MID) && !(ep&EQP_HEAD_TOP) ) return 0; logs->pick_pc(sd, LOG_TYPE_SCRIPT, -1, &sd->status.inventory[i],sd->inventory_data[i]); pc->unequipitem(sd,i,2); clif->delitem(sd,i,1,3); // -------------------------------------------------------------------- sd->status.inventory[i].refine = 0; sd->status.inventory[i].attribute = 0; sd->status.inventory[i].card[0] = CARD0_CREATE; sd->status.inventory[i].card[1] = 0; sd->status.inventory[i].card[2] = GetWord(reserved_costume_id, 0); sd->status.inventory[i].card[3] = GetWord(reserved_costume_id, 1); if( ep&EQP_HEAD_TOP ) { ep &= ~EQP_HEAD_TOP; ep |= EQP_COSTUME_HEAD_TOP; } if( ep&EQP_HEAD_LOW ) { ep &= ~EQP_HEAD_LOW; ep |= EQP_COSTUME_HEAD_LOW; } if( ep&EQP_HEAD_MID ) { ep &= ~EQP_HEAD_MID; ep |= EQP_COSTUME_HEAD_MID; } // -------------------------------------------------------------------- logs->pick_pc(sd, LOG_TYPE_SCRIPT, 1, &sd->status.inventory[i],sd->inventory_data[i]); clif->additem(sd,i,1,0); pc->equipitem(sd,i,ep); clif->misceffect(&sd->bl,3); return true;}/* triggered when server starts loading, before any server-specific data is set */HPExport void server_preinit (void) { addBattleConf("reserved_costume_id",costume_id);}/* Server Startup */HPExport void plugin_init (void) { pc->checkcombo = pc_checkcombo_mine; //Hook addHookPre("script->run_item_equip_script",script_stop_costume); addHookPre("script->run_item_unequip_script",script_stop_costume); addHookPre("script->run_use_script",script_stop_costume); addHookPre("map->reqnickdb",HPM_map_reqnickdb); addHookPost("pc->equippoint",HPM_pc_equippoint); //atCommand addAtcommand("costumeitem",costumeitem); //scriptCommand addScriptCommand("costume","i",costume);}HPExport void server_online (void) { ShowInfo ("'%s' Plugin by Dastgir/Hercules. Version '%s'n",pinfo.name,pinfo.version);} can someone make the converted costume do not add stats? .it is the latest version from dastgir plugin collection
-
woah thank you for this I just got my packet key may I have a few question please? 1. let's say, my packetkey passed on http://www.robrowser.com/prototype/packet-keys, will I be able to use it on all clients? 2. how can I determine if the packet key is strong? 3. what does lteration means?
-
any tip for a strong key? like which letter/number to use or start with?
-
[HElp]SUPER SMALL FONT SIZE(not like this before)
xlaws27 replied to xlaws27's question in General Server Support
i use both windows 7 and windows 10 and i don't have any issue on my font size. hmm any idea? T_t may i ask how? its kinda confusing i didn't -
thanks dastgir for this. i hope you can check the message that i sent.
-
@@Dastgir it works!! but players will close or cancel it because they think that it will be a waste of time and they'll pm GM's why do they get DC(sounds annoying). so is there a way to remove the Close button and the cancel button? so they won't have any choice but to activate it?
-
hi guys i already set the @force security on a player but they can close it (is it normal)? well is there a way to force close the client if they didnt activate the security? it is a script from dastgir. /* By Dastgir/Hercules Use Plugin too along with this script(Found in https://github.com/dastgir/HPM-Plugins)*/- script Security -1,{OnInit: bindatcmd("security",strnpcinfo(0)+"::OnSecurity",0,99); /* Config */ .max_attempt = 5; //3 Times Wrong Attempt = Ban. .ban_hour = 1; //Hours to ban .allowed = 1|2|4|8|16|32|64|128|512|1024|2048|4096; //Allowed Settings.. end; OnPCLoginEvent: if ($security){ if (!#security){ callsub OnPlayerMenu; } } close;OnSecurity: if (getgmlevel()){ mes "[^FFA500 Security System ^000000]"; mes "Hello GM, How may I help you?"; callsub OnGMMenu; end; } OnPlayerMenu: // Don't Change Order. setarray .@restrictions$,"Can't Drop Item", // 1 "Can't receive Trade Requests", // 2 "Can't send Trade Request", // 4 "Can't open Guild Storage", // 8 "Can't take item from guild storage", // 16 "Can't add item to guild storage", // 32 "Can't sell items", // 64 "Can't use Vending", // 128 "Can't delete items by any means", // 256 "Can't buy items", // 512 "Can't Send Guild Invite", // 1024 "Can't Receive Guild Invite", // 2048 "Can't Leave the guild"; // 4096 while (1){ mes "[^FFA500 Security System ^000000]"; mes "Security Status: "+ ((#security>0)?"^00FF00On^000000":"^FF0000Off^000000"); mes "Status: "; for (.@i = 0; .@i < getarraysize(.@restrictions$); .@i++){ .@bit = (1<<.@i); if (.allowed&.@bit) mes .@restrictions$[.@i] + " - "+ ((#secure_opt&.@bit)?"^00FF00On^000000":"^FF0000Off^000000"); } switch(select("Info",((#security>0)?"Dea":"A")+"ctivate the Security","Settings","Close")){ case 4: close; case 3: next; mes "[^FFA500 Security System ^000000]"; if (!#security){ mes "^FF0000You don't have security enabled^000000"; next; break; } mes "Enter your ^FF0000OLD^000000 Security Code"; mes "^FF0000- Wrong Code more than "+ .max_attempt +" times can result into ban.^000000"; mes "Chances Left: "+ (.max_attempt-security_maxtry); input .@security; next; mes "[^FFA500 Security System ^000000]"; if (#secure_code != .@security){ mes "Wrong Code..."; security_maxtry++; if (security_maxtry >= .max_attempt){ atcommand "@ban +"+.ban_hour+"h ""+strcharinfo(0)+"""; //Ban the Player for 1 hour. security_maxtry = 0; //Reset After tha Ban end; } close; } next; security_maxtry = 0; mes "[^FFA500 Security System ^000000]"; mes "Choose Restrictions to Enable/Disable"; .@menu$ = "^00FF00Enable All^000000:^FF0000Disable All^000000:"; .@opt = 0; for (.@i = 0; .@i < getarraysize(.@restrictions$); .@i++){ .@bit = (1<<.@i); if (.allowed&.@bit){ .@index[.@opt] = .@i; .@opt++; .@content$ = .@restrictions$[.@i] + " - "+ ((#secure_opt&.@bit)?"^00FF00On^000000":"^FF0000Off^000000"); .@menu$ = .@menu$ + "" + .@content$ +":"; mes .@content$; } } .@t_menu = select(.@menu$)-1; next; if (.@t_menu == 1){ mes "[^FFA500 Security System ^000000]"; if (!#secure_opt){ mes "You already have all Settings disabled."; next; break; } mes "Are you Sure you want to disable all?"; if (select("Yes:No..") == 2){ next; mes "[^FFA500 Security System ^000000]"; mes "As you wish.."; next; break; } next; mes "[^FFA500 Security System ^000000]"; mes "All Settings Disabled"; #secure_opt = 0; next; break; } else if (.@t_menu == 0){ mes "[^FFA500 Security System ^000000]"; if (#secure_opt >= .allowed){ mes "You already have all Settings enabled."; next; break; } mes "Are you Sure you want to enable all?"; if (select("Yes:No..") == 2){ next; mes "[^FFA500 Security System ^000000]"; mes "As you wish.."; next; break; } next; mes "[^FFA500 Security System ^000000]"; mes "All Settings Enabled"; #secure_opt = .allowed; next; break; } .@t_menu -= 2; .@menu = .@index[.@t_menu]; mes "[^FFA500 Security System ^000000]"; mes .@restrictions$[.@menu]; mes "Are you sure you want to "+ ((#secure_opt&(1<<.@menu))?"Disable":"Enable") +" this?"; if (select("Yes:No..") == 2){ next; mes "[^FFA500 Security System ^000000]"; mes "As you wish.."; next; break; } next; mes "[^FFA500 Security System ^000000]"; mes "Setting "+ ((#secure_opt&(1<<.@menu))?"Disabled":"Enabled"); if (#secure_opt&(1<<.@menu)) #secure_opt -= 1<<.@menu; else #secure_opt += 1<<.@menu; next; break; case 2: next; mes "[^FFA500 Security System ^000000]"; if (#security){ mes "Enter your ^FF0000OLD^000000 Security Code"; mes "^FF0000- Wrong Code more than "+ .max_attempt +" times can result into ban.^000000"; mes "Chances Left: "+ (.max_attempt-security_maxtry); input .@security; next; mes "[^FFA500 Security System ^000000]"; if (#secure_code != .@security){ mes "Wrong Code..."; security_maxtry++; if (security_maxtry >= .max_attempt){ atcommand "@ban +"+.ban_hour+"h ""+strcharinfo(0)+"""; //Ban the Player for 1 hour. security_maxtry = 0; //Reset After tha Ban end; } close; } mes "Security Deactivated."; #security = 0; security_maxtry = 0; close; } mes "Insert your ^00FF00NEW^000000 Security Code"; mes "^FF0000- Must be 4-8 Digits^000000"; mes "^FF0000- Only numerics are allowed(0-9)^000000"; mes "^FF0000- Don't use 0 in beginning of security code^000000"; input .@security; next; mes "[^FFA500 Security System ^000000]"; if (.@security < 1000 || .@security > 99999999){ mes "Security code must be of 4-8 digits."; next; break; } mes "^00FF00 Re-insert the Security Code ^000000"; input .@secu2; next; mes "[^FFA500 Security System ^000000]"; if (.@secu2 != .@security){ mes "Security Code Mismatch.."; next; break; } mes "Security Code Set"; #secure_code = .@security; #security = 1; next; break; case 1: next; mes "[^FFA500 Security System ^000000]"; mes "Security Code can be of 4-8 Digits."; mes "When Security Code is enabled, you can do following settings as a security step:"; for (.@i = 0; .@i < getarraysize(.@restrictions$); .@i++){ .@bit = (1<<.@i); if (.allowed&.@bit) mes "^FF0000- "+ .@restrictions$[.@i] +"^000000"; } next; break; } } end; OnGMMenu: switch(select("Player Menu: Settings")){ case 1: next; callsub OnPlayerMenu; end; case 2: next; mes "[^FFA500 Security System ^000000]"; mes "Force Player to set @security?"; mes "Status: "+ (($security>0)?"^00FF00On^000000":"^FF0000Off^000000"); .@menu = select((($security>0)?"^00FF00Disable^000000":"^FF0000Enable^000000"),"Cancel"); if (.@menu == 2) close; next; mes "[^FFA500 Security System ^000000]"; if ($security) $security = 0; else $security = 1; mes "Force Security Setting Set."; close; } end;}
-
Thats wrong configuration of plugin, though it's just a warning...You can do this to avoid these warning for plugin Right-click project, select "Properties". Click "Build". Switch "Treat warnings as errors" from "All" to "Specific warnings" or "None". theres no build category on the properties .. and I just followed the steps according here http://herc.ws/wiki/Building_HPM_Plugin_for_MSVC it already work the @itemmap command. but is it okay to leave the warning? I just forgot to insert something on the plugin.conf well the itemmap1 and itemmap2 isn't working.
-
@@Dastgir i got error on itemmap.c (even though it is success i can't use @itemmap command) 1>------ Build started: Project: itemmap, Configuration: Release Win32 ------ 1> itemmap.c 1>..srcpluginsitemmap.c(194): warning C4996: 'strcmpi': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strcmpi. See online help for details. 1> C:Program Files (x86)Microsoft Visual Studio 10.0VCincludestring.h(245) : see declaration of 'strcmpi' 1>..srcpluginsitemmap.c(196): warning C4996: 'strcmpi': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strcmpi. See online help for details. 1> C:Program Files (x86)Microsoft Visual Studio 10.0VCincludestring.h(245) : see declaration of 'strcmpi' 1>..srcpluginsitemmap.c(203): warning C4996: 'sscanf': This function or variable may be unsafe. Consider using sscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 1> C:Program Files (x86)Microsoft Visual Studio 10.0VCincludestdio.h(325) : see declaration of 'sscanf' 1>..srcpluginsitemmap.c(211): warning C4996: 'sscanf': This function or variable may be unsafe. Consider using sscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 1> C:Program Files (x86)Microsoft Visual Studio 10.0VCincludestdio.h(325) : see declaration of 'sscanf' 1>..srcpluginsitemmap.c(219): warning C4996: 'sscanf': This function or variable may be unsafe. Consider using sscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 1> C:Program Files (x86)Microsoft Visual Studio 10.0VCincludestdio.h(325) : see declaration of 'sscanf' 1> Creating library ..pluginsitemmap.lib and object ..pluginsitemmap.exp 1> Generating code 1> Finished generating code 1> itemmap.vcxproj -> D:DevelopingServersideChaos ROHerculesitemmap..pluginsitemmap.dll ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========