Jump to content
  • 0

[Help] Client crashing everytime a 3rd Job Class does anything


Nemumancer

Question


  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  2
  • Reputation:   0
  • Joined:  01/10/12
  • Last Seen:  

Hi,

i just set up my first Server. Everything is working pretty well up till i changed to a 3rd Job Class (Warlock).

Now everytime i do something like use an Item/Skill the Head of my char starts to wobble uncontrollable and the game crashes with a RO default Error Message.

Setup:

Server

rAthena TXT rev[15418] Build with Visual C++ 2010 Express (10.0.30319.1)

changes made in Server Source are

common/mmo.h

// Copyright © Athena Dev Teams - Licensed under GNU GPL
// For more information, see LICENCE in the main folder

#ifndef	_MMO_H_
#define	_MMO_H_

#include "cbasetypes.h"
#include <time.h>

// server->client protocol version
//		0 - pre-?
//		1 - ?					- 0x196
//		2 - ?					- 0x78, 0x79
//		3 - ?					- 0x1c8, 0x1c9, 0x1de
//		4 - ?					- 0x1d7, 0x1d8, 0x1d9, 0x1da
//		5 - 2003-12-18aSakexe+   - 0x1ee, 0x1ef, 0x1f0, ?0x1c4, 0x1c5?
//		6 - 2004-03-02aSakexe+   - 0x1f4, 0x1f5
//		7 - 2005-04-11aSakexe+   - 0x229, 0x22a, 0x22b, 0x22c
// 20061023 - 2006-10-23aSakexe+   - 0x6b, 0x6d
// 20070521 - 2007-05-21aSakexe+   - 0x283
// 20070821 - 2007-08-21aSakexe+   - 0x2c5
// 20070918 - 2007-09-18aSakexe+   - 0x2d7, 0x2d9, 0x2da
// 20071106 - 2007-11-06aSakexe+   - 0x78, 0x7c, 0x22c
// 20080102 - 2008-01-02aSakexe+   - 0x2ec, 0x2ed , 0x2ee
// 20081126 - 2008-11-26aSakexe+   - 0x1a2
// 20090408 - 2009-04-08aSakexe+   - 0x44a (dont use as it overlaps with RE client packets)
// 20080827 - 2008-08-27aRagexeRE+ - First RE Client
// 20081217 - 2008-12-17aRagexeRE+ - 0x6d (Note: This one still use old Char Info Packet Structure)
// 20081218 - 2008-12-17bRagexeRE+ - 0x6d (Note: From this one client use new Char Info Packet Structure)
// 20090603 - 2009-06-03aRagexeRE+ - 0x7d7, 0x7d8, 0x7d9, 0x7da
// 20090617 - 2009-06-17aRagexeRE+ - 0x7d9
// 20090922 - 2009-09-22aRagexeRE+ - 0x7e5, 0x7e7, 0x7e8, 0x7e9
// 20091103 - 2009-11-03aRagexeRE+ - 0x7f7, 0x7f8, 0x7f9
// 20100105 - 2010-01-05aRagexeRE+ - 0x133, 0x800, 0x801
// 20100126 - 2010-01-26aRagexeRE+ - 0x80e
// 20100223 - 2010-02-23aRagexeRE+ - 0x80f
// 20100413 - 2010-04-13aRagexeRE+ - 0x6b
// 20100629 - 2010-06-29aRagexeRE+ - 0x2d0, 0xaa, 0x2d1, 0x2d2
// 20100721 - 2010-07-21aRagexeRE+ - 0x6b, 0x6d
// 20100727 - 2010-07-27aRagexeRE+ - 0x6b, 0x6d
// 20100803 - 2010-08-03aRagexeRE+ - 0x6b, 0x6d, 0x827, 0x828, 0x829, 0x82a, 0x82b, 0x82c, 0x842, 0x843
// 20101124 - 2010-11-24aRagexeRE+ - 0x856, 0x857, 0x858
// 20110111 - 2011-01-11aRagexeRE+ - 0x6b, 0x6d
// 20110928 - 2011-09-28aRagexeRE+ - 0x6b, 0x6d
// 20111025 - 2011-10-25aRagexeRE+ - 0x6b, 0x6d
// 20110315 - 2011-03-15aRagexeRE.exe

#ifndef PACKETVER
#define PACKETVER 20110315
//#define PACKETVER	20100730
#endif

// backward compatible PACKETVER 8 and 9
#if PACKETVER == 8
#undef PACKETVER
#define PACKETVER 20070521
#endif
#if PACKETVER == 9
#undef PACKETVER
#define PACKETVER 20071106
#endif

//Remove/Comment this line to disable sc_data saving. [skotlex]
#define ENABLE_SC_SAVING
//Remove/Comment this line to disable server-side hot-key saving support [skotlex]
//Note that newer clients no longer save hotkeys in the registry!
#define HOTKEY_SAVING

//The number is the max number of hotkeys to save
#if PACKETVER < 20090603
// (27 = 9 skills x 3 bars)			   (0x02b9,191)
#define MAX_HOTKEYS 27
#elif PACKETVER < 20090617
// (36 = 9 skills x 4 bars)			   (0x07d9,254)
#define MAX_HOTKEYS 36
#else
// (38 = 9 skills x 4 bars & 2 Quickslots)(0x07d9,268)
#define MAX_HOTKEYS 38
#endif

#define MAX_MAP_PER_SERVER 1500 // Increased to allow creation of Instance Maps
#define MAX_INVENTORY 100
//Max number of characters per account. Note that changing this setting alone is not enough if the client is not hexed to support more characters as well.
#define MAX_CHARS 9
//Number of slots carded equipment can have. Never set to less than 4 as they are also used to keep the data of forged items/equipment. [skotlex]
//Note: The client seems unable to receive data for more than 4 slots due to all related packets having a fixed size.
#define MAX_SLOTS 4
//Max amount of a single stacked item
#define MAX_AMOUNT 30000
#define MAX_ZENY 1000000000
#define MAX_FAME 1000000000
#define MAX_CART 100
#define MAX_SKILL 2540
#define GLOBAL_REG_NUM 256
#define ACCOUNT_REG_NUM 64
#define ACCOUNT_REG2_NUM 16
//Should hold the max of GLOBAL/ACCOUNT/ACCOUNT2 (needed for some arrays that hold all three)
#define MAX_REG_NUM 256
#define DEFAULT_WALK_SPEED 150
#define MIN_WALK_SPEED 0
#define MAX_WALK_SPEED 1000
#define MAX_STORAGE 600
#define MAX_GUILD_STORAGE 600
#define MAX_PARTY 12
#define MAX_GUILD 16+10*6	// increased max guild members +6 per 1 extension levels [Lupus]
#define MAX_GUILDPOSITION 20	// increased max guild positions to accomodate for all members [Valaris] (removed) [PoW]
#define MAX_GUILDEXPULSION 32
#define MAX_GUILDALLIANCE 16
#define MAX_GUILDSKILL	15 // increased max guild skills because of new skills [sara-chan]
#define MAX_GUILDCASTLE 34	// Updated to include new entries for WoE:SE. [L0ne_W0lf]
#define MAX_GUILDLEVEL 50
#define MAX_GUARDIANS 8	//Local max per castle. [skotlex]
#define MAX_QUEST_DB 2000 //Max quests that the server will load
#define MAX_QUEST_OBJECTIVES 3 //Max quest objectives for a quest

// for produce
#define MIN_ATTRIBUTE 0
#define MAX_ATTRIBUTE 4
#define ATTRIBUTE_NORMAL 0
#define MIN_STAR 0
#define MAX_STAR 3

#define MAX_STATUS_TYPE 5

#define WEDDING_RING_M 2634
#define WEDDING_RING_F 2635

//For character names, title names, guilds, maps, etc.
//Includes null-terminator as it is the length of the array.
#define NAME_LENGTH (23 + 1)
//For item names, which tend to have much longer names.
#define ITEM_NAME_LENGTH 50
//For Map Names, which the client considers to be 16 in length including the .gat extension
#define MAP_NAME_LENGTH (11 + 1)
#define MAP_NAME_LENGTH_EXT (MAP_NAME_LENGTH + 4)

#define MAX_FRIENDS 40
#define MAX_MEMOPOINTS 3

//Size of the fame list arrays.
#define MAX_FAME_LIST 10

//Limits to avoid ID collision with other game objects
#define START_ACCOUNT_NUM 2000000
#define END_ACCOUNT_NUM 100000000
#define START_CHAR_NUM 150000

//Guilds
#define MAX_GUILDMES1 60
#define MAX_GUILDMES2 120

//Base Homun skill.
#define HM_SKILLBASE 8001
#define MAX_HOMUNSKILL 16
#define MAX_HOMUNCULUS_CLASS	60	//[orn], Increased to 60 from 16 to allow new Homun-S.
#define HM_CLASS_BASE 6001
#define HM_CLASS_MAX (HM_CLASS_BASE+MAX_HOMUNCULUS_CLASS-1)

/ [img=http://rathena.org/board/public/style_emoticons/default/ani_mail.gif] System
#define MAIL_MAX_INBOX 30
#define MAIL_TITLE_LENGTH 40
#define MAIL_BODY_LENGTH 200

//Mercenary System
#define MC_SKILLBASE 8201
#define MAX_MERCSKILL 40
#define MAX_MERCENARY_CLASS 44

enum item_types {
IT_HEALING = 0,
IT_UNKNOWN, //1
IT_USABLE,  //2
IT_ETC,	 //3
IT_WEAPON,  //4
IT_ARMOR,   //5
IT_CARD,	//6
IT_PETEGG,  //7
IT_PETARMOR,//8
IT_UNKNOWN2,//9
IT_AMMO,	//10
IT_DELAYCONSUME,//11
IT_THROWWEAPON= 17,//17
IT_CASH = 18,
IT_MAX
};


//Questlog system [Kevin] [inkfish]
typedef enum quest_state { Q_INACTIVE, Q_ACTIVE, Q_COMPLETE } quest_state;

struct quest {
int quest_id;
unsigned int time;
int count[MAX_QUEST_OBJECTIVES];
quest_state state;
};

struct item {
int id;
short nameid;
short amount;
unsigned short equip; // location(s) where item is equipped (using enum equip_pos for bitmasking)
char identify;
char refine;
char attribute;
short card[MAX_SLOTS];
unsigned int expire_time;
};

struct point {
unsigned short map;
short x,y;
};

enum e_skill_flag
{
SKILL_FLAG_PERMANENT,
SKILL_FLAG_TEMPORARY,
SKILL_FLAG_PLAGIARIZED,
SKILL_FLAG_REPLACED_LV_0, // temporary skill overshadowing permanent skill of level 'N - SKILL_FLAG_REPLACED_LV_0'
/ 
};

struct s_skill {
unsigned short id;
unsigned char lv;
unsigned char flag; // see enum e_skill_flag
};

struct global_reg {
char str[32];
char value[256];
};

//Holds array of global registries, used by the char server and converter.
struct accreg {
int account_id, char_id;
int reg_num;
struct global_reg reg[MAX_REG_NUM];
};

//For saving status changes across sessions. [skotlex]
struct status_change_data {
unsigned short type; //SC_type
long val1, val2, val3, val4, tick; //Remaining duration.
};

struct storage_data {
int storage_amount;
struct item items[MAX_STORAGE];
};

struct guild_storage {
int dirty;
int guild_id;
short storage_status;
short storage_amount;
struct item items[MAX_GUILD_STORAGE];
};

struct s_pet {
int account_id;
int char_id;
int pet_id;
short class_;
short level;
short egg_id;//pet egg id
short equip;//pet equip name_id
short intimate;//pet friendly
short hungry;//pet hungry
char name[NAME_LENGTH];
char rename_flag;
char incuvate;
};

struct s_homunculus {	//[orn]
char name[NAME_LENGTH];
int hom_id;
int char_id;
short class_;
int hp,max_hp,sp,max_sp;
unsigned int intimacy;	//[orn]
short hunger;
struct s_skill hskill[MAX_HOMUNSKILL]; //albator
short skillpts;
short level;
unsigned int exp;
short rename_flag;
short vaporize; //albator
int str ;
int agi ;
int vit ;
int int_ ;
int dex ;
int luk ;
};

struct s_mercenary {
int mercenary_id;
int char_id;
short class_;
int hp, sp;
unsigned int kill_count;
unsigned int life_time;
};

struct s_friend {
int account_id;
int char_id;
char name[NAME_LENGTH];
};

#ifdef HOTKEY_SAVING
struct hotkey {
unsigned int id;
unsigned short lv;
unsigned char type; // 0: item, 1: skill
};
#endif

struct mmo_charstatus {
int char_id;
int account_id;
int partner_id;
int father;
int mother;
int child;

unsigned int base_exp,job_exp;
int zeny;

short class_;
unsigned int status_point,skill_point;
int hp,max_hp,sp,max_sp;
unsigned int option;
short manner;
unsigned char karma;
short hair,hair_color,clothes_color;
int party_id,guild_id,pet_id,hom_id,mer_id;
int fame;

// Mercenary Guilds Rank
int arch_faith, arch_calls;
int spear_faith, spear_calls;
int sword_faith, sword_calls;

short weapon; // enum weapon_type
short shield; // view-id
short head_top,head_mid,head_bottom;
short robe;

char name[NAME_LENGTH];
unsigned int base_level,job_level;
short str,agi,vit,int_,dex,luk;
unsigned char slot,sex;

uint32 mapip;
uint16 mapport;

struct point last_point,save_point,memo_point[MAX_MEMOPOINTS];
struct item inventory[MAX_INVENTORY],cart[MAX_CART];
struct storage_data storage;
struct s_skill skill[MAX_SKILL];

struct s_friend friends[MAX_FRIENDS]; //New friend system [skotlex]
#ifdef HOTKEY_SAVING
struct hotkey hotkeys[MAX_HOTKEYS];
#endif
bool show_equip;
short rename;

time_t delete_date;
};

typedef enum mail_status {
MAIL_NEW,
MAIL_UNREAD,
MAIL_READ,
} mail_status;

struct mail_message {
unsigned int id;
int send_id;
char send_name[NAME_LENGTH];
int dest_id;
char dest_name[NAME_LENGTH];
char title[MAIL_TITLE_LENGTH];
char body[MAIL_BODY_LENGTH];

mail_status status;
time_t timestamp; // marks when the message was sent

int zeny;
struct item item;
};

struct mail_data {
short amount;
bool full;
short unchecked, unread;
struct mail_message msg[MAIL_MAX_INBOX];
};

struct auction_data {
unsigned int auction_id;
int seller_id;
char seller_name[NAME_LENGTH];
int buyer_id;
char buyer_name[NAME_LENGTH];

struct item item;
// This data is required for searching, as itemdb is not read by char server
char item_name[iTEM_NAME_LENGTH];
short type;

unsigned short hours;
int price, buynow;
time_t timestamp; // auction's end time
int auction_end_timer;
};

struct registry {
int global_num;
struct global_reg global[GLOBAL_REG_NUM];
int account_num;
struct global_reg account[ACCOUNT_REG_NUM];
int account2_num;
struct global_reg account2[ACCOUNT_REG2_NUM];
};

struct party_member {
int account_id;
int char_id;
char name[NAME_LENGTH];
unsigned short class_;
unsigned short map;
unsigned short lv;
unsigned leader : 1,
  		  online : 1;
};

struct party {
int party_id;
char name[NAME_LENGTH];
unsigned char count; //Count of online characters.
unsigned exp : 1,
			item : 2; //&1: Party-Share (round-robin), &2: pickup style: shared.
struct party_member member[MAX_PARTY];
};

struct map_session_data;
struct guild_member {
int account_id, char_id;
short hair,hair_color,gender,class_,lv;
uint64 exp;
int exp_payper;
short online,position;
char name[NAME_LENGTH];
struct map_session_data *sd;
unsigned char modified;
};

struct guild_position {
char name[NAME_LENGTH];
int mode;
int exp_mode;
unsigned char modified;
};

struct guild_alliance {
int opposition;
int guild_id;
char name[NAME_LENGTH];
};

struct guild_expulsion {
char name[NAME_LENGTH];
char mes[40];
int account_id;
};

struct guild_skill {
int id,lv;
};

struct guild {
int guild_id;
short guild_lv, connect_member, max_member, average_lv;
uint64 exp;
unsigned int next_exp;
int skill_point;
char name[NAME_LENGTH],master[NAME_LENGTH];
struct guild_member member[MAX_GUILD];
struct guild_position position[MAX_GUILDPOSITION];
char mes1[MAX_GUILDMES1],mes2[MAX_GUILDMES2];
int emblem_len,emblem_id;
char emblem_data[2048];
struct guild_alliance alliance[MAX_GUILDALLIANCE];
struct guild_expulsion expulsion[MAX_GUILDEXPULSION];
struct guild_skill skill[MAX_GUILDSKILL];

unsigned short save_flag; // for TXT saving
};

struct guild_castle {
int castle_id;
int mapindex;
char castle_name[NAME_LENGTH];
char castle_event[NAME_LENGTH];
int guild_id;
int economy;
int defense;
int triggerE;
int triggerD;
int nextTime;
int payTime;
int createTime;
int visibleC;
struct {
	unsigned visible : 1;
	int id; // object id
} guardian[MAX_GUARDIANS];
int* temp_guardians; // ids of temporary guardians (mobs)
int temp_guardians_max;
};

struct fame_list {
int id;
int fame;
char name[NAME_LENGTH];
};

enum {
GBI_EXP	=1,		// ƒMƒ‹ƒh‚ÌEXP
GBI_GUILDLV,		// ƒMƒ‹ƒh‚ÌLv
GBI_SKILLPOINT,		// ƒMƒ‹ƒh‚̃XƒLƒ‹ƒ|ƒCƒ“ƒg
GBI_SKILLLV,		// ƒMƒ‹ƒhƒXƒLƒ‹Lv
};

enum {
GMI_POSITION	=0,		// ƒƒ“ƒo[‚Ì–ðE•ÏX
GMI_EXP,
GMI_HAIR,
GMI_HAIR_COLOR,
GMI_GENDER,
GMI_CLASS,
GMI_LEVEL,
};

enum {
GD_SKILLBASE=10000,
GD_APPROVAL=10000,
GD_KAFRACONTRACT=10001,
GD_GUARDRESEARCH=10002,
GD_GUARDUP=10003,
GD_EXTENSION=10004,
GD_GLORYGUILD=10005,
GD_LEADERSHIP=10006,
GD_GLORYWOUNDS=10007,
GD_SOULCOLD=10008,
GD_HAWKEYES=10009,
GD_BATTLEORDER=10010,
GD_REGENERATION=10011,
GD_RESTORE=10012,
GD_EMERGENCYCALL=10013,
GD_DEVELOPMENT=10014,
};


//These mark the ID of the jobs, as expected by the client. [skotlex]
enum {
JOB_NOVICE,
JOB_SWORDMAN,
JOB_MAGE,
JOB_ARCHER,
JOB_ACOLYTE,
JOB_MERCHANT,
JOB_THIEF,
JOB_KNIGHT,
JOB_PRIEST,
JOB_WIZARD,
JOB_BLACKSMITH,
JOB_HUNTER,
JOB_ASSASSIN,
JOB_KNIGHT2,
JOB_CRUSADER,
JOB_MONK,
JOB_SAGE,
JOB_ROGUE,
JOB_ALCHEMIST,
JOB_BARD,
JOB_DANCER,
JOB_CRUSADER2,
JOB_WEDDING,
JOB_SUPER_NOVICE,
JOB_GUNSLINGER,
JOB_NINJA,
JOB_XMAS,
JOB_SUMMER,
JOB_MAX_BASIC,

JOB_NOVICE_HIGH = 4001,
JOB_SWORDMAN_HIGH,
JOB_MAGE_HIGH,
JOB_ARCHER_HIGH,
JOB_ACOLYTE_HIGH,
JOB_MERCHANT_HIGH,
JOB_THIEF_HIGH,
JOB_LORD_KNIGHT,
JOB_HIGH_PRIEST,
JOB_HIGH_WIZARD,
JOB_WHITESMITH,
JOB_SNIPER,
JOB_ASSASSIN_CROSS,
JOB_LORD_KNIGHT2,
JOB_PALADIN,
JOB_CHAMPION,
JOB_PROFESSOR,
JOB_STALKER,
JOB_CREATOR,
JOB_CLOWN,
JOB_GYPSY,
JOB_PALADIN2,

JOB_BABY,
JOB_BABY_SWORDMAN,
JOB_BABY_MAGE,
JOB_BABY_ARCHER,
JOB_BABY_ACOLYTE,
JOB_BABY_MERCHANT,
JOB_BABY_THIEF,
JOB_BABY_KNIGHT,
JOB_BABY_PRIEST,
JOB_BABY_WIZARD,
JOB_BABY_BLACKSMITH,
JOB_BABY_HUNTER,
JOB_BABY_ASSASSIN,
JOB_BABY_KNIGHT2,
JOB_BABY_CRUSADER,
JOB_BABY_MONK,
JOB_BABY_SAGE,
JOB_BABY_ROGUE,
JOB_BABY_ALCHEMIST,
JOB_BABY_BARD,
JOB_BABY_DANCER,
JOB_BABY_CRUSADER2,
JOB_SUPER_BABY,

JOB_TAEKWON,
JOB_STAR_GLADIATOR,
JOB_STAR_GLADIATOR2,
JOB_SOUL_LINKER,
/**
 * 3.1 (2.1)
 **/
JOB_RUNE_KNIGHT = 4054,
JOB_WARLOCK,
JOB_RANGER,
JOB_ARCH_BISHOP,
JOB_MECHANIC,
JOB_GUILLOTINE_CROSS,
/**
 * 3.1 (2.1 Trans)
 **/
JOB_RUNE_KNIGHT_T,
JOB_WARLOCK_T,
JOB_RANGER_T,
JOB_ARCH_BISHOP_T,
JOB_MECHANIC_T,
JOB_GUILLOTINE_CROSS_T,
/**
 * 3.2 (2.2)
 **/
JOB_ROYAL_GUARD,
JOB_SORCERER,
JOB_MINSTREL,
JOB_WANDERER,
JOB_SURA,
JOB_GENETIC,
JOB_SHADOW_CHASER,
/**
 * 3.2 (2.2 Trans)
 **/
JOB_ROYAL_GUARD_T,
JOB_SORCERER_T,
JOB_MINSTREL_T,
JOB_WANDERER_T,
JOB_SURA_T,
JOB_GENETIC_T,
JOB_SHADOW_CHASER_T,
/**
 * 3.x Mounts / Vehicles
 **/
JOB_RUNE_KNIGHT2,
JOB_RUNE_KNIGHT_T2,
JOB_ROYAL_GUARD2,
JOB_ROYAL_GUARD_T2,
JOB_RANGER2,
JOB_RANGER_T2,
JOB_MECHANIC2,
JOB_MECHANIC_T2,

JOB_MAX,
};

enum {
SEX_FEMALE = 0,
SEX_MALE,
SEX_SERVER
};

// sanity checks...
#if MAX_ZENY > INT_MAX
#error MAX_ZENY is too big
#endif

#endif /* _MMO_H_ */

Client

Unpatched Miruku [15122011] from http://miruku.rathena.org/

Basic rAthena Client from http://rathena.org/b...rathena-client/

EXE provided as is from Basic rAthena Client [20110315]

Client DIFF properties

[uI]_(1)_Allow Chat Flood (25 lines)
[uI]_Y_Change Gravity Error Handler (Recommended)
[uI]_Y_Custom Window Title (Recommended)
[Fix]_Y_Disable 1rag1 & 1sak1 (Recommended)
[Fix]_Y_Disable RagexeRE Filename Check (Recommended)
[Fix]_Y_Disable HShield (Recommended)
[Data]_(7)_Enable Multiple GRFs
[uI]_Y_Enable Official Custom Fonts
[uI]_Y_Extended Chat Box
[uI]_Y_Extended Chat Room Box
[uI]_Y_Extended PM Box
[uI]_(4)_Fix Camera Angles (Recommended)
[Add]_Y_Increase Headgear ViewID to 2000
[uI]_(5)_Increase Zoom Out 75%
[Fix]_Y_KOREA ServiceType XML Fix (Recommended)
[Data]_Y_Load Lua Before Lub
[Data]_Y_Read Data Folder First (Recommended)
[Data]_Y_Read msgstringtable.txt (Recommended)
[Data]_Y_Read questid2display.txt (Recommended)
[uI]_Y_Remove Gravity Ads
[uI]_Y_Remove Gravity Logo
[Fix]_Y_Restore Login Window
[Add]_Y_Disable Nagle Algorithm
[uI]_(6)_Skip License Screen (Recommended)
[uI]_Y_Skip Service Select
[uI]_Y_Translate Client In English (Recommended)
[Data]_Y_Use Custom Aura Sprites
[Data]_(8)_Use Plain Text Descriptions (Recommended)
[uI]_Y_Use Ragnarok Icon

clientinfo.xml

<?xml version="1.0" encoding="euc-kr" ?> <clientinfo>
<desc>Ragnarok Client Information</desc>
<servicetype>korea</servicetype>
<servertype>sakray</servertype>
<extendedslot></extendedslot>
<readfolder></readfolder>

<connection>
<display>LAN</display>
<desc>none</desc>
<balloon>Rate:10/10/10</balloon>
<address>192.168.2.107</address>
<port>6900</port>
<version>0</version>
<langtype>0</langtype>
<registrationweb>Web site</registrationweb>
<aid>
<admin></admin>
</aid>
</connection>
</clientinfo>

data.ini

[Data]
1=data.grf
2=rdata.grf

Please can someone help me out with this?

Edited by Nemumancer
Link to comment
Share on other sites

14 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  31
  • Topics Per Day:  0.01
  • Content Count:  967
  • Reputation:   53
  • Joined:  11/13/11
  • Last Seen:  

no idea

with problem

since warlock works fine with 2011 06 ++

might be

outdated lub and lua

btw

Data.ini

0=yourserver.grf ( remove if using data)

1=rdata.grf

2=data.grf

and try langtype 1 <-- rocks Recommended by me~ ( 0,1 or 7 ) [ i use hex to combine those 3 :)) ]

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  11
  • Topics Per Day:  0.00
  • Content Count:  109
  • Reputation:   19
  • Joined:  11/14/11
  • Last Seen:  

Sounds like its a lua error maybe during using skills? error like rangenil or something to that effect try this:

skillinfoz/skillinfo_f.lua

-- Function #0
GetInheritJob = function(job)
JobInheritTable = nil
JobInheritTable = {}
if job == nil then
 return nil
end
local i = 0
while job ~= nil do
 i = i + 1
 JobInheritTable[i] = job
 job = JOB_INHERIT_LIST[job]
end
return i
end
All_NeedSkillList = {}
-- Function #1
CheckNeedSkillList = function(skillInfo, skillDepth)
if All_NeedSkillList ~= nil and skillInfo ~= nil then
 local depth = 0
 while All_NeedSkillList[depth] do
  local idx = 1
  t_skillInfo = All_NeedSkillList[depth][idx]
  while t_skillInfo do
if t_skillInfo[1] == skillInfo[1] then
 if skillDepth > depth then
  return false
 end
 if t_skillInfo[2] < skillInfo[2] then
  All_NeedSkillList[depth][idx] = skillInfo
 end
 return true
end
idx = idx + 1
t_skillInfo = All_NeedSkillList[depth][idx]
  end
  depth = depth + 1
 end
end
return false
end
-- Function #2
SetNeedSkillList = function(SKID, depth)
local skillInfo = SKILL_INFO_LIST[sKID]
if skillInfo ~= nill then
 local bIsNeedSkillList = false
 local needSkillList = skillInfo.NeedSkillList
 if needSkillList ~= nil then
  for j, k in pairs(JobInheritTable) do
local jobID = JOB_INHERIT_LIST2[k]
if jobID ~= -1 and jobID ~= nil then
 k = jobID
end
if needSkillList[k] ~= nil then
 needSkillList = needSkillList[k]
 bIsNeedSkillList = true
 break
end
  end
 end
 if bIsNeedSkillList == false then
  needSkillList = skillInfo["_NeedSkillList"]
 end
 if needSkillList ~= nil then
  for idx, skill in pairs(needSkillList) do
if CheckNeedSkillList(skill, depth) == false then
 local listSize = 0
 if All_NeedSkillList[depth] == nil then
  All_NeedSkillList[depth] = {}
 else
  listSize = getTableSize(All_NeedSkillList[depth])
 end
 All_NeedSkillList[depth][listSize + 1] = skill
 SetNeedSkillList(skill[1], depth +1)
end
  end
 end
end
end
-- Function #3
GetSkillInfo = function(SKID)
All_NeedSkillList = nil
All_NeedSkillList = {}
local skillInfo = SKILL_INFO_LIST[sKID]
if skillInfo ~= nill then
 local strSkillID = skillInfo[1]
 local strSkillName = skillInfo.SkillName
 local MaxLv = skillInfo.MaxLv
 local UserUpgradable = 1
 if skillInfo.Type == "Quest" or skillInfo.Type == "Soul" then
  UserUpgradable = 0
 end
 SetNeedSkillList(SKID, 0)
 return strSkillID, strSkillName, MaxLv, UserUpgradable
end
return "", "", -1, -1
end
-- Function #4
AddNeedSkillList = function(SKID)
if All_NeedSkillList ~= nil then
 local depth = 0
 while All_NeedSkillList[depth] do
  local idx = 1
  skillInfo = All_NeedSkillList[depth][idx]
  while skillInfo do
if skillInfo[2] == nil then
 skillInfo[2] = 0
end
c_AddNeedSkillList(SKID, skillInfo[1], skillInfo[2])
idx = idx + 1
skillInfo = All_NeedSkillList[depth][idx]
  end
  depth = depth + 1
 end
end
end
-- Function #5
InitSkillTreeView = function(jobID, arrayNum)
local skillList = SKILL_TREEVIEW_FOR_JOB[jobID]
if skillList ~= nil then
 local skillPos = 0
 local listSize = getTableSize(skillList)
 while listSize > 0 do
  local skillID = skillList[skillPos]
  if skillID ~= nil then
local strSkillID, strSkillName, MaxLv, UserUpgradable = GetSkillInfo(skillID)
if strSkillID ~= nil and strSkillID ~= "" then
 c_AddSkillList(arrayNum, skillID, strSkillID, skillPos, MaxLv, UserUpgradable)
 AddNeedSkillList(skillID)
end
listSize = listSize - 1
  end
  skillPos = skillPos + 1
 end
end
end
-- Function #6
GetSkillIdName = function(SkillID)
local obj = SKILL_INFO_LIST[skillID]
if obj ~= nil then
 obj = SKILL_INFO_LIST[skillID][1]
end
if obj ~= nil then
 return obj
end
return ""
end
-- Function #7
GetSkillName = function(SkillID)
local obj = SKILL_INFO_LIST[skillID]
if obj ~= nil then
 obj = SKILL_INFO_LIST[skillID].SkillName
end
if obj ~= nil then
 return obj
end
return ""
end
-- Function #8
IsLevelUseSkill = function(SkillID)
local obj = SKILL_INFO_LIST[skillID]
if obj ~= nil then
 obj = SKILL_INFO_LIST[skillID].SpAmount
end
if obj ~= nil then
 return 1
end
return 0
end
-- Function #9
GetLevelUseSpAmount = function(SkillID, idx)
local obj = SKILL_INFO_LIST[skillID]
if obj ~= nil then
 obj = SKILL_INFO_LIST[skillID].SpAmount
end
if obj ~= nil then
 obj = SKILL_INFO_LIST[skillID].SpAmount[idx]
end
if obj ~= nil then
 return obj
end
return 0
end
-- Function #10
GetSkillDescript = function(JobID, SKID, bChangeColor)
local descript = ""
local obj = SKILL_DESCRIPT[sKID]
if obj ~= nil then
 local s = "777777½ÀµæÁ¶°Ç : "
 for i,v in pairs(obj) do
  s_pos, f_pos = string.find(v, s)
  bCopyText = false
 if s_pos ~= nil then
  s_pos = s_pos - 1
  subStr = string.sub(v, 1, s_pos - 1)
if bChangeColor == 1 then
 local temp = subStr .. "^FF1493" .. string.sub(v, s_pos + 7, -1)
 v = temp
end
if s_pos > 1 then
 for j, k in pairs(JobInheritTable) do
  if subStr == string.format("%d", k) then
   descript = descript .. string.sub(v, s_pos, -1)
   descript = descript .. "rn"
   break
  end
 end
else
 bCopyText = true
end
  else
bCopyText = true
  end
  if bCopyText == true then
descript = descript .. v
descript = descript .. "rn"
  end
 end
end
return descript
end
-- Function #11
TestFile = function(saveFileName)
saveFile = io.open(saveFileName, "w")
if saveFile ~= nil and All_NeedSkillList ~= nil then
 local depth = 0
 while All_NeedSkillList[depth] do
  local idx = 1
  skillInfo = All_NeedSkillList[depth][idx]
  while skillInfo do
saveFile:write(string.format("[%d,%d]n", skillInfo[1], skillInfo[2]))
idx = idx + 1
skillInfo = All_NeedSkillList[depth][idx]
  end
  depth = depth + 1
 end
end
io.close(saveFile)
end
GetSkillAttackRange = function(in_SKID, in_Level)
  local attackRange = 1
  local attackRangeOfMaxLv = 0
  local maxLv = 0
  local obj = SKILL_INFO_LIST[in_SKID]
  if obj ~= nil then
  obj = SKILL_INFO_LIST[in_SKID].AttackRange
  maxLv = SKILL_INFO_LIST[in_SKID].MaxLv
  end
  if obj ~= nil then
  attackRange = SKILL_INFO_LIST[in_SKID].AttackRange[in_Level]
  end

  if attackRangeOfMaxLv == nil then
  attackRangeOfMaxLv = 0
  end
  if attackRange ~= nil then
  return attackRange, attackRangeOfMaxLv
  end
  return 1, attackRangeOfMaxLv
end

Edited by Slim
Please use [codebox] when it's more than 10-15 lines
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  2
  • Reputation:   0
  • Joined:  01/10/12
  • Last Seen:  

Error Message on Crash:

Module Name: E:\Ragnarok\Amaterasu.exe
Time Stamp: 0x4d7f06a5 - Tue Mar 15 07:26:45 2011


Exception Type: 0xc0000005

0x005af8cf	Amaterasu.exe
0x40f00000	
0x00645030	Amaterasu.exe
0x640076a5	

eax: 0x00000000	ebx: 0x08fec7b8
ecx: 0xffffffad	edx: 0x00000000
esi: 0x10587fa8	edi: 0x00000000
ebp: 0x10587fa8	esp: 0x0018fab4

stack 0018fab4 - 0018feb4
0018FAB4 : 00 00 00 00 00 00 00 00 A8 7F 58 10 00 00 00 00 
0018FAC4 : A2 7B 9C 37 00 00 00 00 0B 05 64 00 06 00 00 00 
0018FAD4 : 00 00 00 00 9D C4 B0 3F AD FF FF FF 00 00 70 44 
0018FAE4 : FD FF 06 44 80 FB 18 00 00 00 00 00 70 FB 18 00 
0018FAF4 : 74 FB 18 00 00 00 00 00 B8 FB 18 00 E8 FB 18 00 
0018FB04 : 8C FB 18 00 00 00 00 00 00 00 00 00 00 00 00 00 
0018FB14 : 7B FC 7F 09 80 20 C2 08 A8 7F 58 10 00 03 68 05 
0018FB24 : D0 E2 FC 08 D0 20 00 09 9D C4 B0 3F 00 00 00 00 
0018FB34 : 00 00 00 00 0C 51 D1 00 00 00 70 44 FD FF 06 44 
0018FB44 : EF 74 1A 3B 00 00 00 00 00 00 00 00 00 00 00 00 
0018FB54 : 48 50 DC 05 06 00 00 00 C8 95 FF 08 B8 C7 FE 08 
0018FB64 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
0018FB74 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B6 
0018FB84 : 00 00 A0 B7 65 26 D4 43 00 00 00 00 00 00 00 00 
0018FB94 : 00 00 00 00 C8 5A A7 10 80 20 C2 08 00 00 F0 44 
0018FBA4 : 00 00 87 44 00 00 00 00 00 00 00 00 EF 74 1A 3B 

Launch Info 
00A5 0037 0037 00A5 00A5 00A5 014C 00A5 
0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 

Job : Warlock

Changed Langtype to 1

Changed Data.ini to

1=rdata.grf

2=data.grf

Got 2011-11-22aRagexeRE Client Luas that seemed to Help a lot. I can cast a few spells now before i crash.

Currently Patching Miruku to 20111220

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  13
  • Reputation:   0
  • Joined:  01/12/12
  • Last Seen:  

same here... is this solved?

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  10
  • Reputation:   0
  • Joined:  02/26/12
  • Last Seen:  

Me too, any help?

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  24
  • Topics Per Day:  0.01
  • Content Count:  175
  • Reputation:   8
  • Joined:  03/10/12
  • Last Seen:  

Ive experienced that one also, crashing while doing a skill on 3rd jobs, but using an item works perfectly to me unlike yours. Try updating your effect sprites inside in the data/sprite/ÀÌÆÑÆ®. Because after I update that folder a miracle happen to me :)

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  10
  • Reputation:   0
  • Joined:  02/26/12
  • Last Seen:  

Ive experienced that one also, crashing while doing a skill on 3rd jobs, but using an item works perfectly to me unlike yours. Try updating your effect sprites inside in the data/sprite/ÀÌÆÑÆ®. Because after I update that folder a miracle happen to me :P

And how did you update the effect sprites?

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  24
  • Topics Per Day:  0.01
  • Content Count:  175
  • Reputation:   8
  • Joined:  03/10/12
  • Last Seen:  

I just borrowed it from kRO clients. Update it first just in-case. and copy that folder to your client. I hope that solves your problem.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  21
  • Topics Per Day:  0.00
  • Content Count:  326
  • Reputation:   19
  • Joined:  09/27/12
  • Last Seen:  

Was there ever a concrete fix to this? I know this topic is very old, but I'm having this issue and after searching the forum I couldn't find anything on it so I figure it's a simple fix I'm just looking over...

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  195
  • Reputation:   23
  • Joined:  01/05/12
  • Last Seen:  

I've experience something like this before and my solution is download Miruku then Update and no more crashing.

Hope it helps.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  21
  • Topics Per Day:  0.00
  • Content Count:  326
  • Reputation:   19
  • Joined:  09/27/12
  • Last Seen:  

I've experience something like this before and my solution is download Miruku then Update and no more crashing.

Hope it helps.

No effect, had my client fully up to date before as well... and that fixed it for you? I'm using the corrected character sprites download... (by KamiShi), perhaps that has something to do with it? Since the sprite is acting up... but then again, why wouldn't it do it for the other sprites?

I just borrowed it from kRO clients. Update it first just in-case. and copy that folder to your client. I hope that solves your problem.

xRaisen, hopefully you receive this notification, might I ask what files you copied?

  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  21
  • Topics Per Day:  0.00
  • Content Count:  326
  • Reputation:   19
  • Joined:  09/27/12
  • Last Seen:  

Figured it out,the sprite pack is missing an act file for that Warlock class (or it is inappropriately configured).

Just so everyone knows for reference. Just replace it with a standard one or use the one in the data grf.

  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  21
  • Topics Per Day:  0.00
  • Content Count:  345
  • Reputation:   230
  • Joined:  03/21/12
  • Last Seen:  

I'm going to fix this issue asap in my pack °°, gravity probably updated the act of the warlock sprite. damn. Thank you for reporting !

Edit : It appears there was no warlock in the pack, meaning the issue comes from somewhere else. Anyways, I updated the corrected classes pack - and uploaded the warlock sprite fix that vach sent to me, you can get it there http://rathena.org/b...s-head-sprites/ (Once my post is accepted by a moderator, version 3.0) Also added a notice on what to do when this kind of sprite issue happens.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  24
  • Topics Per Day:  0.01
  • Content Count:  175
  • Reputation:   8
  • Joined:  03/10/12
  • Last Seen:  

I've experience something like this before and my solution is download Miruku then Update and no more crashing.

Hope it helps.

No effect, had my client fully up to date before as well... and that fixed it for you? I'm using the corrected character sprites download... (by KamiShi), perhaps that has something to do with it? Since the sprite is acting up... but then again, why wouldn't it do it for the other sprites?

>I just borrowed it from kRO clients. Update it first just in-case. and copy that folder to your client. I hope that solves your problem.

xRaisen, hopefully you receive this notification, might I ask what files you copied?

 

 

PM sent! Im out for a long time doing school stuffs. Sorry for that

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...