New Commands #2 <Spawn code variation>
I added some code so that when you spawn something using #spawn it will tell you the x, y, z, and the heading of the spawn
Code: else if (strcasecmp(sep.arg[0], "#spawn") == 0 && (admin >= 1)) // Image's Spawn Code { int pHeading; cout << "Spawning:" << endl; //Well it needs a name!!! if(sep.arg[1][0] == 0) { Message(1, "Format: #spawn firstname lastname(put (null) for no last name) race gender class level hp weaponnumber heading (North- 0; West- 60; South-130; East-190): spawns a npc those parameters."); } else { //Lets see if someone didn't fill out the whole #spawn function properly if ((!strcmp(sep.arg[2],"(null)")) || sep.arg[2][0] == 0) sprintf(sep.arg[2],""); if (!sep.IsNumber(3)) sprintf(sep.arg[3],"1"); if (!sep.IsNumber(4)) sprintf(sep.arg[4],"1"); if (!sep.IsNumber(5)) sprintf(sep.arg[5],"1"); if (!sep.IsNumber(6)) sprintf(sep.arg[6],"1"); if (!sep.IsNumber(7)) sprintf(sep.arg[7],"100"); if (atoi(sep.arg[7]) > 32000) sprintf(sep.arg[7],"32000"); if (!sep.IsNumber(8)) sprintf(sep.arg[8],"0"); if (!sep.IsNumber(9) && heading >= 0) pHeading = heading; if (!sep.IsNumber(9) && heading < 0) pHeading = heading + 260; if (sep.IsNumber(9)) pHeading = atoi(sep.arg[9]); char fullname[500]; if (sep.arg[2][0] == 0) strcpy(fullname, sep.arg[1]); else sprintf(fullname,"%s_%s",sep.arg[1],sep.arg[2]); // Well we want everyone to know what they spawned, right? Message(4, "New spawn:"); Message(1, " First Name: %s",sep.arg[1]); Message(1, " Last Name: %s",sep.arg[2]); Message(1, " Race: %s",sep.arg[3]); Message(1, " Gender: %s",sep.arg[4]); Message(1, " Class: %s",sep.arg[5]); Message(1, " Level: %s",sep.arg[6]); Message(1, " Current/Max HP: %s",sep.arg[7]); Message(1, " Weapon Item Number: %s",sep.arg[8]); Message(1, " "); Message(1, " Current Heading: %d", heading); Message(1, " Current x: %d", x_pos); Message(1, " Current y: %d", y_pos); Message(1, " Current z: %d", z_pos/10); //Time to create the NPC!! NPCType npc_type; strcpy(npc_type.name,fullname); strcpy(npc_type.lastname,sep.arg[2]); npc_type.cur_hp = atoi(sep.arg[7]); npc_type.max_hp = atoi(sep.arg[7]); npc_type.race = atoi(sep.arg[3]); npc_type.gender = atoi(sep.arg[4]); npc_type.class_ = atoi(sep.arg[5]); npc_type.deity= 1; npc_type.level = atoi(sep.arg[6]); npc_type.npc_id = 0; npc_type.loottable_id = 0; npc_type.texture = 0; // add this to be defineable when we find it in the packet npc_type.light = 0; for (int i=0; i<9; i++) npc_type.equipment[i] = atoi(sep.arg[8]); NPC* npc = new NPC(&npc_type, 0, x_pos, y_pos, z_pos, pHeading, false); // Disgrace: add some loot to it! npc->AddCash(0,0,0,0); int itemcount = (rand()%5) + 1; for (int counter=0; counter<itemcount; counter++) { Item_Struct* item = 0; while (item == 0) item = database.GetItem(rand() % 33000); npc->AddItem(item, 0, 0); } entity_list.AddNPC(npc); //What the hell lets send a position update! SendPosUpdate(); } } ------------------------------------------------------------- |
hey!
hey that was my idea first! (not that I care)
|
All times are GMT -4. The time now is 09:33 PM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.