Jump to content

Thyr

Members
  • Content Count

    78
  • Joined

  • Last visited

Everything posted by Thyr

  1. Not true, it's clearly visible if you open with hex editor. mmm, is this kind of idea even possible? also how to embed data.ini?
  2. 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.
  3. Anyone can help me about making PvP Warper that warp to force_1-2 or force_2-2 in random with a certain area? IMAGE HOW
  4. 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).
  5. difference of your ready made vps that exclusive to ragnarok than ready to play server? im confused sorry
  6. 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?
  7. 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.
  8. How can i add these commands to normal players? @feelreset and @hatereset also @skillall command
  9. Found this from rathena, tried and doesn't work. OnInit: setcell "prontera",X1,Y1,X2,Y2,cell_nochat,0; setcell "prontera",X1,Y1,X2,Y2,cell_novending,0; end; https://rathena.org/board/applications/core/interface/imageproxy/imageproxy.php?img=http://i.imgur.com/TPx5u8y.jpg&key=5bedbe54397e1eec389f0ff78ed98c0e2e0bc00828c4953053eba0acda2fbb32 IMAGE^^^
  10. 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.
  11. 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!!!
  12. Woah, I got windows 10 on my computer now. How can this work? you mean testing? no payments required?
  13. Hello, thanks for this link. does buying VPS comes with free website like Ready Made host? Mostly no,i depend on where you buy your VPS. Can you specify what more control in VPS than Ready Made host? sorry for questions
  14. Hello, thanks for this link. does buying VPS comes with free website like Ready Made host?
  15. 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.
  16. Can you give me a link to Guide of setting up vps to host ragnarok emulator? Thank you!~
  17. 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; } }
  18. 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.
  19. where will i add the freeloop? tried in beginning and nop.
  20. 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? 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)
  21. Hello, Anyone can help me create a script that everytime a player Login the game, there is a command will automatically on like @pk, when a player login it auto command @pk himself.
  22. 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; }
  23. 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;
  24. Toasty has a woe room timer i dont think euphy has thats what i like in toasty woe xD
×
×
  • Create New...

Important Information

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