Jump to content

Angeluz

Members
  • Posts

    109
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Angeluz

  1. if( amount < 0 || amount > 0 ) { // invalid values, no appropriate packet for it => abort trade_tradecancel(sd); return; }
  2. add this to src/custom/atcommand.inc ACMD_FUNC(gcash) { map_session_data* tsd = nullptr; int amount = 0, ret = 0; char output[CHAT_SIZE_MAX]; nullpo_retr(-1,sd); memset(atcmd_output, '\0', sizeof(atcmd_output)); if( sd->state.cashshop_open ){ clif_displaymessage(fd, msg_txt(sd, 1376)); // Please close the cashshop before using this command. return -1; } if (!message || !*message || sscanf(message, "%11d %23[^\n]", &amount, atcmd_player_name) < 2) { clif_displaymessage(fd, "Invalid value (@gcash <amount> <character name>"); return -1; } if ((tsd = map_nick2sd(atcmd_player_name,false)) == NULL) { clif_displaymessage(fd, msg_txt(sd,3)); // Character not found. return -1; } if (sd->cashPoints < amount || amount < 0) { clif_displaymessage(fd, "Not enough Cash Points."); return -1; } if( (ret=pc_paycash(sd, amount, 0, LOG_TYPE_COMMAND)) >= 0) { sprintf(output, msg_txt(sd,410), ret, sd->cashPoints); // Removed %d cash points. Total %d points. clif_messagecolor(&sd->bl, color_table[COLOR_LIGHT_GREEN], output, false, SELF); } if( (ret=pc_getcash(tsd, amount, 0, LOG_TYPE_COMMAND)) >= 0) { sprintf(output, msg_txt(sd,505), ret, tsd->cashPoints); // Gained %d cash points. Total %d points. clif_messagecolor(&tsd->bl, color_table[COLOR_LIGHT_GREEN], output, false, SELF); } sprintf(output, "%d players has received '%s'",atcmd_player_name,amount); atcommand_broadcast( fd, sd, "@broadcast", output); return 0; } this to src/custom/atcommand_def.inc ACMD_DEF(gcash), this to conf/msg_conf/map_msg.conf 410: Removed %d cash points. Total %d points. 505: Gained %d cash points. Total %d points.
  3. Y este no te sirve? https://github.com/rathena/rathena/blob/master/npc/custom/itemmall.txt
  4. maybe try with this diff --git a/src/map/map.hpp b/src/map/map.hpp index 98bdc69ec0..b6c8d291fe 100644 --- a/src/map/map.hpp +++ b/src/map/map.hpp @@ -581,6 +581,7 @@ enum e_mapflag : int16 { MF_NOPENALTY, MF_NOZENYPENALTY, MF_PVP, + MF_MAPMVP, MF_PVP_NOPARTY, MF_PVP_NOGUILD, MF_GVG, diff --git a/src/map/mob.cpp b/src/map/mob.cpp index 16edfb7a6b..69696f2efc 100644 --- a/src/map/mob.cpp +++ b/src/map/mob.cpp @@ -1035,6 +1035,14 @@ TIMER_FUNC(mob_delayspawn){ md->spawn_timer = INVALID_TIMER; mob_spawn(md); } + /* [cook1e] + Spawn MVP and enable MF_PVP and MF_MAPMVP + MF_MAPMVP - Disable going to savepoint once you die 2 times in a PVP map. + */ + if(md->state.boss) { + map_setmapflag(bl->m, MF_PVP, true); + map_setmapflag(bl->m, MF_MAPMVP, true); + map_setmapflag(bl->m, MF_NOSAVE, true); + } return 0; } @@ -1115,6 +1123,15 @@ int mob_spawn (struct mob_data *md) md->bl.m = md->spawn->m; md->bl.x = md->spawn->x; md->bl.y = md->spawn->y; + + /* [cook1e] + Spawn MVP and enable MF_PVP and MF_MAPMVP + MF_MAPMVP - Disable going to savepoint once you die 2 times in a PVP map. + */ + if(md->spawn->state.boss) { + map_setmapflag(md->bl.m, MF_PVP, true); + map_setmapflag(md->bl.m, MF_MAPMVP, true); + map_setmapflag(md->bl.m, MF_NOSAVE, true); + } if( (md->bl.x == 0 && md->bl.y == 0) || md->spawn->xs || md->spawn->ys ) { //Monster can be spawned on an area. @@ -3126,6 +3143,15 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) // MvP tomb [GreenBox] if (battle_config.mvp_tomb_enabled && md->spawn->state.boss && map_getmapflag(md->bl.m, MF_NOTOMB) != 1) mvptomb_create(md, mvp_sd ? mvp_sd->status.name : NULL, time(NULL)); + + /* [cook1e] + Dead MVP disable MF_PVP and MF_MAPMVP + MF_MAPMVP - Disable going to savepoint once you die 2 times in a PVP map. + */ + if(md->spawn->state.boss) { + map_setmapflag(md->bl.m, MF_PVP, false); + map_setmapflag(md->bl.m, MF_MAPMVP, false); + map_setmapflag(md->bl.m, MF_NOSAVE, false); + } if( !rebirth ) mob_setdelayspawn(md); //Set respawning. diff --git a/src/map/pc.cpp b/src/map/pc.cpp index 468f3d58b5..44948f8959 100755 --- a/src/map/pc.cpp +++ b/src/map/pc.cpp @@ -9412,7 +9412,7 @@ int pc_dead(struct map_session_data *sd,struct block_list *src) ssd->pvp_point++; ssd->pvp_won++; } - if( sd->pvp_point < 0 ) { + if( sd->pvp_point < 0 && !mapdata->flag[MF_MAPMVP] ) { sd->respawn_tid = add_timer(tick+1000, pc_respawn_timer,sd->bl.id,0); return 1|8; } diff --git a/src/map/script_constants.hpp b/src/map/script_constants.hpp index 13e5ad06f5..24d4b6fcef 100644 --- a/src/map/script_constants.hpp +++ b/src/map/script_constants.hpp @@ -464,6 +464,7 @@ export_constant(MF_NOPENALTY); export_constant(MF_NOZENYPENALTY); export_constant(MF_PVP); + export_constant(MF_MAPMVP); export_constant(MF_PVP_NOPARTY); export_constant(MF_PVP_NOGUILD); export_constant(MF_GVG);
  5. Para cambiar eso debes hacerlo en status.cpp https://github.com/rathena/rathena/blob/master/src/map/status.cpp#L6739 ahi para la dex por ejemplo debes buscar donde se calcula la luk y el crit y luego modificas donde corresponde
  6. Usa esta carpeta si es pre-re https://github.com/llchrisll/ROenglishRE/tree/master/Translation/Pre-Renewal/data ahi están los mapas que corresponden y luego debes colocar esos mapas al mapcache para poder moverte bien
  7. if(countitem(40024) < 1 || countitem(40031) < 1 || countitem(40027) < 1){
  8. try with this https://github.com/rathena/rathena/blob/26335994588c4b45846c05d0e53780ead78e475c/conf/battle/feature.conf#L166
  9. u can try with - script rewards -1,{ end; OnPCKillEvent: getmapxy(@map$, @x, @y, BL_PC); if( @map$ != "pvp_y_1-2" ) end; if ( getmapusers("pvp_y_1-2" ) ) > 20 ) getitem 606,2; else if ( getmapusers("pvp_y_1-2") > 15 ) getitem 606,1; end; }
  10. try with this gefenia01.gat gefenia01.gnd gefenia01.rsw
  11. sc_start .rotdicon[.today_rotd], (.timer - (.@time_passed * 1000)); maybe something like that
  12. https://rathena.org/board/search/?q=vip icon&quick=1
  13. Intenta agregando estos archivos a tu grf spr (1).grf
  14. - script Vip_Icon -,{ OnPCLoginEvent: if(vip_status(1)) { set .@a, vip_status(2) - gettimetick(2); bonus_script "{}",.@a,8,0,EFST_VIPSTATE; dispbottom "--- VIP ----"; dispbottom "=========================="; dispbottom "VIP Player"; dispbottom "Remaining VIP duration :"+callfunc("Time2Str",vip_status(2)); dispbottom "=========================="; end; } } try with this
  15. this? https://github.com/rathena/rathena/pull/7410
  16. Para los items y mobs, agregaste las db? (están el repositorio de rathena: https://github.com/rathena/rathena/tree/master/sql-files) Lo de esas funciones creo que aparecieron hace poco no las he visto, deja revisar y te aviso Edit: Agregué las funciones y me funcionan correctamente, no modifiqué nada. No sé cual pueda ser tu error. Funcionan tanto en cuentas de GM como de usuario normal
  17. yo lo que hago cuando me pasa eso, es reinstalarlas manualmente, dentro de la carpeta del fluxcp hay una de schemas https://github.com/rathena/FluxCP/tree/master/data/schemas ahi revisa cuales te faltan y aplicas los sql
  18. Si tienes el último hash del emulador no deberías desactivar el emblemwebservice, pero está aquí: https://github.com/rathena/FluxCP/blob/master/config/application.php#L24 Y sobre los MvP hay que cargarlos en el sql, los mob_db y los item_db, y sí, los que tienen _re es porque son renewall, depende de tu emulador
×
×
  • Create New...