Jump to content

cumbe11

Members
  • Content Count

    46
  • Joined

  • Last visited

About cumbe11

  • Rank
    Advanced Member

Recent Profile Visitors

2647 profile views
  1. I did a check and I saw that my emulator still doesn't have cvc, is there any diff or patch that I can add to my emulator?
  2. CvC would work perfectly for me, I'll check it out, thanks
  3. How can I set it so that players from different clans can attack each other on GvG maps? In other words, how do I make clans behave like guilds? I would like to use a GvG flag in the clan
  4. Hello, I really wanted to add a command to my server, basically the player could use @joinguild <idguild> and he would join the guild without needing an invitation I did something similar to this but it doesn't work. script.ccp /*========================================== * @joinguild <guild_id> *------------------------------------------*/ ACMD_FUNC(joinguild) { std::shared_ptr<MapGuild> g; // Usar std::shared_ptr<MapGuild> int guild_id; nullpo_retr(-1, sd); if (!message || !*message || sscanf(message, "%d", &guild_id) != 1) { clif_displaymessage(fd, "Error. (usage: @joinguild <guild_id>)."); return -1; } // Procurar pela guilda usando o ID g = guild_search(guild_id); // Usar a função correta para procurar pela guilda if (!g) { // Verificar se a guilda foi encontrada clif_displaymessage(fd, "Guild not found."); return -1; } // Verificar se o jogador já está em uma guilda if (sd->status.guild_id > 0) { clif_displaymessage(fd, "You are already in a guild."); return -1; } // Adicionar o jogador à guilda usando o sistema de convite sd->guild_invite = guild_id; sd->guild_invite_account = sd->status.account_id; // Definindo o account_id do próprio jogador if (guild_reply_invite(sd, guild_id, 1) == 1) { // Verificar se a função foi bem-sucedida clif_displaymessage(fd, "You have successfully joined the guild."); return 0; // Sucesso } else { clif_displaymessage(fd, "Failed to join the guild."); return -1; // Falha } }
  5. dar erro de sinxtax [Error]: Loading NPC file: npc/strikero/tax.txt script error on npc/strikero/tax.txt line 71 parse_line: need ';' 66 : for(set .@i,0; .@i < getarraysize( @bought_nameid ); set .@i,.@i+1) 67 : getitem @bought_nameid[.@i],@bought_quantity[.@i]; 68 : 69 : // Atribui a quantia de imposto igualmente a outras Guildas. 70 : for( set .@i,0; .@i < getarraysize( .CastleMap$ ); set .@i,.@i + 1 ) { * 71 : set .@castleGuild, getguildid'('getguildname(getcastledata(.CastleMap$[.@i],1))); 72 : set .@guildCastles, 0; // Counter for guild-owned castles 73 : // Count guild-owned castles 74 : for( set .@j, 0; .@j < getarraysize(.CastleMap$); set .@j, .@j + 1) { 75 : if(getguildid(getguildname(getcastledata(.CastleMap$[.@j],1))) == .@castleGuild) { 76 : set .@guildCastles, .@guildCastles + 1;
  6. I have this script that calculates 10% of the store sales and divides them equally among the leaders of guilds that own castles registered in the NPC. It works very well; however, the only issue is that if the same guild owns more than one castle, the system doesn't divide the tax correctly, granting only one portion of the division, even if the guild owns two castles, for example.
  7. This hexed 20071009 is very good, too bad it seems impossible to add costs to it, for a reason I don't know why it doesn't work
  8. Olá, eu queria entender a formula da velocidade da movimetação do asura... more precisely that part ud->canmove_tick+=7*speed/5; I wanted to make the movement of the asura faster, I wanted to know where I have to modify it for that .... src/skill.c struct unit_data *ud = unit_bl2ud(src); short dx,dy; int i,speed; i = skillid == MO_EXTREMITYFIST?1:2; //Move 2 cells for Issen, 1 for Asura dx = bl->x - src->x; dy = bl->y - src->y; if (dx < 0) dx-=i; else if (dx > 0) dx+=i; if (dy < 0) dy-=i; else if (dy > 0) dy+=i; if (!dx && !dy) dy++; if (map_getcell(src->m, src->x+dx, src->y+dy, CELL_CHKNOPASS)) { dx = bl->x; dy = bl->y; } else { dx = src->x + dx; dy = src->y + dy; } skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); if(unit_walktoxy(src, dx, dy, 2) && ud) { //Increase can't walk delay to not alter your walk path ud->canmove_tick = tick; speed = status_get_speed(src); for (i = 0; i < ud->walkpath.path_len; i ++) { if(ud->walkpath.path[i]&1) ud->canmove_tick+=7*speed/5; else ud->canmove_tick+=speed; } } } break;
  9. Galera boa noite, eu gostaria muito de poder ver as miniaturas das sprites direto da passta usando o WeeThumbnail.dll, eu usava ele a um tempo atras, gostaria de saber se alguém consegue usar ele no win10 e como foi que vocês conseguiram.
  10. Hello, I wanted to change use an old emulator, Freya, but when I go to build the hundreds this error .. ./configure Checking for platform... Linux Checking whether build environment is sane... Checking whether make sets $(MAKE) ... yes Checking for gcc... ./configure: line 323: which: command not found ./configure: line 323: which: command not found ./configure: line 323: which: command not found ./configure: line 323: which: command not found ./configure: line 323: which: command not found ./configure: line 323: which: command not found not found -bash-3.2# line 323: fi if [ x$CC != x ]; then CCLIST="$CC $CCLIST" fi CC="" for foo in $CCLIST; do XCC=`which $foo` if [ x$XCC = x ]; then : else CC="$XCC" echo $CC break 2 fi done if [ x$CC = x ]; then if anyone can help me I will be very grateful gethub: https://github.com/flaviojs/freya
  11. I tried to put this mod on my eAthena emulator but give error when will compile .. could someone help me? Diff Index: conf/msg_conf/map_msg.conf =================================================================== --- conf/msg_conf/map_msg.conf (revision 17251) +++ conf/msg_conf/map_msg.conf (working copy) @@ -1457,5 +1457,10 @@ 1434: You're already in the '%s' channel. 1435: You're now in the '#%s' channel for '%s'. +// ----- @partybuff / @spb ----- // +1450: You're not in a party. +1451: Displaying party member's buffs disabled. +1452: Displaying party member's buffs enabled. + //Custom translations //import: conf/msg_conf/import/map_msg_eng_conf.txt Index: src/map/atcommand.c =================================================================== --- src/map/atcommand.c (revision 17251) +++ src/map/atcommand.c (working copy) @@ -9100,6 +9100,29 @@ return 0; } +ACMD_FUNC(partybuff) +{ + struct party_data* p = NULL; + nullpo_retr(-1, sd); + + if( !sd->status.party_id ) { + clif_displaymessage(fd, msg_txt(sd,1450)); // You're not in a party. + return -1; + } + + p = party_search(sd->status.party_id); + + if( sd->state.spb ) { + sd->state.spb = 0; + clif_displaymessage(fd, msg_txt(sd,1451)); // Displaying party member's buffs disabled. + } else { + sd->state.spb = 1; + clif_displaymessage(fd, msg_txt(sd,1452)); // Displaying party member's buffs enabled. + } + + clif_party_info(p,sd); + return 0; +} /** * Fills the reference of available commands in atcommand DBMap **/ @@ -9111,6 +9134,8 @@ **/ AtCommandInfo atcommand_base[] = { ACMD_DEF2("warp", mapmove), + ACMD_DEF(partybuff), + ACMD_DEF2("spb", partybuff), ACMD_DEF(where), ACMD_DEF(jumpto), ACMD_DEF(jump), Index: src/map/clif.c =================================================================== --- src/map/clif.c (revision 17251) +++ src/map/clif.c (working copy) @@ -455,6 +455,7 @@ case PARTY_WOS: case PARTY_SAMEMAP: case PARTY_SAMEMAP_WOS: + case PARTY_BUFF_INFO: if (sd && sd->status.party_id) p = party_search(sd->status.party_id); @@ -469,12 +470,15 @@ if( sd->bl.id == bl->id && (type == PARTY_WOS || type == PARTY_SAMEMAP_WOS || type == PARTY_AREA_WOS) ) continue; - if( type != PARTY && type != PARTY_WOS && bl->m != sd->bl.m ) + if( type != PARTY_BUFF_INFO && type != PARTY && type != PARTY_WOS && bl->m != sd->bl.m ) continue; if( (type == PARTY_AREA || type == PARTY_AREA_WOS) && (sd->bl.x < x0 || sd->bl.y < y0 || sd->bl.x > x1 || sd->bl.y > y1) ) continue; + if( type == PARTY_BUFF_INFO && !sd->state.spb ) + continue; + if( packet_db[sd->packet_ver][RBUFW(buf,0)].len ) { // packet must exist for the client version WFIFOHEAD(fd,len); @@ -6557,8 +6561,9 @@ void clif_party_info(struct party_data* p, struct map_session_data *sd) { unsigned char buf[2+2+NAME_LENGTH+(4+NAME_LENGTH+MAP_NAME_LENGTH_EXT+1+1)*MAX_PARTY]; - struct map_session_data* party_sd = NULL; + struct map_session_data* party_sd = NULL, *target = NULL; int i, c; + char output[NAME_LENGTH+10]; nullpo_retv(p); @@ -6585,6 +6590,33 @@ } else if (party_sd) { // send to whole party clif_send(buf, WBUFW(buf,2), &party_sd->bl, PARTY); } + + for(i = 0; i < MAX_PARTY; i++) + { + if( (target = p->data[i].sd) ) + { + strcpy(output, "["); + if( target->sc.data[SC_BLESSING] ) strcat(output,"B"); + else strcat(output,"_"); + if( target->sc.data[SC_INCREASEAGI] ) strcat(output,"A"); + else strcat(output,"_"); + if( target->sc.data[SC_CP_WEAPON] && target->sc.data[SC_CP_SHIELD] && + target->sc.data[SC_CP_ARMOR] && target->sc.data[SC_CP_HELM] ) strcat(output,"F"); + else strcat(output,"_"); + if( target->sc.data[SC_SPIRIT] ) strcat(output,"S"); + else strcat(output,"_"); + if( target->sc.data[SC_DEVOTION] ) strcat(output,"+"); + else strcat(output,"_"); + strcat(output, "]"); + strncat(output, p->data[i].sd->status.name, NAME_LENGTH); + safestrncpy((char*)WBUFP(buf,28+i*46+4), output, NAME_LENGTH); + } + } + + if( sd && sd->state.spb ) + clif_send(buf, WBUFW(buf,2), &sd->bl, SELF); + else if( party_sd ) + clif_send(buf, WBUFW(buf,2), &party_sd->bl, PARTY_BUFF_INFO); } Index: src/map/clif.h =================================================================== --- src/map/clif.h (revision 17251) +++ src/map/clif.h (working copy) @@ -65,6 +65,7 @@ PARTY_SAMEMAP_WOS, PARTY_AREA, PARTY_AREA_WOS, + PARTY_BUFF_INFO, GUILD, GUILD_WOS, GUILD_SAMEMAP, Index: src/map/party.c =================================================================== --- src/map/party.c (revision 17251) +++ src/map/party.c (working copy) @@ -563,12 +563,17 @@ memset(&p->data[i], 0, sizeof(p->data[0])); p->party.count--; party_check_state(p); + clif_party_info(p, NULL); } } if( sd && sd->status.party_id == party_id && sd->status.char_id == char_id ) { sd->status.party_id = 0; + if( sd->state.spb ) { + sd->state.spb = 0; + clif_displaymessage(sd->fd, msg_txt(sd,1451)); + } clif_charnameupdate(sd); //Update name display [Skotlex] //TODO: hp bars should be cleared too if( p->instance_id ) Index: src/map/pc.h =================================================================== --- src/map/pc.h (revision 17251) +++ src/map/pc.h (working copy) @@ -164,6 +164,7 @@ struct guild *gmaster_flag; unsigned int prevend : 1;//used to flag wheather you've spent 40sp to open the vending or not. unsigned int warping : 1;//states whether you're in the middle of a warp processing + unsigned int spb : 1; // @spb / @partybuff unsigned int permanent_speed : 1; // When 1, speed cannot be changed through status_calc_pc(). } state; struct { Index: src/map/status.c =================================================================== --- src/map/status.c (revision 17251) +++ src/map/status.c (working copy) @@ -31,6 +31,7 @@ #include "mercenary.h" #include "elemental.h" #include "vending.h" +#include "party.h" #include <time.h> #include <stdio.h> @@ -9113,6 +9114,15 @@ if( opt_flag&2 && sd && sd->touching_id ) npc_touchnext_areanpc(sd,false); // run OnTouch_ on next char in range + if( sd && sd->status.party_id && ( + type == SC_BLESSING || type == SC_INCREASEAGI || type == SC_CP_WEAPON || type == SC_CP_SHIELD || + type == SC_CP_ARMOR || type == SC_CP_HELM || type == SC_SPIRIT || type == SC_DEVOTION ) + ) + { + struct party_data *p = party_search(sd->status.party_id); + clif_party_info(p, NULL); + } + return 1; } @@ -9884,6 +9894,15 @@ if(opt_flag&2 && sd && map_getcell(bl->m,bl->x,bl->y,CELL_CHKNPC)) npc_touch_areanpc(sd,bl->m,bl->x,bl->y); //Trigger on-touch event. + if( sd && sd->status.party_id && ( + type == SC_BLESSING || type == SC_INCREASEAGI || type == SC_CP_WEAPON || type == SC_CP_SHIELD || + type == SC_CP_ARMOR || type == SC_CP_HELM || type == SC_SPIRIT || type == SC_DEVOTION ) + ) + { + struct party_data *p = party_search(sd->status.party_id); + clif_party_info(p, NULL); + } + ers_free(sc_data_ers, sce); return 1; } [erro console compiler] clif.c: In function 'clif_bl_type': clif.c:443: warning: comparison is always true due to limited range of data type clif.c:445: warning: comparison is always true due to limited range of data type clif.c: In function 'clif_setdisguise': clif.c:1469: warning: comparison is always true due to limited range of data type clif.c: At top level: clif.c:6670: error: expected identifier or '(' before 'for' clif.c:6670: error: expected '=', ',', ';', 'asm' or '__attribute__' before '<' token clif.c:6670: error: expected '=', ',', ';', 'asm' or '__attribute__' before '++' token clif.c:6692: error: expected identifier or '(' before 'if' clif.c:6694: error: expected identifier or '(' before 'else' clif.c:6697: error: expected identifier or '(' before 'return' clif.c:6698: error: expected identifier or '(' before '}' token make[1]: *** [obj_sql/clif.o] Error 1 make[1]: Leaving directory `/home/emulador/src/map' make: *** [map_sql] Error 2 -bash-3.2# -bash-3.2#
  12. cumbe11

    Event Pac-man

    someone still has that old Pac-Man event eAthena ... as has the video .. also I put a Pac-Man map to perhaps reformulate the event Mapa: http://www.mediafire.com/download/dmywjciyoil/pacmanlv1.7z video-
  13. I can use this plugin in a eAthena emulator?
×
×
  • Create New...

Important Information

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