unsigned short addrandomcolor(P_CHAR pc_s, char *colorlist) { char sect[512]; int i = 0,j = 0,storeval = 0; openscript("colors.scp"); sprintf(sect, "RANDOMCOLOR %s", colorlist); if (!i_scripts[colors_script]->find(sect)) { closescript(); //sprintf(pc_s->name, "Error Colorlist %s Not Found(1)", colorlist); // LB: wtf should this do apart from crashing ? copying an error message in a chars name ?? // very weired! think it should look like this: clConsole.send("Error Colorlist %s not found on character: %s\n",colorlist,pc_s->name.c_str()); return 0; } unsigned long loopexit=0; do { read1(); if (script1[0]!='}') { i++; } } while ( (script1[0]!='}') && (++loopexit < MAXLOOPS) ); closescript(); if(i>0) { i=rand()%i; i++; openscript("colors.scp"); if(!i_scripts[colors_script]->find(sect)) { closescript(); //sprintf(pc_s->name, "Error Colorlist %s Not Found(2)", colorlist); clConsole.send("Error Colorlist %s not found on character: %s\n",colorlist,pc_s->name.c_str()); return 0; } loopexit=0; do { read1(); if (script1[0]!='}') { j++; if(j==i) { storeval=hex2num(script1); } } } while ( (script1[0]!='}') && (++loopexit < MAXLOOPS) ); closescript(); } return (storeval); }
int SpawnFishingItem(UOXSOCKET s,int nInPack, char* cScript, char* cList, char* cItemID) { /*This function gets the random item number from the list and recalls SpawnItemBackpack2 passing the new number*/ char sect[512]; int i=0,item[256]={0}; openscript(cScript); sprintf(sect, "%s %s", cList, cItemID); if(!(strcmp("fishing.scp",cScript))) { if(!i_scripts[fishing_script]->find(sect)) { closescript(); return -1; } } else { if(!i_scripts[items_script]->find(sect)) { closescript(); if (n_scripts[custom_item_script][0]!=0) { openscript(n_scripts[custom_item_script]); if (!i_scripts[custom_item_script]->find(sect)) { closescript(); return -1; } } else return -1; } } int loopexit=0; do { read1(); if (script1[0]!='}') { item[i]=str2num(script1); i++; } } while( (script1[0]!='}') && (++loopexit < MAXLOOPS) ); closescript(); if(i>0) { i=rand()%(i); if(item[i]!=-1) if(nInPack) { Items->SpawnItemBackpack2(s,item[i],1); return item[i]; } } return -1; }
static int addrandomhaircolor(P_CHAR pc_s, char *colorlist) { char sect[512]; int i,j,haircolor = 0x044e; i=0; j=0; openscript("colors.scp"); sprintf(sect, "RANDOMCOLOR %s", colorlist); if (!i_scripts[colors_script]->find(sect)) { closescript(); clConsole.send("Error Colorlist %s not found on character: %s\n",colorlist,pc_s->name.c_str()); return 0; } unsigned long loopexit=0; do { read1(); if (script1[0]!='}') { i++; } } while ( (script1[0]!='}') && (++loopexit < MAXLOOPS) ); closescript(); if(i>0) { i=rand()%i; i++; openscript("colors.scp"); if(!i_scripts[colors_script]->find(sect)) { closescript(); //sprintf(pc_s->name, "Error Colorlist %s Not Found(2)", colorlist); clConsole.send("Error Colorlist %s not found on character: %s\n",colorlist,pc_s->name.c_str()); return 0; } loopexit=0; do { read1(); if (script1[0]!='}') { j++; if(j==i) { haircolor=hex2num(script1); } } } while ((script1[0]!='}') && (++loopexit < MAXLOOPS) ); closescript(); } return (haircolor); }
// opens old (readonly) books == old, bugfixed readbook function void cBooks::openbook_old(UOXSOCKET s, P_ITEM pBook) { unsigned char bookopen[10]="\x93\x40\x01\x02\x03\x00\x00\x00\x02"; //LB 7'th dec 1999, making it client 1.26 complaint unsigned char booktitle[61]="\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"; unsigned char bookauthor[31]="\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"; unsigned long loopexit=0; openscript("misc.scp"); sprintf((char*)temp, "BOOK %i", calcserial(pBook->more1, pBook->more2, pBook->more3, pBook->more4)); if (!i_scripts[misc_script]->find((char*)temp)) { closescript(); return; } LongToCharPtr(pBook->serial, &bookopen[1]); do { read2(); } while ( (strcmp((char*)script1, "PAGES")) && (++loopexit < MAXLOOPS) ); bookopen[8] = (char) str2num(script2); // LB, bugfixing old code loopexit=0; do { read2(); } while ( (strcmp((char*)script1, "TITLE")) && (++loopexit < MAXLOOPS) ); strcpy((char*)(booktitle), script2); loopexit=0; do { read2(); } while ( (strcmp((char*)script1, "AUTHOR")) && (++loopexit < MAXLOOPS) ); strcpy((char*)(bookauthor), script2); Xsend(s, bookopen, 9); // LB, bugfixing of old code Xsend(s, booktitle, 60); Xsend(s, bookauthor, 30); closescript(); }
void cAccount::LoadAccounts( void ) { int b,c,ac, account,loopexit=0; char accnumb[64]; char acc[64]; char *t; lastusedacctnum = 0; openscript("accounts.adm"); acctlist.clear(); do { read2(); if (!(strcmp((char*)script1, "SECTION"))) { c = strlen((char*)script2); for (b=0; b<9; b++) acc[b]=script2[b]; for (b=8; b<c; b++) accnumb[b-8]=script2[b]; accnumb[b-8]=0; acc[8]=0; ac = strtol(accnumb, &t, 10); if (strlen(t)!=0) ac=-1; if (strcmp(acc,"ACCOUNT ") || ac < 0 ) { clConsole.send("Error loading accounts, skipping invalid account entry!\n"); } else { account=ac; LoadAccount(account); if (account > lastusedacctnum) lastusedacctnum = account; } } } while ( (strcmp((char*)script1, "EOF")) && (++loopexit < MAXLOOPS) ); closescript(); }
// old readbook function void cBooks::readbook_readonly_old(UOXSOCKET s, P_ITEM pBook, int p) { int x, y, pos, j; unsigned char bookpage[14]="\x66\x01\x02\x40\x01\x02\x03\x00\x01\x00\x01\x00\x01"; unsigned long loopexit=0,loopexit2=0; openscript("misc.scp"); sprintf((char*)temp, "BOOK %i", calcserial(pBook->more1, pBook->more2, pBook->more3, pBook->more4)); if (!i_scripts[misc_script]->find((char*)temp)) { closescript(); return; } x=p; do { loopexit=0; do { read2(); } while ( (strcmp((char*)script1, "PAGE")) && (++loopexit < MAXLOOPS) ); x--; } while ( (x>0) && (++loopexit2 < 6666 )); closescript(); openscript("misc.scp"); sprintf((char*)temp, "PAGE %s", script2); if (!i_scripts[misc_script]->find((char*)temp)) { closescript(); return; } pos=ftell(scpfile); x=-1; y=-2; loopexit=0; do { read1(); x++; y+=strlen((char*)script1)+1; } while ( (strcmp((char*)script1, "}")) && (++loopexit < MAXLOOPS) ); y+=13; fseek(scpfile, pos, SEEK_SET); bookpage[1]=y>>8; bookpage[2]=y%256; LongToCharPtr(pBook->serial, &bookpage[3]); bookpage[9]=p>>8; bookpage[10]=p%256; bookpage[11]=x>>8; bookpage[12]=x%256; Xsend(s, bookpage, 13); for (j=0;j<x;j++) { read1(); Xsend(s, script1, strlen((char*)script1)+1); } closescript(); }
void newbieitems(CHARACTER c) { int n, first, second, third, storeval, itemaddperskill, loopexit = 0; char sect[512]; char whichsect[15]; long int pos; int s; for (s = 0; s < now; s++) { if (c == currchar[s]) break; } P_CHAR pc = MAKE_CHARREF_LR(c); first = bestskill(c); second = nextbestskill(c, first); third = nextbestskill(c, second); if (pc->baseskill[third] < 190) third = 46; for (itemaddperskill = 1; itemaddperskill <= 4; itemaddperskill++) { switch (itemaddperskill) { case 1: sprintf(whichsect, "BESTSKILL %i", first); break; case 2: sprintf(whichsect, "BESTSKILL %i", second); break; case 3: sprintf(whichsect, "BESTSKILL %i", third); break; case 4: strcpy(whichsect, "DEFAULT"); break; default: clConsole.send("ERROR: Fallout of switch statement without default. newbie.cpp, newbieitems()/n"); // Morrolan } openscript("newbie.scp"); sprintf(sect, whichsect); if (!i_scripts[newbie_script]->find(sect)) { closescript(); return; } do { read2(); if (script1[0] != '}') { if (!(strcmp("PACKITEM", (char*)script1))) { storeval = str2num(script2); pos = ftell(scpfile); closescript(); n = Items->SpawnItemBackpack2(s, storeval, 0); // Tauriel 11-24-98 if (n!=-1) items[n].priv |= 0x02; // Mark as a newbie item strcpy((char*)script1, "DUMMY"); openscript("newbie.scp"); fseek(scpfile, pos, SEEK_SET); } else if (!strcmp("BANKITEM", (char*)script1)) { storeval = str2num(script2); pos = ftell(scpfile); closescript(); P_ITEM pi = Items->SpawnItemBank(c, storeval); // Tauriel 11-24-98 if (pi != NULL) pi->priv |= 0x02; // Mark as a newbie item strcpy((char*)script1, "DUMMY"); openscript("newbie.scp"); fseek(scpfile, pos, SEEK_SET); } } } while ((script1[0] != '}') &&(++loopexit < MAXLOOPS)); closescript(); } }
void forkchild(struct job *jp, union node *n, int mode, int vforked) { int wasroot; int pgrp; const char *devnull = _PATH_DEVNULL; const char *nullerr = "Can't open %s"; wasroot = rootshell; TRACE(("Child shell %d\n", getpid())); if (!vforked) rootshell = 0; closescript(vforked); clear_traps(vforked); #if JOBS if (!vforked) jobctl = 0; /* do job control only in root shell */ if (wasroot && mode != FORK_NOJOB && mflag) { if (jp == NULL || jp->nprocs == 0) pgrp = getpid(); else pgrp = jp->ps[0].pid; /* This can fail because we are doing it in the parent also */ (void)setpgid(0, pgrp); if (mode == FORK_FG) { if (tcsetpgrp(ttyfd, pgrp) == -1) error("Cannot set tty process group (%s) at %d", strerror(errno), __LINE__); } setsignal(SIGTSTP, vforked); setsignal(SIGTTOU, vforked); } else if (mode == FORK_BG) { ignoresig(SIGINT, vforked); ignoresig(SIGQUIT, vforked); if ((jp == NULL || jp->nprocs == 0) && ! fd0_redirected_p ()) { close(0); if (open(devnull, O_RDONLY) != 0) error(nullerr, devnull); } } #else if (mode == FORK_BG) { ignoresig(SIGINT, vforked); ignoresig(SIGQUIT, vforked); if ((jp == NULL || jp->nprocs == 0) && ! fd0_redirected_p ()) { close(0); if (open(devnull, O_RDONLY) != 0) error(nullerr, devnull); } } #endif if (wasroot && iflag) { setsignal(SIGINT, vforked); setsignal(SIGQUIT, vforked); setsignal(SIGTERM, vforked); } if (!vforked) jobs_invalid = 1; }
int SpawnFishingMonster(UOXSOCKET s, char* cScript, char* cList, char* cNpcID) { /*This function gets the random monster number from the script and list specified. Npcs->AddRespawnNPC passing the new number*/ P_CHAR pc_currchar = MAKE_CHARREF_LRV(currchar[s],-1); if (pc_currchar->inGuardedArea() && SrvParms->guardsactive) //guarded return -1; char sect[512]; int i=0,item[256]={0}; openscript(cScript); sprintf(sect, "%s %s", cList, cNpcID); if(!(strcmp("fishing.scp",cScript))) { if(!i_scripts[fishing_script]->find(sect)) { closescript(); return -1; } } else { if(!i_scripts[npc_script]->find(sect)) { closescript(); if (n_scripts[custom_npc_script][0]!=0) { openscript(n_scripts[custom_npc_script]); if (!i_scripts[custom_npc_script]->find(sect)) { closescript(); return -1; } } else return -1; } } int loopexit=0; do { read1(); if(script1[0]!='}') { item[i]=str2num(script1); i++; } } while(script1[0]!='}' && (++loopexit < MAXLOOPS) ); closescript(); if(i>0) { i=rand()%(i); if(item[i]!=-1) { Npcs->AddRespawnNPC(s,item[i],0); return item[i]; } } return -1; }
void advancementobjects(int s, int x, int allways) { char sect[512]; unsigned long loopexit=0; P_CHAR pc_s = MAKE_CHARREF_LR(s); int pos; if ((pc_s->advobj==0)||(allways==1)) { staticeffect(s, 0x37, 0x3A, 0, 15); soundeffect2(s, 0x01, 0xE9); pc_s->advobj=x; openscript("advance.scp"); sprintf(sect, "ADVANCEMENT %i", x); if (!i_scripts[advance_script]->find(sect)) { closescript(); clConsole.send("ADVANCEMENT OBJECT: Script section not found. Aborting.\n"); pc_s->advobj=0; return; } else do { read2(); if (script1[0]!='}') { if ((!(strcmp("STR",(char*)script1)))||(!(strcmp("STRENGTH",(char*)script1)))) { pc_s->st= getstatskillvalue((char*)script2); pc_s->st2 = pc_s->st; } if ((!(strcmp("DEX",(char*)script1)))||(!(strcmp("DEXTERITY",(char*)script1)))) { pc_s->setDex(getstatskillvalue((char*)script2)); } if ((!(strcmp("INT",(char*)script1)))||(!(strcmp("INTELLIGENCE",(char*)script1)))) { pc_s->in= getstatskillvalue((char*)script2); pc_s->in2 = pc_s->in; } if ((!(strcmp("ALCHEMY",(char*)script1)))||(!(strcmp("SKILL0",(char*)script1)))) pc_s->baseskill[ALCHEMY] = getstatskillvalue((char*)script2); if ((!(strcmp("ANATOMY",(char*)script1)))||(!(strcmp("SKILL1",(char*)script1)))) pc_s->baseskill[ANATOMY] = getstatskillvalue((char*)script2); if ((!(strcmp("ANIMALLORE",(char*)script1)))||(!(strcmp("SKILL2",(char*)script1)))) pc_s->baseskill[ANIMALLORE] = getstatskillvalue((char*)script2); if ((!(strcmp("ITEMID",(char*)script1)))||(!(strcmp("SKILL3",(char*)script1)))) pc_s->baseskill[ITEMID] = getstatskillvalue((char*)script2); if ((!(strcmp("ARMSLORE",(char*)script1)))||(!(strcmp("SKILL4",(char*)script1)))) pc_s->baseskill[ARMSLORE] = getstatskillvalue((char*)script2); if ((!(strcmp("PARRYING",(char*)script1)))||(!(strcmp("SKILL5",(char*)script1)))) pc_s->baseskill[PARRYING] = getstatskillvalue((char*)script2); if ((!(strcmp("BEGGING",(char*)script1)))||(!(strcmp("SKILL6",(char*)script1)))) pc_s->baseskill[BEGGING] = getstatskillvalue((char*)script2); if ((!(strcmp("BLACKSMITHING",(char*)script1)))||(!(strcmp("SKILL7",(char*)script1)))) pc_s->baseskill[BLACKSMITHING] = getstatskillvalue((char*)script2); if ((!(strcmp("BOWCRAFT",(char*)script1)))||(!(strcmp("SKILL8",(char*)script1)))) pc_s->baseskill[BOWCRAFT] = getstatskillvalue((char*)script2); if ((!(strcmp("PEACEMAKING",(char*)script1)))||(!(strcmp("SKILL9",(char*)script1)))) pc_s->baseskill[PEACEMAKING] = getstatskillvalue((char*)script2); if ((!(strcmp("CAMPING",(char*)script1)))||(!(strcmp("SKILL10",(char*)script1)))) pc_s->baseskill[CAMPING] = getstatskillvalue((char*)script2); if ((!(strcmp("CARPENTRY",(char*)script1)))||(!(strcmp("SKILL11",(char*)script1)))) pc_s->baseskill[CARPENTRY] = getstatskillvalue((char*)script2); if ((!(strcmp("CARTOGRAPHY",(char*)script1)))||(!(strcmp("SKILL12",(char*)script1)))) pc_s->baseskill[CARTOGRAPHY] = getstatskillvalue((char*)script2); if ((!(strcmp("COOKING",(char*)script1)))||(!(strcmp("SKILL13",(char*)script1)))) pc_s->baseskill[COOKING] = getstatskillvalue((char*)script2); if ((!(strcmp("DETECTINGHIDDEN",(char*)script1)))||(!(strcmp("SKILL14",(char*)script1)))) pc_s->baseskill[DETECTINGHIDDEN] = getstatskillvalue((char*)script2); if ((!(strcmp("ENTICEMENT",(char*)script1)))||(!(strcmp("SKILL15",(char*)script1)))) pc_s->baseskill[ENTICEMENT] = getstatskillvalue((char*)script2); if ((!(strcmp("EVALUATINGINTEL",(char*)script1)))||(!(strcmp("SKILL16",(char*)script1)))) pc_s->baseskill[EVALUATINGINTEL] = getstatskillvalue((char*)script2); if ((!(strcmp("HEALING",(char*)script1)))||(!(strcmp("SKILL17",(char*)script1)))) pc_s->baseskill[HEALING] = getstatskillvalue((char*)script2); if ((!(strcmp("FISHING",(char*)script1)))||(!(strcmp("SKILL18",(char*)script1)))) pc_s->baseskill[FISHING] = getstatskillvalue((char*)script2); if ((!(strcmp("FORENSICS",(char*)script1)))||(!(strcmp("SKILL19",(char*)script1)))) pc_s->baseskill[FORENSICS] = getstatskillvalue((char*)script2); if ((!(strcmp("HERDING",(char*)script1)))||(!(strcmp("SKILL20",(char*)script1)))) pc_s->baseskill[HERDING] = getstatskillvalue((char*)script2); if ((!(strcmp("HIDING",(char*)script1)))||(!(strcmp("SKILL21",(char*)script1)))) pc_s->baseskill[HIDING] = getstatskillvalue((char*)script2); if ((!(strcmp("PROVOCATION",(char*)script1)))||(!(strcmp("SKILL22",(char*)script1)))) pc_s->baseskill[PROVOCATION] = getstatskillvalue((char*)script2); if ((!(strcmp("INSCRIPTION",(char*)script1)))||(!(strcmp("SKILL23",(char*)script1)))) pc_s->baseskill[INSCRIPTION] = getstatskillvalue((char*)script2); if ((!(strcmp("LOCKPICKING",(char*)script1)))||(!(strcmp("SKILL24",(char*)script1)))) pc_s->baseskill[LOCKPICKING] = getstatskillvalue((char*)script2); if ((!(strcmp("MAGERY",(char*)script1)))||(!(strcmp("SKILL25",(char*)script1)))) pc_s->baseskill[MAGERY] = getstatskillvalue((char*)script2); if ((!(strcmp("MAGICRESISTANCE",(char*)script1)))||(!(strcmp("RESIST",(char*)script1)))||(!(strcmp("SKILL26",(char*)script1)))) pc_s->baseskill[MAGICRESISTANCE] = getstatskillvalue((char*)script2); if ((!(strcmp("TACTICS",(char*)script1)))||(!(strcmp("SKILL27",(char*)script1)))) pc_s->baseskill[TACTICS] = getstatskillvalue((char*)script2); if ((!(strcmp("SNOOPING",(char*)script1)))||(!(strcmp("SKILL28",(char*)script1)))) pc_s->baseskill[SNOOPING] = getstatskillvalue((char*)script2); if ((!(strcmp("MUSICIANSHIP",(char*)script1)))||(!(strcmp("SKILL29",(char*)script1)))) pc_s->baseskill[MUSICIANSHIP] = getstatskillvalue((char*)script2); if ((!(strcmp("POISONING",(char*)script1)))||(!(strcmp("SKILL30",(char*)script1)))) pc_s->baseskill[POISONING] = getstatskillvalue((char*)script2); if ((!(strcmp("ARCHERY",(char*)script1)))||(!(strcmp("SKILL31",(char*)script1)))) pc_s->baseskill[ARCHERY] = getstatskillvalue((char*)script2); if ((!(strcmp("SPIRITSPEAK",(char*)script1)))||(!(strcmp("SKILL32",(char*)script1)))) pc_s->baseskill[SPIRITSPEAK] = getstatskillvalue((char*)script2); if ((!(strcmp("STEALING",(char*)script1)))||(!(strcmp("SKILL33",(char*)script1)))) pc_s->baseskill[STEALING] = getstatskillvalue((char*)script2); if ((!(strcmp("TAILORING",(char*)script1)))||(!(strcmp("SKILL34",(char*)script1)))) pc_s->baseskill[TAILORING] = getstatskillvalue((char*)script2); if ((!(strcmp("TAMING",(char*)script1)))||(!(strcmp("SKILL35",(char*)script1)))) pc_s->baseskill[TAMING] = getstatskillvalue((char*)script2); if ((!(strcmp("TASTEID",(char*)script1)))||(!(strcmp("SKILL36",(char*)script1)))) pc_s->baseskill[TASTEID] = getstatskillvalue((char*)script2); if ((!(strcmp("TINKERING",(char*)script1)))||(!(strcmp("SKILL37",(char*)script1)))) pc_s->baseskill[TINKERING] = getstatskillvalue((char*)script2); if ((!(strcmp("TRACKING",(char*)script1)))||(!(strcmp("SKILL38",(char*)script1)))) pc_s->baseskill[TRACKING] = getstatskillvalue((char*)script2); if ((!(strcmp("VETERINARY",(char*)script1)))||(!(strcmp("SKILL39",(char*)script1)))) pc_s->baseskill[VETERINARY] = getstatskillvalue((char*)script2); if ((!(strcmp("SWORDSMANSHIP",(char*)script1)))||(!(strcmp("SKILL40",(char*)script1)))) pc_s->baseskill[SWORDSMANSHIP] = getstatskillvalue((char*)script2); if ((!(strcmp("MACEFIGHTING",(char*)script1)))||(!(strcmp("SKILL41",(char*)script1)))) pc_s->baseskill[MACEFIGHTING] = getstatskillvalue((char*)script2); if ((!(strcmp("FENCING",(char*)script1)))||(!(strcmp("SKILL42",(char*)script1)))) pc_s->baseskill[FENCING] = getstatskillvalue((char*)script2); if ((!(strcmp("WRESTLING",(char*)script1)))||(!(strcmp("SKILL43",(char*)script1)))) pc_s->baseskill[WRESTLING] = getstatskillvalue((char*)script2); if ((!(strcmp("LUMBERJACKING",(char*)script1)))||(!(strcmp("SKILL44",(char*)script1)))) pc_s->baseskill[LUMBERJACKING] = getstatskillvalue((char*)script2); if ((!(strcmp("MINING",(char*)script1)))||(!(strcmp("SKILL45",(char*)script1)))) pc_s->baseskill[MINING] = getstatskillvalue((char*)script2); // lb, new skills if ((!(strcmp("MEDITATION",(char*)script1)))||(!(strcmp("SKILL46",(char*)script1)))) pc_s->baseskill[MEDITATION] = getstatskillvalue((char*)script2); if ((!(strcmp("STEALTH",(char*)script1)))||(!(strcmp("SKILL47",(char*)script1)))) pc_s->baseskill[STEALTH] = getstatskillvalue((char*)script2); if ((!(strcmp("REMOVETRAPS",(char*)script1)))||(!(strcmp("SKILL48",(char*)script1)))) pc_s->baseskill[REMOVETRAPS] = getstatskillvalue((char*)script2); if ((!(strcmp("DYEHAIR",(char*)script1)))) { unsigned int ci; vector<SERIAL> vecContainer = contsp.getData(pc_s->serial); P_ITEM pi_hair = NULL; for (ci = 0; ci < vecContainer.size(); ci++) { P_ITEM pi_temp = FindItemBySerial(vecContainer[ci]); if (pi_temp != NULL) if (pi_temp->layer == 0x0B) { pi_hair = pi_temp; break; } } if (pi_hair != NULL) { x=hex2num(script2); pi_hair->color1=x>>8; pi_hair->color2=x%256; RefreshItem(pi_hair);//AntiChrist teleport(DEREF_P_CHAR(pc_s)); } } if ((!(strcmp("DYEBEARD",(char*)script1)))) { int ci; P_ITEM pi_beard = NULL; vector<SERIAL> vecContainer = contsp.getData(pc_s->serial); for (ci = 0; ci < vecContainer.size();ci++) { P_ITEM pi_temp = FindItemBySerial(vecContainer[ci]); if (pi_temp != NULL) if (pi_temp->layer == 0x10) { pi_beard = pi_temp; break; } } if (pi_beard != NULL) { x=hex2num(script2); pi_beard->color1=x>>8; pi_beard->color2=x%256; RefreshItem(pi_beard);//AntiChrist teleport(DEREF_P_CHAR(pc_s)); }