Character::Character(std::string fromString) {
    std::vector<std::string> tokens = utils::Tokenfy(fromString, '|');
    if (tokens[0] == "PLAYER_OBJECT") {
        SetName(tokens[57]);
        SetLastname(tokens[58]);
        SetRace(tokens[59]);
        SetGender(tokens[60]);
        SetFace(tokens[61]);
        SetSkin(tokens[62]);
        SetZone(tokens[63]);
        SetLevel(std::stoi(tokens[64]));
        SetHp(std::stoi(tokens[65]));
        SetMaxHp(std::stoi(tokens[66]));
        SetBp(std::stoi(tokens[67]));
        SetMaxBp(std::stoi(tokens[68]));
        SetMp(std::stoi(tokens[69]));
        SetMaxMp(std::stoi(tokens[70]));
        SetEp(std::stoi(tokens[71]));
        SetMaxEp(std::stoi(tokens[72]));
        SetStrength(std::stoi(tokens[73]));
        SetConstitution(std::stoi(tokens[74]));
        SetIntelligence(std::stoi(tokens[75]));
        SetDexterity(std::stoi(tokens[76]));
        SetX(std::stof(tokens[77]));
        SetY(std::stof(tokens[78]));
        SetZ(std::stof(tokens[79]));
        SetPitch(std::stof(tokens[80]));
        SetYaw(std::stof(tokens[81]));
    }
    // if (tokens[0] == "NPC_OBJECT") {
    //    
    // }
}
Beispiel #2
0
Player::Player()
{
  type_ = EActorType::PLAYER;
  SetRace();
  SetMaxHealth(1000);
  SetHealth(1000);
  SetBlows();
}
Beispiel #3
0
void GetRace(Player *ThisPlayer)
{
	printw("Select Your Race:\n\n\n");
	printw("(a) Human\n");
	switch(getch())
	{
		case 'a':
			SetRace(ThisPlayer, 1);
			break;
	}
}
Beispiel #4
0
void create(){
    ::create();
    SetKeyName("clerk");
    SetId("clerk");
    SetAdjectives("town");
    SetGender("male");
    SetRace("human");
    SetShort("the town clerk");
    SetLong("An officious-looking clerk."); 
    SetLocalCurrency("silver");
    SetClass("priest");
    AddCommandResponse("marry", (: MarriageRequest :));
    AddCommandResponse("wed", (: MarriageRequest :));
    AddCommandResponse("join", (: MarriageRequest :));
    AddCommandResponse("divorce", (: eventRequestDivorce :));
    SetLevel(4);
    SetTax(5);
}
Character::Character(std::string name, std::string lastname, std::string race, std::string gender, 
                     std::string face, std::string skin, std::string zone, int level, int hp, 
                     int maxHp, int bp, int maxBp, int mp, int maxMp, int ep, int maxEp, 
                     int strength, int constitution, int intelligence, int dexterity, float x, 
                     float y, float z, float pitch, float yaw) {
    SetName(name);
    SetLastname(lastname);
    SetRace(race);
    SetGender(gender);
    SetFace(face);
    SetSkin(skin);
    SetZone(zone);
    SetHead("head");
    SetChest("chest");
    SetArms("arms");
    SetHands("hands");
    SetLegs("legs");
    SetFeet("feet");
    SetCloak("cloak");
    SetNecklace("necklace");
    SetRingOne("ringOne");
    SetRingTwo("ringTwo");
    SetRightHand("rightHand");
    SetLeftHand("leftHand");
    SetLevel(level);
    SetHp(hp);
    SetMaxHp(maxHp);
    SetBp(bp);
    SetMaxBp(maxBp);
    SetMp(mp);
    SetMaxMp(maxMp);
    SetEp(ep);
    SetMaxEp(maxEp);
    SetStrength(strength);
    SetConstitution(constitution);
    SetIntelligence(intelligence);
    SetDexterity(dexterity);
    SetX(x);
    SetY(y);
    SetZ(z);
    SetPitch(pitch);
    SetYaw(yaw);
}
Beispiel #6
0
static void create() {
    leader::create();
    SetKeyName("ixtala");
    SetId("ixtala", "priest");
    SetShort("Ix'Tala, high priestess of the Priests");
    SetLong("Ix'Tala initiates priests into the Priests class as well as "
            "converts the wayward to the truth of the Dalin religion.  "
            "To learn more about becoming a priest "
            "ask her to \"describe priests\".  If you choose to become "
            "a priest, ask her to \"join priests\".  Of course, you can "
            "convert by asking her to \"convert me\".");
    SetLevel(45);
    SetRace("klingon");
    SetClass("cleric");
    SetGender("female");
    SetMorality(400);
    SetReligion("Dalin", "Dalite");
    SetProperty("no bump", 1);
    if( clonep() ) {
        AddChannel("priest");
    }
}
Beispiel #7
0
static void create() {
    vendor::create();
    SetKeyName("shiela");
    SetId("shiela", "vendor", "shop keeper", "keeper", "shopkeeper");
    SetShort("Shiela, the local weapon vendor");
    SetLong("She buys and sells weapons.");
    SetLevel(15);
    SetRace( "human");
    SetGender("female");
    SetMorality(40);
    SetListen("She has a very gruff voice.");
    AddCurrency("electrum", random(200));
    // the room where she stores stuff to sell
    SetStorageRoom("/domains/Ylsrim"+ "/room/weaponry_storage");
    // How good is she at being a vendor? Should be 100+
    SetSkill("bargaining", 150);
    // This vendor belongs in a particular shop, don't bump her
    SetProperty("no bump", 1);
    // She takes electrum coins
    SetLocalCurrency("electrum");
    // She buys weapons
    SetVendorType(VT_WEAPON);
}
void PopulateArrays(void)
{
	LWObject *pObject;
	LWOKeyframe *pKeyframe;
	LWOContainer *pLWOContainer;
	CameraKeyframe *pCamKeyframe;
	LWOKeyframeContainer *pKContainer;
	CameraKeyframeContainer *pCamKContainer;
	unsigned long keyframeIndex = 0, arrayIndex = 0, i;
	
	// Loop through all objects and populate keyframe arrays.
	for( pLWOContainer = (LWOContainer *)gLWOData->pLWOList->GetHead() ;
		pLWOContainer ; pLWOContainer = (LWOContainer *)pLWOContainer->GetNext() )
	{
		pObject = &pLWOContainer->myObject;

		gNISData->pObjectKeyframes[keyframeIndex].oName   = 0; // Set this up later.
		gNISData->pObjectKeyframes[keyframeIndex].oParentName = 0; // Set this up later.
		gNISData->pObjectKeyframes[keyframeIndex].race	= SetRace(pObject->fullFileName);
		gNISData->pObjectKeyframes[keyframeIndex].nSamples = pObject->objectMotions->GetNumElements() + 4;
		gNISData->pObjectKeyframes[keyframeIndex].timeOffset = (float)-1; // Start right away.

		// Offsets to data.
		gNISData->pObjectKeyframes[keyframeIndex].oLength = sizeof(timeindex) * arrayIndex + gNISData->oLengthArrays;
		gNISData->pObjectKeyframes[keyframeIndex].oTimes = sizeof(timeindex) * arrayIndex + gNISData->oTimeArrays;
		gNISData->pObjectKeyframes[keyframeIndex].oParameters = sizeof(tcb) * arrayIndex + gNISData->oParameterArrays;
		gNISData->pObjectKeyframes[keyframeIndex].oX = sizeof(float) * arrayIndex + gNISData->oXArrays;
		gNISData->pObjectKeyframes[keyframeIndex].oY = sizeof(float) * arrayIndex + gNISData->oYArrays;
		gNISData->pObjectKeyframes[keyframeIndex].oZ = sizeof(float) * arrayIndex + gNISData->oZArrays;
		gNISData->pObjectKeyframes[keyframeIndex].oH = sizeof(float) * arrayIndex + gNISData->oHArrays;
		gNISData->pObjectKeyframes[keyframeIndex].oP = sizeof(float) * arrayIndex + gNISData->oPArrays;
		gNISData->pObjectKeyframes[keyframeIndex].oB = sizeof(float) * arrayIndex + gNISData->oBArrays;

		// Add 2 duplicate frames in the beginning.
		pKContainer = (LWOKeyframeContainer *)pObject->objectMotions->GetHead();
		pKeyframe = &pKContainer->myKeyframe;
		for( i=0 ; i<2 ; i++, arrayIndex++ )
		{
			gNISData->pTimes[arrayIndex] = pKeyframe->frameNumber / gLWSData->framesPerSecond;
			gNISData->pTCB[arrayIndex].tension = pKeyframe->tension;
			gNISData->pTCB[arrayIndex].continuity = pKeyframe->continuity;
			gNISData->pTCB[arrayIndex].bias = pKeyframe->bias;
			gNISData->pX[arrayIndex] = pKeyframe->xp;
			gNISData->pY[arrayIndex] = pKeyframe->yp;
			gNISData->pZ[arrayIndex] = pKeyframe->zp;
			gNISData->pH[arrayIndex] = pKeyframe->h;
			gNISData->pP[arrayIndex] = pKeyframe->p;
			gNISData->pB[arrayIndex] = pKeyframe->b;
		}
		
		for( pKContainer = (LWOKeyframeContainer *)pObject->objectMotions->GetHead() ;
			pKContainer ; pKContainer = (LWOKeyframeContainer *)pKContainer->GetNext() )
		{
				LWOKeyframeContainer *pNextKeyframeContainer = (LWOKeyframeContainer *)pKContainer->GetNext();
				pKeyframe = &pKContainer->myKeyframe;

				// Is there a keyframe after this one?
				if(pNextKeyframeContainer)
				{
					LWOKeyframe *pNextKeyframe = &pNextKeyframeContainer->myKeyframe;
					gNISData->pLengths[arrayIndex] = (pNextKeyframe->frameNumber - pKeyframe->frameNumber) /
						gLWSData->framesPerSecond;
				}
				else
				{
					gNISData->pLengths[arrayIndex] = (gLWSData->lastFrame - pKeyframe->frameNumber) /
						gLWSData->framesPerSecond;
				}
				
				gNISData->pTimes[arrayIndex] = pKeyframe->frameNumber / gLWSData->framesPerSecond;
				gNISData->pTCB[arrayIndex].tension = pKeyframe->tension;
				gNISData->pTCB[arrayIndex].continuity = pKeyframe->continuity;
				gNISData->pTCB[arrayIndex].bias = pKeyframe->bias;
				gNISData->pX[arrayIndex] = pKeyframe->xp;
				gNISData->pY[arrayIndex] = pKeyframe->yp;
				gNISData->pZ[arrayIndex] = pKeyframe->zp;
				gNISData->pH[arrayIndex] = pKeyframe->h;
				gNISData->pP[arrayIndex] = pKeyframe->p;
				gNISData->pB[arrayIndex] = pKeyframe->b;

				arrayIndex ++;
		}

		// Add 2 duplicate frames at the end.
		pKContainer = (LWOKeyframeContainer *)pObject->objectMotions->GetTail();
		pKeyframe = &pKContainer->myKeyframe;
		for( i=0 ; i<2 ; i++, arrayIndex++ )
		{
//			gNISData->pTimes[arrayIndex] = pKeyframe->frameNumber / gLWSData->framesPerSecond;
			gNISData->pTimes[arrayIndex] = ((float)gLWSData->lastFrame - gLWSData->firstFrame) / gLWSData->framesPerSecond;
			gNISData->pTCB[arrayIndex].tension = pKeyframe->tension;
			gNISData->pTCB[arrayIndex].continuity = pKeyframe->continuity;
			gNISData->pTCB[arrayIndex].bias = pKeyframe->bias;
			gNISData->pX[arrayIndex] = pKeyframe->xp;
			gNISData->pY[arrayIndex] = pKeyframe->yp;
			gNISData->pZ[arrayIndex] = pKeyframe->zp;
			gNISData->pH[arrayIndex] = pKeyframe->h;
			gNISData->pP[arrayIndex] = pKeyframe->p;
			gNISData->pB[arrayIndex] = pKeyframe->b;
		}

		keyframeIndex ++;
	}

	// Set camera and populate keyframe arrays.
	gNISData->pCameraKeyframes->nSamples = gLWSData->pCamera->pKeyframeList->GetNumElements() + 4;
	gNISData->pCameraKeyframes->timeOffset = (float)-1; // Start right away.

	// Offsets to data.
	gNISData->pCameraKeyframes->oLength = sizeof(timeindex) * arrayIndex + gNISData->oLengthArrays;
	gNISData->pCameraKeyframes->oTimes = sizeof(timeindex) * arrayIndex + gNISData->oTimeArrays;
	gNISData->pCameraKeyframes->oParameters = sizeof(tcb) * arrayIndex + gNISData->oParameterArrays;
	gNISData->pCameraKeyframes->oX = sizeof(float) * arrayIndex + gNISData->oXArrays;
	gNISData->pCameraKeyframes->oY = sizeof(float) * arrayIndex + gNISData->oYArrays;
	gNISData->pCameraKeyframes->oZ = sizeof(float) * arrayIndex + gNISData->oZArrays;
	gNISData->pCameraKeyframes->oH = sizeof(float) * arrayIndex + gNISData->oHArrays;
	gNISData->pCameraKeyframes->oP = sizeof(float) * arrayIndex + gNISData->oPArrays;
	gNISData->pCameraKeyframes->oB = sizeof(float) * arrayIndex + gNISData->oBArrays;

	// Add 2 duplicate frames in the beginning.
	pCamKContainer = (CameraKeyframeContainer *)gLWSData->pCamera->pKeyframeList->GetHead();
	pCamKeyframe = &pCamKContainer->myKeyframe;
	for( i=0 ; i<2 ; i++, arrayIndex++ )
	{
		gNISData->pTimes[arrayIndex] = pCamKeyframe->frameNumber / gLWSData->framesPerSecond;
		gNISData->pTCB[arrayIndex].tension = pCamKeyframe->tension;
		gNISData->pTCB[arrayIndex].continuity = pCamKeyframe->continuity;
		gNISData->pTCB[arrayIndex].bias = pCamKeyframe->bias;
		gNISData->pX[arrayIndex] = pCamKeyframe->xp;
		gNISData->pY[arrayIndex] = pCamKeyframe->yp;
		gNISData->pZ[arrayIndex] = pCamKeyframe->zp;
		gNISData->pH[arrayIndex] = pCamKeyframe->h;
		gNISData->pP[arrayIndex] = pCamKeyframe->p;
		gNISData->pB[arrayIndex] = pCamKeyframe->b;
	}
	
	for( pCamKContainer = (CameraKeyframeContainer *)gLWSData->pCamera->pKeyframeList->GetHead();
		pCamKContainer ; pCamKContainer = (CameraKeyframeContainer *)pCamKContainer->GetNext() )
	{
			LWOKeyframeContainer *pNextKeyframeContainer = (LWOKeyframeContainer *)pCamKContainer->GetNext();
			pCamKeyframe = &pCamKContainer->myKeyframe;

			// Is there a keyframe after this one?
			if(pNextKeyframeContainer)
			{
				LWOKeyframe *pNextKeyframe = &pNextKeyframeContainer->myKeyframe;
				gNISData->pLengths[arrayIndex] = (pNextKeyframe->frameNumber - pCamKeyframe->frameNumber) /
					gLWSData->framesPerSecond;
			}
			else
			{
				gNISData->pLengths[arrayIndex] = (gLWSData->lastFrame - pCamKeyframe->frameNumber) /
					gLWSData->framesPerSecond;
			}
			
			gNISData->pTimes[arrayIndex] = pCamKeyframe->frameNumber / gLWSData->framesPerSecond;
			gNISData->pTCB[arrayIndex].tension = pCamKeyframe->tension;
			gNISData->pTCB[arrayIndex].continuity = pCamKeyframe->continuity;
			gNISData->pTCB[arrayIndex].bias = pCamKeyframe->bias;
			gNISData->pX[arrayIndex] = pCamKeyframe->xp;
			gNISData->pY[arrayIndex] = pCamKeyframe->yp;
			gNISData->pZ[arrayIndex] = pCamKeyframe->zp;
			gNISData->pH[arrayIndex] = pCamKeyframe->h;
			gNISData->pP[arrayIndex] = pCamKeyframe->p;
			gNISData->pB[arrayIndex] = pCamKeyframe->b;

			arrayIndex ++;
	}

	// Add 2 duplicate frames at the end.
	pCamKContainer = (CameraKeyframeContainer *)gLWSData->pCamera->pKeyframeList->GetTail();
	pCamKeyframe = &pCamKContainer->myKeyframe;
	for( i=0 ; i<2 ; i++, arrayIndex++ )
	{
		//gNISData->pTimes[arrayIndex] = pCamKeyframe->frameNumber / gLWSData->framesPerSecond;
		gNISData->pTimes[arrayIndex] = ((float)gLWSData->lastFrame - gLWSData->firstFrame) / gLWSData->framesPerSecond;
		gNISData->pTCB[arrayIndex].tension = pCamKeyframe->tension;
		gNISData->pTCB[arrayIndex].continuity = pCamKeyframe->continuity;
		gNISData->pTCB[arrayIndex].bias = pCamKeyframe->bias;
		gNISData->pX[arrayIndex] = pCamKeyframe->xp;
		gNISData->pY[arrayIndex] = pCamKeyframe->yp;
		gNISData->pZ[arrayIndex] = pCamKeyframe->zp;
		gNISData->pH[arrayIndex] = pCamKeyframe->h;
		gNISData->pP[arrayIndex] = pCamKeyframe->p;
		gNISData->pB[arrayIndex] = pCamKeyframe->b;
	}
}