Esempio n. 1
0
static int encounter(int theme){
	struct character *foe;
	int ret,i,num=NUM_CHAR_SLOTS;
	int plvl=0;

	for(i=0;i<NUM_CHAR_SLOTS;i++){
		if(pdata.chars[i]==NULL || pdata.chars[i]->battleready==BATTLE_UNAVAILABLE)
			num--;
		else if(plvl<(ret=character_level(pdata.chars[i])))
			plvl=ret;
	}

	gen_random_map(theme);

	foe=malloc(num*sizeof(*foe));
	for(i=0;i<num;i++){
		create_character(foe+i);
		set_level(foe+i,get_random(plvl-(plvl/8),plvl));
		foe[i].jp=pdata.d_level*100;
		spend_jp_random(foe+i);
	}

	ret=start_battle(pdata.chars,foe,num);

	if(ret){
		for(i=0;i<NUM_CHAR_SLOTS;i++)
			if(pdata.chars[i]->battleready==BATTLE_READY)
				jp_reward(pdata.chars[i]);
	}

	free(foe);

	return ret;
}
    object_info_ptr create_object( kernel::system* csys, create_msg const& msg)
    {
        if(msg.object_kind & ok_vehicle)
            return create_vehicle(csys, msg);
        else if ( msg.object_kind == ok_flock_of_birds)
            return create_flock_of_birds(csys, msg);
        else if ( msg.object_kind ==ok_human)
            return create_character(csys, msg);
        else if ( msg.object_kind == ok_helicopter)
            return create_helicopter_phl(csys, msg); 
	    else if ( msg.object_kind == ok_rocket_flare)
		    return create_rocket_flare(csys, msg); 
        else if( msg.object_kind == ok_camera)
            return create_camera(csys, msg);
        else
            return create_aircraft(csys, msg); //create_aircraft_phl(csys, msg);  //  FIXME вместо чекера можно создать какой-нибудь более дурной объект

    }
Esempio n. 3
0
void create_game(){
	int i,j;
	pdata.d_level=1;
	for(i=0;i<NUM_CHAR_SLOTS;i++)pdata.chars[i]=NULL;
	for(i=0;i<numchar;i++){
		pdata.chars[i]=malloc(sizeof(**pdata.chars));
		create_character(pdata.chars[i]);
		for(j=0;names[i][j];j++)
			pdata.chars[i]->name[j]=names[i][j];
		pdata.chars[i]->name[4]=0;
		if(i<2){
			pdata.chars[i]->battleready=BATTLE_READY;
			set_level(pdata.chars[i],1);
		}
		else
			pdata.chars[i]->battleready=BATTLE_UNAVAILABLE;
	}
	for(i=0;i<NUM_ITEMS;i++){
		pdata.inventory[i].count=0;
		pdata.inventory[i].index=EQ_INDEX(9,0,0);
	}
}