Jump to content

cook1e

Members
  • Posts

    159
  • Joined

  • Last visited

  • Days Won

    7

Everything posted by cook1e

  1. Go to src/map/battle.hpp and look for #include "map.hpp" //ELE_MAX and below this line add #include "mapreg.hpp" And that should fix your problem.
  2. You should put the error this code is giving you, no one will help you without it
  3. https://github.com/rathena/rathena/blob/master/doc/script_commands.txt#L2778 EQI_COMPOUND_ON (-1) - Item slot that calls this script (In context of item script) - exclusive to getequipid EQI_ACC_L (0) - Accessory 1 EQI_ACC_R (1) - Accessory 2 EQI_SHOES (2) - Footgear (shoes, boots) EQI_GARMENT (3) - Garment (mufflers, hoods, manteaux) EQI_HEAD_LOW (4) - Lower Headgear (beards, some masks) EQI_HEAD_MID (5) - Middle Headgear (masks, glasses) EQI_HEAD_TOP (6) - Upper Headgear EQI_ARMOR (7) - Armor (jackets, robes) EQI_HAND_L (8) - Left hand (weapons, shields) EQI_HAND_R (9) - Right hand (weapons) EQI_COSTUME_HEAD_TOP (10) - Upper Costume Headgear EQI_COSTUME_HEAD_MID (11) - Middle Costume Headgear EQI_COSTUME_HEAD_LOW (12) - Lower Costume Headgear EQI_COSTUME_GARMENT (13) - Costume Garment EQI_AMMO (14) - Arrow/Ammunition EQI_SHADOW_ARMOR (15) - Shadow Armor EQI_SHADOW_WEAPON (16) - Shadow Weapon EQI_SHADOW_SHIELD (17) - Shadow Shield EQI_SHADOW_SHOES (18) - Shadow Shoes EQI_SHADOW_ACC_R (19) - Shadow Accessory 2 EQI_SHADOW_ACC_L (20) - Shadow Accessory 1
  4. Check https://github.com/rathena/rathena/blob/master/npc/barters.yml
  5. View File PVP on MVP Maps When a MVP Spawns PVP is enabled, When this MVP dies PVP is disabled. New Mapflag MF_MAPMVP - Disable going to savepoint once you die 2 times in a PVP map. Submitter cook1e Submitted 06/20/2022 Category Source Modifications Video Content Author cook1e  
  6. Version 1.0.0

    103 downloads

    When a MVP Spawns PVP is enabled, When this MVP dies PVP is disabled. New Mapflag MF_MAPMVP - Disable going to savepoint once you die 2 times in a PVP map.
    Free
  7. I enabled the mapflag only in prontera and i can't use the token, but i can anywhere else. Everything is working as intended
  8. View File Dungeon of the Day Each day a random dungeon will be picked, monsters killed inside the dungeon of the day will give extra EXP, Items and Zeny, the percentage to get these is configurable within the script. Accepting suggestions to improve this script. Submitter cook1e Submitted 06/19/2022 Category Utilities Video Content Author cook1e  
  9. Version 1.2

    228 downloads

    Each day a random dungeon will be picked, monsters killed inside the dungeon of the day will give extra EXP, Items and Zeny, the percentage to get these is configurable within the script. Accepting suggestions to improve this script.
    Free
  10. Tested and is working as intended, if you want some extra features in it just let me know. - script dotd -1,{ OnInit: .exp_bonus = 10; // change exp % here OnClock0000: // new dungeon of the day will be changed at 00:00 server time setarray .random_maps$,"prontera","pay_dun00"; // add your maps here .map = rand(getarraysize(.random_maps$)); announce "New Dungeon of the Day is '"+.random_maps$[.map]+"' with ["+.exp_bonus+"%] more EXP.",bc_all; end; OnNPCKillEvent: getmapxy([email protected]$,[email protected],[email protected],BL_PC); if([email protected]$ == .random_maps$[.map]) { set BaseExp, BaseExp + (getmonsterinfo(killedrid,3) * .exp_bonus / 100); set JobExp, JobExp + (getmonsterinfo(killedrid,4) * .exp_bonus / 100); } end; OnPCLoginEvent: dispbottom "Dungeon of the Day is '"+.random_maps$[.map]+"' with ["+.exp_bonus+"%] more EXP.",0x00FFFF; end; }
  11. You can make a quest like Elysium said or use this one. new_1-3,100,35,4 script Newbie Guide 418,{ mes "==^741188Equipment Guide^000000=="; mes "Hello welcome to our server,"; mes "i am here to guide all new"; mes "player that have joined our server"; mes "to craft your starting gear"; next; switch(select("- Tell me more:- Craft Beginner Equipment:- Exit")) { case 1: mes "==^741188Equipment Guide^000000=="; mes "As you may or my not knowing"; mes "that equipment will not drop by"; mes "monster, but player can still"; mes "obtain offical equipment from"; mes "merchat class equipment crafting"; mes "or from offical quest"; next; mes "==^741188Equipment Guide^000000=="; mes "This server does not follow"; mes "offical equipment drop"; mes "but each server custom "; mes "equipment will have it's own"; mes "speciality"; end; case 2: mes "==^741188Equipment Guide^000000=="; mes "To craft your starting gear"; mes "which is Beginner Dagger"; mes "firstly i will need you to"; mes "hunt 50 poring, i will reward"; mes "you with 1 Common Blue Print"; mes "Common Blue Print are use to craft"; mes "Common equipment"; next; menu "Take this quest",Acc,"No Thanks",Den; Acc: if(dagger) { mes "You already have this hunting quest."; close; } mes "==^741188Equipment Guide^000000=="; mes "Now please help me hunt 50 poring"; set dagger, 1; end; Den: mes "==^741188Equipment Guide^000000=="; mes "Sure just come back to me when you change your mind"; end; case 3: mes "==^741188Equipment Guide^000000=="; mes "Very well, come to me if you need guide"; close; } end; OnNPCKillEvent: if(!dagger) end; if(killedrid == .mob_id) { poring_count++; dispbottom "You have killed "+poring_count+"/"+.kill_amount+"] "+getmonsterinfo(.mob_id, MOB_NAME)+"."; } if(poring_count >= .kill_amount) { poring_count = 0; for([email protected] = 0; [email protected] < getarraysize(.reward); [email protected] += 2) { getitem .reward[[email protected]],.reward[[email protected]+1]; } } end; OnInit: setarray .reward,501,1,502,1; // add rewards here .mob_id = 1002; // monster id .kill_amount = 50; // amount of porings needed end; }
  12. You can't just add a clean clif.cpp without knowing your rathena git hash (emulator date)
  13. If you don't use the Roulette button, you can use the roulette as the config button, you can also change the roulette icon in your grf. go to src/map/clif.cpp Change void clif_roulette_open( struct map_session_data* sd ){ nullpo_retv( sd ); struct packet_roulette_open_ack p; p.PacketType = 0xa1a; p.Result = 0; // result p.Serial = 0; // serial p.Step = (sd->roulette.claimPrize) ? sd->roulette.stage - 1 : 0; p.Idx = (sd->roulette.claimPrize) ? sd->roulette.prizeIdx : -1; p.AdditionItemID = -1; //! TODO: Display bonus item p.GoldPoint = sd->roulette_point.gold; p.SilverPoint = sd->roulette_point.silver; p.BronzePoint = sd->roulette_point.bronze; sd->state.roulette_open = true; clif_send( &p, sizeof( p ), &sd->bl, SELF ); } to void clif_roulette_open( struct map_session_data* sd ){ nullpo_retv( sd ); npc_event_do_id("NPCNAME::OnLabel", sd->status.account_id); } and make a script like this, for example. - script NPCNAME -1,{ OnLabel: mes "add whatever you want."; end; }
  14. This? - script remove#var -1,{ OnPCLogoutEvent: if(lastwarp$ != "") lastwarp$ = ""; if(lastwarpx != 0) lastwarpx = 0; if(lastwarpy != 0) lastwarpy = 0; end; }
  15. Run server in GDB till the server crashes and upload the output here. https://github.com/rathena/rathena/wiki/GDB
  16. - script test -1,{ OnPCKillEvent: //if ( ( !getmapflag( strcharinfo(3), mf_pvp ) && !getmapflag( strcharinfo(3), mf_gvg ) ) || killedrid == getcharid(3) ) end; if ( getmapflag( strcharinfo(3), mf_pvp ) == 0 || killedrid == getcharid(3) ) end; attachrid killedrid; [email protected] = getcharid(0); attachrid killerrid; if(getcharip(killedrid) == getcharip(getcharid(3))) end; getitem2 8966, 1,1,0,0, 254, 0, [email protected] % pow(2,16), [email protected] / pow(2,16); // getnameditem 7420, rid2name( killedrid ); // <-- EDITED, this command doesn't drop item on floor end; }
  17. cook1e

    PVP Points

    - script PVPPOINTS -1,{ OnPCKillEvent: [email protected]$,[email protected],[email protected],BL_PC; if(getcharid(3)==killedrid) end; if([email protected]$ != "pvp_y_1-2") end; set [email protected], getcharid(3); set [email protected], killedrid; if(getcharip([email protected]) == getcharip([email protected])) end; attachrid([email protected]); set [email protected], #PVPCPOINTS; if([email protected]) { set #PVPCPOINTS, #PVPCPOINTS -1; dispbottom "You Lost 1 PvP Point from "+rid2name(killerrid); dispbottom "You have total of "+#PVPCPOINTS+" Pvp Points"; } attachrid([email protected]); if([email protected]) { dispbottom "Sorry no PvP points on the "+rid2name(killedrid); } else set #PVPCPOINTS, #PVPCPOINTS +1; dispbottom "You Gained 1 PvP Point from "+rid2name(killedrid); dispbottom "You have total of "+#PVPCPOINTS+" Pvp Points"; end; }
  18. cook1e

    PVP Points

    Add this in your script and check if it works. https://github.com/rathena/rathena/blob/master/doc/script_commands.txt#L2557 if(getcharip([email protected]) == getcharip([email protected])) end;
  19. In your grf find bookitemnametable.txt add book id. ID# for example The new book id is 11065 add 11065# in bookitemnametable.txt then create in your grf data/book/11065.txt and add your book info in this new .txt
  20. Try this. 1. go to src/map/map.hpp and find MF_MAX above add this MF_NOTOKEN, 2. go to src/map/script_constant.hpp and find export_constant(MF_SKILL_DURATION); below add this export_constant(MF_NOTOKEN); 3. go to src/map/pc.cpp and find bool pc_revive_item(struct map_session_data *sd) { nullpo_retr(false, sd); if (!pc_isdead(sd) || sd->respawn_tid != INVALID_TIMER) return false; if (sd->sc.data[SC_HELLPOWER]) // Cannot resurrect while under the effect of SC_HELLPOWER. return false; int16 item_position = itemdb_group_item_exists_pc(sd, IG_TOKEN_OF_SIEGFRIED); uint8 hp = 100, sp = 100; if (item_position < 0) { if (sd->sc.data[SC_LIGHT_OF_REGENE]) { hp = sd->sc.data[SC_LIGHT_OF_REGENE]->val2; sp = 0; } else return false; } if (!status_revive(&sd->bl, hp, sp)) return false; if (item_position < 0) status_change_end(&sd->bl, SC_LIGHT_OF_REGENE, INVALID_TIMER); else pc_delitem(sd, item_position, 1, 0, 1, LOG_TYPE_CONSUME); clif_skill_nodamage(&sd->bl, &sd->bl, ALL_RESURRECTION, 4, 1); return true; } and change to bool pc_revive_item(struct map_session_data *sd) { nullpo_retr(false, sd); int16 m = 0; struct map_data *mapdata = map_getmapdata(m); if (!pc_isdead(sd) || sd->respawn_tid != INVALID_TIMER) return false; if (sd->sc.data[SC_HELLPOWER]) // Cannot resurrect while under the effect of SC_HELLPOWER. return false; if(map_getmapflag(sd->bl.m, MF_NOTOKEN)) return false; int16 item_position = itemdb_group_item_exists_pc(sd, IG_TOKEN_OF_SIEGFRIED); uint8 hp = 100, sp = 100; if (item_position < 0) { if (sd->sc.data[SC_LIGHT_OF_REGENE]) { hp = sd->sc.data[SC_LIGHT_OF_REGENE]->val2; sp = 0; } else return false; } if (!status_revive(&sd->bl, hp, sp)) return false; if (item_position < 0) status_change_end(&sd->bl, SC_LIGHT_OF_REGENE, INVALID_TIMER); else pc_delitem(sd, item_position, 1, 0, 1, LOG_TYPE_CONSUME); clif_skill_nodamage(&sd->bl, &sd->bl, ALL_RESURRECTION, 4, 1); return true; } Not tested, let me know if it works.
  21. I think you need to enable this for pet bonus to work. https://github.com/rathena/rathena/blob/master/conf/battle/pet.conf#L58
  22. That part should be added on map.cpp. https://github.com/Normynator/roCORD/blob/master/diff/rev2/map.diff Also Normynator said he don't support roCORD anymore, so don't expect help.
  23. Un ejemplo para hacer un item Shadow. - Id: 2368 AegisName: Golden_Armor Name: Golden Armor Type: ShadowGear Buy: 20 Weight: 2000 Defense: 4 Locations: Shadow_Armor: true Trade: Override: 100 NoDrop: true NoTrade: true NoCart: true NoGuildStorage: true NoMail: true NoAuction: true Script: | bonus bMdef,4; Tambien puedes chequear este enlace, para más información. https://github.com/rathena/rathena/blob/master/doc/item_db.txt
  24. That is a function also created by @Stolao https://github.com/Stolao/Npc_Release/tree/master/Custom_Functions
×
×
  • Create New...

Important Information

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