Перейти к содержанию

коре девелоперы помогите с мелким фиксом


Рекомендуемые сообщения

помогите пожалуйста в Эс Эр цЭ подправить некоторые строки, мысль такова у меня Геркулес на либЦ 1,4,9

в конфиге /conf/char_athena.conf есть строка start_items: 1201,1,2:2301,1,16 у геркулеса при входе первого чарика эти шмотки лежат в инвентаре, а хотелось бы как у е-Арены и как у Р-арены чтобы при заходе они были уже сразу надеты на чарика, выручайте пожалуйста..

Ссылка на комментарий
Поделиться на другие сайты

Кто-нибудь осилил прочитать первую строку? Переведите, пожалуйстя. Я на таком языке не разговариваю :( Со вторым предложением пусть смутно, но понятно. Правда с ареной непонятка, к чему тут какие-то арены вообще?

Ссылка на комментарий
Поделиться на другие сайты

ээмм... а чё тут не понятно то? ну 1 я написал по русски, хотите то могу и так SRC вы кеник наверно неправильно поняли по поводу каких арен идёт речь...

у эмуля e-athena и у эмуля rathena при создании первого чарика даются нубо шмотки... то есть с конфига   /conf/char_athena.conf -  строка start_items: 1201,1,2:2301,1,16 верно? на этих эмулях данные шмотки уже сразу надеты на чарике, тоесть это рубаха коттно и нубо ножик,   на геркулесе же данные шмотки при создании любого чарика эти шмотки не надеты, а тупо лежат в инвентаре...Это не удобно .... вот и прошу помощи подогнать под ЕА или rA

чтобы при создании чарика этот нубо шмот был сразу надет, а не просто лежал в инвентаре  и ждал пока потыкают на них и оденут))

 

Изменено пользователем ucell-uz
Ссылка на комментарий
Поделиться на другие сайты

а поподробнее об этом?

1 час назад, Salfer сказал:

Если тебе не критично, то можешь всё привезать к переменной персонажа, и просто одеть при первом логине.

 

 

Ссылка на комментарий
Поделиться на другие сайты

Проверил у себя на ~месячной давности Геркулесе - сразу одетые шмотки. Стоит обновить, думаю. Они все конфиги в libconfig перевели

Ссылка на комментарий
Поделиться на другие сайты

16 минуту назад, Кеник сказал:

Проверил у себя на ~месячной давности Геркулесе - сразу одетые шмотки. Стоит обновить, думаю. Они все конфиги в libconfig перевели

я же в начале отписал что у меня libconfig 1.4.9 а не 1,5,0 система у меня старенькая 1,5,0 не потянет юзаю геркулеса не 2016 а 2015

Ссылка на комментарий
Поделиться на другие сайты

а) Про libconfig ничего не сказано в первом посте

б) Какая разница какая версия стоит в данном конкретном случае? Формат понимать перестанет? Или как? Я может чего-то упускаю, однако не углядел требований libconfig 1.5.0 или выше

в) А почему не потянет?

г) Покажи char.c

Ссылка на комментарий
Поделиться на другие сайты

на вопрос А) я указал ещё в первом посте будте чуток внимательнее либЦ 1,4,9 или есть какая то разница между libc и libconfig - это одно и тоже

на вопрос Б) моя система не тянет новые плюшки, то есть работает на кернеле 2,6... на более выше не могу перейти ибо много танцев с бубном будут

на вопрос В) не потянет потому что систему пересобирать придётся, более конкретно я ответил в вопросе Б)

последний ответ не  думаю что стоит кидать весь char.c ибо там много кину кусок под спойлером



/**
 * This file is part of Hercules.
 * http://herc.ws - http://github.com/HerculesWS/Hercules
 *
 * Copyright (C) 2012-2015  Hercules Dev Team
 * Copyright (C)  Athena Dev Teams
 *
 * Hercules is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
#define HERCULES_CORE

#include "config/core.h" // CONSOLE_INPUT
#include "char.h"

#include "char/HPMchar.h"
#include "char/geoip.h"
#include "char/int_auction.h"
#include "char/int_elemental.h"
#include "char/int_guild.h"
#include "char/int_homun.h"
#include "char/int_mail.h"
#include "char/int_mercenary.h"
#include "char/int_party.h"
#include "char/int_pet.h"
#include "char/int_quest.h"
#include "char/int_storage.h"
#include "char/inter.h"
#include "char/loginif.h"
#include "char/mapif.h"
#include "char/pincode.h"

#include "common/HPM.h"
#include "common/cbasetypes.h"
#include "common/console.h"
#include "common/core.h"
#include "common/db.h"
#include "common/memmgr.h"
#include "common/mapindex.h"
#include "common/mmo.h"
#include "common/nullpo.h"
#include "common/showmsg.h"
#include "common/socket.h"
#include "common/strlib.h"
#include "common/sql.h"
#include "common/timer.h"
#include "common/utils.h"

#include <signal.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#ifndef WIN32
#    include <unistd.h>
#endif

// private declarations
char char_db[256] = "char";
char scdata_db[256] = "sc_data";
char cart_db[256] = "cart_inventory";
char inventory_db[256] = "inventory";
char charlog_db[256] = "charlog";
char storage_db[256] = "storage";
char interlog_db[256] = "interlog";
char skill_db[256] = "skill";
char memo_db[256] = "memo";
char guild_db[256] = "guild";
char guild_alliance_db[256] = "guild_alliance";
char guild_castle_db[256] = "guild_castle";
char guild_expulsion_db[256] = "guild_expulsion";
char guild_member_db[256] = "guild_member";
char guild_position_db[256] = "guild_position";
char guild_skill_db[256] = "guild_skill";
char guild_storage_db[256] = "guild_storage";
char party_db[256] = "party";
char pet_db[256] = "pet";
char mail_db[256] = "mail"; // MAIL SYSTEM
char auction_db[256] = "auction"; // Auctions System
char friend_db[256] = "friends";
char hotkey_db[256] = "hotkey";
char quest_db[256] = "quest";
char homunculus_db[256] = "homunculus";
char skill_homunculus_db[256] = "skill_homunculus";
char mercenary_db[256] = "mercenary";
char mercenary_owner_db[256] = "mercenary_owner";
char ragsrvinfo_db[256] = "ragsrvinfo";
char elemental_db[256] = "elemental";
char account_data_db[256] = "account_data";
char acc_reg_num_db[32] = "acc_reg_num_db";
char acc_reg_str_db[32] = "acc_reg_str_db";
char char_reg_str_db[32] = "char_reg_str_db";
char char_reg_num_db[32] = "char_reg_num_db";

struct char_interface char_s;
struct char_interface *chr;

// show loading/saving messages
int save_log = 1;

char db_path[1024] = "db";

char wisp_server_name[NAME_LENGTH] = "Server";
char login_ip_str[128];
uint32 login_ip = 0;
uint16 login_port = 6900;
char char_ip_str[128];
char bind_ip_str[128];
uint32 bind_ip = INADDR_ANY;
int char_maintenance_min_group_id = 0;
bool char_new = true;

меня более устраивает вариант селфера...  вот как это правильно ток реализовать, хотя было бы лучше вырезать данный фикс с rАthenы, но не силён в src

22 часа назад, Salfer сказал:

OnPCLoginEvent: if(NEW_CHAR == 0){ set NEW_CHAR, 1; equip НОЖ; equip БРОНЯ; }

Изменено пользователем ucell-uz
Ссылка на комментарий
Поделиться на другие сайты

Я возможно ошибаюсь но,

какое отношение сорцы имеют к выполнению скрипта создания чара в бд ? На моем веку - одета или нет шмотка - четко описывалось состоянием строки в базе. Соответственно туда и копать. Да хоть всего чара сразу одевай...

Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, Nezdeshniy сказал:

Я возможно ошибаюсь но,

какое отношение сорцы имеют к выполнению скрипта создания чара в бд ? На моем веку - одета или нет шмотка - четко описывалось состоянием строки в базе. Соответственно туда и копать. Да хоть всего чара сразу одевай...

Именно. В старом геркулесе шмотки добавляются в инвентарь. В новом (после переезда на libconfig конфиги) там уже нормально задается. В старом геркулесе тупо в конфиге задается ID, количество и stackable. В новом уже указывается куда одеть. Копать в функцию char_make_new_char или как-то так называется.

И да.. Запросы все-таки в сорсах прописаны :D

Ссылка на комментарий
Поделиться на другие сайты

вот я и прошу помощи в этом деле...если кто-то разбирается помогите пожалуйста,  с выходом герка 2014-2015 они не доклепали или не доглядели, как в rAthena там всё таки куда лучше всё сделано... может кто подскажет где подправить то нужно!

Изменено пользователем ucell-uz
Ссылка на комментарий
Поделиться на другие сайты

37 минуты назад, ucell-uz сказал:

вот я и прошу помощи в этом деле...если кто-то разбирается помогите пожалуйста,  с выходом герка 2014-2015 они не доклепали или не доглядели, как в rAthena там всё таки куда лучше всё сделано... может кто подскажет где подправить то нужно!

Я даже стесняюсь спрашивать.. Для чего, по-твоему, я попросил char.c? Найди там функцию char_make_new_char и скинь её

Ссылка на комментарий
Поделиться на другие сайты

4 часа назад, Кеник сказал:

Я даже стесняюсь спрашивать.. Для чего, по-твоему, я попросил char.c? Найди там функцию char_make_new_char и скинь её

а  тогда сорян я не в курсе был)

вот под спойлером



int char_make_new_char_sql(struct char_session_data* sd, char* name_, int str, int agi, int vit, int int_, int dex, int luk, int slot, int hair_color, int hair_style) {
    char name[NAME_LENGTH];
    char esc_name[NAME_LENGTH*2+1];
    int char_id, flag, k, l;

    nullpo_retr(-2, sd);
    nullpo_retr(-2, name_);
    safestrncpy(name, name_, NAME_LENGTH);
    normalize_name(name,TRIM_CHARS);
    SQL->EscapeStringLen(inter->sql_handle, esc_name, name, strnlen(name, NAME_LENGTH));

    flag = chr->check_char_name(name,esc_name);
    if( flag < 0 )
        return flag;

    //check other inputs
#if PACKETVER >= 20120307
    if(slot < 0 || slot >= sd->char_slots)
#else
    if((slot < 0 || slot >= sd->char_slots) // slots
    || (str + agi + vit + int_ + dex + luk != 6*5 ) // stats
    || (str < 1 || str > 9 || agi < 1 || agi > 9 || vit < 1 || vit > 9 || int_ < 1 || int_ > 9 || dex < 1 || dex > 9 || luk < 1 || luk > 9) // individual stat values
    || (str + int_ != 10 || agi + luk != 10 || vit + dex != 10) ) // pairs
#endif
#if PACKETVER >= 20100413
        return -4; // invalid slot
#else
        return -2; // invalid input
#endif

    // check char slot
    if( sd->found_char[slot] != -1 )
        return -2; /* character account limit exceeded */
 

    chr->make_new_char_sql = char_make_new_char_sql; 

это всё что я смог найти по этому тЭгу

Ссылка на комментарий
Поделиться на другие сайты

извиняюсь за 2й пост...

если нужно более подробно то этот геркулес есть у меня в облаке

https://cloud.mail.ru/public/UcQi2wyqXUsv/motr/hathena_2015-12-17--15-58.rar

полный архив, ну это на всякий случай..

Изменено пользователем ucell-uz
Ссылка на комментарий
Поделиться на другие сайты

Попробуй вот так: https://pastebin.com/5PKxyVte

Этот char.c закинь в свою папку с эмулятором.

И потом в конфиге добавь шмоткам четвертый параметр - слот, куда одеть. 

start_items: 1201,1,2,slot:2301,1,16,slot

Вместо slot соответственно цифру слота подставить. Если не надо одевать - 0

  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

В 12.05.2017в5:26 AM, Кеник сказал:

Попробуй вот так: https://pastebin.com/5PKxyVte

Этот char.c закинь в свою папку с эмулятором.

И потом в конфиге добавь шмоткам четвертый параметр - слот, куда одеть. 

start_items: 1201,1,2,slot:2301,1,16,slot

Вместо slot соответственно цифру слота подставить. Если не надо одевать - 0

вообщем обпробовал, не сработало ничего, эти предметы эмуль вообще не видит где-то ошибка, но при компилинге ошибок не было.

Ссылка на комментарий
Поделиться на другие сайты

40 минуты назад, Кеник сказал:

Ну а я как написал? Посчитай количество параметров в моем варианте и в твоем

ээмм... дело в том что я и ваш вариант попробовал

start_items: 1201,1,2,3:2301,1,16,1

разные варианты пробовал, что-то шмот этот он  вообще не видит при создании чарика

Ссылка на комментарий
Поделиться на другие сайты

1 Параметр - ID шмотки

2 Параметр - Количество

3 Параметр - Стакается или нет? (0 - не стакается, 1 - стакается. Шмотки не стакаются)

4 Параметр - Слот, в который поместить шмотку.

 

Откуда у тебя цифры 2 и 16 в третьем параметре?

  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...
Яндекс.Метрика