• Content count

  • Avg. Content Per Day

  • Joined

  • Last visited

Community Reputation

0 Neutral

About guhx

  • Rank

Profile Information

  • Gender

Recent Profile Visitors

410 profile views
  1. guhx

    block double account certain maps

    Perfect! Thank You
  2. Hi, I use gepard on my server, and I wanted to block the same person from accessing the same map with two accounts. I tried to change the last_ip to last_unique_id, but it blocks all people from accessing the map if there is already a person in it. - script dualclientkicker -1,{ OnPCLoadMapEvent: set [email protected]$, strcharinfo(3); query_sql("SELECT FIND_IN_SET('"[email protected]$+"', '"+.maps$+"');",[email protected]); if([email protected]$!=.tmp$[([email protected])]) end; set [email protected], query_sql("SELECT DISTINCT `account_id` FROM `char` WHERE `account_id` IN (SELECT `account_id` FROM `login` WHERE `last_ip` = (SELECT `last_ip` FROM `login` WHERE `account_id`="+getcharid(3)+")) AND `online` <> 0;",[email protected]); if([email protected]) { for(set([email protected],0);[email protected]<[email protected];set([email protected],[email protected]+1)) { getmapxy([email protected]$,[email protected],[email protected],0,rid2name([email protected][[email protected]])); if(.tmp$[([email protected])][email protected]$&&rid2name([email protected][[email protected]])!=strcharinfo(0)) { dispbottom "Duel accounts not allowed in WOE."; atcommand "@kick "+strcharinfo(0); } } } end; OnInit: set .maps$ , "aldeg_cas01,gefg_cas01,payg_cas01,prtg_cas01"; explode( .tmp$ , .maps$, ",") ; set .lens , getarraysize(.tmp$) ; for(set .a,0;.a<.lens;set .a,.a+1) setmapflag .tmp$[.a], mf_loadevent ; }
  3. guhx


    Several players on my server are having this error, and I do not know what this might be causing IP capacity of this Internet Cafe is full. Would you like to pay the personal base?

    I sent you a private message to buy the gepard, please check.

    1. Functor


      Hello! I don't see PM from you. You should try to send message again.

  5. guhx

    Numbers appear when sending PM

    Thank you very much, it worked!
  6. guhx

    Numbers appear when sending PM

    I'm using the client 2015-11-04 The setting is correct: #define PACKETVER 20151104
  7. I'm having this problem when I send a private message to someone, these numbers appear after the nick. I searched in several places and could not find a solution. Can someone help me?
  8. guhx


    Além deste problema já relatado, um outro. O HP através de um grupo, você necessita de usar o @refresh para atualizar uma mudança de HP do membro do clã. @Edit Sorry, only after post that I saw the post was 2012
  9. guhx

    Convert any headgear/garment to costume

    I am having a compilation error 9>c:\users\gustavo\desktop\rathena\rathena-master\src\map\script.cpp(22577): error C2664: 'bool script_rid2sd_(script_state *,map_session_data **,const char *)': não é possível converter um argumento 2 de 'script_state **' em 'map_session_data **' 9>c:\users\gustavo\desktop\rathena\rathena-master\src\map\script.cpp(22577): note: Tipos apontados não são relacionados; conversão requer reinterpret_cast, conversão C-style ou conversão function-style 9>c:\users\gustavo\desktop\rathena\rathena-master\src\map\script.cpp(22627): error C2664: 'bool script_rid2sd_(script_state *,map_session_data **,const char *)': não é possível converter um argumento 2 de 'script_state **' em 'map_session_data **' 9>c:\users\gustavo\desktop\rathena\rathena-master\src\map\script.cpp(22627): note: Tipos apontados não são relacionados; conversão requer reinterpret_cast, conversão C-style ou conversão function-style Can someone help me? I followed this diff @edit sorted out I made some changes according to @Technoken's post and it worked /*========================================== * Costume Items *------------------------------------------*/ BUILDIN_FUNC(costume) { int i = -1, num, ep; TBL_PC *sd; num = script_getnum(st, 2); // Equip Slot if (!script_rid2sd(sd)) return SCRIPT_CMD_FAILURE; if (equip_index_check(num)) i = pc_checkequip(sd, equip_bitmask[num]); if (i < 0) return SCRIPT_CMD_FAILURE; ep = sd->inventory.u.items_inventory[i].equip; if (!(ep&EQP_HEAD_LOW) && !(ep&EQP_HEAD_MID) && !(ep&EQP_HEAD_TOP) && !(ep&EQP_GARMENT)) { ShowError("buildin_costume: Attempted to convert non-cosmetic item to costume."); return SCRIPT_CMD_FAILURE; } log_pick_pc(sd, LOG_TYPE_SCRIPT, -1, &sd->inventory.u.items_inventory[i]); pc_unequipitem(sd, i, 2); clif_delitem(sd, i, 1, 3); // -------------------------------------------------------------------- sd->inventory.u.items_inventory[i].refine = 0; sd->inventory.u.items_inventory[i].attribute = 0; sd->inventory.u.items_inventory[i].card[0] = CARD0_CREATE; sd->inventory.u.items_inventory[i].card[1] = 0; sd->inventory.u.items_inventory[i].card[2] = GetWord(battle_config.reserved_costume_id, 0); sd->inventory.u.items_inventory[i].card[3] = GetWord(battle_config.reserved_costume_id, 1); if (ep&EQP_HEAD_TOP) { ep &= ~EQP_HEAD_TOP; ep |= EQP_COSTUME_HEAD_TOP; } if (ep&EQP_HEAD_LOW) { ep &= ~EQP_HEAD_LOW; ep |= EQP_COSTUME_HEAD_LOW; } if (ep&EQP_HEAD_MID) { ep &= ~EQP_HEAD_MID; ep |= EQP_COSTUME_HEAD_MID; } if (ep&EQP_GARMENT) { ep &= EQP_GARMENT; ep |= EQP_COSTUME_GARMENT; } // -------------------------------------------------------------------- log_pick_pc(sd, LOG_TYPE_SCRIPT, 1, &sd->inventory.u.items_inventory[i]); clif_additem(sd, i, 1, 0); pc_equipitem(sd, i, ep); clif_misceffect(&sd->bl, 3); return SCRIPT_CMD_SUCCESS; } /*=============================== * getcostumeitem <item id>; * getcostumeitem <"item name">; *===============================*/ BUILDIN_FUNC(getcostumeitem) { unsigned short nameid; struct item item_tmp; TBL_PC *sd; struct script_data *data; if( !script_rid2sd(sd) ) { // No player attached. script_pushint(st, 0); return SCRIPT_CMD_SUCCESS; } data = script_getdata(st, 2); get_val(st, data); if (data_isstring(data)) { int ep; const char *name = conv_str(st, data); struct item_data *item_data = itemdb_searchname(name); if (item_data == NULL) { //Failed script_pushint(st, 0); return SCRIPT_CMD_SUCCESS; } ep = item_data->equip; if (!(ep&EQP_HEAD_LOW) && !(ep&EQP_HEAD_MID) && !(ep&EQP_HEAD_TOP) && !(ep&EQP_GARMENT)){ ShowError("buildin_getcostumeitem: Attempted to convert non-cosmetic item to costume."); return SCRIPT_CMD_FAILURE; } nameid = item_data->nameid; } else nameid = conv_num(st, data); if (!itemdb_exists(nameid)) { // Item does not exist. script_pushint(st, 0); return SCRIPT_CMD_SUCCESS; } memset(&item_tmp, 0, sizeof(item_tmp)); item_tmp.nameid = nameid; item_tmp.amount = 1; item_tmp.identify = 1; item_tmp.card[0] = CARD0_CREATE; item_tmp.card[2] = GetWord(battle_config.reserved_costume_id, 0); item_tmp.card[3] = GetWord(battle_config.reserved_costume_id, 1); if (pc_additem(sd, &item_tmp, 1, LOG_TYPE_SCRIPT)) { script_pushint(st, 0); return SCRIPT_CMD_SUCCESS; //Failed to add item, we will not drop if they don't fit } script_pushint(st, 1); return SCRIPT_CMD_SUCCESS; }
  10. guhx

    Body Relocation with Trap

    I tried a number of ways by skill_db , status.c and skill.c and could not block = x Does anyone have any idea to block it? @Edit I got making the following changes case MO_BODYRELOCATION: + if(sd && sd->[SC_ANKLE] ){ + clif_skill_fail(sd,skill_id,0,0); + return 0; + } if (unit_movepos(src, x, y, 1, 1)) { #if PACKETVER >= 20111005 clif_snap(src, src->x, src->y); #else clif_skill_poseffect(src,skill_id,skill_lv,src->x,src->y,tick); #endif if (sd) skill_blockpc_start (sd, MO_EXTREMITYFIST, 2000); } break;
  11. guhx

    Body Relocation with Trap

    I wanted to know how to block the body relocation when the character fall into a trap
  12. Yes I know , but I have a lifetime license. Only I'm having problems to solve this problem.
  13. Muito obrigado!! Consegui compilar com sucesso. Agora o que está acontecendo é quando vou logar no jogo através do hashield, na área de login ele fala que a conta não está registrada, sendo que esta. @English Thank you!! I managed to successfully compile. Now what is happening is when I log into the game via hashield in the area of ​​login he says that the account is not registered , and this .
  14. The problem happens when I add the following lines : src/char/char.c + = added by me char_set_charselect(sd->account_id); +hashield_account_connected(sd->account_id); src/char/char_clif.c cmd = RFIFOW(fd,0); switch( cmd ) { +case 0x4444: next=hashield_connect(fd); break;case 0x65: next=chclif_parse_reqtoconnect(fd,sd,ipl); break; // char select case 0x66: next=chclif_parse_charselect(fd,sd,ipl); break; // createnewchar case 0x970: next=chclif_parse_createnewchar(fd,sd,cmd); break; case 0x67: next=chclif_parse_createnewchar(fd,sd,cmd); break; // delete char case 0x68: next=chclif_parse_delchar(fd,sd,cmd); break; // case 0x1fb: next=chclif_parse_delchar(fd,sd,cmd); break; // 2004-04-19aSakexe+ langtype 12 char deletion packet // client keep-alive packet (every 12 seconds) case 0x187: next=chclif_parse_keepalive(fd); break; // char rename case 0x8fc: next=chclif_parse_reqrename(fd,sd,cmd); break; //request <date/version?> case 0x28d: next=chclif_parse_reqrename(fd,sd,cmd); break; //request <date/version?> case 0x28f: next=chclif_parse_ackrename(fd,sd); break; //Confirm change name. // captcha case 0x7e5: next=chclif_parse_reqcaptcha(fd); break; // captcha code request (not implemented) case 0x7e7: next=chclif_parse_chkcaptcha(fd); break; // captcha code check (not implemented) // deletion timer request case 0x827: next=chclif_parse_char_delete2_req(fd, sd); break; // deletion accept request case 0x829: next=chclif_parse_char_delete2_accept(fd, sd); break; // deletion cancel request case 0x82b: next=chclif_parse_char_delete2_cancel(fd, sd); break; // login as map-server case 0x2af8: chclif_parse_maplogin(fd); return 0; // avoid processing of followup packets here #if PACKETVER_SUPPORTS_PINCODE //pincode case 0x8b8: next=chclif_parse_pincode_check( fd, sd ); break; // checks the entered pin case 0x8c5: next=chclif_parse_reqpincode_window(fd,sd); break; // request for PIN window case 0x8be: next=chclif_parse_pincode_change( fd, sd ); break; // pincode change request case 0x8ba: next=chclif_parse_pincode_setnew( fd, sd ); break; // activate PIN system and set first PIN #endif // character movement request case 0x8d4: next=chclif_parse_moveCharSlot(fd,sd); break; case 0x9a1: next=chclif_parse_req_charlist(fd,sd); break; After adding these lines , of the following error: