Jump to content

cumbe11

Members
  • Content Count

    42
  • Joined

  • Last visited

About cumbe11

  • Rank
    Advanced Member

Recent Profile Visitors

2213 profile views
  1. 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;
  2. 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.
  3. 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
  4. 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;
  5. 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.
  6. 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
  7. 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#
  8. 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-
  9. I can use this plugin in a eAthena emulator?
  10. Here is this change? @partybuff (@spb) can display party member's special buffs in party list (Alt+Z) Buffs are: Quote Look like [BAFS+]Player name
  11. cumbe11

    Event 1x1...

    I do not have to adapt the script to run on my emulator?
  12. cumbe11

    Event 1x1...

    I did not leave anything .. just your ctrl + c and ctrl + v Erros de console [Error]: Loading NPC file: npc/strikero/Arena x1.txtscript error on npc/strikero/Arena x1.txt line 18 parse_line: expect command, missing function name or calling undeclared function 16 : { 17 : OnInit:* 18 : '.'minplayer2start = 2; // minimum players to start (ex. if 3vs3, set to 3) 19 : .eventlasting = 20*60; // event duration before auto-reset (20 minutes * seconds) 20 : setarray .rewarditem[0], // rewards for the winning team: <item>,<amount>,... 21 : 501, 10; 22 : end; 23 : OnStart: [Error]: script:getvariableofnpc: can't find npc bg_pvp#control[Debug]: Source (NPC): Blue Team#bg_pvp at prontera (154,178)[Error]: script:getvariableofnpc: can't find npc bg_pvp#control[Debug]: Source (NPC): Red Team#bg_pvp at prontera (152,178)
×
×
  • Create New...

Important Information

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