ucell-uz

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

25 сообщений в этой теме

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

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

0

Поделиться сообщением


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

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

0

Поделиться сообщением


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

Опубликовано: (изменено)

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

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

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

 

Изменено пользователем ucell-uz
0

Поделиться сообщением


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

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

 

0

Поделиться сообщением


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

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

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

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

 

 

0

Поделиться сообщением


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

что-то по типу

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

 

0

Поделиться сообщением


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

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

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
16 минуту назад, Кеник сказал:

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

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

0

Поделиться сообщением


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

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

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

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

г) Покажи char.c

0

Поделиться сообщением


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

на вопрос А) я указал ещё в первом посте будте чуток внимательнее либЦ 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
0

Поделиться сообщением


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

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

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

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Nezdeshniy сказал:

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

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

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

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

0

Поделиться сообщением


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

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

Изменено пользователем ucell-uz
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
37 минуты назад, ucell-uz сказал:

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

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

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
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; 

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

0

Поделиться сообщением


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

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

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

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

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

Изменено пользователем ucell-uz
0

Поделиться сообщением


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

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

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

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

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

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

1

Поделиться сообщением


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

спасибо я опробую! отпишусь

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 12.05.2017в5:26 AM, Кеник сказал:

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

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

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

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

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

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

0

Поделиться сообщением


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

Что в конфиге вписано?

0

Поделиться сообщением


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

в конфиге я попробовал 2 варианта 

1 - 1201,1,0:2301,1,0

2 - 1201,1,0,2301,1,0

оба не прокатили

0

Поделиться сообщением


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

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

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
40 минуты назад, Кеник сказал:

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

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

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

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

0

Поделиться сообщением


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

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

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

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

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

 

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

1

Поделиться сообщением


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

фух, заработало, спасибо огромное я запутался с этими цифрами...

0

Поделиться сообщением


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

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас