Jump to content

K4m4r40

Members
  • Content Count

    65
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by K4m4r40

  1. Vlw pela força, vou instalar e testar. Tmj
  2. Olá gostaria de saber quais itens devo selecionar na instalação do visual studio 2017. Segue imagem abaixo: Obrigado.
  3. Obrigado Juan Meissner, irei testar e editar o post.
  4. Olá, Editei recentemente os mvps do meu servidor High Rate e me deparei com um problema referente ao máx hit básic. O monstro 1038 Osiris, possui 221.503 de dano de hit basico, e provavelmente na source esta configurado para no máx 65535. Segue print: Gostaria de aumentar o hit basic max para não dar mais erro nas minhas edições. --------------------------------------------------------- @EDIT --------------------------------------------------------- mob.c no pastebin: http://pastebin.com/MweEfdnU Com ajuda cheguei no seguintes locais dentro da mob.c: 1º - Linha 3649 - Local aonde monstra o erro no log: /** * Check if global item drop rate is overridden for given item * in db/mob_item_ratio.txt * @param nameid ID of the item * @param mob_id ID of the monster * @param rate_adjust pointer to store ratio if found */ void item_dropratio_adjust(int nameid, int mob_id, int *rate_adjust) { if( item_drop_ratio_db[nameid] ) { if( item_drop_ratio_db[nameid]->mob_id[0] ) { // only for listed mobs int i; ARR_FIND(0, MAX_ITEMRATIO_MOBS, i, item_drop_ratio_db[nameid]->mob_id[i] == mob_id); if(i < MAX_ITEMRATIO_MOBS) // found *rate_adjust = item_drop_ratio_db[nameid]->drop_ratio; } else // for all mobs *rate_adjust = item_drop_ratio_db[nameid]->drop_ratio; } } /* (mob_parse_dbrow)_cap_value */ static inline int mob_parse_dbrow_cap_value(int class_, int min, int max, int value) { if( value > max ) { ------> ShowError("mob_parse_dbrow: for class '%d', field value '%d' is higher than the maximum '%d'! capping...\n", class_, value, max); return max; } else if ( value < min ) { ShowError("mob_parse_dbrow: for class '%d', field value '%d' is lower than the minimum '%d'! capping...\n", class_, value, min); return min; } return value; } 2º - Linha 3705 - local que acredito ser para editar do atk e atk2 dos monstros: /*========================================== * processes one mobdb entry *------------------------------------------*/ bool mob_parse_dbrow(char** str) { struct mob_db *db, entry; struct status_data *mstatus; int class_, i, k; double exp, maxhp; struct mob_data data; class_ = atoi(str[0]); if (class_ <= 1000 || class_ > MAX_MOB_DB) { ShowError("mob_parse_dbrow: Invalid monster ID %d, must be in range %d-%d.\n", class_, 1000, MAX_MOB_DB); return false; } if (pcdb_checkid(class_)) { ShowError("mob_parse_dbrow: Invalid monster ID %d, reserved for player classes.\n", class_); return false; } if (class_ >= MOB_CLONE_START && class_ < MOB_CLONE_END) { ShowError("mob_parse_dbrow: Invalid monster ID %d. Range %d-%d is reserved for player clones. Please increase MAX_MOB_DB (%d).\n", class_, MOB_CLONE_START, MOB_CLONE_END-1, MAX_MOB_DB); return false; } memset(&entry, 0, sizeof(entry)); db = &entry; mstatus = &db->status; db->vd.class_ = class_; safestrncpy(db->sprite, str[1], sizeof(db->sprite)); safestrncpy(db->jname, str[2], sizeof(db->jname)); safestrncpy(db->name, str[3], sizeof(db->name)); db->lv = atoi(str[4]); db->lv = cap_value(db->lv, 1, USHRT_MAX); mstatus->max_hp = atoi(str[5]); mstatus->max_sp = atoi(str[6]); exp = (double)atoi(str[7]) * (double)battle_config.base_exp_rate / 100.; db->base_exp = (unsigned int)cap_value(exp, 0, UINT_MAX); exp = (double)atoi(str[8]) * (double)battle_config.job_exp_rate / 100.; db->job_exp = (unsigned int)cap_value(exp, 0, UINT_MAX); mstatus->rhw.range = atoi(str[9]); ----> mstatus->rhw.atk = mob_parse_dbrow_cap_value(class_,UINT16_MIN,UINT16_MAX,atoi(str[10])); ----> mstatus->rhw.atk2 = mob_parse_dbrow_cap_value(class_,UINT16_MIN,UINT16_MAX,atoi(str[11])); mstatus->def = mob_parse_dbrow_cap_value(class_,DEFTYPE_MIN,DEFTYPE_MAX,atoi(str[12])); mstatus->mdef = mob_parse_dbrow_cap_value(class_,DEFTYPE_MIN,DEFTYPE_MAX,atoi(str[13])); mstatus->str = mob_parse_dbrow_cap_value(class_,UINT16_MIN,UINT16_MAX,atoi(str[14])); mstatus->agi = mob_parse_dbrow_cap_value(class_,UINT16_MIN,UINT16_MAX,atoi(str[15])); mstatus->vit = mob_parse_dbrow_cap_value(class_,UINT16_MIN,UINT16_MAX,atoi(str[16])); mstatus->int_ = mob_parse_dbrow_cap_value(class_,UINT16_MIN,UINT16_MAX,atoi(str[17])); mstatus->dex = mob_parse_dbrow_cap_value(class_,UINT16_MIN,UINT16_MAX,atoi(str[18])); mstatus->luk = mob_parse_dbrow_cap_value(class_,UINT16_MIN,UINT16_MAX,atoi(str[19])); /* * Disabled for renewal since difference of 0 and 1 still has an impact in the formulas * Just in case there is a mishandled division by zero please let us know. [malufett] */ #ifndef RENEWAL //All status should be min 1 to prevent divisions by zero from some skills. [Skotlex] if (mstatus->str < 1) mstatus->str = 1; if (mstatus->agi < 1) mstatus->agi = 1; if (mstatus->vit < 1) mstatus->vit = 1; if (mstatus->int_< 1) mstatus->int_= 1; if (mstatus->dex < 1) mstatus->dex = 1; if (mstatus->luk < 1) mstatus->luk = 1; #endif //Tests showed that chase range is effectively 2 cells larger than expected [Playtester] if (db->range3 > 0) db->range3 += 2; db->range2 = atoi(str[20]); db->range3 = atoi(str[21]); if (battle_config.view_range_rate != 100) { db->range2 = db->range2 * battle_config.view_range_rate / 100; if (db->range2 < 1) db->range2 = 1; } if (battle_config.chase_range_rate != 100) { db->range3 = db->range3 * battle_config.chase_range_rate / 100; if (db->range3 < db->range2) db->range3 = db->range2; } mstatus->size = atoi(str[22]); mstatus->race = atoi(str[23]); i = atoi(str[24]); //Element mstatus->def_ele = i%10; mstatus->ele_lv = i/20; if (mstatus->def_ele >= ELE_MAX) { ShowError("mob_parse_dbrow: Invalid element type %d for monster ID %d (max=%d).\n", mstatus->def_ele, class_, ELE_MAX-1); return false; } if (mstatus->ele_lv < 1 || mstatus->ele_lv > 4) { ShowError("mob_parse_dbrow: Invalid element level %d for monster ID %d, must be in range 1-4.\n", mstatus->ele_lv, class_); return false; } mstatus->mode = (int)strtol(str[25], NULL, 0); if (!battle_config.monster_active_enable) mstatus->mode &= ~MD_AGGRESSIVE; mstatus->speed = atoi(str[26]); mstatus->aspd_rate = 1000; i = atoi(str[27]); mstatus->adelay = cap_value(i, battle_config.monster_max_aspd*2, 4000); i = atoi(str[28]); mstatus->amotion = cap_value(i, battle_config.monster_max_aspd, 2000); //If the attack animation is longer than the delay, the client crops the attack animation! //On aegis there is no real visible effect of having a recharge-time less than amotion anyway. if (mstatus->adelay < mstatus->amotion) mstatus->adelay = mstatus->amotion; mstatus->dmotion = atoi(str[29]); if(battle_config.monster_damage_delay_rate != 100) mstatus->dmotion = mstatus->dmotion * battle_config.monster_damage_delay_rate / 100; // Fill in remaining status data by using a dummy monster. data.bl.type = BL_MOB; data.level = db->lv; memcpy(&data.status, mstatus, sizeof(struct status_data)); status->calc_misc(&data.bl, mstatus, db->lv); // MVP EXP Bonus: MEXP // Some new MVP's MEXP multiple by high exp-rate cause overflow. [LuzZza] exp = (double)atoi(str[30]) * (double)battle_config.mvp_exp_rate / 100.; db->mexp = (unsigned int)cap_value(exp, 0, UINT_MAX); //Now that we know if it is an mvp or not, apply battle_config modifiers [Skotlex] maxhp = (double)mstatus->max_hp; if (db->mexp > 0) { //Mvp if (battle_config.mvp_hp_rate != 100) maxhp = maxhp * (double)battle_config.mvp_hp_rate / 100.; } else //Normal mob if (battle_config.monster_hp_rate != 100) maxhp = maxhp * (double)battle_config.monster_hp_rate / 100.; mstatus->max_hp = (unsigned int)cap_value(maxhp, 1, UINT_MAX); if(mstatus->max_sp < 1) mstatus->max_sp = 1; //Since mobs always respawn with full life... mstatus->hp = mstatus->max_hp; mstatus->sp = mstatus->max_sp; // MVP Drops: MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per for(i = 0; i < MAX_MVP_DROP; i++) { int rate_adjust = battle_config.item_rate_mvp;; db->mvpitem[i].nameid = atoi(str[31+i*2]); if (!db->mvpitem[i].nameid) { db->mvpitem[i].p = 0; //No item.... continue; } mob->item_dropratio_adjust(db->mvpitem[i].nameid, class_, &rate_adjust); db->mvpitem[i].p = mob->drop_adjust(atoi(str[32+i*2]), rate_adjust, battle_config.item_drop_mvp_min, battle_config.item_drop_mvp_max); //calculate and store Max available drop chance of the MVP item if (db->mvpitem[i].p) { struct item_data *id; id = itemdb->search(db->mvpitem[i].nameid); if (id->maxchance == -1 || (id->maxchance < db->mvpitem[i].p/10 + 1) ) { //item has bigger drop chance or sold in shops id->maxchance = db->mvpitem[i].p/10 + 1; //reduce MVP drop info to not spoil common drop rate } } } for(i = 0; i < MAX_MOB_DROP; i++) { int rate = 0, rate_adjust, type; unsigned short ratemin, ratemax; struct item_data *id; k = 31 + MAX_MVP_DROP*2 + i*2; db->dropitem[i].nameid = atoi(str[k]); if (!db->dropitem[i].nameid) { db->dropitem[i].p = 0; //No drop. continue; } id = itemdb->search(db->dropitem[i].nameid); type = id->type; rate = atoi(str[k+1]); if( (class_ >= 1324 && class_ <= 1363) || (class_ >= 1938 && class_ <= 1946) ) { //Treasure box drop rates [Skotlex] rate_adjust = battle_config.item_rate_treasure; ratemin = battle_config.item_drop_treasure_min; ratemax = battle_config.item_drop_treasure_max; } else switch (type) { // Added support to restrict normal drops of MVP's [Reddozen] case IT_HEALING: rate_adjust = (mstatus->mode&MD_BOSS) ? battle_config.item_rate_heal_boss : battle_config.item_rate_heal; ratemin = battle_config.item_drop_heal_min; ratemax = battle_config.item_drop_heal_max; break; case IT_USABLE: case IT_CASH: rate_adjust = (mstatus->mode&MD_BOSS) ? battle_config.item_rate_use_boss : battle_config.item_rate_use; ratemin = battle_config.item_drop_use_min; ratemax = battle_config.item_drop_use_max; break; case IT_WEAPON: case IT_ARMOR: case IT_PETARMOR: rate_adjust = (mstatus->mode&MD_BOSS) ? battle_config.item_rate_equip_boss : battle_config.item_rate_equip; ratemin = battle_config.item_drop_equip_min; ratemax = battle_config.item_drop_equip_max; break; case IT_CARD: rate_adjust = (mstatus->mode&MD_BOSS) ? battle_config.item_rate_card_boss : battle_config.item_rate_card; ratemin = battle_config.item_drop_card_min; ratemax = battle_config.item_drop_card_max; break; default: rate_adjust = (mstatus->mode&MD_BOSS) ? battle_config.item_rate_common_boss : battle_config.item_rate_common; ratemin = battle_config.item_drop_common_min; ratemax = battle_config.item_drop_common_max; break; } mob->item_dropratio_adjust(id->nameid, class_, &rate_adjust); db->dropitem[i].p = mob->drop_adjust(rate, rate_adjust, ratemin, ratemax); //calculate and store Max available drop chance of the item if( db->dropitem[i].p && (class_ < 1324 || class_ > 1363) && (class_ < 1938 || class_ > 1946) ) { //Skip treasure chests. if (id->maxchance == -1 || (id->maxchance < db->dropitem[i].p) ) { id->maxchance = db->dropitem[i].p; //item has bigger drop chance or sold in shops } for (k = 0; k< MAX_SEARCH; k++) { if (id->mob[k].chance <= db->dropitem[i].p) break; } if (k == MAX_SEARCH) continue; if (id->mob[k].id != class_) memmove(&id->mob[k+1], &id->mob[k], (MAX_SEARCH-k-1)*sizeof(id->mob[0])); id->mob[k].chance = db->dropitem[i].p; id->mob[k].id = class_; } } // Finally insert monster's data into the database. if (mob->db_data[class_] == NULL) mob->db_data[class_] = (struct mob_db*)aMalloc(sizeof(struct mob_db)); else //Copy over spawn data memcpy(&db->spawn, mob->db_data[class_]->spawn, sizeof(db->spawn)); memcpy(mob->db_data[class_], db, sizeof(struct mob_db)); return true; } Tentei modificar o UNIT16 para UNIT32, porém ao fazer a edição e compilar o valor de 65535(UNIT16) se torna -1(UNIT32). Não sou especialista em C, gostaria muito da ajuda de alguém para entender o por que de o UNIT32 não se tornar 4294967296 conforme explica neste site sobre unit. https://www.badprog....-t-and-uint64-t 3º - Linha 151 - Encontrei no arquivo Hercules/src/common/cbasetypes.h as seguintes informações que talvéz ajude a desvendar o motivo pelo qual o unit32 não está funcionando corretamente. https://github.com/H...on/cbasetypes.h #undef UINT8_MIN #undef UINT16_MIN #undef UINT32_MIN #undef UINT64_MIN #define UINT8_MIN ((uint8) UINT8_C(0x00)) #define UINT16_MIN ((uint16)UINT16_C(0x0000)) #define UINT32_MIN ((uint32)UINT32_C(0x00000000)) #define UINT64_MIN ((uint64)UINT64_C(0x0000000000000000)) #undef UINT8_MAX #undef UINT16_MAX #undef UINT32_MAX #undef UINT64_MAX #define UINT8_MAX ((uint8) UINT8_C(0xFF)) #define UINT16_MAX ((uint16)UINT16_C(0xFFFF)) #define UINT32_MAX ((uint32)UINT32_C(0xFFFFFFFF)) #define UINT64_MAX ((uint64)UINT64_C(0xFFFFFFFFFFFFFFFF)) Se alguém puder colaborar agradeço, Finalmente poderemos colocar danos maior do que 65535 para monstros no jogo. Ajudem por favor. --------------------------------------------------------- Créditos evilpuncker
  5. Vlw @evilpunker, vou testar e editar aqui. Estou fussando o mapflag, to achando que esse day night é em algum arquivo por lá. Quem souber de algo que possa ajudar a encontrar, agradeço a ajuda. @edit Funcionou, duvida 2 resolvida.
  6. Olá, Adicionei recentemente várias mapas em meu servidor. Segue minhas duvídas: O problema é que nas cidades novas não fica de noite e que nos interiores novos o zoom e o girar 360º estão liberados. Obrigado pelo suporte.
  7. Eu consegui resolver o problema de atualização do map_cache. Testei de todas as formas: Todas funcionaram depois que consegui enviar os arquivos via ssh para testar. A melhor ferramenta na minha opinião foi o Weemapache: É bem parecido com o sistema de edição grfs, muito bom o programa. Meu problema era que no caminho do diretório aonde eu estava salvando os mapas e as grfs, ele tinha um @ no nome da pasta impossibilitando a transferência pelo ssh. Obrigado desde já JulioCF. Segue umas prints dos mapas que estão pegando aqui:
  8. Olá, Baixei recentemente o arquivo Weemapcache para atualizar meu map_cache.dat Porém ao tentar enviar o arquivo para a db do servidor via SSH, o arquivo acusa erro. Obs.: qualquer mapa que eu adicione pelo weemapcache, na hora de enviar pelo ssh da o mesmo erro. Vendo o problema no weemapcache, fui para o modo tradicional, map_cache.exe. Ai apareceu esse problema: Dúvida: 1 - Quando fiz o download do weemapcache, baixei só um arquivo .exe, precisa de mais algum arquivo para ele funcionar corretamente? 2 - Suponhamos que enviei a data.grf do bro + minha grf a uma pasta no ssh. É possivel atualizar o map_cache.dat pelo ssh? Como ficaria a grf-files? 3 - Estou baixando o Visual Studio atual, existe alguma versão em específica que é melhor indicada para o usar? Obrigado pela ajuda.
  9. Olá pessoal, meu servidor é high rate. Tem muito monstro sendo muito bom para mobar com qualquer classe. Porém no meio da felicidade de uns existe a tristeza do monge. Meu objetivo é deixar as skills abaixo com danos em area. Combo Triplo/Triple Atack Combo Quadruplo/Chain Combo Impacto Psiquico/Investigate Editei elas pelo Server database Editor. Segue as prints abaixo: O processo foi : Edição pelo server editor > copia e cola na pasta db > compilação > restart Obs.: os arquivos que enviei para a db são: skill_tree.conf skill_unit_db.txt skill_db.txt Ai no final nenhuma das 3 skills deram dano em área ainda e apareceu esse erro no log: [Error]: 0 enemies targeted by 263:MO_TRIPLEATTACK, divide per 0 avoided! Não sei se faltou algum arquivo, ou a edição ta errada... Se alguém puder ajudar em algum tipo de explicação, minha duvidas são referente á: Spash/effect range Range Damage behavior -> has splash area -> damage should be split among targets. Grato desde já.
  10. Obrigado. Através do ps aux conforme comentou foi possível identificar os processos do host. Bastou ao mesmo tempo procurar um tutorial referente ao comando kill ssh no google para entender melhor. Através do PID, executei o comando conforme o tuto e o restart voltou a funcionar. Dúvida: Por qual motivo ocorre esse "bug"? Existe uma forma de não ter que passar mais por isso? Ou simplesmente é raro esse erro ocorrer? É um bug do host então? Obrigado @evilpuncker e @pixel.
  11. ao executar ./athena-start stop -bash-3.2# ./athena-start stop ./athena-start: line 60: kill: (6710) - No such process ./athena-start: line 60: kill: (6711) - No such process ./athena-start: line 60: kill: (6712) - No such process ao executar ./athena-start start [Info]: Exported revision (src): '' [Info]: Exported revision (scripts): - [Info]: Server supports up to '1024' concurrent connections. [Warning]: HPM:plugin_load: failed to load 'plugins/HPMHooking_char.so', skipping... [Warning]: HPM:plugin_load: failed to load 'plugins/costumeitem.so', skipping... [Status]: Login server IP address : - [Status]: Character server IP address : - [Info]: Done reading conf/import/char_conf.txt. [Info]: Done reading conf/char-server.conf. [Info]: Server supports up to '1024' concurrent connections. [Warning]: HPM:plugin_load: failed to load 'plugins/HPMHooking_login.so', skipping... [Warning]: HPM:plugin_load: failed to load 'plugins/costumeitem.so', skipping... [Info]: Finished reading conf/import/inter_conf.txt. [Info]: Finished reading conf/inter-server.conf. [Info]: Finished reading conf/import/login_conf.txt. [Info]: Finished reading conf/login-server.conf. [Info]: Done reading conf/import/inter_conf.txt. [Info]: Done reading conf/inter-server.conf. [Info]: Done reading conf/import/inter_conf.txt. [Info]: Done reading conf/inter-server.conf. [Info]: Connect Character DB server.... (Character Server) [Warning]: HPM:plugin_load: failed to load 'plugins/HPMHooking_map.so', skipping... [Warning]: HPM:plugin_load: failed to load 'plugins/costumeitem.so', skipping... [Info]: Char Server IP Address : - [Info]: Map Server IP Address : - [Status]: Done reading '50' entries in 'db/re/exp_guild.txt'. [Status]: Finished Reading GeoIP Database. [Error]: make_listen_bind: bind failed (socket #4, error 98: Address already in use)! [Status]: Using item database as SQL: 'no' [Status]: Using monster database as SQL: 'no' [Status]: Using monster skill database as SQL: 'no' [Info]: Logging item transactions to table 'picklog'. [Info]: Logging commands to table 'atcommandlog'. [Info]: Connecting to the Map DB Server.... [Status]: connect success! (Map Server Connection) [Info]: [SQL]: Connecting to the Log Database logs At - ... [Error]: make_listen_bind: bind failed (socket #6, error 98: Address already in use)! [Status]: [SQL]: Successfully 'connected' to Database 'logs'. [Status]: Loading maps (using db/re/map_cache.dat as map cache)... [Info]: Successfully loaded '879' maps. [Status]: Done reading '62' command aliases in 'conf/atcommand.conf'. [Error]: make_listen_bind: bind failed (socket #5, error 98: Address already in use)! Como utilizo corretamente o -kill? Não entendi muito bem. Tem alguma forma de fechar e reiniciar o servidor sem ser pelo comand do ssh?
  12. Ao tentar reiniciar meu servidor via ssh, várias vezes este erro ocorre. Com o erro presente, nenhum comando de restart, stop, start funcionam corretamente. As vezes eu consigo logar, outras vezes meu servidor fica off e demora muito para voltar. [Info]: Server supports up to '1024' concurrent connections. [Warning]: HPM:plugin_load: failed to load 'plugins/HPMHooking_char.so', skipping... [Warning]: HPM:plugin_load: failed to load 'plugins/costumeitem.so', skipping... [Status]: Login server IP address : ------------ [Status]: Character server IP address : ------------ [Info]: Done reading conf/import/char_conf.txt. [Info]: Done reading conf/char-server.conf. [Info]: Done reading conf/import/inter_conf.txt. [Info]: Done reading conf/inter-server.conf. [Warning]: HPM:plugin_load: failed to load 'plugins/HPMHooking_map.so', skipping... [Warning]: HPM:plugin_load: failed to load 'plugins/costumeitem.so', skipping... [Info]: Char Server IP Address : ------------ [Info]: Map Server IP Address : ------------ [Info]: Done reading conf/import/inter_conf.txt. [Info]: Done reading conf/inter-server.conf. [Info]: Connect Character DB server.... (Character Server) [Info]: Server supports up to '1024' concurrent connections. [Warning]: HPM:plugin_load: failed to load 'plugins/HPMHooking_login.so', skipping... [Warning]: HPM:plugin_load: failed to load 'plugins/costumeitem.so', skipping... [Info]: Finished reading conf/import/inter_conf.txt. [Info]: Finished reading conf/inter-server.conf. [Info]: Finished reading conf/import/login_conf.txt. [Info]: Finished reading conf/login-server.conf. [Status]: Using item database as SQL: 'no' [Status]: Using monster database as SQL: 'no' [Status]: Using monster skill database as SQL: 'no' [Info]: Logging item transactions to table 'picklog'. [Info]: Logging commands to table 'atcommandlog'. [Info]: Connecting to the Map DB Server.... [Status]: Done reading '50' entries in 'db/re/exp_guild.txt'. [Error]: make_listen_bind: bind failed (socket #4, error 98: Address already in use)! [Status]: connect success! (Map Server Connection) [Info]: [SQL]: Connecting to the Log Database logs At ------------ [Status]: [SQL]: Successfully 'connected' to Database 'logs'. [Status]: Loading maps (using db/re/map_cache.dat as map cache)... [Info]: Successfully loaded '879' maps. [Error]: make_listen_bind: bind failed (socket #6, error 98: Address already in use)! [Status]: Done reading '62' command aliases in 'conf/atcommand.conf'. [Error]: make_listen_bind: bind failed (socket #5, error 98: Address already in use)! Isso é um erro no emulador, ou do host? Como posso resolver? Queria saber também se existe uma forma de forçar o restart do servidor sem ser pelos comandos do ssh caso esse erro aconteça.
  13. vlw @evilpuncker, era isso msm, obrigado.
  14. Ola, De uma hora para outra meu cashshop_db.conf começou a acusar erro e não monstra mais os itens. Obs.: O erro apareceu derrepente, não cheguei a abri-lo em momento nenhum. Erro: cashshop_db.conf : //==================================================== //= _ _ _ //= | | | | | | //= | |_| | ___ _ __ ___ _ _| | ___ ___ //= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| //= | | | | __/ | | (__| |_| | | __/\__ \ //= \_| |_/\___|_| \___|\__,_|_|\___||___/ //= //= http://hercules.ws/board/ //================= More Information ================= //= http://hercules.ws/board/topic/367-introducing-cash-shop-support/ //==================================================== // This file handles the entire Cashshop. You can simply // add in any amount of items you like within each category. // Please keep in mind that the Cashshop does not work // with ragexere clients. // Categories can be empty or even missing, but, if // present, their names must be kept as cat_<n>, where // <n> is a valid tab index, as descripbed in 'enum // CASH_SHOP_TABS' in clif.c (normally 0 through 7) //==================================================== cash_shop: ( { cat_0: { //Lançamento ID531:250 } cat_1: { //Promoção ID19650:5000 } cat_2: { //Equipamentos ID21000:20000 } cat_3: { //Visual ID30015:5000 } cat_4: { //Cartas ID20001:5000 } cat_5: { //Consumíveis ID501:100 } cat_6: { //Utilidades White_Potion:150 } cat_7: { //Ovos ID12622:10000 } cat_8: { //Extra ID12622:10000 } } ) Já conferi os itens, todos estão funcionando no servidor. Tentei usar todos pelo ID*****: e não foi também. Como resolvo esse problema?
  15. Agradeço pelas indicações @evilpuncker. Já irá ajudar muito aqui, caso alguém saiba das as outras localizações para modificação na source. Por favor post aqui, acredito que irá ajuda não só um mais várias pessoas com essas duvidas.
  16. Ola pessoal, Estou tendo dificuldade para achar o local correto para editar alguns calculos que se encontra na source/map/status.c. Eu queria saber a linha correta para editar o: ------------------------------------------------------------------------------------------------ *Calculo do Dano Mágico. ------------------------------------------------------------------------------------------------ *Calculo do Dano Físico. ------------------------------------------------------------------------------------------------ *Calculo da DEF adquirida através do Refinamento dos Equipamentos. ------------------------------------------------------------------------------------------------ *Calculo da Esquiva perfeita. ------------------------------------------------------------------------------------------------ *Calculo da DEF que se adquire através da Soma dos atributos do personagem. ------------------------------------------------------------------------------------------------ *Calculo da DEFM que se adquire através da Soma dos atributos do personagem. ------------------------------------------------------------------------------------------------ Agradeço a todos que puderem indicar o local para modificar esses calculos acima. Acredito que essa é a dúvida de muitos, e pelo menos saber aonde editar caso precise já vai ajudar d+.
  17. Olá pessoal, Estou querendo diminuir meu numero de "Npcs de Shop" em meu mercado para algo mais simples e organizado. Já vi em alguns servidores, npcs de shop desse forma porém não tenho nenhum script para usar como base. NPC menu: prontera.gat,164,193,3 script Chico, O vendedor 880,{ set @npc$,"[^FF0000 Chico, O vendedor ^000000]"; mes @npc$; mes "Olá, ^FF0000"+strcharinfo(0)+"^000000!";} mes "Bem Vindo ao Mercado Negro!"; next; mes @npc$; mes "O que deseja comprar?"; menu "=> Armas",armas, "=> Armaduras",armaduras, "=> Nada, obrigado.",m_exit; armas: next; mes @npc$; mes "Ok, Boas compras."; //??????? close; armaduras: next; mes @npc$; mes "Ok, Boas compras."; //??????? close; m_exit: next; mes @npc$; mes "Ok, Volte sempre."; close; } NPC shop: prt_in,178,105,3 shop Weapons_1 4_F_07,6258:-1 prt_in,178,103,3 shop Armor_1 4_F_07,6258:-1 Agradeço a ajuda.
  18. no caso o meu servidor é lv 1500, e o status é 1500 também. entao ficaria assim o meu calculo para 1500 de agi. 1500(agi) / 20 = 75 (aspd) ----> com 1500 de agi ele terá aumentado 75 de aspd, conseguindo chegar no máximo de aspd do meu servidor que é 196. caso queria fazer um calculo envolvendo agi e dex, Vou dar um ex para entender como funciona o calculo, porém você pode modifica a formula da conta do jeito que desejar: EX: vamos supor que o jogador tenha uma build normal do bro "sentinela", 110 agi , 110 dex amotion -= (st->110 + st->110) / 3; 220/3 = 73.33333 amotion -= (st->110 + st->110) / 4; 220/4 = 55 isso é só uma base para entender o calculo da aspd. no meu emulador high rate, só me basear na agi já resolveu meu problema. Espero ter ajudado.
  19. Olá @@akshimaru, obrigado pela atenção, porém consegui descobrir o problema.
  20. @@evilpuncker Eu li referente ao link que mando e também a outros links que postaram lá, e vi que o pessoal comentou sobe uma engenharia reversa e também algo referente ao numero de slots. Poderia explicar como funciona esse jeito do numero de slots e falar sobre essa engenharia reversa? Desde já obrigado.
  21. Olá, tive um emulador a uns anos atrás aonde os nome dos itens eram coloridos, cinzas azuis roxos e laranjas. Porém acabei perdendo esse emulador em formatações. DÚVIDA: Gostaria de saber o que tenho que fazer ou instalar no meu emulador atual para adicionar cores nos nomes dos itens. Preciso muito dessa aquisição em meu servidor pois o mesmo possui uma divisão de raridade nos equipamentos, aonde iria diferenciar pela cor no nome dos itens. Agradeço desde já pela ajuda.
  22. Olá pessoal, Resolvi atualizar meu emulador dias atrás e encontrei algumas dúvidas, Baixei emuladores novos e exportei a item_db.conf atual direto para meu emulador. Porém o sistema aparenta não identificar os itens do item_db atualizado. Dúvidas: Obs.: Os arquivos que utilizo na minha data são os atuais do bro, extrai a grf hoje então a data está ok. Meu motivo para atualizar o emulador é colocar o item Chapéu de Tigre Branco e Orelhas de Fieiras que não estão funcionando no emulador. Agradeço a colaboração de todos. @edit Descobri o porque da item_db.conf nova não funcionar... O problema estava na transferência do arquivo. Baixei novamente o emulador e tentei novamente, resolvido. Pode fechar este tópico.
  23. Entendi, pensei que ainda existia limites igual nos emuladores antigos.. Obrigado.
  24. Olá pessoal, Andei vendo alguns vídeos do IRO e reparei que os danos de HIT dos players de la chegam a 100k de crítico sem problem. EX: Queria saber se é possível fazer essa modificação e qual arquivo que tenho que editar para aumentar o max do hit normal e do critical. Obrigado ~K4M4R40
×
×
  • Create New...

Important Information

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