Jump to content
  • 0

Fake headgear disguiser


nixrlz

Question


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  27
  • Reputation:   0
  • Joined:  12/15/12
  • Last Seen:  

Hello .. hi again , i want to ask.. i have this Script about headgear disguiser . .

it works perfectly .. but theres a problem with it..

everytime i tried to disguise my headgear .. yes it works.. it change the looks.. but the problem is .. if i change to another headgear .. and put the headgear that i already disguise .. the headgear change to normal state/first state .. it didnt stay on the headgear that i disguise..

or anyway heres the script

[size=4]brasilis,192,173,5[/size][size=4] [/size][size=4]script[/size][size=4] [/size][size=4]Headgear Disguiser#Iris[/size][size=4] [/size][size=4]763,{[/size]

//Cancels Overplace Unused Variables
if (lock_headgear > 0) {
if (lock_headgear & 1) {
if ( (getiteminfo(getequipid(1),5) != getlook(4)) || (getequipisequiped(1) == 0) ) {
set lock_headgear, lock_headgear - 1;

}
}
if (lock_headgear & 2) {
if ( (getiteminfo(getequipid(9),5) != getlook(5)) || (getequipisequiped(9) == 0) ) {
set lock_headgear, lock_headgear - 2;
setlook 5, getiteminfo(getequipid(9),11);
}
}
if (lock_headgear & 4) {
if ( (getiteminfo(getequipid(10),5) != getlook(3)) || (getequipisequiped(10) == 0) ) {
set lock_headgear, lock_headgear - 4;
setlook 3, getiteminfo(getequipid(10),11);
}
}
if (lock_headgear & 8) {
if ( (getiteminfo(getequipid(10),5) != getlook(3)) || (getequipisequiped(10) == 0) ) {
set lock_headgear, lock_headgear - 8;
setlook 3, getiteminfo(getequipid(1),11);
}
}
if (lock_headgear & 16) {
if ( (getiteminfo(getequipid(10),5) != getlook(3)) || (getequipisequiped(10) == 0) ) {
set lock_headgear, lock_headgear - 16;
setlook 3, getiteminfo(getequipid(1),11);
}
}
if (lock_headgear & 32) {
if ( (getiteminfo(getequipid(10),5) != getlook(3)) || (getequipisequiped(10) == 0) ) {
set lock_headgear, lock_headgear - 32;
setlook 3, getiteminfo(getequipid(9),11);
}
}
mes "["+strnpcinfo(1)+"]";
mes "Would you like to undisguise back?";
menu "Yes please.",-,"No, maybe next time.",maybe;
next;
mes "["+strnpcinfo(1)+"]";
mes "I have successfully ^FF0000undisguised^000000 the current disguised headgears.";
setlook 4, getiteminfo(getequipid(1),11);
close;
}

//Introduction
mes "["+strnpcinfo(1)+"]";
mes "Hi there ^0000FF"+strcharinfo(0)+"^000000! I can make any of your headgears";
mes "to look like a different one";
mes "while you keep the same effect.";
mes "for ^FF00005 Vote Points each headgear.^000000";
next;
mes "["+strnpcinfo(1)+"]";
mes "Would you like to try?";
next;

while (1) {

//No Headgear
if ( (getequipisequiped(1) == 0) && (getequipisequiped(9) == 0) && (getequipisequiped(10) == 0) ) {
mes "["+strnpcinfo(1)+"]";
mes "Sorry but I don't seem to find any headgear on your equipment.";
close;
}

//Sets temp values to empty headgears (for comparison)
set .@top, 0;
set .@mid, 0;
set .@bot, 0;
if (getequipisequiped(1) == 0)
set .@top, 1;
else
set .@top, getequipid(1);
if (getequipisequiped(9) == 0)
set .@mid, 2;
else
set .@mid, getequipid(9);
if (getequipisequiped(10) == 0)
set .@bot, 3;
else
set .@bot, getequipid(10);


//Checks for only one headgear location.
set .@position, 0;
if ( (.@top != .@mid) && (.@top != .@bot) && (.@mid != .@bot) ) {
if (getequipisequiped(1) != 0)
if (!(lock_headgear & 1))
set .@position, .@position | 1;
if (getequipisequiped(9) != 0)
if (!(lock_headgear & 2))
set .@position, .@position | 2;
if (getequipisequiped(10) != 0)
if (!(lock_headgear & 4))
set .@position, .@position | 4;
}

//Top-Mid-Lower Headgear
else if ( (.@top == .@mid) && (.@top == .@bot) )
set .@position, 8;

//Top-Mid Headgear
else if  (.@top ==  .@mid)
set .@position, 16;

//Mid-Lower Headgear
else if (.@mid == .@bot)
set .@position, 32;

else {
mes "["+ strnpcinfo(1) +"]";
mes "Sorry but I cannot work on this headgear!";
close;
}

set .@menu$, "";
set .@menu, 0;
set .@calib, 0;

//Single Headgears
if (.@position & 1) {
set .@menu$, .@menu$ + "Upper Headgear" + ":";
set .@menucal[.@calib], 1;
set .@calib, .@calib + 1;
}
if (.@position & 2) {
set .@menu$, .@menu$ + "Middle Headgear" + ":";
set .@menucal[.@calib], 2;
set .@calib, .@calib + 1;
}
if (.@position & 4) {
set .@menu$, .@menu$ + "Lower Headgear" + ":";
set .@menucal[.@calib], 3;
set .@calib, .@calib + 1;
}

//Multiple Headgears
if (.@position & 8)
set .@menu$, .@menu$ + "Full Headgear" + ":";
else if (.@position & 16)
set .@menu$, .@menu$ + "Top-Mid Headgear" + ":";
else if (.@position & 32)
set .@menu$, .@menu$ + "Bottom-Mid Headgear" + ":";

if (.@menu$ == "") {
mes "["+strnpcinfo(1)+"]";
mes "Sorry I cannot disguise multiple-location headgears at the same time.";
close;
}

//Generates menu
set .@menu, select(.@menu$) - 1;

set .@position, 0;
set .@multiple, 0;

//Single
if (getarraysize(.@menucal) != 0) {

if ( (.@menucal[.@menu] == 1) && (!(lock_headgear & 1) ) )
set .@position, 1;
else if ( (.@menucal[.@menu] == 2) && (!(lock_headgear & 2) ) )
set .@position, 9;
else if ( (.@menucal[.@menu] == 3) && (!(lock_headgear & 4) ) )
set .@position, 10;

set .@break, 1;
deletearray .@menucal;
}

//Multiple
else {

//Disabled Multiple Headgear Function
//Because It wasn't working properly.
//Will work on it later - Kenedos.
mes "["+strnpcinfo(1)+"]";
mes "Sorry but I cannot work on multiple-location headgears!";
close;

if ( (.@position & 8) && ( (!(lock_headgear & 1)) && (!(lock_headgear & 2))  && (!(lock_headgear & 4)) ) ) {
set .@position, 1;
set .@multiple, 8;
}
else if ( (.@position & 16) && ( (!(lock_headgear & 1)) && (!(lock_headgear & 2)) ) ) {
set .@position, 1;
set .@multiple, 16;
}
else if ( (.@position & 32) && ( (!(lock_headgear & 2)) && (!(lock_headgear & 4)) ) ) {
set .@position, 9;
set .@multiple, 32;
}

set .@break, 1;
}

//Checks for already disguised headgear
if (!.@break) {
mes "["+strnpcinfo(1)+"]";
mes "Sorry but you already have this location of headgear disguised.";
close;
}
set .@break, 0;


//Asks for the headgear to be replaced
mes "["+strnpcinfo(1)+"]";
mes "You are currently wearing a ^FF0000"+ getitemname(getequipid(.@position)) +"^000000,";
mes "Kindly select from the list from your inventory the headgear you'd like to copy:";
next;

//Gets inventory headgear listing
getinventorylist;
set .@loc, getiteminfo(getequipid(.@position),5);
set .@menu$, "";
set .@select, 0;
set .@j, 0;
for (set .@i, 0; .@i < @inventorylist_count; set .@i, .@i + 1) {
if ( (getiteminfo(@inventorylist_id[.@i],5) == .@loc) && (@inventorylist_id[.@i] != getequipid(.@position) ) ) {
set .@inventoryid[.@j], @inventorylist_id[.@i];
set .@menu$, .@menu$ + getitemname(.@inventoryid[.@j]) + ":";
set .@j, .@j + 1;
}
}

//Generates the menu
if (.@menu$ == "") {
mes "["+strnpcinfo(1)+"]";
mes "Huh? You must have headgears of the same headgear equip location in your inventory to switch appearances!";
close;
}
set .@select, select(.@menu$) - 1;

//Checks for broken inventory equip
if (getbrokenid(.@inventoryid[.@select]) > 0) {
mes "["+strnpcinfo(1)+"]";
mes "Sorry but it seems that the item you have selected is broken, either that or you have other items of the same ID broken in your inventory. Please come back when you have repaired your headgear.";
close;
}

//Asks for confirmation
mes "["+strnpcinfo(1)+"]";
mes "You will disguise a ^FF0000" +getequipname(.@position)+ "^000000 into a ^0000FF"+ getitemname(.@inventoryid[.@select]) +"^000000, Are you sure you want to proceed?";
next;
if (select ("Yes:No") == 2) close;

//Sets anti-overplace variables
if (.@multiple == 0) {
if (.@position == 1) {
set .@look, 4;
set lock_headgear, lock_headgear + 1;
}
else if (.@position == 9) {
set .@look, 5;
set lock_headgear, lock_headgear + 2;
}
else if (.@position == 10) {
set .@look, 3;
set lock_headgear, lock_headgear + 4;
}
}
else {
if (.@multiple == 32)
set .@look, 5;
else
set .@look, 4;

set lock_headgear, lock_headgear + .@multiple;
}
if(#CASHPOINTS < 5) goto L_notcash;
setlook .@look, getiteminfo(.@inventoryid[.@select], 11);
set #CASHPOINTS,#CASHPOINTS-5;
dispbottom "Remaining Vote Points: "+#CASHPOINTS+"";
mes "["+strnpcinfo(1)+"]";
mes "All done! Would you like to disguise another?";
next;
if (select ("Yes:No") == 2) close;
deletearray .@inventoryid;

}

L_notcash:
mes "["+strnpcinfo(1)+"]";
mes "Sorry but you don't have enough voting points.";
next;
mes "["+strnpcinfo(1)+"]";
mes "Please kill more People ^^ ^FF0000 remember 1 person 1 points! No abuse or banned  ^000000";
mes "Come back later^^ . ";
close;

maybe:
close;

[size=4]}[/size]

btw this is @kenedos Script.. can anyone help me?

bump anyone?

fakeheadgears.txt

Edited by nixrlz
Link to comment
Share on other sites

3 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  27
  • Reputation:   0
  • Joined:  12/15/12
  • Last Seen:  

anyonee??

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  27
  • Reputation:   0
  • Joined:  12/15/12
  • Last Seen:  

bumpppp... please help

Link to comment
Share on other sites


  • Group:  Developer
  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  2407
  • Reputation:   613
  • Joined:  07/05/12
  • Last Seen:  

I think you need source modification for that, like an 'OnPCEquipEvent' which trigger when a player equip something otherwise it's not possible by script NPC

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...