// Evol scripts.
// Authors:
// 4144
// Description:
// test npc1
test,10,10,0 script npc1#door NPC_HIDDEN,0,1,{
OnTouch:
warp "test", 20, 20;
close;
OnUnTouch:
doevent "npc1::OnUnTouch";
}
test,10,10,0 script npc1 NPC_TEST1,3,3,{
function areatest
{
mesn;
mes "getareausers(\"test\", 7, 7, 13, 13): " + getareausers("test", 7, 7, 13, 13);
mes "getareausers(7, 7, 13, 13): " + getareausers(7, 7, 13, 13);
mes "getareausers(\"test\"): " + getareausers("test");
mes "getareausers(): " + getareausers();
mes "getareausers(\"test\", 1): " + getareausers("test", 1);
mes "getareausers(1): " + getareausers(1);
next;
return;
}
L_Start:
switch (select("show area:map:pc:change npc direction:quest test:cart:items:chat:wall:craft"))
{
case 1:
areatest;
break;
case 2:
while(1)
{
.@mask = getmapmask("test");
mes "current mask: " + str(.@mask);
switch (select("show sand:show grass:show fog:hide fog:back"))
{
case 1:
addremovemapmask "test", 4, 8;
break;
case 2:
addremovemapmask "test", 8, 4;
break;
case 3:
addmapmask "test", 2;
break;
case 4:
removemapmask "test", 2;
break;
case 5:
goto L_Start;
break;
}
}
break;
case 3:
while(1)
{
switch (select("change sex:setmount 0:setmount 1:setmount 2:test command:back"))
{
case 1:
changecharsex;
break;
case 2:
setmount 0;
break;
case 3:
setmount 1;
break;
case 4:
setmount 2;
break;
case 5:
clientcommand "emote 1";
break;
case 6:
goto L_Start;
break;
}
}
break;
case 4:
for (.@f = 0; .@f < 9; .@f ++)
{
mes "" + .@f;
.dir = .@f;
next;
}
break;
case 5:
mes "current";
.@val0 = getq(ShipQuests_Gugli);
mes "val=" + .@val0;
setq ShipQuests_Gugli, 10;
next;
mes "test 10";
next;
.@val = getq(ShipQuests_Gugli);
mes "val=" + .@val;
setq ShipQuests_Gugli, .@val0;
next;
break;
case 6:
while(1)
{
switch (select("add cart:remove cart:back"))
{
case 1:
setcart 1;
break;
case 2:
setcart 0;
break;
case 3:
goto L_Start;
break;
}
}
break;
case 7:
while(1)
{
switch (select("refine:rent:bound:named:back"))
{
case 1:
.@item = -1;
while(1)
{
switch (select("set item:refine +1:refine -1:refine fail:back"))
{
case 1:
requestitemindex .@item;
mes "Item index selected: " + str(.@item);
break;
case 2:
successrefindex .@item, 1;
break;
case 3:
downrefindex .@item, 1;
break;
case 4:
failedrefindex .@item;
break;
case 5:
goto L_Start;
break;
}
}
break;
case 2:
while(1)
{
switch (select("rent vneck for 10 seconds",
"rent vneck for 30 seconds",
"rent vneck for 1 minute",
"rent vneck for 5 minutes",
"back"))
{
case 1:
rentitem 1301, 10;
break;
case 2:
rentitem 1301, 30;
break;
case 3:
rentitem 1301, 60;
break;
case 4:
rentitem 1301, 300;
break;
case 5:
goto L_Start;
break;
}
}
break;
case 3:
while(1)
{
switch (select("get bound vneck",
"back"))
{
case 1:
getitembound2 1301, 1, 1, 0, 0, 0, 0, 0, 0, 1;
break;
case 2:
goto L_Start;
break;
}
}
break;
case 4:
while(1)
{
switch (select("get named vneck",
"back"))
{
case 1:
getnameditem 1301, "4144";
break;
case 2:
goto L_Start;
break;
}
}
break;
case 5:
goto L_Start;
break;
}
}
break;
case 8:
chatjoin .chat;
close;
case 9:
while(1)
{
switch (select("set wall 1:set wall 2:set wall 3:delete wall 1:delete wall 2:delete wall 3:back"))
{
case 1:
setcells "test", 14, 11, 17, 11, 3, "wall1";
break;
case 2:
setcells "test", 14, 7, 21, 8, 1, "wall2";
break;
case 3:
setcells "test", 13, 15, 13, 21, 3, "wall3";
break;
case 4:
delcells "wall1";
break;
case 5:
delcells "wall2";
break;
case 6:
delcells "wall3";
break;
case 7:
goto L_Start;
break;
}
}
break;
case 10:
setskin "test2";
.@var$ = requestcraft(9);
mes .@var$;
.@craft = initcraft(.@var$);
mes "craft id: " + str(.@craft);
mes "is craft valid: " + validatecraft(.@craft);
.@id = getcraftslotid(.@craft, 0);
.@amount = getcraftslotamount(.@craft, 0);
mes "first item id: " + .@id;
mes "first item name: " + getitemlink(.@id);
mes "first item amount: " + .@amount;
.@id = getcraftslotid(.@craft, 1);
.@amount = getcraftslotamount(.@craft, 1);
mes "second item id: " + .@id;
mes "second item name: " + getitemlink(.@id);
mes "second item amount: " + .@amount;
// dumpcraft .@craft;
deletecraft .@craft;
break;
}
close;
OnTouch:
doorTouch;
OnUnTouch:
doorUnTouch;
OnTimer340:
doorTimer;
OnInit:
.sex = G_MALE;
.distance = 5;
.alwaysVisible = true;
waitingroom "test room", 2, "npc1::OnReadyCheck", 1;
end;
OnWhisperGlobal:
mes "cmd: " + @whispervar0$;
close;
OnSkillInvoke:
skillInvoke[@skillId] = skillInvoke[@skillId] + 1;
end;
OnReadyCheck:
debugmes "OnReadyCheck";
$@bgid1 = waitingroom2bg("testbg", 10, 10, "bgnpc1::OnLogout","bgnpc1:OnDie");
debugmes "bgid=" + str($@bgid1);
setbgteam $@bgid1, 1;
bg_warp $@bgid1, "testbg", 10, 10;
}