Jump to content

astralprojection

Members
  • Content Count

    333
  • Joined

  • Last visited

  • Days Won

    8

Posts posted by astralprojection


  1. 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.

     

    :D

     

    will making a SCRIPT accomplish this procedure? prevent user from writing to my specified readonly channel? 


  2.  

     

    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);}

  3. 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; 

  4.  

     

     

    if client not using SSO Login, then make a check if client try to login with no mac address, reject it. maybe like that

     

    yes 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 :D


  5.  

     

    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.


  6.  

     

    thumb-fe1733d93a5a64c87568498f9f014609-screen-pre-renewal-000.jpg

    File Name: Costume Item Plugins

    File Submitter: Mhalicot

    File Submitted: 10 Feb 2014

    File Category: Plugins

     

    HPM @costumeitem complete package.

     

     

     

    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) :D


  7. 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. :D


  8.  

    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


  9. //===== 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;
    }

     


  10.  

     

    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. :D

    Would verify soon with kRO data.

     

     

    Thank you :D another thing, why all the classNum set to 0? im having problem with client not showing weapons when attacking :D


  11. 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. :D


  12. 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...


  13. do we have option like this? it very nice to have this for event rewards :D

     

    rentitem2 <id> <qty> <identify> <refine> <attribute> <bound> <card1> <card2> <card3> <card4> <time>

     

    What you think?

×
×
  • Create New...

Important Information

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