-
Content Count
333 -
Joined
-
Last visited
-
Days Won
8
Posts posted by astralprojection
-
-
How about adding <option> to make channel READ-ONLY?
- Players can't send message in this channel, only read message.
This will be useful for script, GM etc. announcements.
will making a SCRIPT accomplish this procedure? prevent user from writing to my specified readonly channel?
-
Plugin @afk has compile error at : clif->chsys_quit(sd); There are changes in channel system that makes the error.
sd->state.autotrade = 1; sd->state.monster_ignore = 1; pc_setsit(sd); skill->sit(sd,1); clif->sitting(&sd->bl); clif->changelook(&sd->bl,LOOK_HEAD_TOP,471); // Change 471 to any headgear view ID you want. clif->specialeffect(&sd->bl, 234,AREA); if( afk_timeout ) { int timeout = atoi(message); status->change_start(NULL, &sd->bl, SC_AUTOTRADE, 10000, 0, 0, 0, 0, ((timeout > 0) ? min(timeout,afk_timeout) : afk_timeout)*60000,0); } clif->chsys_quit(sd); clif->authfail_fd(sd->fd, 15); } else clif->message(fd, "@afk is not allowed on this map."); return true;
Noted: will take a look at it soon, together with costumeitem
testing this, it works great so far.
#include <stdio.h>#include <stdlib.h>#include <string.h>#include "../common/HPMi.h"#include "../common/timer.h"#include "../map/script.h"#include "../map/pc.h"#include "../map/channel.h"#include "../map/clif.h"#include "../map/battle.h"#include "../map/status.h"#include "../common/HPMDataCheck.h"/*1.0 Initial Script [Mhalicot] Topic: http://goo.gl/vbmQnr2.0 Added Map restriction "izlude", GVG/PVP. You can't use @afk when your dead. [Mhalicot]2.1 Update compilation compatibility in latest rev. 13300 [Mhalicot]2.2 Fixed bug when using @afk. [Mhalicot]2.3 Fixed map crash when using @afk [Mhalicot]3.0 Added unable to use @afk when receiving damage. [Mhalicot]3.1 Fixed Compiling Error, Thanks to quesoph4.0 Added AFK Timeout. Chars will be kicked from the server. [Mhalicot]*/HPExport struct hplugin_info pinfo = { "afk", // Plugin name SERVER_TYPE_MAP, // Which server types this plugin works with? "4.0", // Plugin version HPM_VERSION, // HPM Version (don't change, macro is automatically updated)};// Set this to the amount of minutes afk chars will be kicked from the server. 720 = 12 hoursint afk_timeout = 0;void parse_my_setting(const char *val) { afk_timeout = atoi(val);}ACMD(afk) { if(sd->bl.m == map->mapname2mapid("izlude")) { clif->message(fd, "@afk is not allowed on this map."); return true; } if( pc_isdead(sd) ) { clif->message(fd, "Cannot use @afk if you are dead."); return true; } //<- (10s)10000ms delay to edit look for conf/battle/player.conf search for prevent_logout if(DIFF_TICK(timer->gettick(),sd->canlog_tick) < battle->bc->prevent_logout) { clif->message(fd, "Failed to use @afk, please try again later."); return true; } if( map->list[sd->bl.m].flag.autotrade == battle->bc->autotrade_mapflag ) { if(map->list[sd->bl.m].flag.pvp || map->list[sd->bl.m].flag.gvg){ clif->message(fd, "You may not use the @afk maps PVP or GVG."); return true; } sd->state.autotrade = 1; sd->state.monster_ignore = 1; pc_setsit(sd); skill->sit(sd,1); clif->sitting(&sd->bl); clif->changelook(&sd->bl,LOOK_HEAD_TOP,471); // Change 471 to any headgear view ID you want. clif->specialeffect(&sd->bl, 234,AREA); if( afk_timeout ) { int timeout = atoi(message); status->change_start(NULL, &sd->bl, SC_AUTOTRADE, 10000, 0, 0, 0, 0, ((timeout > 0) ? min(timeout,afk_timeout) : afk_timeout)*60000,0); } channel->quit(sd); clif->authfail_fd(sd->fd, 15); } else clif->message(fd, "@afk is not allowed on this map."); return true;}/* triggered when server starts loading, before any server-specific data is set */HPExport void server_preinit (void) { /* makes map server listen to mysetting:value in any "battleconf" file (including imported or custom ones) */ /* value is not limited to numbers, its passed to our plugins handler (parse_my_setting) as const char *, * and thus can be manipulated at will */ addBattleConf("parse_my_setting",parse_my_setting);};/* Server Startup */HPExport void plugin_init (void){ script = GET_SYMBOL("script"); battle = GET_SYMBOL("battle"); status = GET_SYMBOL("status"); timer = GET_SYMBOL("timer"); skill = GET_SYMBOL("skill"); clif = GET_SYMBOL("clif"); channel = GET_SYMBOL("channel"); map = GET_SYMBOL("map"); pc = GET_SYMBOL("pc"); addAtcommand("afk",afk);}
-
Plugin @afk has compile error at : clif->chsys_quit(sd); There are changes in channel system that makes the error.
sd->state.autotrade = 1; sd->state.monster_ignore = 1; pc_setsit(sd); skill->sit(sd,1); clif->sitting(&sd->bl); clif->changelook(&sd->bl,LOOK_HEAD_TOP,471); // Change 471 to any headgear view ID you want. clif->specialeffect(&sd->bl, 234,AREA); if( afk_timeout ) { int timeout = atoi(message); status->change_start(NULL, &sd->bl, SC_AUTOTRADE, 10000, 0, 0, 0, 0, ((timeout > 0) ? min(timeout,afk_timeout) : afk_timeout)*60000,0); } clif->chsys_quit(sd); clif->authfail_fd(sd->fd, 15); } else clif->message(fd, "@afk is not allowed on this map."); return true;
-
-
Follow......
Wishing we can find ways to send message to channel using script
-
if client not using SSO Login, then make a check if client try to login with no mac address, reject it. maybe like thatyes how can we reject login without mac address?
just create a script that @kicks user if his last_mac = 0000--000-0-00--0-0-0
thanks evilpuncker, i never thought about that
-
if client not using SSO Login, then make a check if client try to login with no mac address, reject it. maybe like thatyes how can we reject login without mac address?
-
You mean you change to this change ALL pc_isriding(sd) to pc_isridingpeco(sd) and everythings fine?exactly
-
Sir Mhalicot, can you please update the plugin to support the latest rev. pc_isriding is not supported anymore. I tried changing to checkmount but its not working
change ALL pc_isriding(sd) to pc_isridingpeco(sd)
No error but after converting to costume the item still equipped to General Slot instead in Shadow tab or Costume.
i'm running in the latest build and got no problem with it. maybe the plugin was not installed properly.
-
Sir Mhalicot, can you please update the plugin to support the latest rev. pc_isriding is not supported anymore. I tried changing to checkmount but its not working
change ALL pc_isriding(sd) to pc_isridingpeco(sd)
-
In the new update there is an error/warning.
CC costumeitem.ccostumeitem.c: In function 'status_calc_mine':costumeitem.c:181: warning: implicit declaration of function 'pc_isriding'
change ALL pc_isriding(sd) to pc_isridingpeco(sd)
-
its a great plugin thank you. One thing, afk character is not saving on server restart? is this normal. how can we have them back after restart?
-
query_sql "SELECT `last_mac` FROM `login` WHERE `account_id` = '" + .@aid[ .@j ] + "' LIMIT 1", .@mac$;
its works, :mmmmmwwha! thank you very much
-
Use LIMIT 1 on your query_sql command
hi can you help me with the query? i change it to this:
query_sql("SELECT `last_mac` FROM `login` DESC LIMIT 1 WHERE `account_id`='"+.@aid[.@j]+"'",.@mac$);
this is the error message at the end of WoE:
[SQL]: DB error - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DESC LIMIT 1 WHERE `account_id`='2000000'' at line 1[Debug]: at script.c:15068 - SELECT `last_mac` FROM `login` DESC LIMIT 1 WHERE `account_id`='2000000'[Debug]: Source (NPC): WOE_CONTROL (invisible/not on a map)
Thank you for your help.
-
set .@size, query_sql("SELECT account_id,char_id FROM `guild_member` WHERE guild_id = '"+.@gid+"' AND "+.@sql$,.@aid,.@cid);for(set .@j,0; .@j<.@size; set .@j,.@j+1) {
if (.Options&8 && !(.Options&4)) {
query_sql("SELECT `mac_address` FROM `table_name` WHERE `account_id`='"+.@aid[.@j]+"'",.@mac$);
set .@ip$, .@mac$[0];
if (getd(".@ip_"+.@i+"_"+.@ip$)) continue;
setd ".@ip_"+.@i+"_"+.@ip$,1;
}
my scenario sir is
player 1 mac: 1B:13:1A:10
player 2 mac: 1B:13:1A:10
player 3 mac: 1B:13:1A:10
how about if i give just 1 player only, other 2 player will not receive a reward? Thanks
-
hi, how can i make this plugin write to:
char_reg_str_db
char_id: xxx
key: afk$
index: 0
value: timestamp
Thanks
-
- Updated jobname.lub and jobidentity.lub
- Shadow Equipment update (part 1)
- Cleanup skilldescript.lub
- Updated mapnametable.txt
- Added cards from Nightmare Clock Tower
- Shadow equipment update (part 2 - complete)
Nice: Thanks
-
//===== Hercules Script ====================================== //= MVP Spawn Timer //===== By: ================================================== //= jawbreaker //===== Current Version: ===================================== //= 1.1 //===== Description: ========================================= //= Control MVP Spawn with script. MVP will not respawn on server start or reload using flag. //===== Additional Comments: ================================= //= 1.0 Remove/Comment all MVP spawn at npc/pre-re/mobs/dungeons/ or /fields. //= 1.1 Initialize TimeStamp when not set to all MVP Fixed typo on MVP_Map array. //============================================================ - script MVPTimer -1,{ OnInit: // Mvp ids setarray $MVP_ID[0],1511,1785,1785,1785,1785,1785,1039,1272,1272,1719, 1046,1046,1389,1112,1115,1115,1418,1252,1768,1086, 1885,1832,1734,1688,1373,1147,1147,1059,1150,1087, 1087,1190,1038,1157,1159,1623,1492,1251,1583,1312, 1751,1685,1630; // Mvp maps setarray $MVP_Maps$[0],"moc_pryd06","ra_fild02","ra_fild03","ra_fild04","ve_fild01","ve_fild02","prt_maze03","gl_chyard","gld_dun04","abyss_03", "gef_dun02","gld_dun02","gef_dun01","treasure02","gld_dun01","pay_fild11","gon_dun03","xmas_fild01","ra_san05","prt_sewb4", "mosk_dun03","thor_v03","kh_dun02","ayo_dun02","niflheim","gld_dun03","anthell02","mjolnir_04","pay_dun04","gef_fild02", "gef_fild14","gef_fild10","moc_pryd04","in_sphinx5","moc_fild15","ein_dun02","ama_dun03","xmas_dun02","beach_dun","tur_dun04", "odin_tem03","jupe_core","lou_dun03"; // Respawn time (minutes) setarray $MVP_Time[0],60,240,180,300,180,360,120,60,480,180, 120,480,60,120,480,120,94,120,300,60, 120,660,120,420,91,480,120,120,60,1440, 60,120,60,60,120,125,91,60,300,60, 480,120,117; // Respawn only undead MVP's on server start or reload for ( set .@i,0; .@i < getarraysize($MVP_ID); set .@i, .@i+1 ) { // check whether MPV is alive or $MVP_Status variable is not yet set. // 1 - Dead, 2 - Alive if ( $MVP_Status[.@i] == 2 || $MVP_Status[.@i] == 0 || $MVP_TimeStamp[.@i] == 0 ) { monster $MVP_maps$[.@i],0,0,"--ja--",$MVP_ID[.@i],1; set $MVP_Status[.@i], 2; } else { // don't respawn MVP and wait for next spawn time set $MVP_Status[.@i], 1; } } initnpctimer; OnTimer60000: // Check every 1 minute for( set .@i,0; .@i < getarraysize($MVP_ID); set .@i, .@i+1 ) { set .@time, $MVP_Time[.@i]*60; // Conversion to seconds so we can use gettimetick if( ($MVP_TimeStamp[.@i] + .@time) <= gettimetick(2) && $MVP_Status[.@i] == 1 ) { monster $MVP_Maps$[.@i],0,0,"--ja--",$MVP_ID[.@i],1; // Defines last respawn set $MVP_TimeStamp[.@i], gettimetick(2); set $MVP_Status[.@i], 2; } } setnpctimer 0; end; OnNPCKillEvent: if( getmonsterinfo(killedrid, MOB_MVPEXP) > 0 ) // process only MVP Monsters for( set .@i,0; .@i < getarraysize($MVP_ID); set .@i, .@i+1 ) { if( (killedrid == $MVP_ID[.@i]) && (strcharinfo(3) == $MVP_Maps$[.@i])) { set $MVP_Status[.@i],1; // set flag mvp has died set $MVP_TimeStamp[.@i], gettimetick(2); // set mpv death time } } end; }
-
you have to put item_db.txt to "data" folder so it can read classnum.
wew, i forgot, to update my last translate with classnum,
i will update it later.
Thank you zackdreaver
-
Would verify soon with kRO data.ID# Description Your Slot Should Be1563 Sage's Diary 0 22776 Adventurer's Trusty Towel 1 05142 Crescent Helm 1 05147 Baseball Cap 0 15307 Carmen Miranda's Hat 1 05319 Hello Mother Hat 1 05334 Flapping Angeling 1 05407 Academy Completion Hat 0 15420 Mask Of Ifrit 1 05456 Summer Hat 0 15464 Zaha Doll Hat 1 05491 Bandit Hat 0 15498 Wandering Wolf Helm 1 05545 Aries Diadem 1 05546 Aries Crown 1 05568 Rabbit Bonnet 0 15569 Gemini Diadem 1 05570 Gemini Crown 1 05658 Imp Hat 1 05660 Gryphon Hat 1 05690 Red Wing Hat 0 15824 Fools Day Hat 0 113005 Angelic Wing Dagger 1 218505 Umbala Spirit 0 118600 Cat Ear Beret 1 019501 T Spinx Helm 0 1
Please verify these slot count values.
Thank you another thing, why all the classNum set to 0? im having problem with client not showing weapons when attacking
-
ID# Description Your Slot Should Be1563 Sage's Diary 0 22776 Adventurer's Trusty Towel 1 05142 Crescent Helm 1 05147 Baseball Cap 0 15307 Carmen Miranda's Hat 1 05319 Hello Mother Hat 1 05334 Flapping Angeling 1 05407 Academy Completion Hat 0 15420 Mask Of Ifrit 1 05456 Summer Hat 0 15464 Zaha Doll Hat 1 05491 Bandit Hat 0 15498 Wandering Wolf Helm 1 05545 Aries Diadem 1 05546 Aries Crown 1 05568 Rabbit Bonnet 0 15569 Gemini Diadem 1 05570 Gemini Crown 1 05658 Imp Hat 1 05660 Gryphon Hat 1 05690 Red Wing Hat 0 15824 Fools Day Hat 0 113005 Angelic Wing Dagger 1 218505 Umbala Spirit 0 118600 Cat Ear Beret 1 019501 T Spinx Helm 0 1
Please verify these slot count values.
-
Version 2.1
#1. 3 players join the scuffle - Player A, Player B and Player C
#2. Player C killed Player A and B
#3. announcer says Player A wins.
#4. Player A get the prize.
This is may scenario AnnieRuru
-
getting error like this compiling in linux. looking forward that somebody would make plugin for linux like this
[Warning]: HPM:plugin_load: failed to retrieve 'HPMDataCheckLen' for 'plugins/rentitem2.dll', most likely not including HPMDataCheck.h, skipping...
-
do we have option like this? it very nice to have this for event rewards
rentitem2 <id> <qty> <identify> <refine> <attribute> <bound> <card1> <card2> <card3> <card4> <time>
What you think?
NEMO - Client Patcher
in Client-Side Releases
Posted
I always use 2 patcher to diff my client.
1. Nemo
2. WeDiff (just to remove service select)
How can i add Disable Service Select in NEMO? Thanks for this wonderful tools.