Jump to content

Hadeszeus

Members
  • Content Count

    651
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Hadeszeus


  1. My server is 3 months old from latest rev. So I decided to backup everything and carefully add all updates as possible.

     

    After the update, I noticed that all items I get is not saving in my database. everytime I logout or relogin/character select items are gone. I tried to @clearinventory but items in database still there.

    Now I wonder where should I look at? Which part of the source doing that saving thinng?

     

    I tried checking map-server.log but no error. 
    No error on recompiling.


    Im lost here, someone help pls


  2. Can you tell full client date which you are using? If using any client greater than 2014-02-05, I recommend you to change your client.

     

    I'm using 2014-01-15b. 

     

    What are the problems with this client date? is there a security issue or anything hazardous 


  3. I have successfully added a custom low gear item. I can summon the item in game without problem. It has working sprite, item image in inventory and equipped.

     

    However everytime i logout or even character select. The Item image is gone but the sprite is there.
    The Icon in my EQUIP VIEW and INVENTORY view is gone but in the database i can see the item id in my inventory or equipped column.

    What seems to be the problem?


  4.  

    Can someone share the diff to avoid loosing cards inserted on RENTAL ITEM. :(

    Right now cards are all gone after expiration data of an item.

    try this

    --- a/src/map/pc.c+++ b/src/map/pc.c@@ -496,6 +496,25 @@ void pc_rental_expire(struct map_session_data *sd, int i) { 	} 	 	clif->rental_expired(sd->fd, i, sd->status.inventory[i].nameid);++	{ // expiration return card+		int s,flag =0;+		for (s = 0; s < MAX_SLOTS; s++) {+			if( itemdb->exists(sd->status.inventory[i].card[s]) != NULL ){+				struct item card_it;+				memset(&card_it,0,sizeof(card_it));+				card_it.nameid=sd->status.inventory[i].card[s];+				card_it.identify=itemdb->isidentified(card_it.nameid);+				if ((flag = pc->additem(sd, &card_it, 1 ,LOG_TYPE_NONE)))+				{+					clif->additem(sd, 0, 0, flag);+					storage->additem(sd,&card_it,1);++				}+			}+		}+	}+ 	pc->delitem(sd, i, sd->status.inventory[i].amount, 0, 0, LOG_TYPE_OTHER); } void pc_inventory_rentals(struct map_session_data *sd)

     

     

    You're my HERO! THank you so much! as always


  5. I have a problem with this script I found here source


    I want to disable DUAL login using last_mac but I need to exclude the check on players in vending and @at mode.

    How can I modify this script?

     

    -	script	Only1perMAC	-1,{OnPCLoginEvent:	if (getgmlevel() >= 99) end;	set .@name$, strcharinfo(0);	if (query_sql("SELECT `char`.`name` FROM `char` LEFT JOIN login ON `char`.account_id=login.account_id WHERE login.last_mac=(SELECT last_mac FROM login WHERE account_id="+getcharid(3)+") AND `char`.online=1 AND `char`.char_id!="+getcharid(0), .@name$) >= 1) {		for (set .@i,0; .@i<getarraysize(.@name$); set .@i,.@i+1) {			if (checkvending(.@name$[.@i]) != 2)				set .@samemac, .@samemac +1;		}		if (.@samemac >= 1) {			announce "Sorry, only 1 account per computer can be logged in at a time.", bc_self;			sleep 1000;			atcommand "@kick " + .@name$;		}	}	end;}

     

    Thank you!
     


  6. I hope there's a way to capture MAC IP using thor patcher :(

    BTW, I tried using rolex & loki it works...

     

     

    Quick question. How can I patch LOKI or ROLEX? looks like the only way is to create a separate exe for patch. it's not included in LOKI


  7. Thank you

     

    changing 

    max_preserve = 4 * pc->checkskill(sd, WL_FREEZE_SP) + (status_get_int(&sd->bl) + sd->status.base_level) / 10;

    to 

     max_preserve = 2;

    is a way that works for me, although you have to configure every "PreservePoints" in spellbook_db.txt to 1 since each of the skills have their own preserve points

    14,1,6190         // limits cold bolt to 2 reads and 2 release.

     

    Thank you so much for this :) I will try later.. Thanks again!


  8. src/map/skill.h

    #define MAX_SKILL_SPELLBOOK_DB 17

     

    and you have to configure preserve points in db/spellbook_db.txt

     

    Thanks for your reply.

     

    But what Im saying is the skill effect of Reading & Release.

     

    When you read a Spellbook you are allowed to READ 4 SPELLBOOK. Then Release it 4x.

    The correct effect of this should only allow to ready TWICE and RELEASE TWICE also not 4x.


  9. how can I limit the reading to 2 instead of 4?
     

    Base on Official Server. You can only Preserved 2 Skill without Summoning any ball.

    Right now I can Read 4 Spellbook and Released them all.

    Can you help for quick fix pls? 

     

    // Warlock Spellbooks. [LimitLine/3CeAM]int skill_spellbook (struct map_session_data *sd, int nameid) {	int i, max_preserve, skill_id, point;	struct status_change *sc;	nullpo_ret(sd);	sc = status->get_sc(&sd->bl);	status_change_end(&sd->bl, SC_STOP, INVALID_TIMER);	for(i=SC_SPELLBOOK1; i <= SC_SPELLBOOK7; i++) if( sc && !sc->data[i] ) break;	if( i > SC_SPELLBOOK7 )	{		clif->skill_fail(sd, WL_READING_SB, USESKILL_FAIL_SPELLBOOK_READING, 0);		return 0;	}	ARR_FIND(0,MAX_SKILL_SPELLBOOK_DB,i,skill->spellbook_db[i].nameid == nameid); // Search for information of this item	if( i == MAX_SKILL_SPELLBOOK_DB ) return 0;	if( !pc->checkskill(sd, (skill_id = skill->spellbook_db[i].skill_id)) )	{ // User don't know the skill		sc_start(&sd->bl, &sd->bl, SC_SLEEP, 100, 1, skill->get_time(WL_READING_SB, pc->checkskill(sd,WL_READING_SB)));		clif->skill_fail(sd, WL_READING_SB, USESKILL_FAIL_SPELLBOOK_DIFFICULT_SLEEP, 0);		return 0;	}	max_preserve = 4 * pc->checkskill(sd, WL_FREEZE_SP) + (status_get_int(&sd->bl) + sd->status.base_level) / 10;	point = skill->spellbook_db[i].point - 2;	if( sc && sc->data[SC_READING_SB] ) {		if( (sc->data[SC_READING_SB]->val2 + point) > max_preserve ) {			clif->skill_fail(sd, WL_READING_SB, USESKILL_FAIL_SPELLBOOK_PRESERVATION_POINT, 0);			return 0;		}		for(i = SC_SPELLBOOK7; i >= SC_SPELLBOOK1; i--){ // This is how official saves spellbook. [malufett]			if( !sc->data[i] ){				sc->data[SC_READING_SB]->val2 += point; // increase points				sc_start4(&sd->bl,&sd->bl, (sc_type)i, 100, skill_id, pc->checkskill(sd,skill_id), point, 0, INVALID_TIMER);				break;			}		}

  10.  

    -	script	MVPREWARD	-1,{OnNPCKillEvent:    if ( !getmonsterinfo( killedrid, MOB_MVPEXP ) ) end;    if ( getcharid(1) ) {        .@mapc$ = strcharinfo(3);        getpartymember getcharid(1), 1;        getpartymember getcharid(1), 2;        for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {            if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { // what happens if someone in the party member is offline =/				if (attachrid($@partymemberaid[.@i])){					if (strcharinfo(3) == .@mapc$){						.@partymemberaid[.@c] = $@partymemberaid[.@i];						.@c++;					}				}            }        }        getitem 501, 5, .@partymemberaid[ rand( .@c ) ];           announce "Party ["+ strcharinfo(1) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" at "+ strcharinfo(3), 0;     }    else {        getitem 501, 1; //Get Item if KILLER is not in a party.        announce "Player ["+ strcharinfo(0) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" at "+ strcharinfo(3), 0;     }   end;}

    This should work.

     

    Thanks Dastgir! 

×
×
  • Create New...

Important Information

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