Jump to content

GmOcean

Members
  • Posts

    666
  • Joined

  • Last visited

  • Days Won

    4

Everything posted by GmOcean

  1. Try this. prontera,155,160,4 script Global Reg Deleter 123,{ set .@a, getarraysize( .global_delete$ ); while( .@b < .@a ) {query_sql("DELETE FROM `global_reg_value` WHERE `str` = '"+ .global_delete$[.@b] +"'"); set .@b,.@b+1;} end; OnInit: setarray .global_delete$[0],"Kill","Death","KillingStreak","MultiKill","KillingSpree","Dominating","MegaKill","Unstoppable","WickedSick","MonsterKill","Godlike","BeyondGodlike","DoubleKill","TripleKill","UltraKill","NemesisKill","NemesisKilled","FeedCount"; end; }
  2. It seems, I forgot to paste a } at the end of the script. Add that to the bottom and it should work. Also, you only get 10k IF the player you kill has 10k. Which they should if you added what I said to your warper.
  3. //===== rAthena Script ======================================= //= Alberta Guides //===== By: ================================================== //= L0ne_W0lf //===== Current Version: ===================================== //= 1.1 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= [Official Conversion] //= Guides for the city of Alberta //===== Additional Comments: ================================= //= 1.0 First version, Renewal guides. //= 1.1 Navigation system update. [Euphy] //============================================================ glemior,185,329,5 script Newbie Guide 105,{ mes "[Petunjuk Pemain Baru]" mes "Halo, "+strcharinfo(0)+"!" mes "Selamat datang di ^8B4513High Eternity Ragnarok^000000," mes "Kamu butuh informasi?"; next; mes "[Petunjuk Pemain Baru]" mes "Silahkan pilih apa yang ingin kamu ketahui :)"; menu "Status Tambahan",lvling,"Farming",farmz,"NPC Event",npcevent; close; lvling: mes "Bagi pemain baru harap mencari level seperti biasa" mes "Setelah kalian mencapai level 250 silahkan berbicara pada NPC statplus" mes "Pilih reset status kemudian mintalah status tambahan" mes "Mudah kan? Apa ada yang perlu kamu ketahui lagi?"; menu "Menu Sebelumnya",Previous Menu,"Tutup",close; farmz: mes "Bingung dimana dan bagaimana dapetin bahan quest?" mes "Gampang kok, kamu bisa ikutin petunjuk di bawah ini^^)" mes "Ada beberapa cara untuk ngumpulin bahan quest" mes " 1. Mancing (di Fishing spot yang sudah di sediakan) ( untuk quest headgear ) " mes " 2. Mengikuti event-event yang ada ( untuk bermacam-macam hadiah ) " mes " 3. Ikutan WOE dan dapatkan hadiahnya ( untuk quest headgear & ring ) " mes " 4. Berburu di Farm Room ( untuk Blue & Red Badge bahan quest ring ) " mes " 5. Join main Deathmatch ( untuk TCG Cards ) " mes "Gampang kan? Apa ada yang perlu kamu ketahui lagi?"; menu "Ya, Masih Ada Yang Perlu Aku Ketahui",Previous Menu,"Tidak, Itu Sudah Cukup",close; npcevent: mes "Ada banyak event di High Eternity Ragnarok" mes "Entah itu Event dari NPC yang sudah di sediakan atau dari GM" mes "Nah, disini akan di jelasin cara-cara jalanin event-event itu" mes "Silahkan pilih event apa yang kamu ga tau cara mainnya?"; menu "Hunting Mission",hunting,"Brain Memory(Mavis Vermillion)",mavis,"Soul Hunter",soul,"Mining(Hermoining)",mining,"Disguise",disg,"Clucker",cluckz; hunting: mes "Hunting Mission" mes "Event bagi pecinta hunting ^^" mes "Hadiah dari Event ini bisa di gunakan untuk membeli Costume" mes "NPC ini akan merandom mob(monster) yang akan menjadi buruan kalian" mes "Kalian akan di minta untuk membunuh mob(monster) yang sudah ditentukan oleh NPC ini" mes "Jumlahnya pun ber variasi, semakin banyak jumlahnya semakin besar hadiahnya" mes "Kalau kamu lupa apa aja monster yang mesti di buru, kamu bisa cek di NPCnya, pilih Mission Status" mes "Disitu kalian bisa lihat apa aja monster yang mesti di buru dan juga hadiah apa aja yang kalian dapatkan"; close; mavis: mes "Mavis Vermillion" mes "NPC Brain Memory" mes "Jangan lupa untuk mengaktifkan effect (ketik /effect)" mes "Seperti pada umumnya permainan Brain Memory" mes "Kalian di haruskan memasang-masangkan gambar yang sama" mes "Cuman kalo umumnya pake kartu, disini kita menggunakan telur skill" mes "Jadi kalian mesti memasangkan skill-skill yang sama" mes "Betul 1x dapet (Bronze Coin), kalau bisa selesai dapet (Gold Coin)" mes "Dijamin NPC yang satu ini ga ngebosenin broo ^^" mes "Oh ya, kalian hanya memiliki 20x kesempatan untuk membuka telur skill ini" mes "Gunakan sebaik baiknya ya..hehehe"; close; soul: mes "Soul Hunter" mes "NPC ini tercipta bagi pecinta call of duty" mes "Minimal pemain yang harus memainkan game ini adalah 5 player" mes "Salah satu dari player akan berubah menjadi zombie" mes "Yang tugasnya mengejar pemain lainnya ^^" mes "Siapakah yang akan menang? Manusia ato Zombienya??" mes "Ayo ikuti event ini yang pastinya seru abiss"; close; mining: mes "Hermoining" mes "NPC mining" mes "Sebelum jalanin ni event, kalian harus beli pick axe(hoe)" mes "Yang tersedia di NPC ini" mes "Setelah itu kalian tinggal berangkat deh ke ruangan mining" mes "Tugasnya gampang, kalian tinggal cangkul monster yang ada di ruangan itu" mes "Jika berhasil 1 momon akan jatuhin bronze coin / silver coin" mes "1 momon membutuhkan 1 pick axe(hoe) jadi bawa yang banyak!" mes "Disini kalian akan dapetin mining exp, jika level mining meningkat, presentasi berhasil meningkat pula" mes "Jadi...Happy Mining ya ^^ "; disg: mes "Disguise" mes "event yang hampir selalu ada di setiap private RO" mes "tugasnya mudah, kalian cukup ketik nama monster yang muncul" mes "1x betul dapatkan 1 bronze coin ^^"; cluckz: mes "Clucker" mes "ayam imut yang nyebelin" mes "ayam ini mencuri hadiah yang menarik dari GM" mes "tugas kalian klik ni ayam sampe ada yang sukses dapetin itu hadiah" mes "ada beberapa kemungkinan yang muncul ketika klik ni ayam" mes "frozen(beku),stone curse,nuke(mati langsung),dll" mes "jadi disarankan menyiapkan diri sebelum memainkan permainan ini" mes "angeling card/marc card(anti beku), evil druid (anti stone curse)"; close; } Try that. There seemed to be a few ' ; ' missing from your script. doing the following is fine, just make sure the last one has a semi-colon at the end. mes "Text here" mes "Text here as well" mes "Text here lastly but end with a ' ; ' before you use a new command such as menu."; menu "This",-; Additionally, your script uses a weird calling for some menu labels, of which I've never seen used before so I'm not sure if they'll work. menu "Menu Sebelumnya",Previous Menu,"Tutup",close; As you can see, you put, " Previous Menu ". I'm not sure that's going to work, but if it does good for you then.
  4. @Scotch - What do you mean? You want this to work for normal PVP and WoE? Or did you want this to be disabled during WoE? If you wanted it to work for Both PVP and WoE all you need to do is change this line: if( strcharinfo(3) != "guild_vs3" ){end;} INTO //if( strcharinfo(3) != "guild_vs3" ){end;} If you wanted to disable it during WoE add this line above the line shown above. if( agitcheck() || agitcheck2() ){end;}
  5. Okay, add this to your warper: if (zeny < 10000){mes "You need a minimum of 10,000 zeny to enter this PVP map."; close;} Then here is the script. 1. Announcement is now fixed. 2. If you die, you will lose 10,000z (Even if your bounty is 1,000,000z you will only lose 10,000 when you die). 3. This script will only work on the given map ( guild_vs3 ) 4. When you die on this map and lose 10,000z, you will be warped out of the map, if you don't have atleast 10,000z more. 5. If you try to kill someone who shares the same IP as you (dual clienting) you will be given a warning. If you do this 3x in a row, they will be banned for 5days for cheating (You can change this). There will also be a public announcement stating that Player X was banned for 5days because of cheating. *NOTE - Relogging before Player X cheats 3x will reset the counter.* 6. Nothing happens when committing suicide. This is so you can still get a bounty from killing someone with GrandCross but also dying in the process. (you get 10k for killing, but nothing from dying, this will result in only 10k, which is normal). 7. Displays zeny earned with " , ". So 10000 will look like: 10,000 - script bounty_script -1,{ OnPCLoginEvent: query_sql("select last_ip from `login` WHERE account_id = "+ getcharid(3) +""),.@ip$; setd ".ip"+getcharid(0)+"$",.@ip$; end; OnPCLogoutEvent: setd ".ip"+getcharid(0)+"$",""; end; OnPCKillEvent: if( strcharinfo(3) != "guild_vs3" ){end;} set .ip1$, getd(".ip"+getcharid(0)+"$"); if(killedrid == getcharid(3)){end;} //Prevent Suicide. attachrid(killedrid); if( .ip1$ == getd(".ip"+getcharid(0)+"$") ) {dispbottom "Cheating will not be tolerated. Repeated offenses will result in a public denounciation, and a 5day ban."; set @repeatcheat,@repeatcheat +1; if(@repeatcheat >=3){announce ""+strcharinfo(0)+" has been caught cheating and has been banned for 5days.",bc_blue|bc_all; atcommand "@ban +5d "+strcharinfo(0)+"";} end;} //Prevents same IP Address Farming if( zeny >= 10000 ){set zeny,zeny-10000;} set .zeny, getd(".bounty"+ getcharid(0) +""); setd ".bounty"+ getcharid(0) +"",0; //Sets Bounty to 0 if they die. if(zeny < 10000){warp "SavePoint",0,0; end;} //Warps them out of map if they no longer have zeny. attachrid(killerrid); set zeny,zeny + .zeny; setd ".bounty"+ getcharid(0) +"", getd(".bounty"+ getcharid(0) +"") + 10000; //Sets Bounty to +10,000 per kill. set .@a$, ""+ getd(".bounty"+ getcharid(0) +"") +""; set .@b, getstrlen(.@a$); while(.@c < .@ {set .@a$,insertchar(.@a$,",",(.@b - 3));set .@b,.@b-3; set .@c,.@c+3;} announce "["+ strcharinfo(0) +"] has killed ["+ rid2name(killedrid) +"]. "+ (Sex?"He":"She") +" has a bounty of: "+ .@a$ +" zeny! [ WANTED LEVEL "+ (getd(".bounty"+ getcharid(0) +"") / 10000) +" ]",bc_blue|bc_all; end; *NOTE - This script requires a server restart to work properly (DO NOT USE with @reloadscript).* If you use @reloadscript with this script, everyone will have the EXACT same IP address, and will be declared cheaters resulting in the aforementioned 5day ban.
  6. Okay, that is really weird. I just got my test server back up and running, I'll run it through a few tests and see if I can replicate the problem. I'll post back when I figure this out.
  7. What emulator are you using? Because, it was working for them aside from the announcing part, and all I changed was the zeny from 1m to 10k, which is as simple as removing 2 0s. So Nothing else was changed, it should be working.
  8. Okay, I updated the script in my original post. Should fix the name display, as well as reduced zeny from 1m to 10k. As for why you said, P3 killed P2 instead of P1, I have no idea. The script should run only when a player is killed by another player. Then 2 variables are set, killerrid (Person who killed someone), and killedrid (Person who died). The script then converts these 2 variables into the player's names and runs the announcement as such. So if your seeing P3 instead of P1, then I can only assume P3 indeed did kill P2.
  9. @Cydh - Is that a problem that persists even when using @warp command via script as well? Because players should be able to warp them selves across Map-Servers via @commands and legit portals. As for the @who<1/2/3> & guild recall, this is a problem resulting from 2 different map-servers (2 different worlds essentially). So normally the command runs a query on the map-server and it does it's thing, but what if we were to store the information it's looking for in a seperate sql table? One that would just store Map names the player is on, if they are a GM, and their levels and stuff (think thats what @who2 does). Then since both map-servers will update that same sql table, if we alter the command to use that table, it theoretically should send the correct information. Granted, we would have to add this as something that happens with every map change, a permanent hidden load_map mapflag of sorts.
  10. There isn't really a GOOD reason to allow this, but you have to look at it from the player's aspect. As of right now, over 90% of the RO servers, give V4P (Vote for Points), which of course is encouraged by server admins, because they want that little boost above others as far as advertisement goes. However, if you look at it from the players point of view, you're left with the question of why should I vote? Most player's will more than likely not vote, because it's a hassle, they feel like it's not needed for the server to grow, they would rather just come home from work/school and just play games to relax and have fun. Even those who have an abundance of free time, would rather spend that time playing RO than voting for it. So owners are left with only 1 option, give them an incentive to vote. Because from the Owner's point of view, he needs his player's votes for advertisement, whether it be 100% true or slightly watered down due to a small bribe (points). However that's just 1 issue Owners have to deal with, and the next one is probably the biggest as far as voting sites go. Let's say, that the average votes a server gets with a V4P system, is 85% of their population. Out of 1,000 players (actively playing not AFK merchants), thats 850 votes. Now a server with only half that amount of players, get's only 425 votes. From here we can see that the lower the population the lower the votes, but also since voters get rewarded, the votes are consistent. Meaning, ServerA with 850 votes, will always have more than ServerB with 425. But when we remove the incentive to vote, your left with a completely random % of voting, based on nothing but the human element of WHY? As in WHY should I vote, what do I get from it immediately? Obviously when this happens you run into the final problem, of people looking for a server to join. 9/10 times, when a player is looking for a server they view the # of votes, as an equivalent to the # of players. Atleast a benchmark for what they can expect. Because of this they are way more likely to check out those servers out. Now, you may be asking why does this matter, well that's because, MOST servers' who do have votes, those votes are rewarded from the following players: 1. Players looking to get the points to obtain whatever it is they want ingame from those points. ( Most commonly those players are people who have just recently joined ). 2. Players who have just joined the server, because they really like it and want more people to play. 3. Players who have been on the server long enough to know it's really good and they feel they should vote. ( Most commonly, these type of voters only exist for servers that have been around for atleast 6months, higher results are yeilded to those who have been their longer ). Basically, More People, more Votes. More Votes, more people. Without the incentive to vote, you have only 1 type of voter, those who are faithful to their server, that choose to spend their time playing that particular server. From my opinion that means, the larger servers, will continue to increase the gap between them and smaller servers almost exponetially. Because, the human element of " WHY? " still applies. A player on a server that has been around for awhile, is FAR FAR FAR more likely to vote, then a player who REALLY likes their server, but that same server has only been out for a couple months. Why? Because again, players who have just recently joined a server would rather spend their time playing, to get better gear, and hopefully catch up to those who have been there for awhile. But this can all be viewed from both sides equally as well. So like I said in the begining, there really isn't a GOOD reason to allow this feature, but if there was ever a reason too, I listed and attempted to explain the best I could, why it should be allowed, however I do realise you can take the same points, and make an equally good argument as why it shouldn't be allowed. So perhaps, after you look at the information I provided, you can come to a decision, of whether or not YOU feel like it should or shouldn't be added, and if your not completely sure, you can always put up a ' POLL ' to see what your potential userbase would want.
  11. This looks great. I only have 2 questions. 1. When will this be completed lol? and 2. From what I can see, you have made it a rule, where account owners, are not allowed to reward players with an incentive to vote. Is there a specific reason why you disallowed that, when numerous other voting type sites do allow this?
  12. Yea, that's what I meant lol. Sorry, at the time I was on my lunch break and was too involed in eating, that I didn't bother to think/look up the correct commands.
  13. What your asking to do is change a " BATTLE " flag, not a mapflag. Therefore your process wont work. Also, changing a battle effect, works cross-server not on a map-by-map basis. In order to properly do this, you just have to give the player extra exp per kill, using a script that does it for you.
  14. You need to edit the script data for each card you want to change. For example, you have a hydra card which gives +20% (?) to Demi-humans. Now if you use 4 of them, thats basically 4x 20% dmg (granted RO calculates this with a diminishing effect, 20-20-15-10). In order to make it so only 1 works, you need to run an IF statement to see if another of this card is equipped. Example: if( countitem( hydra_card ) >1 ){end;} else { +20% Demi-human dmg}. Now obviously the above isn't EXACTLY how to do this, but it's the basic concept.
  15. As he said before, @kick will make the player close the client. This has to do with, the new login window issue. Where kicking them acts like a kill-client. Same with d/cing on new login windows because it is all apart of their new hack/loss prevention system where, they want you to re-log every time so that you aren't stealing peoples stuff. Dont' ask me why, it's just the way they chose to handle this. Edit: Also, i'm not sure how the ban script would be written, since I don't know how the script acts, and I also don't remember how the ban command works lol. And by that I mean, the syntax. Cuz I think you needed to specify s/mn/h/d//m/y (seconds,mins,hours,days,months,years).
  16. If this IS possible, then at the very least it would require packet sniffing to find out exactly which packet is sent when they do go to character select screen. And then from there, we need to send that specific packet to that person only. Again, would require src edits. Not sure if this is even practical. You could do an @ban 1second and then it should send them to login screen, where they can just login again since that 1second is sure to be up.
  17. Yes and No. yes it can be done using the following: *getnameditem <item id>,<character name|character ID>; *getnameditem "<item name>",<character name|character ID>; Create an item signed with the given character's name. The command returns 1 when the item is created successfully, or 0 if it fails. Failure occurs when: - There is no player attached. - Item name or ID is not valid. - The given character ID/name is offline. However, again No, because then if the name your using isn't a Player ( or Player online ), then it will fail. This is why, a Psuedo character is needed, to complete this task. Also the reason getcharid(2) doesn't work, is because I believe it stores the ID the same as it does parties. Meaning Getcharid(2) would only present you with 001,002,003 etc etc..... Where as getcharid(0) is an 11(?) digit number, allowing for the name processing to take place.
  18. Yeah, but doing that wouldn't make it an official Emperium. Just a regular monster that looks like emperium. You need to edit on the src side, so that it acts like an emperium (immune to certain skills, etc...)
  19. Okay, again, I wasn't 100% sure it would even work. From what I can tell, there are some syntax errors, in the guide I gave you. I, for the life of me, can't find them lol. So I suggest taking this to source requests/support to see if someone more skilled and knowledge able from me can help you with that, since again, it was just a; "here, hope this works out for you." Attempt. Again, sorry and good luck! Edit: I did find one error though. if(md && md->guardian_data) { if(class_ == MOBID_EMPERIUM && flag&BF_SKILL && !(skill_get_inf3(skill_id)&INF3_HIT_EMP)) //Skill immunity. return false; seems an extra copy of this was added to my: Change To post. That would cause some errors of duplicate entrys. Though, that's all I could gather from this, I have some ideas but i'd rather not say them and send you on a wild goose chase lol. So let's leave this up to the far more experienced src mods on rA.
  20. You could make a psuedo character using the guild's name, by adding it to the sql database manually, and then use that characters name for it's purpose.
  21. This would require a src edit. Not too big of one, but enough really. * NOTE - ALWAYS BACK UP YOUR SRC FILES BEFORE MAKING CHANGES * Find this in: src/map.h enum MOBID { MOBID_PORING = 1002, MOBID_RED_PLANT = 1078, MOBID_BLACK_MUSHROOM = 1084, MOBID_GOBLIN_1 = 1122, MOBID_GOBLIN_2, MOBID_GOBLIN_3, MOBID_GOBLIN_4, MOBID_GOBLIN_5, MOBID_MARINE_SPHERE = 1142, MOBID_A_GUARDIAN = 1285, MOBID_K_GUARDIAN, MOBID_S_GUARDIAN, MOBID_EMPERIUM, MOBID_TREAS01 = 1324, MOBID_TREAS40 = 1363, MOBID_G_PARASITE = 1555, MOBID_G_FLORA = 1575, MOBID_G_HYDRA = 1579, MOBID_G_MANDRAGORA = 1589, MOBID_G_GEOGRAPHER = 1590, MOBID_S_GUARDIAN_ = 1899, MOBID_A_GUARDIAN_, MOBID_BARRICADE1 = 1905, MOBID_BARRICADE2, MOBID_GUARIDAN_STONE1, MOBID_GUARIDAN_STONE2, MOBID_FOOD_STOR, MOBID_BLUE_CRYST = 1914, MOBID_PINK_CRYST, MOBID_TREAS41 = 1938, MOBID_TREAS49 = 1946, MOBID_TATACHO = 1986, MOBID_CENTIPEDE, MOBID_NEPENTHES, MOBID_HILLSRION, MOBID_HARDROCK_MOMMOTH, MOBID_TENDRILRION, MOBID_CORNUS, MOBID_NAGA, MOBID_LUCIOLA_VESPA, MOBID_PINGUICULA, MOBID_G_TATACHO = 1997, MOBID_G_HILLSRION, MOBID_CENTIPEDE_LARVA, MOBID_SILVERSNIPER = 2042, MOBID_MAGICDECOY_FIRE, MOBID_MAGICDECOY_WATER, MOBID_MAGICDECOY_EARTH, MOBID_MAGICDECOY_WIND, MOBID_ZANZOU = 2308, MOBID_S_HORNET = 2158, MOBID_S_GIANT_HORNET, MOBID_S_LUCIOLA_VESPA, }; Add after MOBID_S_LUCIOLA_VESPA, MOBID_ZANZOU = 2308, MOBID_S_HORNET = 2158, MOBID_S_GIANT_HORNET, MOBID_S_LUCIOLA_VESPA, MOBID_EMPERIUM_2 = XXXX, //xxxx = ID of new emperium created. }; Should look like above when finished. Find in: src/mob.c if (mob_id == MOBID_EMPERIUM) { struct guild_castle* gc = guild_mapindex2gc(map[m].index); struct guild* g = (gc) ? guild_search(gc->guild_id) : NULL; if (gc) { And change to: if (mob_id == MOBID_EMPERIUM || mob_id == MOBID_EMPERIUM_2) { struct guild_castle* gc = guild_mapindex2gc(map[m].index); struct guild* g = (gc) ? guild_search(gc->guild_id) : NULL; if (gc) { Find in: src/mob.h #define mob_is_gvg(md) (map[(md)->bl.m].flag.gvg_castle && ( (md)->mob_id == MOBID_EMPERIUM || (md)->mob_id == MOBID_BARRICADE1 || (md)->mob_id == MOBID_GUARIDAN_STONE1 || (md)->mob_id == MOBID_GUARIDAN_STONE2) ) Change to: #define mob_is_gvg(md) (map[(md)->bl.m].flag.gvg_castle && ( (md)->mob_id == MOBID_EMPERIUM || (md)->mob_id == MOBID_EMPERIUM_2 || (md)->mob_id == MOBID_BARRICADE1 || (md)->mob_id == MOBID_GUARIDAN_STONE1 || (md)->mob_id == MOBID_GUARIDAN_STONE2) ) That takes care of the easy parts... Now the more time consuming ones. Everything else, listed will be found in src/map/battle.c until otherwise specified. Find in: src/battle.c if(md && md->guardian_data) { if(class_ == MOBID_EMPERIUM && flag&BF_SKILL && !(skill_get_inf3(skill_id)&INF3_HIT_EMP)) //Skill immunity. return false; if(src->type != BL_MOB) { struct guild *g = src->type == BL_PC ? ((TBL_PC *)src)->guild : guild_search(status_get_guild_id(src)); if (class_ == MOBID_EMPERIUM && (!g || guild_checkskill(g,GD_APPROVAL) <= 0 )) return false; Change To: (Should make your new emperium immune to certain skills like original emperium). if(md && md->guardian_data) { if(class_ == MOBID_EMPERIUM && flag&BF_SKILL && !(skill_get_inf3(skill_id)&INF3_HIT_EMP) || class_ == MOBID_EMPERIUM_2 && flag&BF_SKILL && !(skill_get_inf3(skill_id)&INF3_HIT_EMP)) //Skill immunity. return false; if(src->type != BL_MOB) { struct guild *g = src->type == BL_PC ? ((TBL_PC *)src)->guild : guild_search(status_get_guild_id(src)); if (class_ == MOBID_EMPERIUM && (!g || guild_checkskill(g,GD_APPROVAL) <= 0 ) || class_ == MOBID_EMPERIUM_2 && (!g || guild_checkskill(g,GD_APPROVAL) <= 0 )) return false; Find: if( attack_hits && class_ == MOBID_EMPERIUM ) { Change To: if( attack_hits && class_ == MOBID_EMPERIUM || attack_hits && class_ == MOBID_EMPERIUM_2 ) { Find: if( bl->type == BL_MOB && ((TBL_MOB*)bl)->mob_id == MOBID_EMPERIUM ) return 0; Change To: if( bl->type == BL_MOB && ((TBL_MOB*)bl)->mob_id == MOBID_EMPERIUM || bl->type == BL_MOB && ((TBL_MOB*)bl)->mob_id == MOBID_EMPERIUM_2 ) return 0; Find: case BL_MER: if (t_bl->type == BL_MOB && ((TBL_MOB*)t_bl)->mob_id == MOBID_EMPERIUM && flag&BCT_ENEMY) return 0; //mercenary may not attack Emperium Change To: case BL_MER: if (t_bl->type == BL_MOB && ((TBL_MOB*)t_bl)->mob_id == MOBID_EMPERIUM && flag&BCT_ENEMY || t_bl->type == BL_MOB && ((TBL_MOB*)t_bl)->mob_id == MOBID_EMPERIUM_2 && flag&BCT_ENEMY ) return 0; //mercenary may not attack Emperium Find: if( map_flag_gvg(m) && !sd->status.guild_id && t_bl->type == BL_MOB && ((TBL_MOB*)t_bl)->mob_id == MOBID_EMPERIUM ) return 0; //If you don't belong to a guild, can't target emperium. Change To: if( map_flag_gvg(m) && !sd->status.guild_id && t_bl->type == BL_MOB && ((TBL_MOB*)t_bl)->mob_id == MOBID_EMPERIUM || map_flag_gvg(m) && !sd->status.guild_id && t_bl->type == BL_MOB && ((TBL_MOB*)t_bl)->mob_id == MOBID_EMPERIUM_2 ) return 0; //If you don't belong to a guild, can't target emperium. That should be everything on the src side. Now you just need to create a new monster, and give it the ID you listed in the begining of this guide. IF everything finishes without any errors, then you should have effectively duplicated the emperium by giving it a new ID. There might be better/simpler ways to do this, but this is what I can think of.
  22. There's nothing wrong with the script, the only thing is, it doesn't do is tell exactly how long it's on CD. Because logging in and out doesn't reset the CD with this command.
  23. There are 3 possible solutions: 1. Update your rAthena server, so that there aren't any PCRE problems. 2. Enter a SPACE before the answer. (eg. " Poring" instead of "Poring". You'll notice a space in the first example.) 3. Change the langtype of your server from 0 to 1. ( or 1 to 0 depending on what it currently is ). *Note - if none of the above solutions work, then assume that your server doesn't have PCRE support. It is needed to understand PERL expressions. Additional steps may need to be taken to get it installed, if using an OS other than Windows (such as Linux or Mac ).
  24. Couldn't you just setoption Option_Invisible | Option_Xmas to 0 upon warping them out, since it just nullifies those 2 particular effects. And if they were 0 already ( Candidates ) it wouldn't change anything, this would eliminate the need to "force" them to logout, but you could also add the logout as a fail-safe, since scripts like these are easily abused. But, to fully prevent it from being abused, you'd need a bit more complicated If(then)statement, because you can just summon the person with GuildRecall, and then they are invisible forever provided they don't re-enter and logout.
  25. I've made a couple instances from PM requests, but that was using the old system. Supposedly the new system is easier to use and simplifies alot of things, but I haven't messed with it much, I went as far as to create a map, spawn 1 mob and kill it to get warped out lol xD. Also, 90vs40% I figured 90% of the script was spawning the monsters haha xD
×
×
  • Create New...