Jump to content

brunoshp

Members
  • Posts

    180
  • Joined

  • Last visited

2 Followers

Profile Information

  • Gender
    Male
  • Location
    brazil

Recent Profile Visitors

5099 profile views

brunoshp's Achievements

Drops

Drops (2/15)

  • First Post
  • Collaborator
  • Reacting Well
  • Dedicated
  • Conversation Starter

Recent Badges

7

Reputation

  1. Hello i need the func inventoryselect, but i can't find, iknow anie make it for herc, but in rAthena i cant find. https://github.com/AnnieRuru/Release/blob/94b99150c07641546c7eb48fda02711c5e0998e9/plugins/Release/inventoryselect/inventoryselect_1.4.c
  2. Someone have this DIFF, i only have plugin for hercules, but here i cant find. clif->message(fd, "View Headgear Usage:"); clif->message(fd, "@noview <options>"); clif->message(fd, "- on : To enable ALL Filters."); clif->message(fd, "- off : To disable ALL Filters."); clif->message(fd, "- U : To filter Upper Headgear."); clif->message(fd, "- M : To filter Middle Headgear."); clif->message(fd, "- L : To filter Lower Headgear."); clif->message(fd, "Samples:"); clif->message(fd, " @noview UML : To filter 3 chosen options.");
  3. I made this ability to hit and damage allies, but on GVG maps it doesn't work, I did a test and put the mouse attack mode on GVG maps, and it worked, but by default all allies have this mode activated. the essential would be to enable /ns or when someone uses this skill the mouse goes into attack mode .
  4. Man, go to /src/map/battle.cpp in Line 2617 and check it. case SN_SHARPSHOOTING: case MA_SHARPSHOOTING: #ifdef RENEWAL cri += 300; // !TODO: Confirm new bonus #else cri += 200; #endif if you want increase this value.
  5. Hello, im try get Offset of my client for some days, and i dont have success. i need Help!! im using IDa for try get it. i need this offset : CModeMgr g_modeMgr CModeMgr::GetGameMode CRagConnection::instanceR CRagConnection::GetPacketSize CRagConnection::instanceR CRagConnection::SendPacket UIWindowMgr g_windowMgr UIWindowMgr::DeleteWindow my client is 2018-05-30re
  6. Hello! I'm trying to get Shar to take allies, I did it! but I have a problem, on GVG maps I hit my ally from the same Guild sometimes yes sometimes no! - Id: 382 Name: SN_SHARPSHOOTING Description: Focused Arrow Strike MaxLevel: 5 Type: Weapon TargetType: Attack DamageFlags: Critical: true Flags: GuildOnly: true PartyOnly: true I believe it is the cursor attack! void clif_map_property(struct block_list *bl, enum map_property property, enum send_target t) { #if PACKETVER >= 20121010 short cmd = 0x99b; unsigned char buf[8]; #else short cmd = 0x199; unsigned char buf[4]; #endif WBUFW(buf,0)=cmd; WBUFW(buf,2)=property; #if PACKETVER >= 20121010 struct map_data *mapdata = map_getmapdata(bl->m); WBUFL(buf, 4) = ((mapdata->flag[MF_PVP] ? 1 : 0 || (bl->type == BL_PC && ((TBL_PC*)bl)->duel_group > 0)) << 0) | // PARTY - Show attack cursor on non-party members (PvP) ((mapdata->flag[MF_BATTLEGROUND] || mapdata_flag_gvg2(mapdata) ? 1 : 0) << 1) |// GUILD - Show attack cursor on non-guild members (GvG) ((mapdata->flag[MF_BATTLEGROUND] || mapdata_flag_gvg2(mapdata) ? 1 : 0) << 2) |// SIEGE - Show emblem over characters heads when in GvG (WoE castle) ((mapdata->flag[MF_NOMINEEFFECT] || !mapdata_flag_gvg2(mapdata) ? 0 : 1) << 3) | // USE_SIMPLE_EFFECT - Automatically enable /mineffect ((mapdata->flag[MF_NOLOCKON] || mapdata_flag_vs(mapdata) ? 1 : 0) << 4) | // DISABLE_LOCKON - Only allow attacks on other players with shift key or /ns active ((mapdata->flag[MF_PVP] ? 1 : 0) << 5) | // COUNT_PK - Show the PvP counter ((mapdata->flag[MF_PARTYLOCK] ? 1 : 0) << 6) | // NO_PARTY_FORMATION - Prevents party creation/modification (Might be used for instance dungeons) ((mapdata->flag[MF_BATTLEGROUND] ? 1 : 0) << 7) | // BATTLEFIELD - Unknown (Does something for battlegrounds areas) ((mapdata->flag[MF_NOCOSTUME] ? 1 : 0) << 8) | // DISABLE_COSTUMEITEM - Disable costume sprites ((mapdata->flag[MF_NOUSECART] ? 0 : 1) << 9) | // USECART - Allow opening cart inventory (Well force it to always allow it) ((mapdata->flag[MF_NOSUNMOONSTARMIRACLE] ? 0 : 1) << 10); // SUNMOONSTAR_MIRACLE - Blocks Star Gladiator's Miracle from activating //(1<<11); // Unused bits. 1 - 10 is 0x1 length and 11 is 0x15 length. May be used for future settings. #endif clif_send(buf,packet_len(cmd),bl,t); } can anybody help me?
  7. Dont have support? hahaha or are you not the creator of this system?
  8. in the old rathena, skilld db i had the option // 04 inf (0- passive, 1- enemy, 2- place, 4- self, 16- friend, 32- trap) and I could make the ability have an effect on anyone I wanted. in the new rathena would be the TargetType? how would I make SN_SHARPSHOOTING have an effect on allies?
  9. brunoshp

    Prrovoker

    How i can make The skill work on party and guild only in maps GVG and Battlegrounds ? case SM_PROVOKE: case SM_SELFPROVOKE: case MER_PROVOKE: if( status_has_mode(tstatus,MD_STATUS_IMMUNE) || battle_check_undead(tstatus->race,tstatus->def_ele) ) { map_freeblock_unlock(); return 1; } // Official chance is 70% + 3%*skill_lv + srcBaseLevel% - tarBaseLevel% if(!(i = sc_start(src, bl, type, skill_id == SM_SELFPROVOKE ? 100 : (70 + 3 * skill_lv + status_get_lv(src) - status_get_lv(bl)), skill_lv, skill_get_time(skill_id, skill_lv)))) { if(sd) clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); map_freeblock_unlock(); return 0; } clif_skill_nodamage(src, bl, skill_id == SM_SELFPROVOKE ? SM_PROVOKE : skill_id, skill_lv, i); unit_skillcastcancel(bl, 2); if( tsc && tsc->count ) { status_change_end(bl, SC_FREEZE, INVALID_TIMER); if( tsc->data[SC_STONE] && tsc->opt1 == OPT1_STONE ) status_change_end(bl, SC_STONE, INVALID_TIMER); status_change_end(bl, SC_SLEEP, INVALID_TIMER); status_change_end(bl, SC_TRICKDEAD, INVALID_TIMER); } if( dstmd ) { dstmd->state.provoke_flag = src->id; mob_target(dstmd, src, skill_get_range2(src, skill_id, skill_lv, true)); }
  10. I just wanted to show that the item would drop from the monster, even if it didn't. @Emistry is it possible to set 1, that is 0, for enter in FOR after set dropchance to 0 to show? item_data->mob[j].chance
  11. Hi, I would like to show the name of the monster on which the card is dropped even if the drop is 0. how i can do it? ACMD_FUNC(whodrops) { struct item_data *item_data, *item_array[MAX_SEARCH]; int i,j, count = 1; if (!message || !*message) { clif_displaymessage(fd, msg_txt(sd,1284)); // Please enter item name/ID (usage: @whodrops <item name/ID>). return -1; } if ((item_array[0] = itemdb_exists(strtoul(message, nullptr, 10))) == nullptr) count = itemdb_searchname_array(item_array, MAX_SEARCH, message); if (!count) { clif_displaymessage(fd, msg_txt(sd,19)); // Invalid item ID or name. return -1; } if (count == MAX_SEARCH) { sprintf(atcmd_output, msg_txt(sd,269), MAX_SEARCH); // Displaying first %d matches clif_displaymessage(fd, atcmd_output); } for (i = 0; i < count; i++) { item_data = item_array[i]; sprintf(atcmd_output, msg_txt(sd,1285), item_data->jname, item_data->slot, item_data->nameid); // Item: '%s'[%d] (ID: %u) clif_displaymessage(fd, atcmd_output); if (item_data->mob[0].chance == 0) { strcpy(atcmd_output, msg_txt(sd,1286)); // - Item is not dropped by mobs. clif_displaymessage(fd, atcmd_output); } else { sprintf(atcmd_output, msg_txt(sd,1287), MAX_SEARCH); // - Common mobs with highest drop chance (only max %d are listed): clif_displaymessage(fd, atcmd_output); for (j=0; j < MAX_SEARCH && item_data->mob[j].chance > 0; j++) { int dropchance = item_data->mob[j].chance; #ifdef RENEWAL_DROP if( battle_config.atcommand_mobinfo_type ) dropchance = dropchance * pc_level_penalty_mod(mob_db(item_data->mob[j].id)->lv - sd->status.base_level, mob_db(item_data->mob[j].id)->status.class_, mob_db(item_data->mob[j].id)->status.mode, 2) / 100; #endif if (pc_isvip(sd)) // Display item rate increase for VIP dropchance += (dropchance * battle_config.vip_drop_increase) / 100; sprintf(atcmd_output, "- %s (%d): %02.02f%%", mob_db(item_data->mob[j].id)->jname, item_data->mob[j].id, dropchance/100.); clif_displaymessage(fd, atcmd_output); } } } return 0; } i changed for >=0 but got error,crash server! for (j=0; j < MAX_SEARCH && item_data->mob[j].chance > 0; j++)
  12. i have this, but dont work, someone can help!? clif.cpp void clif_parse_GlobalMessage(int fd, struct map_session_data* sd) { const char* text = (char*)RFIFOP(fd, 4); int textlen = RFIFOW(fd, 2) - 4; int gm_lvl = pc_get_group_level(sd); char* name, * message, * fakename = NULL; int namelen, messagelen; unsigned long player = strtoul("0x55AE3A", NULL, 0); //normal player color leaf unsigned long GM20 = strtoul("0xFFA500", NULL, 0); //GM level 20 to 39 color orange unsigned long GM40 = strtoul("0xCD00CD", NULL, 0); //GM level 40 to 59 color magenta3 unsigned long GM60 = strtoul("0x006400", NULL, 0); //GM level 60 to 79 color dark green unsigned long GM80 = strtoul("0x00008B", NULL, 0); //GM level 80 to 98 color dark blue unsigned long admin = strtoul("0xFF0000", NULL, 0); //Admin color red bool is_fake; // validate packet and retrieve name and message //if (!clif_process_message(sd, 0, name, message, messagelen)) if (!clif_process_message(sd, true, name, message, fakename)) return; if (is_atcommand(fd, sd, message, 1)) return; if (sd->sc.data[SC_BERSERK] || (sd->sc.data[SC_NOCHAT] && sd->sc.data[SC_NOCHAT]->val1 & MANNER_NOCHAT)) return; if (battle_config.min_chat_delay) { //[Skotlex] if (DIFF_TICK(sd->cantalk_tick, gettick()) > 0) return; sd->cantalk_tick = gettick() + battle_config.min_chat_delay; } /** * Fake Name Design by FatalEror (bug report #9) **/ if ((is_fake = (sd->fakename[0]))) { fakename = (char*)aMalloc(strlen(sd->fakename) + messagelen + 3); strcpy(fakename, sd->fakename); strcat(fakename, " : "); strcat(fakename, message); textlen = strlen(fakename) + 1; } // send message to others (using the send buffer for temp. storage) WFIFOHEAD(fd, 12 + textlen); WFIFOW(fd, 0) = 0x2C1; WFIFOW(fd, 2) = 12 + textlen; WFIFOL(fd, 4) = sd->bl.id; if (gm_lvl == 99) { WFIFOL(fd, 8) = (admin & 0x0000FF) << 16 | (admin & 0x00FF00) | (admin & 0xFF0000) >> 16; } else if (gm_lvl == 0) { WFIFOL(fd, 8) = (player & 0x0000FF) << 16 | (player & 0x00FF00) | (player & 0xFF0000) >> 16; } else if (gm_lvl >= 20 && gm_lvl <= 39) { WFIFOL(fd, 8) = (GM20 & 0x0000FF) << 16 | (GM20 & 0x00FF00) | (GM20 & 0xFF0000) >> 16; } else if (gm_lvl >= 40 && gm_lvl <= 59) { WFIFOL(fd, 8) = (GM40 & 0x0000FF) << 16 | (GM40 & 0x00FF00) | (GM40 & 0xFF0000) >> 16; } else if (gm_lvl >= 60 && gm_lvl <= 79) { WFIFOL(fd, 8) = (GM60 & 0x0000FF) << 16 | (GM60 & 0x00FF00) | (GM60 & 0xFF0000) >> 16; } else if (gm_lvl >= 80 && gm_lvl <= 98) { WFIFOL(fd, 8) = (GM80 & 0x0000FF) << 16 | (GM80 & 0x00FF00) | (GM80 & 0xFF0000) >> 16; } safestrncpy((char*)WFIFOP(fd, 8), is_fake ? fakename : text, textlen); //FIXME: chat has range of 9 only clif_send(WFIFOP(fd, 0), WFIFOW(fd, 2), &sd->bl, sd->chatID ? CHAT_WOS : AREA_CHAT_WOC); // send back message to the speaker if (is_fake) { WFIFOW(fd, 0) = 0x8e; WFIFOW(fd, 2) = textlen + 4; safestrncpy((char*)WFIFOP(fd, 4), fakename, textlen); aFree(fakename); } else { memcpy(WFIFOP(fd, 0), RFIFOP(fd, 0), RFIFOW(fd, 2)); WFIFOW(fd, 0) = 0x8e; } WFIFOSET(fd, WFIFOW(fd, 2)); #ifdef PCRE_SUPPORT // trigger listening npcs map_foreachinrange(npc_chat_sub, &sd->bl, AREA_SIZE, BL_NPC, text, textlen, &sd->bl); #endif // Chat logging type 'O' / Global Chat log_chat(LOG_CHAT_GLOBAL, 0, sd->status.char_id, sd->status.account_id, mapindex_id2name(sd->mapindex), sd->bl.x, sd->bl.y, NULL, message); } 1>clif.cpp 1>D:\Emulador\src\map\clif.cpp(11429,6): warning C4101: 'namelen': variável local não referenciada 1>D:\Emulador\src\map\clif.cpp(11439): warning C4700: variável local não inicializada 'message' usada 1>D:\Emulador\src\map\clif.cpp(11439): warning C4700: variável local não inicializada 'name' usada 1>D:\Emulador\src\map\clif.cpp(11455): warning C4700: variável local não inicializada 'messagelen' usada 1>map-server.vcxproj -> D:\Emulador\map-server.exe
  13. @go and @warp to the same map?
×
×
  • Create New...