#include <ctype.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include "emlen.h" #ifndef WINDOWS #include <sys/errno.h> #include <netinet/in.h> #include <signal.h> #include <sys/types.h> #include <sys/time.h> #include <dirent.h> #endif #ifdef NEW_WORLD void create_standards(CHAR_DATA *ch, char *argy) { int i=0; int start_vnum; int cur_vnum; int wearloc_counter=0; char arg1[500]; char arg2[500]; char buf[500]; DEFINE_COMMAND("create_standards",create_standards,POSITION_DEAD,110,LOG_ALWAYS,"Creates standard items.. for Orin only.. can be dangerous.") /* 30 vnums reserved for each material type, starting at vnum specified */ /* Skip 30 vnums if material type is disabled. */ argy=one_argy(argy,arg1); if (!is_number(arg1)) return; start_vnum=atoi(arg1); cur_vnum=start_vnum; argy=one_argy(argy,arg2); if (str_cmp(arg2,"YES")) return; while (str_cmp(materials[i].name,"END")) { for (wearloc_counter=0; wearloc_counter<8; wearloc_counter++) { sprintf(buf,"create %d",cur_vnum); do_oedit(ch,buf); ((OBJ_PROTOTYPE *) ch->desc->pEdit)->extra_flags=materials[i].initflags; sprintf(buf,"material %d",i+1); oedit(ch,buf); oedit(ch,"armor"); oedit(ch,"take"); sprintf(buf,"v6 %d",materials[i].strength); oedit(ch,buf); sprintf(buf,"v7 %d",materials[i].strength); oedit(ch,buf); sprintf(buf,"v5 %d",materials[i].a_slash); oedit(ch,buf); sprintf(buf,"v4 %d",materials[i].a_pound); oedit(ch,buf); sprintf(buf,"v8 %d",materials[i].a_pierce); oedit(ch,buf); if (wearloc_counter==0) { oedit(ch,"body"); sprintf(buf,"cost %d",materials[i].cost/3); oedit(ch,buf); sprintf(buf,"weight %d",materials[i].weight/4); oedit(ch,buf); sprintf(buf,"v1 %d",materials[i].armor); oedit(ch,buf); if (materials[i].s_bplate_etc) sprintf(buf,"name breastplate plate %s",materials[i].name); else sprintf(buf,"name shirt %s",materials[i].name); oedit(ch,buf); if (materials[i].s_bplate_etc) sprintf(buf,"short a %s breastplate",materials[i].name); else sprintf(buf,"short a %s shirt",materials[i].name); oedit(ch,buf); if (materials[i].s_bplate_etc) sprintf(buf,"long A %s breastplate lies on the ground here.",materials[i].name); else sprintf(buf,"long A %s shirt lies on the ground here.",materials[i].name); oedit(ch,buf); } if (wearloc_counter==1) { oedit(ch,"head"); sprintf(buf,"weight %d",materials[i].weight/7); oedit(ch,buf); sprintf(buf,"cost %d",materials[i].cost/6); oedit(ch,buf); sprintf(buf,"v2 %d",materials[i].armor); oedit(ch,buf); if (materials[i].s_bplate_etc) sprintf(buf,"name helm helmet %s",materials[i].name); else sprintf(buf,"name hood %s",materials[i].name); oedit(ch,buf); if (materials[i].s_bplate_etc) sprintf(buf,"short a %s helmet",materials[i].name); else sprintf(buf,"short a %s hood",materials[i].name); oedit(ch,buf); if (materials[i].s_bplate_etc) sprintf(buf,"long A %s helmet lies on the ground here.",materials[i].name); else sprintf(buf,"long A %s hood lies on the ground here.",materials[i].name); oedit(ch,buf); } if (wearloc_counter==2) { oedit(ch,"legs"); sprintf(buf,"weight %d",materials[i].weight/5); oedit(ch,buf); sprintf(buf,"cost %d",materials[i].cost/5); oedit(ch,buf); sprintf(buf,"v0 %d",materials[i].armor); oedit(ch,buf); if (materials[i].s_bplate_etc) sprintf(buf,"name leggings %s",materials[i].name); else sprintf(buf,"name pants %s",materials[i].name); oedit(ch,buf); if (materials[i].s_bplate_etc) sprintf(buf,"short some %s leggings",materials[i].name); else sprintf(buf,"short some %s pants",materials[i].name); oedit(ch,buf); if (materials[i].s_bplate_etc) sprintf(buf,"long Some %s leggings are here on the ground.",materials[i].name); else sprintf(buf,"long Some %s pants are here on the ground.",materials[i].name); oedit(ch,buf); } if (wearloc_counter==3) { oedit(ch,"feet"); sprintf(buf,"weight %d",materials[i].weight/7); oedit(ch,buf); sprintf(buf,"cost %d",materials[i].cost/7); oedit(ch,buf); sprintf(buf,"v0 %d",materials[i].armor); oedit(ch,buf); if (materials[i].s_bplate_etc) sprintf(buf,"name boots %s",materials[i].name); else sprintf(buf,"name shoes %s",materials[i].name); oedit(ch,buf); if (materials[i].s_bplate_etc) sprintf(buf,"short some %s boots",materials[i].name); else sprintf(buf,"short some %s shoes",materials[i].name); oedit(ch,buf); if (materials[i].s_bplate_etc) sprintf(buf,"long Some %s boots are here on the ground.",materials[i].name); else sprintf(buf,"long Some %s shoes are here on the ground.",materials[i].name); oedit(ch,buf); } if (wearloc_counter==4) { oedit(ch,"hands"); sprintf(buf,"weight %d",materials[i].weight/8); oedit(ch,buf); sprintf(buf,"cost %d",materials[i].cost/8); oedit(ch,buf); sprintf(buf,"v3 %d",materials[i].armor); oedit(ch,buf); if (materials[i].s_bplate_etc) sprintf(buf,"name gauntlets %s",materials[i].name); else sprintf(buf,"name gloves %s",materials[i].name); oedit(ch,buf); if (materials[i].s_bplate_etc) sprintf(buf,"short some %s gauntlets",materials[i].name); else sprintf(buf,"short some %s gloves",materials[i].name); oedit(ch,buf); if (materials[i].s_bplate_etc) sprintf(buf,"long Some %s gauntlets are here on the ground.",materials[i].name); else sprintf(buf,"long Some %s gloves are here on the ground.",materials[i].name); oedit(ch,buf); } if (wearloc_counter==5) { oedit(ch,"arms"); sprintf(buf,"weight %d",materials[i].weight/6); oedit(ch,buf); sprintf(buf,"cost %d",materials[i].cost/5); oedit(ch,buf); sprintf(buf,"v3 %d",materials[i].armor); oedit(ch,buf); if (materials[i].s_bplate_etc) sprintf(buf,"name armplates %s",materials[i].name); else sprintf(buf,"name sleeves %s",materials[i].name); oedit(ch,buf); if (materials[i].s_bplate_etc) sprintf(buf,"short some %s armplates",materials[i].name); else sprintf(buf,"short some %s sleeves",materials[i].name); oedit(ch,buf); if (materials[i].s_bplate_etc) sprintf(buf,"long Some %s armplates are here on the ground.",materials[i].name); else sprintf(buf,"long Some %s sleeves are here on the ground.",materials[i].name); oedit(ch,buf); } if (wearloc_counter==6) { oedit(ch,"waist"); sprintf(buf,"v1 %d",materials[i].armor/2); oedit(ch,buf); sprintf(buf,"cost %d",materials[i].cost/6); oedit(ch,buf); sprintf(buf,"v0 %d",materials[i].armor/2); oedit(ch,buf); sprintf(buf,"weight %d",materials[i].weight/7); oedit(ch,buf); sprintf(buf,"name belt %s",materials[i].name); oedit(ch,buf); sprintf(buf,"short a %s belt",materials[i].name); oedit(ch,buf); sprintf(buf,"long A %s belt lies on the ground here.",materials[i].name); oedit(ch,buf); } if (wearloc_counter==7) { oedit(ch,"shoulder"); sprintf(buf,"weight %d",materials[i].weight/8); oedit(ch,buf); sprintf(buf,"cost %d",materials[i].cost/7); oedit(ch,buf); sprintf(buf,"v2 %d",materials[i].armor/2); oedit(ch,buf); sprintf(buf,"v1 %d",materials[i].armor/2); oedit(ch,buf); if (materials[i].s_bplate_etc) sprintf(buf,"name shoulderplate %s",materials[i].name); else sprintf(buf,"name shoulderpad %s",materials[i].name); oedit(ch,buf); if (materials[i].s_bplate_etc) sprintf(buf,"short a %s shoulderplate",materials[i].name); else sprintf(buf,"short a %s shoulderpad",materials[i].name); oedit(ch,buf); if (materials[i].s_bplate_etc) sprintf(buf,"long A %s shoulderplate lies on the ground here.",materials[i].name); else sprintf(buf,"long A %s shoulderpad lies on the ground here.",materials[i].name); oedit(ch,buf); } cur_vnum++; } cur_vnum+=22; i++; } send_to_char("Done with standards!\n\r",ch); return; } #endif int count_mat(void) { int i=0; while (str_cmp(materials[i].name,"END")) i++; return i; } void handle_points(MOB_PROTOTYPE *mobp, CHAR_DATA *mob) { #ifdef NEW_WORLD int pts=mobp->points; int i; int available=pts-12; OBJ_PROTOTYPE *op; SINGLE_OBJECT *obj; int ran; int vn; int max=count_mat(); if (pts==0) return; if (number_range(1,5)==2 && available>0) { /* Body */ while (1) { ran=number_range(0,max); if (available<materials[ran].pointcost) continue; if (mobp->level<materials[ran].min_level) continue; vn=400+(ran*30); if ( (op=get_obj_index(vn)) == NULL) return; available-=materials[ran].pointcost; obj = create_object(op,7); obj_to(obj,mob); wear_obj(mob,obj,FALSE,0); break; } } else { vn=400; if ( (op=get_obj_index(vn)) == NULL) return; available-=materials[0].pointcost; obj = create_object(op,7); obj_to(obj,mob); wear_obj(mob,obj,FALSE,0); } available+=5; if (number_range(1,5)==2 && available>0) { /* Pants */ while (1) { ran=number_range(0,max); if (available<materials[ran].pointcost) continue; if (mobp->level<materials[ran].min_level) continue; vn=402+(ran*30); if ( (op=get_obj_index(vn)) == NULL) return; available-=materials[ran].pointcost; obj = create_object(op,7); obj_to(obj,mob); wear_obj(mob,obj,FALSE,0); break; } } else { vn=402; if ( (op=get_obj_index(vn)) == NULL) return; available-=materials[0].pointcost; obj = create_object(op,7); obj_to(obj,mob); wear_obj(mob,obj,FALSE,0); } available+=5; if (number_range(1,5)==2 && available>0) { /* Shoes */ while (1) { ran=number_range(0,max); if (available<materials[ran].pointcost) continue; if (mobp->level<materials[ran].min_level) continue; vn=403+(ran*30); if ( (op=get_obj_index(vn)) == NULL) return; available-=materials[ran].pointcost; obj = create_object(op,7); obj_to(obj,mob); wear_obj(mob,obj,FALSE,0); break; } } else { vn=403; if ( (op=get_obj_index(vn)) == NULL) return; available-=materials[0].pointcost; obj = create_object(op,7); obj_to(obj,mob); wear_obj(mob,obj,FALSE,0); } if (number_range(1,5)==2 && available>6) { /* Hood/etc */ while (1) { ran=number_range(0,max); if (available<materials[ran].pointcost) continue; if (mobp->level<materials[ran].min_level) continue; vn=401+(ran*30); if ( (op=get_obj_index(vn)) == NULL) return; available-=materials[ran].pointcost; obj = create_object(op,7); obj_to(obj,mob); wear_obj(mob,obj,FALSE,0); break; } } for (i=4; i<8; i++) { if (available>6) { /* Other Stuff */ while (1) { ran=number_range(0,max); if (available<materials[ran].pointcost) continue; if (mobp->level<materials[ran].min_level) continue; vn=400+i+(ran*30); if ( (op=get_obj_index(vn)) == NULL) return; available-=materials[ran].pointcost; obj = create_object(op,7); obj_to(obj,mob); wear_obj(mob,obj,FALSE,0); goto here; } } here: } #endif return; }