Example #1
0
// Strength
// Dexterity
void load_general_entry( const Plib::Package* pkg, Clib::ConfigElem& elem )
{
  checka( elem,
          networkManager.uoclient_general.strength,
          "Strength" );
  checka( elem,
          networkManager.uoclient_general.intelligence,
          "Intelligence" );
  checka( elem,
          networkManager.uoclient_general.dexterity,
          "Dexterity" );
  checkv( elem,
          networkManager.uoclient_general.hits,
          "Hits" );
  checkv( elem,
          networkManager.uoclient_general.stamina,
          "Stamina" );
  checkv( elem,
          networkManager.uoclient_general.mana,
          "Mana" );
  //dave changed 3/15/03, support configurable max skillid
  networkManager.uoclient_general.maxskills = elem.remove_ushort( "MaxSkillID", SKILLID__HIGHEST );
  std::string temp;
  if ( elem.remove_prop( "MethodScript", &temp ) )
  {
    if ( !temp.empty() )
    {
      ExportScript* shs = new ExportScript( pkg, temp );
      if ( shs->Initialize() )
        networkManager.uoclient_general.method_script = shs;
      else
        delete shs;
    }
  }
}
Example #2
0
//function calculates waiting time and q length
float multitaskQ(Task * task0, Task * task1, float * wait0, float * wait1, float * qL)
{
	float currentT = 0;
	int i = 0;
	int * arrt = malloc(sizeof(int)*MAX_LINE_LENGTH);
	Task * head0 = task0;
	Task * head1 = task1;
	while(task0 != NULL &&  task1 !=NULL)		
	{
		if( task1->aritime <= currentT && task0->aritime > currentT )//group 1 has already arrived but not group 0 before previous job done
		{
			* wait1 += (currentT-task1->aritime);
			arrt[i++] = task1->aritime;
			task1->tlq = currentT;
			currentT += task1->stime;
			task1 = task1->next;
		}
		else if(task0->aritime <= currentT) // group 0 arrived before previous job done
		{
			* wait0 += (currentT-task0->aritime);
			arrt[i++] = task0->aritime;
			currentT += task0->stime;
			task0->tlq = currentT - task0->stime;
			task0 = task0->next;
		}
		else if( task1->aritime < task0->aritime)//group 1 arrived first in server's free time
		{
    		arrt[i++]= task1->aritime;
			currentT = task1->aritime + task1->stime;
			task1->tlq = currentT - task1->stime;
			task1 = task1->next;
		}
		else if(task1->aritime >= task0->aritime)//group 0 arrived dirst in server's free time
		{
    		arrt[i++] = task0->aritime;
			currentT = task0->aritime + task0->stime;
			task0->tlq = currentT - task0->stime;
			task0 = task0->next;
		}
		
	}
	while(task0 != NULL && task1 == NULL)//all of group1 have been served
	{
		if(task0->aritime <= currentT)
		{
			* wait0 += (currentT - task0->aritime);
    		arrt[i++] = task0->aritime;
			currentT += task0->stime;
			task0->tlq = currentT - task0->stime;
			task0 = task0->next;
		}
		else
		{
    		arrt[i++] = task0->aritime;
			currentT = task0->aritime + task0->stime;
			task0->tlq = currentT - task0->stime;
			task0 = task0->next;
		}

	}
	while(task1 != NULL && task0 == NULL)//all of group1 have been served
	{
		if( task1->aritime <= currentT)
		{
			*wait1 += (currentT - task1->aritime);
			arrt[i++] = task1->aritime;
			task1->tlq = currentT;
			currentT += task1->stime;
			task1 = task1->next;
		}
		else
		{
    		arrt[i++] = task1->aritime;
			currentT = task1->aritime + task1->stime;
			task1->tlq = currentT - task1->stime;
			task1 = task1->next;
		}
	}


	i = checka(arrt,i);
	int j;
	for(j = 0; j < i; j++)
	{
		* qL += qLength(head0,head1,arrt,j);
	}
	free(arrt);
	return currentT;
}