Jump to content
Eternal Lands Official Forums

jamesvm

Members
  • Content count

    573
  • Joined

  • Last visited

Everything posted by jamesvm

  1. Encyclopedia Work

    For those have not figure out no longer work on encyclopedia and I am let up teh banned 0n3na to work on. I just don't have time for work on it. And that fact I did learned lot but in end teh banned 0n3na had encyclopedia better my and way gather bugs in it. Edit(by way lol most xml code repetive in encyclopedia so very easy change what hate most is that restrate el to see changes to it )
  2. "el Movie" Making

    record.c record.h no longer can be download so here are record.c #include "global.h" Uint8 record_file[256]; FILE *rec_file = NULL; Uint32 rec_started = 0, rec_last_msg_time = 0, rec_last_msg_delay = 0, rec_last_msg_file_time = 0; Uint8 rec_last_message[8192]; int replaying = 0; float rec_speed = 1.0f; void cpy_str(Uint8 *dest, Uint8 *source, int n) { int i; for(i=0;i<n;i++) dest[i] = source[i]; } void rec_special_message(Uint8 protocol, Uint8 *msg, int n) { Uint8 temp[160]; temp[0] = protocol; *((short*)(temp+1)) = n+1; cpy_str((temp+3), msg, n); record_msg(temp, n+3); } void rec_sigils_we_have() { int i; int po2=1; Uint32 sigils_we_have=0; Uint8 temp[4]; for(i=0;i<32;i++) { if(sigils_list[i].have_sigil==1) sigils_we_have |= po2; po2*=2; } *((Uint32*)temp) = sigils_we_have; rec_special_message(GET_YOUR_SIGILS, temp, 4); } void rec_other_data() { int temp_time; Uint8 temp[4]; rec_special_message(GET_ACTIVE_SPELL_LIST, (Uint8*)active_spells, 10); *((short*)temp) = game_minute; rec_special_message(NEW_MINUTE, temp, 2); temp_time = client_server_delta_time + SDL_GetTicks(); *((int*)temp) = temp_time; rec_special_message(SYNC_CLOCK, temp, 4); *((short*)temp) = yourself; rec_special_message(YOU_ARE, temp, 2); rec_special_message(LOG_IN_OK, NULL, 0); rec_special_message(CHANGE_MAP, map_file_name, strlen(map_file_name)); } void rec_bags_list() { int i, n=0, my_offset; Uint8 temp[1024]; for(i=0;i<200;i++) if(bag_list[i].obj_3d_id!=-1) { my_offset=n*5+1; *((Uint16 *)(temp+my_offset+0))=(int)(bag_list[i].x * 2); *((Uint16 *)(temp+my_offset+2))=(int)(bag_list[i].y * 2); *((Uint8 *) (temp+my_offset+4))=i; n++; } temp[0] = n; rec_special_message(GET_BAGS_LIST, temp, n*5+1); } void rec_your_inventory() { Uint8 data[360]; int i,n=0; Uint8 flags; for(i=0;i<44;i++) if(item_list[i].quantity>0) { flags = 0; *((Uint16 *)(data+n*8+1)) = item_list[i].image_id; *((Uint32 *)(data+n*8+1+2)) = item_list[i].quantity; data[n*8+1+6] = item_list[i].pos; if(item_list[i].is_resource) flags|=ITEM_RESOURCE; if(item_list[i].is_reagent) flags|=ITEM_REAGENT; if(item_list[i].use_with_inventory) flags|=ITEM_INVENTORY_USABLE; data[n*8+1+7] = flags; n++; } data[0]=n; rec_special_message(HERE_YOUR_INVENTORY, data, n*8+1); } void rec_your_stats() { Sint16 stats[95]; stats[0]=your_info.phy.cur; stats[1]=your_info.phy.base; stats[2]=your_info.coo.cur; stats[3]=your_info.coo.base; stats[4]=your_info.rea.cur; stats[5]=your_info.rea.base; stats[6]=your_info.wil.cur; stats[7]=your_info.wil.base; stats[8]=your_info.ins.cur; stats[9]=your_info.ins.base; stats[10]=your_info.vit.cur; stats[11]=your_info.vit.base; stats[12]=your_info.human_nex.cur; stats[13]=your_info.human_nex.base; stats[14]=your_info.animal_nex.cur; stats[15]=your_info.animal_nex.base; stats[16]=your_info.vegetal_nex.cur; stats[17]=your_info.vegetal_nex.base; stats[18]=your_info.inorganic_nex.cur; stats[19]=your_info.inorganic_nex.base; stats[20]=your_info.artificial_nex.cur; stats[21]=your_info.artificial_nex.base; stats[22]=your_info.magic_nex.cur; stats[23]=your_info.magic_nex.base; stats[24]=your_info.manufacturing_skill.cur; stats[25]=your_info.manufacturing_skill.base; stats[26]=your_info.harvesting_skill.cur; stats[27]=your_info.harvesting_skill.base; stats[28]=your_info.alchemy_skill.cur; stats[29]=your_info.alchemy_skill.base; stats[30]=your_info.overall_skill.cur; stats[31]=your_info.overall_skill.base; stats[32]=your_info.attack_skill.cur; stats[33]=your_info.attack_skill.base; stats[34]=your_info.defense_skill.cur; stats[35]=your_info.defense_skill.base; stats[36]=your_info.magic_skill.cur; stats[37]=your_info.magic_skill.base; stats[38]=your_info.potion_skill.cur; stats[39]=your_info.potion_skill.base; stats[40]=your_info.carry_capacity.cur; stats[41]=your_info.carry_capacity.base; stats[42]=your_info.material_points.cur; stats[43]=your_info.material_points.base; stats[44]=your_info.ethereal_points.cur; stats[45]=your_info.ethereal_points.base; stats[46]=your_info.food_level; *((Uint32 *)(stats+49))=your_info.manufacturing_exp; *((Uint32 *)(stats+51))=your_info.manufacturing_exp_next_lev; *((Uint32 *)(stats+53))=your_info.harvesting_exp; *((Uint32 *)(stats+55))=your_info.harvesting_exp_next_lev; *((Uint32 *)(stats+57))=your_info.alchemy_exp; *((Uint32 *)(stats+59))=your_info.alchemy_exp_next_lev; *((Uint32 *)(stats+61))=your_info.overall_exp; *((Uint32 *)(stats+63))=your_info.overall_exp_next_lev; *((Uint32 *)(stats+65))=your_info.attack_exp; *((Uint32 *)(stats+67))=your_info.attack_exp_next_lev; *((Uint32 *)(stats+69))=your_info.defense_exp; *((Uint32 *)(stats+71))=your_info.defense_exp_next_lev; *((Uint32 *)(stats+73))=your_info.magic_exp; *((Uint32 *)(stats+75))=your_info.magic_exp_next_lev; *((Uint32 *)(stats+77))=your_info.potion_exp; *((Uint32 *)(stats+79))=your_info.potion_exp_next_lev; *((Uint32 *)(stats+85))=your_info.summoning_exp; *((Uint32 *)(stats+87))=your_info.summoning_exp_next_lev; *((Uint32 *)(stats+91))=your_info.crafting_exp; *((Uint32 *)(stats+93))=your_info.crafting_exp_next_lev; stats[83]=your_info.summoning_skill.cur; stats[84]=your_info.summoning_skill.base; stats[89]=your_info.crafting_skill.cur; stats[90]=your_info.crafting_skill.base; stats[47]=your_info.research_completed; stats[81]=your_info.researching; stats[82]=your_info.research_total; rec_special_message(HERE_YOUR_STATS, (Uint8*)stats, 190); } void rec_knowledge_list() { int i; Uint8 list[37]; for(i=0;i<37;i++) { list[i]|=knowledge_list[i*8+0].present * 0x01; list[i]|=knowledge_list[i*8+1].present * 0x02; list[i]|=knowledge_list[i*8+2].present * 0x04; list[i]|=knowledge_list[i*8+3].present * 0x08; list[i]|=knowledge_list[i*8+4].present * 0x10; list[i]|=knowledge_list[i*8+5].present * 0x20; list[i]|=knowledge_list[i*8+6].present * 0x40; list[i]|=knowledge_list[i*8+7].present * 0x80; } rec_special_message(GET_KNOWLEDGE_LIST, list, 37); } /****************************************************************************/ void start_recording(Uint8 *new_file) { Uint8 temp[280]; int len; if(rec_file) { len = sprintf(temp, "Already recording to \"%s.rec\".", record_file); if(interface_mode!=interface_opening) put_text_in_buffer(temp,len,0); else put_text_in_buffer(temp,len,54); } else { sprintf(record_file, "%s.rec", new_file); rec_file = fopen(record_file, "wb"); if(rec_file) { rec_started = cur_time; len = sprintf(temp, "Started recording to \"%s.rec\".", new_file); //initiative recording rec_sigils_we_have(); rec_other_data(); rec_bags_list(); rec_your_inventory(); rec_your_stats(); rec_knowledge_list(); update_all_actors(); } else len = sprintf(temp, "Failed to start recording to \"%s.rec\".", new_file); if(interface_mode!=interface_opening) put_text_in_buffer(temp,len,0); else put_text_in_buffer(temp,len,54); } } void end_recording() { Uint8 temp[280]; int len; if(rec_file) { len = sprintf(temp, "Done recording to \"%s\", file saved.", record_file); if(interface_mode!=interface_opening) put_text_in_buffer(temp,len,0); else put_text_in_buffer(temp,len,54); fclose(rec_file); rec_file = NULL; } else { len = sprintf(temp, "Not recording right now."); if(interface_mode!=interface_opening) put_text_in_buffer(temp,len,0); else put_text_in_buffer(temp,len,54); } } void record_msg(const Uint8 *in_data, Uint32 data_lenght) { Uint8 temp[4]; *(Uint32*)(temp) = cur_time - rec_started; fwrite (temp, 4, 1, rec_file); fwrite (in_data, data_lenght, 1, rec_file); // fprintf(rec_txt, "%u - %u : ", in_data[0], *(short*)(in_data+1)-1); // fwrite (&in_data[3], data_lenght-3, 1, rec_txt); // fprintf(rec_txt, "\n"); fflush (rec_file); // fflush (rec_txt); } void que_next_msg() { Uint32 temp, numread; int lenght; numread = fread(&temp, 4, 1, rec_file); //get file time of the message if(numread != 1){end_replaying(); return;} //if got eof, end recording and exit the function rec_last_msg_delay = temp - rec_last_msg_file_time; rec_last_msg_file_time = temp; numread = fread (rec_last_message, 1, 3, rec_file); //get protocol and lenght if(numread != 3){end_replaying(); return;} //if got eof, end recording and exit the function lenght = *((Uint16 *)(rec_last_message+1)) - 1; if(lenght > 0) { numread = fread (&rec_last_message[3], 1, lenght, rec_file); //get the rest of message if(numread != lenght){end_replaying(); return;} //if got eof, end recording and exit the function } } void start_replaying(Uint8 *new_file) { Uint8 temp[280]; int len; if(rec_file) { len = sprintf(temp, "Already replaying (\"%s\").", record_file); if(interface_mode!=interface_opening) put_text_in_buffer(temp,len,0); else put_text_in_buffer(temp,len,54); } else { sprintf(record_file, "%s.rec", new_file); rec_file = fopen(record_file, "rb"); if(rec_file) { que_next_msg(); replaying = 1; disconnected=2; len = sprintf(temp, "Started replaying \"%s.rec\".", new_file); } else len = sprintf(temp, "Failed to start replaying \"%s.rec\".", new_file); if(interface_mode!=interface_opening) put_text_in_buffer(temp,len,0); else put_text_in_buffer(temp,len,54); } } void end_replaying() { Uint8 temp[280]; int len; if(rec_file) { len = sprintf(temp, "\"%s\" replaying stopped.", record_file); if(interface_mode!=interface_opening) put_text_in_buffer(temp,len,0); else put_text_in_buffer(temp,len,54); fclose(rec_file); rec_file = NULL; replaying = 0; } else { len = sprintf(temp, "Not replaying right now."); if(interface_mode!=interface_opening) put_text_in_buffer(temp,len,0); else put_text_in_buffer(temp,len,54); } } void replay_qued_msg() { Uint32 time_change; if(!rec_file) return; time_change = cur_time - rec_last_msg_time; if(rec_speed && (time_change>=rec_last_msg_delay/rec_speed)) { process_message_from_server(rec_last_message, *((Uint16*)(rec_last_message+1))+2); que_next_msg(); rec_last_msg_time = cur_time; } } record.h #ifndef __RECORD_H__ #define __RECORD_H__ extern Uint8 record_file[256]; extern FILE *rec_file; extern int replaying; extern float rec_speed; void record_msg(const Uint8 *in_data, Uint32 data_lenght); void start_recording(Uint8 *new_file); void end_recording(); void start_replaying(Uint8 *new_file); void end_replaying(); void replay_qued_msg(); #endif
  3. Godz Have Return

    yes it is true I talk to this morning
  4. A Fun Suggestion

    In excel file I created point sytem for most of the items.
  5. Encyclopedia Work

    Hehehe oh well kindy been busy with college life so have not work at all at compare 2 encyclopedia and try make so that know what differents are and work on my idea for weapons section.
  6. Encyclopedia Work

    I going use my copy is based for merger and will take stuff I did not have that in teh banned 0n3na in to my. Reason is cause teh banned 0n3na copy I have no clue changes made and how different to my. It just lot easyer and Roja do still want not have fuffly in encyclopedia. Oh and tell when done merger and upload on to my site. Oh maps section my I will redurce picture size so that put text under them. Also plan add all sword that are possible to encyclopedia on(the rare swords).
  7. Encyclopedia Work

    Ok see that is complete I just wish got sooner. Got question for teh banned 0n3na why did take out FAQ ,Beginning guide,Manual in it. I think create merge between my maps section and teh banned 0n3na map section. Think I link how I want do weapons and armours so finish work there then put for you to see. Oh potion of summoning has line outside box. What happen picture monster section that were there? Overall it is very good teh banned 0n3na you did great job. teh banned 0n3na did even have list changes you did because that would been nice to have & make merges them whole lot easyer?
  8. Encyclopedia Work

    Wow juste code it look almost complete. I has get home computer to see what look like then cna tell how complete it is. Think only section need work is weapons and armour section. And it look very complete I wish had sooner then I would not done double work. By saturday I should be able tell 411 of my opion of how complete it is. teh banned 0n3na it look very good from notepad, it is good work. thankyou Roja geting me link to it.
  9. Encyclopedia Work

    No she did not give her encyclopedia that she had finally done so just work on my own modifyed version. I wish she did because would be lot nicer and would has being stuff she already did.
  10. it does not have effect the only reason differents is because weapons kill monster faster then with fists.
  11. Encyclopedia Work

    plan on add 12 new files encyclopedia by do it this way it make easy update weapons and armour section for future updates.
  12. Mines

    Agreed all geting ore way to easy to do. It has sever side but could also make not 1 sec deal to mine or havest or make stuff. It should actual take time. May point that in runescape all ore are nonstackable in game. This game should have the ore non stactable cause don't person would be hold 200 tit ore on them. Not mention there carry it in no pocket or between there hands.
  13. Monster Drops That Aren't Drops

    hey could give coordinater of location where prize so that you can have it implented faster and then when actual made actuall text or riddle or map or what ever do for done then you can change it to it. I hope understant what try to say. Cause add lot more fun and monster drop would be higher and less items in markeyt too.
  14. Monster Drop List

    How think I know because killed wolf and appear in bag. Response to Daxon comment about research it more.
  15. The Eternal War

    If on before it started can I joined war and yes I know i will be killed but hey want to see how well do even if I killed.
  16. Monster Drop List

    wolf: leather helm book only got once so must be 1/20
  17. Encyclopedia Work

    I have took segv little patches to encyclopedia and modifed it into my encyclopedia with modifying it first to use all maps in maps folder so only add is map of all of el added. Not going upload new addition yet I want redo all manu relate items so that not 3 different catorgories for them. Edit(realize that encyclopedia does not have infomation on tools so add pickaxe and hammer to redo of manu relate items. I was thinking other one i could add to section that use it or do any one have any ideas on how?)
  18. Help With Little Error

    geting lnk error and can't figure it out use visual c++ copiler window xp yes found acos and atan2f in math.h which is declared ------ Build started: Project: elc, Configuration: Release Win32 ------ Compiling... shadows.c shadows.c(59) : warning C4244: '=' : conversion from 'double' to 'GLfloat', possible loss of data shadows.c(61) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data shadows.c(62) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data shadows.c(63) : warning C4244: '=' : conversion from 'double' to 'GLfloat', possible loss of data shadows.c(64) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data shadows.c(65) : warning C4244: '=' : conversion from 'double' to 'GLfloat', possible loss of data shadows.c(66) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data shadows.c(67) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data shadows.c(68) : warning C4244: '=' : conversion from 'double' to 'GLfloat', possible loss of data shadows.c(69) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data shadows.c(70) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data shadows.c(71) : warning C4244: '=' : conversion from 'double' to 'GLfloat', possible loss of data shadows.c(85) : warning C4244: 'initializing' : conversion from 'double' to 'float', possible loss of data shadows.c(89) : warning C4013: 'acosf' undefined; assuming extern returning int shadows.c(89) : warning C4244: '=' : conversion from 'int' to 'float', possible loss of data shadows.c(91) : warning C4013: 'atan2f' undefined; assuming extern returning int shadows.c(104) : warning C4244: 'function' : conversion from 'GLsizei' to 'GLfloat', possible loss of data shadows.c(104) : warning C4244: 'function' : conversion from 'GLsizei' to 'GLfloat', possible loss of data shadows.c(325) : warning C4244: 'function' : conversion from 'double' to 'GLfloat', possible loss of data shadows.c(325) : warning C4244: 'function' : conversion from 'double' to 'GLfloat', possible loss of data shadows.c(325) : warning C4244: 'function' : conversion from 'double' to 'GLfloat', possible loss of data shadows.c(368) : warning C4244: 'function' : conversion from 'double' to 'GLfloat', possible loss of data shadows.c(368) : warning C4244: 'function' : conversion from 'double' to 'GLfloat', possible loss of data shadows.c(368) : warning C4244: 'function' : conversion from 'double' to 'GLfloat', possible loss of data shadows.c(388) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data shadows.c(389) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data shadows.c(405) : warning C4244: '=' : conversion from 'double' to 'int', possible loss of data shadows.c(406) : warning C4244: '=' : conversion from 'double' to 'int', possible loss of data shadows.c(429) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data shadows.c(430) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data shadows.c(441) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data shadows.c(442) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data shadows.c(459) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data shadows.c(460) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data shadows.c(483) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data shadows.c(484) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data shadows.c(524) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data shadows.c(525) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data shadows.c(551) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data shadows.c(552) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data shadows.c(634) : warning C4244: 'function' : conversion from 'int' to 'GLfloat', possible loss of data shadows.c(634) : warning C4244: 'function' : conversion from 'int' to 'GLfloat', possible loss of data shadows.c(634) : warning C4244: 'function' : conversion from 'int' to 'GLfloat', possible loss of data shadows.c(659) : warning C4244: '=' : conversion from 'double' to 'GLfloat', possible loss of data shadows.c(659) : warning C4244: '=' : conversion from 'double' to 'GLfloat', possible loss of data shadows.c(659) : warning C4244: '=' : conversion from 'double' to 'GLfloat', possible loss of data shadows.c(659) : warning C4244: '=' : conversion from 'double' to 'GLfloat', possible loss of data shadows.c(664) : warning C4244: '=' : conversion from 'double' to 'GLfloat', possible loss of data shadows.c(664) : warning C4244: '=' : conversion from 'double' to 'GLfloat', possible loss of data shadows.c(664) : warning C4244: '=' : conversion from 'double' to 'GLfloat', possible loss of data shadows.c(664) : warning C4244: '=' : conversion from 'double' to 'GLfloat', possible loss of data shadows.c(669) : warning C4244: '=' : conversion from 'double' to 'GLfloat', possible loss of data shadows.c(669) : warning C4244: '=' : conversion from 'double' to 'GLfloat', possible loss of data shadows.c(669) : warning C4244: '=' : conversion from 'double' to 'GLfloat', possible loss of data shadows.c(669) : warning C4244: '=' : conversion from 'double' to 'GLfloat', possible loss of data shadows.c(674) : warning C4244: '=' : conversion from 'double' to 'GLfloat', possible loss of data shadows.c(674) : warning C4244: '=' : conversion from 'double' to 'GLfloat', possible loss of data shadows.c(674) : warning C4244: '=' : conversion from 'double' to 'GLfloat', possible loss of data shadows.c(674) : warning C4244: '=' : conversion from 'double' to 'GLfloat', possible loss of data Linking... shadows.obj : error LNK2019: unresolved external symbol _atan2f referenced in function _calc_shadow_matrix shadows.obj : error LNK2019: unresolved external symbol _acosf referenced in function _calc_shadow_matrix Release/el.exe : fatal error LNK1120: 2 unresolved externals Build log was saved at "file://c:\James\complie el source code\elc\Release\BuildLog.htm" elc - 3 error(s), 59 warning(s) ---------------------- Done ---------------------- Â Â Build: 0 succeeded, 1 failed, 0 skipped can anyone help me
  19. Help With Little Error

    thankyou all for help it work fully now
  20. Help With Little Error

    thid stupid question but where can get update version of it
  21. Encyclopedia Work

    here what plan to do catogeres that do not have notes on them are going have page where list all items for them. for armour if better name catogerios tell me and by way clothes stuff going under it too.
  22. Help With Little Error

    ok got to compile but now come up with I have libxml2.dll in directer where release is that when try run el.exe
  23. Help With Little Error

    hmm maybe gamedev site forum could help me cause I know math.h has the fucntion acos and atan2f.
  24. Help With Little Error

    what don't understand is why geting when in math.h i can clearly see the two function that it have problem.
  25. Scarr Banned..

    hear suggest proggrammed sever so that when event be held that there select people allow in that it will only allowed them in not any else and just before a event have command that massive beam all people off map.
×