Назад

Добавление новой стартовой вещи

Автор: Sanasol: Дата: 12.08.2010

[color="#0000FF"][font="Comic Sans MS"]
1. Идем в src\char_sql\char.c
2. Находим:

int start_weapon = 1201;
int start_armor = 2301;


Добавляем ниже:
int start_myitem = 501;


Находим:
	char_dat.status.inventory[0].nameid = start_weapon; // Knife
char_dat.status.inventory[0].amount = 1;
char_dat.status.inventory[0].identify = 1;
char_dat.status.inventory[1].nameid = start_armor; // Cotton Shirt
char_dat.status.inventory[1].amount = 1;
char_dat.status.inventory[1].identify = 1;


Добавляем ниже:
	char_dat.status.inventory[1].nameid = start_myitem; // Яблоко
char_dat.status.inventory[1].amount = 1;
char_dat.status.inventory[1].identify = 1;


Находим:
	//Give the char the default items
if (start_weapon > 0) { //add Start Weapon (Knife?)
if( SQL_ERROR == Sql_Query(sql_handle, "INSERT INTO `%s` (`char_id`,`nameid`, `amount`, `identify`) VALUES ('%d', '%d', '%d', '%d')", inventory_db, char_id, start_weapon, 1, 1) )
Sql_ShowDebug(sql_handle);
}
if (start_armor > 0) { //Add default armor (cotton shirt?)
if( SQL_ERROR == Sql_Query(sql_handle, "INSERT INTO `%s` (`char_id`,`nameid`, `amount`, `identify`) VALUES ('%d', '%d', '%d', '%d')", inventory_db, char_id, start_armor, 1, 1) )
Sql_ShowDebug(sql_handle);
}


Добавляем ниже:
	if (start_myitem > 0) { //Добавляем дефолтное яблоко
if( SQL_ERROR == Sql_Query(sql_handle, "INSERT INTO `%s` (`char_id`,`nameid`, `amount`, `identify`) VALUES ('%d', '%d', '%d', '%d')", inventory_db, char_id, start_myitem, 1, 1) )
Sql_ShowDebug(sql_handle);
}


Находим:
		} else if (strcmpi(w1, "start_weapon") == 0) {
start_weapon = atoi(w2);
if (start_weapon < 0)
start_weapon = 0;
} else if (strcmpi(w1, "start_armor") == 0) {
start_armor = atoi(w2);
if (start_armor < 0)
start_armor = 0;


Добавляем ниже:
		} else if (strcmpi(w1, "start_myitem") == 0) {
start_armor = atoi(w2);
if (start_myitem < 0)
start_myitem = 0;


3. Заходим в conf\char_athena.conf

Находим:
// Starting weapon for new characters
start_weapon: 1201

// Starting armor for new characters
start_armor: 2301


Добавляем ниже:
// Стартовое яблоко
start_myitem: 501


Добавлять можно сколько угодно таких вещей.

Драгоценные 5 минут для вас потратил [/font][/color]


Актуально ТОЛЬКО для SQL версии эмулятора.

Автор: xDREDDx: Дата: 01.01.2011

Добавляем ниже:
PHP код:
} else if (strcmpi(w1, "start_myitem") == 0) {
start_armor = atoi(w2);
if (start_myitem < 0)
start_myitem = 0;


Не путайтесь)
start_armor = atoi(w2);

исправить на:
start_myitem = atoi(w2);

Автор: Asuma: Дата: 01.01.2011

Хм, разве не:


char_dat.status.inventory[2].nameid = start_myitem; // Яблоко
char_dat.status.inventory[2].amount = 1;
char_dat.status.inventory[2].identify = 1;

А то получается, что ты массив элемент заменяешь.

Автор: xDREDDx: Дата: 01.01.2011

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

Автор: Rectedo: Дата: 01.01.2011

а поч только для скл?

Автор: xDREDDx: Дата: 01.02.2011

В тхт тоже можно

Автор: Swizz: Дата: 01.02.2011

я думаю тхт не вариант)))желательно только SQL, пора забыть о тхт..)