Jump to content

Thyr

Members
  • Content Count

    78
  • Joined

  • Last visited

Posts posted by Thyr


  1. Is this possible adding a limit on putting grf on data.ini

     

    Example - this is my default format of data.ini

    [Data]

    0= your.grf

    1=palette.grf

    2=data.grf

    3=rdata.grf

     

    then...

     

    If data.ini changed to this. the client will not launch or start because the other.grf is not trusted grf.

    [Data]

    0= your.grf

    1=palette.grf

    2=data.grf

    3=rdata.grf

    4=other.grf

     

    This idea is just to avoid nodelay.grf or any grf, to avoid uneven gameplay of each players.


  2.  

     

    ready made vps server, we dont offer ready to play server. You probably know what happen to those server with ready to play setting which i guess only lasted for months 

    difference of your ready made vps that exclusive to ragnarok than ready to play server? im confused sorry

     

    ready made vps means, all software needed to run a ragnarok server are already pre-installed, basically all you need to do is setup your server and run. We could also help you setting up your server as we also offer free server setup based on the emulator you are using

    I see, what is your service right now, just for the testing? (Low cost that I can learn from it).


  3. ready made vps server, we dont offer ready to play server. You probably know what happen to those server with ready to play setting which i guess only lasted for months 

    difference of your ready made vps that exclusive to ragnarok than ready to play server? im confused sorry


  4.  

     

     

    Hello,

     

    I'm new to the things that Setup VPS to run a Ragnarok Emulator since new i got no idea on how to make or run codes to setup Ragnarok Emulator, I only know to host a Ragnarok Emulator by buying Ready Made Ragnarok Hosting. 

     

    Its been a month modifying my own Emulator (Adding NPCs Script, Skill Modifications, etc.,).. Now I'm about to release my emulator to be played online, but the thing is I only know how to script, edit on my Emulator, not on setting up a VPS to run a Ragnarok Emulator. I planned to buy a Ready made Ragnarok Hosting but people said, its better to have Own VPS that I will setup to have more control than buying Ready Made Host. (I have fund to buy a VPS/Ready Made now but I'm still confused which I would get)

     

    Anyone can help me setup a VPS to run my own made Emulator? or I'll just get a ready made hosting since I don't know how to setup a VPS to run my emulator.

    better do all your stuff locally and get a vps once you're ready. Its pretty easy to run the server on a vps once its setup.

    My emulator is done, I'm afraid that I might waste it. if I bought VPS and didnt setup correctly.

    I could help you with the vps since we offer vps exclusive for ragnarok server. We have vnc server that would help  you manage your server

    Are you offering Ready Made Hosting? or VPS? what are the features of it and cost?


  5.  

    Hello,

     

    I'm new to the things that Setup VPS to run a Ragnarok Emulator since new i got no idea on how to make or run codes to setup Ragnarok Emulator, I only know to host a Ragnarok Emulator by buying Ready Made Ragnarok Hosting. 

     

    Its been a month modifying my own Emulator (Adding NPCs Script, Skill Modifications, etc.,).. Now I'm about to release my emulator to be played online, but the thing is I only know how to script, edit on my Emulator, not on setting up a VPS to run a Ragnarok Emulator. I planned to buy a Ready made Ragnarok Hosting but people said, its better to have Own VPS that I will setup to have more control than buying Ready Made Host. (I have fund to buy a VPS/Ready Made now but I'm still confused which I would get)

     

    Anyone can help me setup a VPS to run my own made Emulator? or I'll just get a ready made hosting since I don't know how to setup a VPS to run my emulator.

    better do all your stuff locally and get a vps once you're ready. Its pretty easy to run the server on a vps once its setup.

    My emulator is done, I'm afraid that I might waste it. if I bought VPS and didnt setup correctly.


  6. Update. Alchemist (Potion Pitcher buff), Star Glad, Hunter left. Please help me :/

    [SOUL LINK]
    Alchemist - Increase effectiveness of Potion Pitcer by 70%, Acid Terror Damage 100%.
    Star Gladiator - Allows to use Level 10 Lord of Vermillion, Allows to use Level 10 Parrying, Increase Damage to Boss and Holy monsters by 100%, Perfect Dodge +10.
    Hunter - It gives 15% of auto casting Falcon Assault when attacking.
    

  7. Custom Soul Link Modification [Help]

    Tried to search for this, an patch to my emulator. It doesn't work maybe because it's outdated.

     

    Star Gladiator Class

    - Increase damage on boss monster and holy monster by 100%
    - Can use Lord of Vermillion
    - Can use Parrying (Using Book)
     
    Sage
    - The Sage's HP will also increase by BaseLvl*200 HP and his/her Vit will increase by Int/5 (For example, 255 Int will give you an additional bonus of 255/5 = 51 Vit.

    Wizard
    - The Wizard's HP will also Increase by BaseLvl*200 HP and his/her Vit will increase by Int/5(For example, 255 Int will give you an additional bonus of 255/5 = 51 Vit. Increase Magic Crasher Damage + 150%.
     
    Hunter
    - It gives 15% Chance of auto casting Falcon Assault when attacking
     
    Rogue
    -You can use Single Strip through Full Chemical Protection by consuming Glistening Coat(Working only when the target has FCP or Full Chemical Protection), Increase Double Strafe damage by 150%
     
    Paladin
    - It will also increase the damage of Shield Chain by 200% and add a HIT bonus of 50.
     
    THANK YOU!!!  :wub: 

     


  8. Hello,

     

    I'm new to the things that Setup VPS to run a Ragnarok Emulator since new i got no idea on how to make or run codes to setup Ragnarok Emulator, I only know to host a Ragnarok Emulator by buying Ready Made Ragnarok Hosting. 

     

    Its been a month modifying my own Emulator (Adding NPCs Script, Skill Modifications, etc.,).. Now I'm about to release my emulator to be played online, but the thing is I only know how to script, edit on my Emulator, not on setting up a VPS to run a Ragnarok Emulator. I planned to buy a Ready made Ragnarok Hosting but people said, its better to have Own VPS that I will setup to have more control than buying Ready Made Host. (I have fund to buy a VPS/Ready Made now but I'm still confused which I would get)

     

    Anyone can help me setup a VPS to run my own made Emulator? or I'll just get a ready made hosting since I don't know how to setup a VPS to run my emulator.


  9. U should host the server in vps.. nowadays plenty of guidances to setup the vps to host ragnarok emulator.. personally i don't like using ragnarok hosting coz have seen in both rathena & hercules forum.. some people have problem with the hoster, the hoster went missing, not respond to PM, skype, email.. so, if u using VPS.. it is all urs, under ur management..

    Can you give me a link to Guide of setting up vps to host ragnarok emulator? Thank you!~


  10.  

    You forgot end; before OnHour12

    However since it's the same rand value, I would optimize the script as bekow

    
    -	script	DailyQuestItemChanger	-1,{
    OnInit:
    OnHour12:
    	set $QuestItem1, rand(909,920);
    	set $QuestItem1HM, rand(1,200);
    	set $QuestItem2, rand(943,949);
    	set $QuestItem2HM, rand(1,150);
    	set $QuestItem3, rand(928,932);
    	set $QuestItem3HM, rand(1,50);
    	set $DailyQuestToday,0;
            end;
    }
    

    why it doesn't gets 12hrs cooldown when quest completed.

    //===== Created By: ==============================
    // Mystery
    //================================================
    warcraft,208,184,4	script	Daily Quest	4_M_KNIGHT_GOLD,{
    	if (getgmlevel() >= 80) goto GM_Menu;
    	L_START:
    	if (getgmlevel() >= 80) next;
    	mes "[ Daily  Quest ]";
    	mes "Hello "+strcharinfo(0)+"!";
    	mes "Do you want to start today's Quest?";
    	mes " ";
    	mes "Total Daily Quests Finished: ^008800"+$DailyQuestTotal+"^000000.";
    	mes "Today Daily Quests Finished: ^0000FF"+$DailyQuestToday+"^000000.";
    	menu "Yes!",-,"Nahh",L_Close;
    	next;
    	mes "[ Daily  Quest ]";
    	mes "You'll need these item for Today's Quest:";
    	mes "^FF0000"+getitemname($QuestItem1)+"^000000 x "+$QuestItem1HM+"";
    	mes "^FF0000"+getitemname($QuestItem2)+"^000000 x "+$QuestItem2HM+"";
    	mes "^FF0000"+getitemname($QuestItem3)+"^000000 x "+$QuestItem3HM+"";
    	mes "In exchange you will get ^0000FF"+getitemname($DailyQuestPrize)+"^000000 x "+$DailyQuestPrizeHM+"";
    	next;
    	mes "[ Daily  Quest ]";
    	mes "Do you have the items?";
    	menu "Yes! I do.",-,"Gimme some time.",L_Close;
    	if(countitem($QuestItem1) >= $QuestItem1HM) && (countitem($QuestItem2) >= $QuestItem2HM) && (countitem($QuestItem3) >= $QuestItem3HM) goto FinishQuest;
    	next;
    	mes "[ Daily  Quest ]";
    	mes "You only have "+countitem($QuestItem1HM)+" of ^FF0000"+getitemname($QuestItem1)+"^000000, "+countitem($QuestItem2HM)+" of ^FF0000"+getitemname($QuestItem2)+"^000000, "+countitem($QuestItem3HM)+" of ^FF0000"+getitemname($QuestItem3)+"^000000.";
    	mes "Come back when you have it! Better get the items quickly. It's gonna change in a Day!";
    	close;
    	end;
    
    	L_Close:
    	next;
    	mes "[ Daily  Quest ]";
    	mes "Come back again! Get the Items!";
    	mes "Goodbye!";
    	close;
    	end;
    
    	GM_Menu:
    	mes "[ Daily  Quest ]";
    	mes "Hello GM "+strcharinfo(0)+"!";
    	mes "What can I do for you today?";
    	menu "Player Menu",L_START,"Change Today's Quest/Prize",L_ChangeQuest,"Close",L_Close;
    	end;
    
    	L_ChangeQuest:
    	next;
    	mes "[ Daily  Quest ]";
    	mes "What will you like to change?";
    	next;
    	menu "Go back.",GM_Menu,"Prize [^0000FF"+getitemname($DailyQuestPrize)+"^000000 x "+$DailyQuestPrizeHM+"]",L_ChangePrize,"Change Quest Randomly",L_ChangeQuestRandom,"Change Quest by Myself",L_ChangeQuestMyself;
    	end;
    
    	L_ChangeQuestMyself:
    	next;
    	mes "[ Daily  Quest ]";
    	mes "Which item would you like to change first?";
    	menu "Go Back.",L_ChangeQuest,"Item 1 [^FF0000"+getitemname($QuestItem1)+"^000000 x "+$QuestItem1HM+"]",L_ChangeItem1,"Item 2 [^FF0000"+getitemname($QuestItem2)+"^000000 x "+$QuestItem2HM+"]",L_ChangeItem2,"Item 3 [^FF0000"+getitemname($QuestItem3)+"^000000 x "+$QuestItem3HM+"]",L_ChangeItem3;
    //
    	L_ChangeItem1:
    	next;
    	mes "[ Daily  Quest ]";
    	mes "Alright. What will be the item?";
    	next;
    	input $QuestItem1;
    	next;
    	L_ChangeItem12:
    	mes "[ Daily  Quest ]";
    	mes "How much of ^ff0000"+getitemname($QuestItem1)+"^000000 do you want?";
    	mes "It must be in the range of ^0088001 ~ 200^000000.";
    	next;
    	input $QuestItem1HM;
    	next;
    	if ($QuestItem1HM > 200) goto L_HMItem1Denied;
    	mes "[ Daily  Quest ]";
    	mes "Item 1 Set.";
    	set $DailyQuestToday,0;
    	mes "^FF0000"+getitemname($QuestItem1)+"^000000 x "+$QuestItem1HM+".";
    	next;
    	goto L_ChangeQuest;
    	end;
    
    	L_HMItem1Denied:
    	mes "[ Daily  Quest ]";
    	mes "This item (^ff0000"+getitemname($QuestItem1)+"^000000) must be in a range of ^0088001 ~ 200^000000.";
    	next;
    	goto L_ChangeItem12;
    	end;	
    //
    	L_ChangeItem2:
    	next;
    	mes "[ Daily  Quest ]";
    	mes "Alright. What will be the item?";
    	next;
    	input $QuestItem2;
    	next;
    	L_ChangeItem22:
    	mes "[ Daily  Quest ]";
    	mes "How much of ^ff0000"+getitemname($QuestItem2)+"^000000 do you want?";
    	mes "It must be in the range of ^0088001 ~ 150^000000.";
    	next;
    	input $QuestItem2HM;
    	next;
    	if ($QuestItem2HM > 150) goto L_HMItem2Denied;
    	mes "[ Daily  Quest ]";
    	mes "Item 2 Set.";
    	set $DailyQuestToday,0;
    	mes "^FF0000"+getitemname($QuestItem2)+"^000000 x "+$QuestItem2HM+".";
    	next;
    	goto L_ChangeQuest;
    	end;
    
    	L_HMItem2Denied:
    	mes "[ Daily  Quest ]";
    	mes "This item (^ff0000"+getitemname($QuestItem2)+"^000000) must be in a range of ^0088001 ~ 150^000000.";
    	next;
    	goto L_ChangeItem22;
    	end;
    //
    	L_ChangeItem3:
    	next;
    	mes "[ Daily  Quest ]";
    	mes "Alright. What will be the item?";
    	next;
    	input $QuestItem3;
    	next;
    	L_ChangeItem32:
    	mes "[ Daily  Quest ]";
    	mes "How much of ^ff0000"+getitemname($QuestItem3)+"^000000 do you want?";
    	mes "It must be in the range of ^0088001 ~ 50^000000.";
    	next;
    	input $QuestItem3HM;
    	next;
    	if ($QuestItem3HM > 50) goto L_HMItem3Denied;
    	mes "[ Daily  Quest ]";
    	mes "Item 3 Set.";
    	set $DailyQuestToday,0;
    	mes "^FF0000"+getitemname($QuestItem3)+"^000000 x "+$QuestItem3HM+".";
    	next;
    	goto L_ChangeQuest;
    	end;
    
    	L_HMItem3Denied:
    	mes "[ Daily  Quest ]";
    	mes "This item (^ff0000"+getitemname($QuestItem3)+"^000000) must be in a range of ^0088001 ~ 50^000000.";
    	next;
    	goto L_ChangeItem32;
    	end;
    //
    	L_ChangeQuestRandom:
    	set $QuestItem1, rand(909,920);
    	set $QuestItem1HM, rand(1,200);
    	set $QuestItem2, rand(943,949);
    	set $QuestItem2HM, rand(1,150);
    	set $QuestItem3, rand(928,932);
    	set $QuestItem3HM, rand(1,50);
    	set $DailyQuestToday,0;
    	mes "[ Daily  Quest ]";
    	mes "This is the Daily Quest:";
    	mes "^FF0000"+getitemname($QuestItem1)+"^000000 x "+$QuestItem1HM+"";
    	mes "^FF0000"+getitemname($QuestItem2)+"^000000 x "+$QuestItem2HM+"";
    	mes "^FF0000"+getitemname($QuestItem3)+"^000000 x "+$QuestItem3HM+"";
    	next;
    	goto GM_Menu;
    	end;
    
    	L_ChangePrize:
    	next;
    	mes "[ Daily  Quest ]";
    	mes "Input the Prize";
    	next;
    	input $DailyQuestPrize;
    	next;
    	mes "[ Daily  Quest ]";
    	mes "The Prize: "+getitemname($DailyQuestPrize)+" x How many?";
    	next;
    	input $DailyQuestPrizeHM;
    	next;
    	mes "[ Daily  Quest ]";
    	mes "This is what you like?";
    	mes "^0000ff"+getitemname($DailyQuestPrize)+"^000000 x "+$DailyQuestPrizeHM+".";
    	menu "Yup, Thanks.",GM_Menu,"Noo! I made a mistake!",L_ChangePrize;
    	end;
    
    	FinishQuest:
    	next;
    	mes "[ Daily  Quest ]";
    	mes "You got ^0000FF"+getitemname($DailyQuestPrize)+"^000000 x "+$DailyQuestPrizeHM+".";
    	delitem $QuestItem1,$QuestItem1HM;
    	delitem $QuestItem2,$QuestItem2HM;
    	delitem $QuestItem3,$QuestItem3HM;
    	getitem $DailyQuestPrize,$DailyQuestPrizeHM;
    	set $DailyQuestTotal,$DailyQuestTotal +1;
    	set $DailyQuestToday,$DailyQuestToday +1;
    	close;
    	end;
    	
    }
    
    -	script	DailyQuestItemChanger	FAKE_NPC,{
    OnInit:
    OnHour12:
    	set $QuestItem1, rand(909,920);
    	set $QuestItem1HM, rand(1,200);
    	set $QuestItem2, rand(943,949);
    	set $QuestItem2HM, rand(1,150);
    	set $QuestItem3, rand(928,932);
    	set $QuestItem3HM, rand(1,50);
    	set $DailyQuestToday,0;
            end;
    }
    
    }
    

  11. Hello Hercules,

    I just about to ask if is it worth it to use a updated/latest client? (My server is running only with trans job)

    I currently use 2010-07-30 Client. If it's worth it to use the latest one.

    Its free to give your opinion @ pros and cons of my current client to latest clients, Please give me your suggested Client that is stable.


  12.  

    
    *freeloop(<toggle>)
    
    Toggling this to enabled (true) allows the script instance to bypass the
    infinite loop protection, allowing your script to loop as much as it may 
    need. Disabling (false) may warn you if an infinite loop is detected if your
    script is looping too many times.
    
    Please note, once again, that this isn't a solution to all problems, and by
    disabling this protection your Hercules server may become laggy or
    unresponsive if the script it is used in is performing lenghty loop
    operations.
    
    Example:
    	freeloop(true); // enable script to loop freely
    
    	//Be aware with what you do here.
    	for (.@i = 0; .@i < .@bigloop; ++.@i) {
    		dothis();
    		// will sleep the script for 1ms when detect an infinity loop to 
    		// let Hercules do what it need to do (socket, timer, process, 
    		// etc.)
    	}
    
    	freeloop(false); // disable
    
    	for (.@i = 0; .@i < .@bigloop; ++.@i) {
    		dothis();
    		// throw an infinity loop error
    	} 

     

    Add freeloop(true) to the beginning of your script.

    where will i add the freeloop? tried in beginning and nop.


  13.  

    It was posted this feb and when I am about to add the lines some of it are outdated.

    Can anyone update this script?

     

    By Kid Rock and he said it was made for hercules

    heres the link

    src/map/atcommand.c | 29 +++++++++++++++++++++++++++++
     src/map/battle.c    |  4 ++++
     src/map/pc.c        |  1 +
     src/map/pc.h        |  2 ++
     4 files changed, 36 insertions(+)
    
    diff --git a/src/map/atcommand.c b/src/map/atcommand.c
    index 4a4487c..7f95b05 100644
    --- a/src/map/atcommand.c
    +++ b/src/map/atcommand.c
    @@ -5209,6 +5209,34 @@ static void get_jail_time(int jailtime, int* year, int* month, int* day, int* ho
     	return true;
     }
     
    +ACMD(pkmode) {
    +
    +	unsigned int tick = iTimer->gettick();
    +
    +	nullpo_retr(-1, sd);
    +	
    +	if( map[sd->bl.m].flag.pvp || map[sd->bl.m].flag.gvg || map[sd->bl.m].flag.gvg_castle || map[sd->bl.m].flag.gvg_dungeon ) {
    +		clif->message(sd->fd, "You can only change your PK state on non-PVP maps.");
    +		return false;
    +	}
    +
    +	if(DIFF_TICK(sd->pk_mode_tick,tick) > 0){ //check the delay before use this command again
    +		clif->message(sd->fd, "You cannot turn OFF your PK state twice within just 15 minutes.");
    +		return false;
    +		}
    +else{
    +	if (!sd->state.pk_mode) {
    +		sd->state.pk_mode = 1;
    +		clif->message(sd->fd, "Your PK state is now OFF");
    +		sd->pk_mode_tick = tick + 0; //set the delay here
    +	} else {
    +		sd->state.pk_mode = 0;
    +		clif->message(sd->fd, "Your PK state is now ON");
    +		sd->pk_mode_tick = tick + 1500000; //set the delay here
    +	}
    +}
    +	return true;
    +}
     
     /*==========================================
      * @dropall by [MouseJstr]
    @@ -9646,6 +9674,7 @@ void atcommand_basecommands(void) {
     		ACMD_DEF(jail),
     		ACMD_DEF(unjail),
     		ACMD_DEF(jailfor),
    +		ACMD_DEF2("pk",pkmode),
     		ACMD_DEF(jailtime),
     		ACMD_DEF(disguise),
     		ACMD_DEF(undisguise),
    
    diff --git a/src/map/battle.c b/src/map/battle.c
    index 4a31a97..13241657 100644
    --- a/src/map/battle.c
    +++ b/src/map/battle.c
    @@ -5903,6 +5903,8 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f
     
     			if( sd->state.monster_ignore && flag&BCT_ENEMY )
     				return 0; // Global inminuty only to Attacks
    +			if( map[m].flag.pvp && sd->state.pk_mode && flag&BCT_ENEMY && s_bl->type != BL_MOB )
    +				return 0;
     			if( sd->status.karma && s_bl->type == BL_PC && ((TBL_PC*)s_bl)->status.karma )
     				state |= BCT_ENEMY; // Characters with bad karma may fight amongst them
     			if( sd->state.killable ) {
    @@ -5968,6 +5970,8 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f
     					else
     						return 0; // You can't target anything out of your duel
     				}
    +				else if( map[m].flag.pvp && sd->state.pk_mode && t_bl->type != BL_MOB )
    +					return 0;
     			}
     			if( map_flag_gvg(m) && !sd->status.guild_id && t_bl->type == BL_MOB && ((TBL_MOB*)t_bl)->class_ == MOBID_EMPERIUM )
     				return 0; //If you don't belong to a guild, can't target emperium.
    
    diff --git a/src/map/pc.c b/src/map/pc.c
    index 044e555..edcd9f1 100644
    --- a/src/map/pc.c
    +++ b/src/map/pc.c
    @@ -638,6 +638,7 @@ int pc_setnewpc(struct map_session_data *sd, int account_id, int char_id, int lo
     	sd->state.active = 0; //to be set to 1 after player is fully authed and loaded.
     	sd->bl.type      = BL_PC;
     	sd->canlog_tick  = iTimer->gettick();
    +	sd->pk_mode_tick = iTimer->gettick();
     	//Required to prevent homunculus copuing a base speed of 0.
     	sd->battle_status.speed = sd->base_status.speed = DEFAULT_WALK_SPEED;
     	return 0;
    
    diff --git a/src/map/pc.h b/src/map/pc.h
    index 7db5c2f..2bb7749 100644
    --- a/src/map/pc.h
    +++ b/src/map/pc.h
    @@ -167,6 +167,7 @@ struct map_session_data {
     		unsigned int prerefining : 1;
     		unsigned int workinprogress : 3; // 1 = disable skill/item, 2 = disable npc interaction, 3 = disable both
     		unsigned int hold_recalc : 1;
    +		unsigned int pk_mode : 1;
     	} state;
     	struct {
     		unsigned char no_weapon_damage, no_magic_damage, no_misc_damage;
    @@ -233,6 +234,7 @@ struct map_session_data {
     	unsigned int canskill_tick; // used to prevent abuse from no-delay ACT files
     	unsigned int cansendmail_tick; // [Mail System Flood Protection]
     	unsigned int ks_floodprotect_tick; // [Kill Steal Protection]
    +	unsigned int pk_mode_tick;
     	struct {
     		short nameid;
     		unsigned int tick;
    
    Try this: https://github.com/dastgir/HPM-Plugins/blob/master/src/plugins/%40pk.c

    Uhm, tried this thing looks like it doesnt work when i choose to make my server pk type. in map/battle/misc.conf pk_mode: 1

     

    after making my server pk type. I tried to turn off the pk by using this plugin in my server and typed @pk each players, still able attacks each other.

    help? :o tried removing the pk type server on misc.conf, it works when turning on the @pk command and turning it off but the cursor doesnt change to battle/sword type (You Need to press shift to use skill and attack each other)


  14. hello, when i added this script it give me this kind of error  run_script: Infinity loop !

     

    //===== Created By: ==============================
    // Mystery
    //================================================
    
    warcraft,208,184,4	script	Daily Quest	4_M_KNIGHT_GOLD,{
    	if (getgmlevel() >= 80) goto GM_Menu;
    	L_START:
    	if (getgmlevel() >= 80) next;
    	mes "[ Daily  Quest ]";
    	mes "Hello "+strcharinfo(0)+"!";
    	mes "Do you want to start today's Quest?";
    	mes " ";
    	mes "Total Daily Quests Finished: ^008800"+$DailyQuestTotal+"^000000.";
    	mes "Today Daily Quests Finished: ^0000FF"+$DailyQuestToday+"^000000.";
    	menu "Yes!",-,"Nahh",L_Close;
    	next;
    	mes "[ Daily  Quest ]";
    	mes "You'll need these item for Today's Quest:";
    	mes "^FF0000"+getitemname($QuestItem1)+"^000000 x "+$QuestItem1HM+"";
    	mes "^FF0000"+getitemname($QuestItem2)+"^000000 x "+$QuestItem2HM+"";
    	mes "^FF0000"+getitemname($QuestItem3)+"^000000 x "+$QuestItem3HM+"";
    	mes "In exchange you will get ^0000FF"+getitemname($DailyQuestPrize)+"^000000 x "+$DailyQuestPrizeHM+"";
    	next;
    	mes "[ Daily  Quest ]";
    	mes "Do you have the items?";
    	menu "Yes! I do.",-,"Gimme some time.",L_Close;
    	if(countitem($QuestItem1) >= $QuestItem1HM) && (countitem($QuestItem2) >= $QuestItem2HM) && (countitem($QuestItem3) >= $QuestItem3HM) goto FinishQuest;
    	next;
    	mes "[ Daily  Quest ]";
    	mes "You only have "+countitem($QuestItem1HM)+" of ^FF0000"+getitemname($QuestItem1)+"^000000, "+countitem($QuestItem2HM)+" of ^FF0000"+getitemname($QuestItem2)+"^000000, "+countitem($QuestItem3HM)+" of ^FF0000"+getitemname($QuestItem3)+"^000000.";
    	mes "Come back when you have it! Better get the items quickly. It's gonna change in a Day!";
    	close;
    	end;
    
    	L_Close:
    	next;
    	mes "[ Daily  Quest ]";
    	mes "Come back again! Get the Items!";
    	mes "Goodbye!";
    	close;
    	end;
    
    	GM_Menu:
    	mes "[ Daily  Quest ]";
    	mes "Hello GM "+strcharinfo(0)+"!";
    	mes "What can I do for you today?";
    	menu "Player Menu",L_START,"Change Today's Quest/Prize",L_ChangeQuest,"Close",L_Close;
    	end;
    
    	L_ChangeQuest:
    	next;
    	mes "[ Daily  Quest ]";
    	mes "What will you like to change?";
    	next;
    	menu "Go back.",GM_Menu,"Prize [^0000FF"+getitemname($DailyQuestPrize)+"^000000 x "+$DailyQuestPrizeHM+"]",L_ChangePrize,"Change Quest Randomly",L_ChangeQuestRandom,"Change Quest by Myself",L_ChangeQuestMyself;
    	end;
    
    	L_ChangeQuestMyself:
    	next;
    	mes "[ Daily  Quest ]";
    	mes "Which item would you like to change first?";
    	menu "Go Back.",L_ChangeQuest,"Item 1 [^FF0000"+getitemname($QuestItem1)+"^000000 x "+$QuestItem1HM+"]",L_ChangeItem1,"Item 2 [^FF0000"+getitemname($QuestItem2)+"^000000 x "+$QuestItem2HM+"]",L_ChangeItem2,"Item 3 [^FF0000"+getitemname($QuestItem3)+"^000000 x "+$QuestItem3HM+"]",L_ChangeItem3;
    //
    	L_ChangeItem1:
    	next;
    	mes "[ Daily  Quest ]";
    	mes "Alright. What will be the item?";
    	next;
    	input $QuestItem1;
    	next;
    	L_ChangeItem12:
    	mes "[ Daily  Quest ]";
    	mes "How much of ^ff0000"+getitemname($QuestItem1)+"^000000 do you want?";
    	mes "It must be in the range of ^0088001 ~ 200^000000.";
    	next;
    	input $QuestItem1HM;
    	next;
    	if ($QuestItem1HM > 200) goto L_HMItem1Denied;
    	mes "[ Daily  Quest ]";
    	mes "Item 1 Set.";
    	set $DailyQuestToday,0;
    	mes "^FF0000"+getitemname($QuestItem1)+"^000000 x "+$QuestItem1HM+".";
    	next;
    	goto L_ChangeQuest;
    	end;
    
    	L_HMItem1Denied:
    	mes "[ Daily  Quest ]";
    	mes "This item (^ff0000"+getitemname($QuestItem1)+"^000000) must be in a range of ^0088001 ~ 200^000000.";
    	next;
    	goto L_ChangeItem12;
    	end;	
    //
    	L_ChangeItem2:
    	next;
    	mes "[ Daily  Quest ]";
    	mes "Alright. What will be the item?";
    	next;
    	input $QuestItem2;
    	next;
    	L_ChangeItem22:
    	mes "[ Daily  Quest ]";
    	mes "How much of ^ff0000"+getitemname($QuestItem2)+"^000000 do you want?";
    	mes "It must be in the range of ^0088001 ~ 150^000000.";
    	next;
    	input $QuestItem2HM;
    	next;
    	if ($QuestItem2HM > 150) goto L_HMItem2Denied;
    	mes "[ Daily  Quest ]";
    	mes "Item 2 Set.";
    	set $DailyQuestToday,0;
    	mes "^FF0000"+getitemname($QuestItem2)+"^000000 x "+$QuestItem2HM+".";
    	next;
    	goto L_ChangeQuest;
    	end;
    
    	L_HMItem2Denied:
    	mes "[ Daily  Quest ]";
    	mes "This item (^ff0000"+getitemname($QuestItem2)+"^000000) must be in a range of ^0088001 ~ 150^000000.";
    	next;
    	goto L_ChangeItem22;
    	end;
    //
    	L_ChangeItem3:
    	next;
    	mes "[ Daily  Quest ]";
    	mes "Alright. What will be the item?";
    	next;
    	input $QuestItem3;
    	next;
    	L_ChangeItem32:
    	mes "[ Daily  Quest ]";
    	mes "How much of ^ff0000"+getitemname($QuestItem3)+"^000000 do you want?";
    	mes "It must be in the range of ^0088001 ~ 50^000000.";
    	next;
    	input $QuestItem3HM;
    	next;
    	if ($QuestItem3HM > 50) goto L_HMItem3Denied;
    	mes "[ Daily  Quest ]";
    	mes "Item 3 Set.";
    	set $DailyQuestToday,0;
    	mes "^FF0000"+getitemname($QuestItem3)+"^000000 x "+$QuestItem3HM+".";
    	next;
    	goto L_ChangeQuest;
    	end;
    
    	L_HMItem3Denied:
    	mes "[ Daily  Quest ]";
    	mes "This item (^ff0000"+getitemname($QuestItem3)+"^000000) must be in a range of ^0088001 ~ 50^000000.";
    	next;
    	goto L_ChangeItem32;
    	end;
    //
    	L_ChangeQuestRandom:
    	set $QuestItem1, rand(909,920);
    	set $QuestItem1HM, rand(1,200);
    	set $QuestItem2, rand(943,949);
    	set $QuestItem2HM, rand(1,150);
    	set $QuestItem3, rand(928,932);
    	set $QuestItem3HM, rand(1,50);
    	set $DailyQuestToday,0;
    	mes "[ Daily  Quest ]";
    	mes "This is the Daily Quest:";
    	mes "^FF0000"+getitemname($QuestItem1)+"^000000 x "+$QuestItem1HM+"";
    	mes "^FF0000"+getitemname($QuestItem2)+"^000000 x "+$QuestItem2HM+"";
    	mes "^FF0000"+getitemname($QuestItem3)+"^000000 x "+$QuestItem3HM+"";
    	next;
    	goto GM_Menu;
    	end;
    
    	L_ChangePrize:
    	next;
    	mes "[ Daily  Quest ]";
    	mes "Input the Prize";
    	next;
    	input $DailyQuestPrize;
    	next;
    	mes "[ Daily  Quest ]";
    	mes "The Prize: "+getitemname($DailyQuestPrize)+" x How many?";
    	next;
    	input $DailyQuestPrizeHM;
    	next;
    	mes "[ Daily  Quest ]";
    	mes "This is what you like?";
    	mes "^0000ff"+getitemname($DailyQuestPrize)+"^000000 x "+$DailyQuestPrizeHM+".";
    	menu "Yup, Thanks.",GM_Menu,"Noo! I made a mistake!",L_ChangePrize;
    	end;
    
    	FinishQuest:
    	next;
    	mes "[ Daily  Quest ]";
    	mes "You got ^0000FF"+getitemname($DailyQuestPrize)+"^000000 x "+$DailyQuestPrizeHM+".";
    	delitem $QuestItem1,$QuestItem1HM;
    	delitem $QuestItem2,$QuestItem2HM;
    	delitem $QuestItem3,$QuestItem3HM;
    	getitem $DailyQuestPrize,$DailyQuestPrizeHM;
    	set $DailyQuestTotal,$DailyQuestTotal +1;
    	set $DailyQuestToday,$DailyQuestToday +1;
    	close;
    	end;
    	
    }
    
    -	script	DailyQuestItemChanger	-1,{
    	OnInit:
    	Start:
    	set $QuestItem1, rand(909,920);
    	set $QuestItem1HM, rand(1,200);
    	set $QuestItem2, rand(943,949);
    	set $QuestItem2HM, rand(1,150);
    	set $QuestItem3, rand(928,932);
    	set $QuestItem3HM, rand(1,50);
    	set $DailyQuestToday,0;
    	OnHour12:
    	set $QuestItem1, rand(909,920);
    	set $QuestItem1HM, rand(1,200);
    	set $QuestItem2, rand(943,949);
    	set $QuestItem2HM, rand(1,150);
    	set $QuestItem3, rand(928,932);
    	set $QuestItem3HM, rand(1,50);
    	set $DailyQuestToday,0;
    	goto Start;
    	end;
    
    }
    

     


  15. It was posted this feb and when I am about to add the lines some of it are outdated.

    Can anyone update this script?

     

    By Kid Rock and he said it was made for hercules

    heres the link

    src/map/atcommand.c | 29 +++++++++++++++++++++++++++++
     src/map/battle.c    |  4 ++++
     src/map/pc.c        |  1 +
     src/map/pc.h        |  2 ++
     4 files changed, 36 insertions(+)
    
    diff --git a/src/map/atcommand.c b/src/map/atcommand.c
    index 4a4487c..7f95b05 100644
    --- a/src/map/atcommand.c
    +++ b/src/map/atcommand.c
    @@ -5209,6 +5209,34 @@ static void get_jail_time(int jailtime, int* year, int* month, int* day, int* ho
     	return true;
     }
     
    +ACMD(pkmode) {
    +
    +	unsigned int tick = iTimer->gettick();
    +
    +	nullpo_retr(-1, sd);
    +	
    +	if( map[sd->bl.m].flag.pvp || map[sd->bl.m].flag.gvg || map[sd->bl.m].flag.gvg_castle || map[sd->bl.m].flag.gvg_dungeon ) {
    +		clif->message(sd->fd, "You can only change your PK state on non-PVP maps.");
    +		return false;
    +	}
    +
    +	if(DIFF_TICK(sd->pk_mode_tick,tick) > 0){ //check the delay before use this command again
    +		clif->message(sd->fd, "You cannot turn OFF your PK state twice within just 15 minutes.");
    +		return false;
    +		}
    +else{
    +	if (!sd->state.pk_mode) {
    +		sd->state.pk_mode = 1;
    +		clif->message(sd->fd, "Your PK state is now OFF");
    +		sd->pk_mode_tick = tick + 0; //set the delay here
    +	} else {
    +		sd->state.pk_mode = 0;
    +		clif->message(sd->fd, "Your PK state is now ON");
    +		sd->pk_mode_tick = tick + 1500000; //set the delay here
    +	}
    +}
    +	return true;
    +}
     
     /*==========================================
      * @dropall by [MouseJstr]
    @@ -9646,6 +9674,7 @@ void atcommand_basecommands(void) {
     		ACMD_DEF(jail),
     		ACMD_DEF(unjail),
     		ACMD_DEF(jailfor),
    +		ACMD_DEF2("pk",pkmode),
     		ACMD_DEF(jailtime),
     		ACMD_DEF(disguise),
     		ACMD_DEF(undisguise),
    
    diff --git a/src/map/battle.c b/src/map/battle.c
    index 4a31a97..13241657 100644
    --- a/src/map/battle.c
    +++ b/src/map/battle.c
    @@ -5903,6 +5903,8 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f
     
     			if( sd->state.monster_ignore && flag&BCT_ENEMY )
     				return 0; // Global inminuty only to Attacks
    +			if( map[m].flag.pvp && sd->state.pk_mode && flag&BCT_ENEMY && s_bl->type != BL_MOB )
    +				return 0;
     			if( sd->status.karma && s_bl->type == BL_PC && ((TBL_PC*)s_bl)->status.karma )
     				state |= BCT_ENEMY; // Characters with bad karma may fight amongst them
     			if( sd->state.killable ) {
    @@ -5968,6 +5970,8 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f
     					else
     						return 0; // You can't target anything out of your duel
     				}
    +				else if( map[m].flag.pvp && sd->state.pk_mode && t_bl->type != BL_MOB )
    +					return 0;
     			}
     			if( map_flag_gvg(m) && !sd->status.guild_id && t_bl->type == BL_MOB && ((TBL_MOB*)t_bl)->class_ == MOBID_EMPERIUM )
     				return 0; //If you don't belong to a guild, can't target emperium.
    
    diff --git a/src/map/pc.c b/src/map/pc.c
    index 044e555..edcd9f1 100644
    --- a/src/map/pc.c
    +++ b/src/map/pc.c
    @@ -638,6 +638,7 @@ int pc_setnewpc(struct map_session_data *sd, int account_id, int char_id, int lo
     	sd->state.active = 0; //to be set to 1 after player is fully authed and loaded.
     	sd->bl.type      = BL_PC;
     	sd->canlog_tick  = iTimer->gettick();
    +	sd->pk_mode_tick = iTimer->gettick();
     	//Required to prevent homunculus copuing a base speed of 0.
     	sd->battle_status.speed = sd->base_status.speed = DEFAULT_WALK_SPEED;
     	return 0;
    
    diff --git a/src/map/pc.h b/src/map/pc.h
    index 7db5c2f..2bb7749 100644
    --- a/src/map/pc.h
    +++ b/src/map/pc.h
    @@ -167,6 +167,7 @@ struct map_session_data {
     		unsigned int prerefining : 1;
     		unsigned int workinprogress : 3; // 1 = disable skill/item, 2 = disable npc interaction, 3 = disable both
     		unsigned int hold_recalc : 1;
    +		unsigned int pk_mode : 1;
     	} state;
     	struct {
     		unsigned char no_weapon_damage, no_magic_damage, no_misc_damage;
    @@ -233,6 +234,7 @@ struct map_session_data {
     	unsigned int canskill_tick; // used to prevent abuse from no-delay ACT files
     	unsigned int cansendmail_tick; // [Mail System Flood Protection]
     	unsigned int ks_floodprotect_tick; // [Kill Steal Protection]
    +	unsigned int pk_mode_tick;
     	struct {
     		short nameid;
     		unsigned int tick;
    

     

×
×
  • Create New...

Important Information

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