void send_map(void) { buffer_t buffer; uint32 x = 0; clear_buffer(&buffer); add_opcode(&buffer, CMAPDATA); add_string(&buffer, map()->name ); add_buffer(&buffer, &map()->moral,SIZE8); add_buffer(&buffer, &map()->music,SIZE8); add_buffer(&buffer, &map()->left,SIZE16); add_buffer(&buffer, &map()->right,SIZE16); add_buffer(&buffer, &map()->up,SIZE16); add_buffer(&buffer, &map()->down,SIZE16); add_buffer(&buffer, &map()->shop,SIZE16); add_buffer(&buffer, &map()->bootmap,SIZE32); add_buffer(&buffer, &map()->bootx,SIZE8); add_buffer(&buffer, &map()->booty,SIZE8); for( x = 0; x < MAX_MAP_NPCS; x++){ add_buffer(&buffer, &map()->npc[x].num,SIZE16); } add_buffer(&buffer, map()->tile,(MAX_MAPX * MAX_MAPY) * sizeof(tile_t)); send_data(&buffer); }
/** * cast_spell(void) * * @brief * @param void * @return void */ void cast_spell(void) { buffer_t buffer; //Check for subscript out of range if(!tempdata()->spell_selected || tempdata()->spell_selected >= MAX_PLAYER_SPELLS) return; //Check if player has enough MP if(player(myindex())->spells[tempdata()->spell_selected]){ if(player(myindex())->vitals[VITAL_MP] < spell(player(myindex())->spells[tempdata()->spell_selected])->mpreq){ // Call AddText("Not enough MP to cast " & Trim$(Spell(SpellSelected).Name) & ".", 12) return; } if(gettickcount() > player(myindex())->attacktimer + 1){ if(player(myindex())->moving == 0){ clear_buffer(&buffer); add_opcode(&buffer,CCAST); add_buffer(&buffer,&tempdata()->spell_selected, SIZE16); socketsend(&buffer); player(myindex())->attacking = TRUE; player(myindex())->attacktimer = gettickcount(); tempdata()->castedspell = TRUE; } else{ //Call AddText("Cannot cast while walking!", 12) } } } else{ //Call AddText("No spell here.", 12) } }
void send_request_edit_spell(void) { buffer_t buffer; clear_buffer(&buffer); add_opcode(&buffer,CREQUESTEDITSPELL); send_data(&buffer); }
void send_whos_online(void) { buffer_t buffer; clear_buffer(&buffer); add_opcode(&buffer,CWHOSONLINE); send_data(&buffer); }
void send_request_edit_map(void) { buffer_t buffer; clear_buffer(&buffer); add_opcode(&buffer,CREQUESTEDITMAP); send_data(&buffer); }
void send_map_respawn(void) { buffer_t buffer; clear_buffer(&buffer); add_opcode(&buffer,CMAPRESPAWN); send_data(&buffer); }
void send_request_edit_item(void) { buffer_t buffer; clear_buffer(&buffer); add_opcode(&buffer,CREQUESTEDITITEM); send_data(&buffer); }
void send_kick(char *name) { buffer_t buffer; clear_buffer(&buffer); add_opcode(&buffer,CKICKPLAYER); add_string(&buffer,name); send_data(&buffer); }
void send_set_sprite(char *name, uint32 spritenum) { buffer_t buffer; clear_buffer(&buffer); add_opcode(&buffer,CSETSPRITE); add_buffer(&buffer,&spritenum, SIZE32); send_data(&buffer); }
void warp_to(uint32 mapnum) { buffer_t buffer; clear_buffer(&buffer); add_opcode(&buffer,CWARPTO); add_buffer(&buffer,&mapnum, SIZE32); send_data(&buffer); }
void warp_me_to(char *name) { buffer_t buffer; clear_buffer(&buffer); add_opcode(&buffer,CWARPMETO); add_string(&buffer,name); send_data(&buffer); }
void request_new_map(void) { buffer_t buffer; clear_buffer(&buffer); add_opcode(&buffer,CREQUESTNEWMAP); add_buffer(&buffer,&player(myindex())->dir, SIZE8); send_data(&buffer); }
void send_player_dir(void) { buffer_t buffer; clear_buffer(&buffer); add_opcode(&buffer,CPLAYERDIR); add_buffer(&buffer,&player(myindex())->dir, SIZE8); send_data(&buffer); }
void send_ban(char *name) { buffer_t buffer; clear_buffer(&buffer); add_opcode(&buffer,CBANPLAYER); add_string(&buffer,name); send_data(&buffer); }
void send_use_item(uint16 invnum) { buffer_t buffer; clear_buffer(&buffer); add_opcode(&buffer,CUSEITEM); add_buffer(&buffer, &invnum, SIZE8); send_data(&buffer); }
void warp_to_me(char *name) { buffer_t buffer; clear_buffer(&buffer); add_opcode(&buffer,CWARPTOME); add_string(&buffer,name); send_data(&buffer); }
void send_drop_item(uint16 invnum,uint32 amount) { buffer_t buffer; clear_buffer(&buffer); add_opcode(&buffer,CMAPDROPITEM); add_buffer(&buffer, &invnum, SIZE8); add_buffer(&buffer, &amount, SIZE32); send_data(&buffer); }
void send_player_move(void) { buffer_t buffer; clear_buffer(&buffer); add_opcode(&buffer,CPLAYERMOVE); add_buffer(&buffer,&player(myindex())->dir, SIZE8); add_buffer(&buffer,&player(myindex())->moving, SIZE8); send_data(&buffer); }
void send_set_access(char *name, uint8 group) { buffer_t buffer; clear_buffer(&buffer); add_opcode(&buffer,CSETGROUP); add_string(&buffer,name); add_buffer(&buffer,&group, SIZE8); send_data(&buffer); }
void send_logout(void) { buffer_t buffer; tempdata()->ingame = FALSE; clear_buffer(&buffer); add_opcode(&buffer,CQUIT); send_data(&buffer); }
/** * player_search(uint16 curx, uint16 cury) * * @brief * @param curx * @param cury * @return void */ void player_search(uint16 curx, uint16 cury) { buffer_t buffer; if(is_in_bounds()){ clear_buffer(&buffer); add_opcode(&buffer, CSEARCH); add_buffer(&buffer, &tempdata()->curx, SIZE8); add_buffer(&buffer, &tempdata()->cury, SIZE8); socketsend(&buffer); } }
void admin_msg(char *text) { buffer_t buffer; uint32 len = strlen(text); clear_buffer(&buffer); add_opcode(&buffer,CADMINMSG); add_buffer(&buffer,&len, SIZE32); add_string(&buffer, text); send_data(&buffer); }
void emote_msg(char *text) { buffer_t buffer; uint32 len = strlen(text); clear_buffer(&buffer); add_opcode(&buffer,CEMOTEMSG); add_buffer(&buffer,&len, SIZE32); add_string(&buffer, text); send_data(&buffer); }
void broadcast_msg(char *text) { buffer_t buffer; uint32 len = strlen(text); clear_buffer(&buffer); add_opcode(&buffer,CBROADCASTMSG); add_buffer(&buffer,&len, SIZE32); add_string(&buffer, text); send_data(&buffer); }
void global_msg(char *text) { buffer_t buffer; uint32 len = strlen(text); clear_buffer(&buffer); add_opcode(&buffer,CGLOBALMSG); add_buffer(&buffer,&len, SIZE32); add_string(&buffer, text); send_data(&buffer); }
void say_msg(char *text) { buffer_t buffer; uint32 len = str_size(text); clear_buffer(&buffer); add_opcode(&buffer,CSAYMSG); add_buffer(&buffer,&len, SIZE32); add_string(&buffer, text); send_data(&buffer); }
void player_msg(char *text, char *name) { buffer_t buffer; uint32 len = strlen(text); clear_buffer(&buffer); add_opcode(&buffer,CPLAYERMSG); add_string(&buffer, name); add_buffer(&buffer,&len, SIZE32); add_string(&buffer, text); send_data(&buffer); }
void send_new_account(char *name, char *charname, char *password, uint8 job, uint8 sex) { buffer_t buffer; clear_buffer(&buffer); add_opcode(&buffer,CNEWACCOUNT); add_encypt_string(&buffer, name); add_encypt_string(&buffer, charname); add_encypt_string(&buffer, password); add_buffer(&buffer, &job, SIZE8); add_buffer(&buffer, &sex, SIZE8); send_data(&buffer); }
void send_login(char *name, char *password) { buffer_t buffer; int major = VERSION_MAJOR, minor = VERSION_MINOR, rev = VERSION_REV; clear_buffer(&buffer); add_opcode(&buffer,CLOGIN); add_encypt_string(&buffer, name); add_encypt_string(&buffer, password); add_buffer(&buffer, &major, SIZE8); add_buffer(&buffer, &minor, SIZE8); add_buffer(&buffer, &rev, SIZE8); send_data(&buffer); }
void mapcache_create(uint32 mapnum) { buffer_t buffer; uint32 x = 0, y = 0; clear_buffer(&buffer); add_opcode(&buffer, SMAPDATA); add_buffer(&buffer, &mapnum, SIZE32); add_string(&buffer, map(mapnum)->name ); add_buffer(&buffer, &map(mapnum)->moral,SIZE8); add_buffer(&buffer, &map(mapnum)->music,SIZE8); add_buffer(&buffer, &map(mapnum)->left,SIZE16); add_buffer(&buffer, &map(mapnum)->right,SIZE16); add_buffer(&buffer, &map(mapnum)->up,SIZE16); add_buffer(&buffer, &map(mapnum)->down,SIZE16); add_buffer(&buffer, &map(mapnum)->shop,SIZE16); add_buffer(&buffer, &map(mapnum)->bootmap,SIZE32); add_buffer(&buffer, &map(mapnum)->bootx,SIZE8); add_buffer(&buffer, &map(mapnum)->booty,SIZE8); add_buffer(&buffer, &map(mapnum)->revision,SIZE32); for( x = 0; x < MAX_MAP_NPCS; x++) add_buffer(&buffer, &map(mapnum)->npc[x].num,SIZE16); for(x = 0; x < MAX_MAPX; x++){ for(y = 0; y < MAX_MAPY; y++){ add_buffer(&buffer,&map(mapnum)->tile[GETXY(x,y)].type, SIZE8); add_buffer(&buffer,&map(mapnum)->tile[GETXY(x,y)].data1, SIZE16); add_buffer(&buffer,&map(mapnum)->tile[GETXY(x,y)].data2, SIZE16); add_buffer(&buffer,&map(mapnum)->tile[GETXY(x,y)].data3, SIZE16); add_buffer(&buffer,&map(mapnum)->tile[GETXY(x,y)].ground.y, SIZE8); add_buffer(&buffer,&map(mapnum)->tile[GETXY(x,y)].ground.x, SIZE8); add_buffer(&buffer,&map(mapnum)->tile[GETXY(x,y)].ground.tileset, SIZE8); add_buffer(&buffer,&map(mapnum)->tile[GETXY(x,y)].mask.y, SIZE8); add_buffer(&buffer,&map(mapnum)->tile[GETXY(x,y)].mask.x, SIZE8); add_buffer(&buffer,&map(mapnum)->tile[GETXY(x,y)].mask.tileset, SIZE8); add_buffer(&buffer,&map(mapnum)->tile[GETXY(x,y)].anim.y, SIZE8); add_buffer(&buffer,&map(mapnum)->tile[GETXY(x,y)].anim.x, SIZE8); add_buffer(&buffer,&map(mapnum)->tile[GETXY(x,y)].anim.tileset, SIZE8); add_buffer(&buffer,&map(mapnum)->tile[GETXY(x,y)].fringe.y, SIZE8); add_buffer(&buffer,&map(mapnum)->tile[GETXY(x,y)].fringe.x, SIZE8); add_buffer(&buffer,&map(mapnum)->tile[GETXY(x,y)].fringe.tileset, SIZE8); } } clear_buffer(&map_array_cache[mapnum]); map_array_cache[mapnum] = buffer; }