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

Collapse

Очередь
  • Постов

    31
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные Collapse

  1. 32 минуты назад, Salfer сказал:

    такое сработает только при условии что ты используешь SQL базу данных.

    Если же нет, то даже если игрок получит гильдию, то при перезаходе она пропадет.

    Возможно следующуя команда поможет решить твою проблему:

    *instance_create("<instance name>"{,<instance mode>{,<owner id>}});

     

    Использую SQL, запросы шлю через query_sql().
    Разрешите в лс обратиться за помощью?)

  2. Здравствуйте, пишу скрипт, который будет выдавать игроку одну из выбранных гильдий.
    Кроме добавления строки в таблицу guild_member и изменения значения guild_id в таблице char для пользователя. Кроме этого с чем еще надо "пошаманить", чтобы завершить процесс?
    Или я совсем не в ту парафию полез? 

  3. 4 минуты назад, Salfer сказал:

    Создай новую тему, раз пишешь по другому вопросу, а вообще по мимо ошибки обычно пишет где именно допущена ошибка.

    Вопрос все тот же. Ошибка в куске 
     

    BUILDIN_FUNC(setnpcstats)
    {
    	TBL_NPC* nd = NULL;
    	unsigned int value = 0;
    	
    	if (script_hasdata(st,2))
    		nd = map_id2nd(script_getnum(st,2));
    	else
    		nd = map_id2nd(st->oid);
    	
    	if (nd == NULL)
    		return 0;
    	
    	if (script_hasdata(st,3))
    		value = script_getnum(st,3);
    	
    	if (!nd->status.hp)
    		status_calc_npc(nd, true);
    	else
    		status_calc_npc(nd, false);
    	break;
    	
    	nd->stat_point = value > 0 ? value : 999;
    	status_calc_misc(nd->bl, &nd->status, nd->level);
    }
  4. Скрытый текст
    В 05.12.2016в10:50 PM, Nurkz сказал:

    В rA и Herc уже можно давным давно давать статы нпсам, но если у нас eAthena, ничего страшного, всегда можно стырить =)

    Ну во первых изменим в src/map/script.c функции unitskilluseid и unitskillusepos

    Меняем в функции unitskilluseid:

    
    
    	if( bl != NULL )
    		unit_skilluse_id(bl, target_id, skill_id, skill_lv);

    На:

    
    
    	if (bl != NULL) {
    		if (bl->type == BL_NPC) {
    			if (!((TBL_NPC*)bl)->status.hp)
    				status_calc_npc(((TBL_NPC*)bl), true);
    			else
    				status_calc_npc(((TBL_NPC*)bl), false);
    		}
    		unit_skilluse_id(bl, target_id, skill_id, skill_lv);
        }

    И в unitskillusepos:

    
    
    	if( bl != NULL )
    		unit_skilluse_pos(bl, skill_x, skill_y, skill_id, skill_lv);

    На:

    
    
    	if (bl != NULL) {
    		if (bl->type == BL_NPC) {
    			if (!((TBL_NPC*)bl)->status.hp)
    				status_calc_npc(((TBL_NPC*)bl), true);
    			else
    				status_calc_npc(((TBL_NPC*)bl), false);
    		}
    		unit_skilluse_pos(bl, skill_x, skill_y, skill_id, skill_lv);
    	}

     

    Далее добавим функцию добавления статов нпсу =)

    
    
    BUILDIN_FUNC(setnpcstats)
    {
    	TBL_NPC* nd = NULL;
    	unsigned int value = 0;
    	
    	if (script_hasdata(st,2))
    		nd = map_id2nd(script_getnum(st,2));
    	else
    		nd = map_id2nd(st->oid);
    	
    	if (nd == NULL)
    		return 0;
    	
    	if (script_hasdata(st,3))
    		value = script_getnum(st,3);
    	
    	if (!nd->status.hp)
    		status_calc_npc(nd, true);
    	else
    		status_calc_npc(nd, false);
    	break;
    	
    	nd->stat_point = value > 0 ? value : 999;
    	status_calc_misc(nd->bl, &nd->status, nd->level);
    }

    и ниже описываем что она будет принимать: (Всего два необязательных параметра)

    
    
    BUILDIN_DEF(setnpcstats,"??"),

     

    Далее идем в src/map/status.c и функцию status_calc_bl_

    в свиче добавляем новый кейс которым будет выглядеть данным образом:

    
    
    case BL_NPC: status_calc_npc_(BL_CAST(BL_NPC,bl), first);        break;

    Далее ищем status_get_status_data и добавляем:

    
    
    case BL_NPC: return &((TBL_NPC*)bl)->status;

    То же самое ниже в status_get_base_status:

    
    
    case BL_NPC: return &((TBL_NPC*)bl)->status;

    И добавляем функцию status_calc_npc_:

    
    
    int status_calc_npc_(struct npc_data *nd, bool first)
    {
    	struct status_data *status = &nd->status;
    
    	if (!nd)
    		return 0;
    
    	if (first) {
    		status->hp = 1;
    		status->sp = 1;
    		status->max_hp = 1;
    		status->max_sp = 1;
    
    		status->def_ele = ELE_NEUTRAL;
    		status->ele_lv = 1;
    		status->race = RC_DEMIHUMAN;
    		status->size = nd->size;
    		status->rhw.range = 1 + status->size;
    		status->mode = (MD_CANMOVE|MD_CANATTACK);
    		status->speed = nd->speed;
    	}
    
    	status->str = nd->stat_point + nd->params.str;
    	status->agi = nd->stat_point + nd->params.agi;
    	status->vit = nd->stat_point + nd->params.vit;
    	status->int_= nd->stat_point + nd->params.int_;
    	status->dex = nd->stat_point + nd->params.dex;
    	status->luk = nd->stat_point + nd->params.luk;
    
    	status_calc_misc(&nd->bl, status, nd->level);
    	status_cpy(&nd->status, status);
    
    	return 0;
    }

    Далее заходим в src/map/status.h

    В самом верху песле строчки:

    
    
    struct mercenary_data;

    Добавляем:

    
    
    struct npc_data;

    Листаем в самый низ и находим:

    
    
    #define status_calc_mercenary(md, first) status_calc_bl_(&(md)->bl, SCB_ALL, first)

    Добавляем следующей строчкой:

    
    
    #define status_calc_npc(nd, first) status_calc_bl_(&(nd)->bl, SCB_ALL, first)

    Ниже видим:

    
    
    int status_calc_mercenary_(struct mercenary_data *md, bool first);

    Добавляем:

    
    
    int status_calc_npc_(struct npc_data *nd, bool first);

    Далее идём в src/map/npc.h и видим строчку:

    
    
    unsigned size : 2;

    Ниже добавляем:

    
    
    struct status_data status;
    unsigned int level,stat_point;
    struct s_npc_params {
    	unsigned short str, agi, vit, int_, dex, luk;
    } params;

    Вот вроде и всё, рекомпилим и пишем в скрипте:

    
    
    getmapxy .@map$, .@x, .@y, 1;
    setnpcstats getnpcid(0), 999;
    unitskillusepos getnpcid(0), WZ_METEOR, 10, .@x, .@y;

     

    ПС! Хотя я бы всё же рекомендовал перейти на rA/Herc и использовать setunitdata.

    Может кому нужно будет, пусть будет.

    При компиляции получаю ошибку

    error: incompatible type for argument 1 of 'status_calc_misc'
      status_calc_misc(nd->bl, &nd->status, nd->level);


     

  5. 20 часа назад, ucell-uz сказал:

    возможно вы чего то не поняли..

    используйте утилиту для работы с базами не phpmyadmin а прогу heidisql в 100 раз удобно

    вы скопировали на сервер или удалённый комп, я хз чё вы там используете, я приведу пример eathena/sql-files/  внутри этой папки вам нужно всего 2 файла импортировать в вашу субд базу а именно main.sql и logs.sql ни в коем случае не берите какие то другие файлы если вы юзаете афину е арена то и файлы надо заливать ихние, например с рАрены они не подойдут так же и с геркулесом, каждые из афин подстроены по разным стандартам..

    вам легче будет заново создать новую базу, и с папки sql-files залить базы.. за тем открываете экспортированную базу нахидите параметр login и там правите p1 s1 на что нибудь другое

    гляньте просто видео по настройке базы немного пролистайте видео, думаю будет вам это интересно

    https://cloud.mail.ru/public/UcQi2wyqXUsv/motr/re_and_prere.avi

    Я пользовался phpmyadmin. Сервер vds
    Проблема была в sql_mode

  6. Здравствуйте, при попытке создать аккаунт получаю эту ошибку:

    [SQL]: DB error - Incorrect datetime value: '0000-00-00 00:00:00' for column 'lastlogin' at row 1
    [Debug]: at account_sql.c:619 - INSERT INTO `login` (`account_id`, `userid`, `user_pass`, `sex`, `email`, `level`, `state`, `unban_time`, `expiration_time`, `logincount`, `lastlogin`, `last_ip`, `birthdate`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)

    Кто-нибудь сталкивался с этим?Есть идеи?

  7. Здравствуйте, возникла проблема с кирилицей в чате.
    Использую этот эмулятор, клиент kRO_Renewal_20160124, exe 2014-02-05bRagexe.
    Не отображаются русские, украинские символы в игре, в место них корейские.
    В чат логе все нормально отображается.
    Как решить проблему?

  8. Данные от базы скрыл, дабы не выставлять на всеобщее "осмотрение".

    <?php

    return array(

    // Example server configuration. You may have more arrays like this one to

    // specify multiple server groups (however they should share the same login

    // server whilst they are allowed to have multiple char/map pairs).

    array(

    'ServerName' => 'FluxRO',

    // Global database configuration (excludes logs database configuration).

    'DbConfig' => array(

    //'Socket' => '/tmp/mysql.sock',

    //'Port' => 3306,

    //'Encoding' => 'utf8', // Connection encoding -- use whatever here your MySQL tables collation is.

    'Convert' => 'utf8',

    // -- 'Convert' option only works when 'Encoding' option is specified and iconv (http://php.net/iconv) is available.

    // -- It specifies the encoding to convert your MySQL data to on the website (most likely needs to be utf8)

    'Hostname' => 'XXXXXX',

    'Username' => 'XXXXXX',

    'Password' => 'XXXXXX',

    'Database' => 'XXXXXX',

    'Persistent' => true,

    'Timezone' => null // Example: '+0:00' is UTC.

    // The possible values of 'Timezone' is as documented from the MySQL website:

    // "The value can be given as a string indicating an offset from UTC, such as '+10:00' or '-6:00'."

    // "The value can be given as a named time zone, such as 'Europe/Helsinki', 'US/Eastern', or 'MET'." (see below continuation!)

    // **"Named time zones can be used only if the time zone information tables in the mysql database have been created and populated."

    ),

    // This is kept separate because many people choose to have their logs

    // database accessible under different credentials, and often on a

    // different server entirely to ensure the reliability of the log data.

    'LogsDbConfig' => array(

    //'Socket' => '/tmp/mysql.sock',

    //'Port' => 3306,

    //'Encoding' => null, // Connection encoding -- use whatever here your MySQL tables collation is.

    'Convert' => 'utf8',

    // -- 'Convert' option only works when 'Encoding' option is specified and iconv (http://php.net/iconv) is available.

    // -- It specifies the encoding to convert your MySQL data to on the website (most likely needs to be utf8)

    'Hostname' => 'XXXXXX',

    'Username' => 'XXXXXX',

    'Password' => 'XXXXXX',

    'Database' => 'XXXXXX'

    'Persistent' => true,

    'Timezone' => null // Possible values is as described in the comment in DbConfig.

    ),

    // Login server configuration.

    'LoginServer' => array(

    'Address' => 'XXXXXX',

    'Port' => 6900,

    'UseMD5' => true,

    'NoCase' => true, // eA account case-sensitivity; Default: Case-INsensitive (true).

    'Level' => 0, // Default account level during registration.

    //'Database' => 'ragnarok'

    ),

    'CharMapServers' => array(

    array(

    'ServerName' => 'FluxRO',

    'BaseExpRates' => 1000,

    'JobExpRates' => 1000,

    'MvpExpRates' => 200,

    'DropRates' => 25,

    'MvpDropRates' => 25,

    'CardDropRates' => 25,

    'MaxCharSlots' => 9,

    'DateTimezone' => null, // Specifies game server's timezone for this char/map pair. (See: http://php.net/timezones)

    //'ResetDenyMaps' => 'sec_pri', // Defaults to 'sec_pri'. This value can be an array of map names.

    //'Database' => 'ragnarok', // Defaults to DbConfig.Database

    'CharServer' => array(

    'Address' => '62.76.185.127',

    'Port' => 6121

    ),

    'MapServer' => array(

    'Address' => '62.76.185.127',

    'Port' => 5121

    ),

    // -- WoE days and times --

    // First parameter: Starding day 0=Sunday / 1=Monday / 2=Tuesday / 3=Wednesday / 4=Thursday / 5=Friday / 6=Saturday

    // Second parameter: Starting hour in 24-hr format.

    // Third paramter: Ending day (possible value is same as starting day).

    // Fourth (final) parameter: Ending hour in 24-hr format.

    // ** (Note, invalid times are ignored silently.)

    'WoeDayTimes' => array(

    //array(0, '12:00', 0, '14:00'), // Example: Starts Sunday 12:00 PM and ends Sunday 2:00 PM

    //array(3, '14:00', 3, '15:00') // Example: Starts Wednesday 2:00 PM and ends Wednesday 3:00 PM

    ),

    // Modules and/or actions to disallow access to during WoE.

    'WoeDisallow' => array(

    array('module' => 'character', 'action' => 'online'), // Disallow access to "Who's Online" page during WoE.

    array('module' => 'character', 'action' => 'mapstats') // Disallow access to "Map Statistics" page during WoE.

    )

    )

    )

    )

    );

    ?>

  9. Доброго времени суток.

    Нужен партнёр для совместного проекта.

    Какие навыки требуются:

    1. Хорошее знание афины (еамод) , С++.

    2. Работа с клиентом.

    3. Полное отсутсвие лени и присутстиве интузиазма в работе.

    Немного о сервере:

    256/120 уровни, рейты ~5000x

    Огромное внимание сконцентрировано на различных квестах и фарме. Разные PvP зоны, каждая из которых по-своему интересна. Новые мвп и бонусы за них, новые подземелья, новые системы квестов и прочая хренотень для развлечения.

    Человек нужен ответственный, который серьёзно к этому отнесётся, и будет полностью предан делу :)

    Со своей стороны буду помогать, чем с могу, знания кое-какие есть, есть огромный комплект уже готовых квестов и различных скриптов, от Вас требуется корректировка и владения навыками настройки клиента.

    Всю финансовую часть беру на свою сторону, полностью спонсирую старт сервера и в дальнейшем, по мере-возможности всякие расходы. Грубо говоря, готов вложить до 1000$

    Желающие в ЛС.

  10. Был на майдане в "Небесной Сотне", но до "гарячих событий" не досидел, т.к. начались усложнения с гепатитом.

    Сейчас ситуация более-менее стабилизировалась, Крым бушует почему-то, восток тоже востал, "Правый сектор" взял всю власть к себе в кулак, каждая ОГА контролируется загонами самообороны, на западе большинство дорог перекрыты самообороной и чательно проверяют каждую странную машину, ловят по всей Украине Яныка. Опозиции никто не верит, как и Тимошенко, нам нужны новые политики. Партия регионов просит у народа прощения, мол их Янукович предал. Тот же беркут на коленях извинение просит. Сейчас у всех траур, все скорбят по погибшим. "Хоромы" прошлой власти люди отдают под санатории.

    Слава Украине!

    Правда Крым китайцам продали?

    Да, а ещё обезумевшие от безнаказанности терористы-бэндэровцы своих убивают.

    А беркут - герои

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