 |
 |
 |
 |
| Author |
Message |
Poi
Joined: 14 Apr 2006 Posts: 240
|
Posted: Wed Jun 21, 2006 10:19 am Post subject: |
|
|
Ok, everyone that is trying to help thanks but forget all that because now ill just do i region, please guide me on what to do here is my current script:
| Code: | use os;
use uo;
include "include/canAccess";
include "include/attributes";
const SEARCH_RANGE := 10;
program makevendor(who, deed)
EraseObjProperty(who, "IsMeditating");
EraseObjProperty(who, "HealTimer");
if(!can_access(who, deed))
return;
endif
if(!ReserveItem(deed))
return;
endif
var place;
if(who.multi.serial)
var multi := who.multi;
var sign;
foreach thing in (multi.components)
if(thing.objtype == 0xbd2)
sign := thing;
break;
endif
endforeach
if(!sign)
SendSysMessage(who, "You cannot place a vendor here.");
return;
endif
if(!GetObjProperty(sign, "Public"))
SendSysMessage(who, "You can only place vendors in public houses.");
return;
endif
place := CreateNpcFromTemplate("playervendor", who.x, who.y, who.z);
if(!place)
SendSysMessage( who, "Your vendor has not been created");
return;
else
SendSysMessage(who, "You have successfully created a vendor");
SetObjProperty(place, "master", who.serial);
SetObjProperty(place, "mn", who.name);
SetObjProperty(place, "r", 1500);
if(!DestroyItem(deed))
RevokePrivilege(place, "invul");
SetObjProperty(place, "guardkill", 1);
ApplyRawDamage(place, (GetHp(place) + 5));
endif
endif
else
SendSysMessage( who, "You cannot place your vendor here");
return;
endif
endprogram |
And i've got no idea where to start |
|
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
 |
 |
| Author |
Message |
CWO
Joined: 04 Feb 2006 Posts: 699 Location: Chicago, IL USA
|
Posted: Thu Jun 22, 2006 12:57 am Post subject: |
|
|
ok, so what you do here is
| Code: |
program makevendor(who, deed)
EraseObjProperty(who, "IsMeditating");
EraseObjProperty(who, "HealTimer");
if(!can_access(who, deed))
return;
endif
if(!ReserveItem(deed))
return;
endif
var place;
if(who.multi.serial)
var multi := who.multi;
var sign;
foreach thing in (multi.components)
if(thing.objtype == 0xbd2)
sign := thing;
break;
endif
endforeach
if(!sign)
SendSysMessage(who, "You cannot place a vendor here.");
return;
endif
if(!GetObjProperty(sign, "Public"))
SendSysMessage(who, "You can only place vendors in public houses.");
return;
endif
CreateVendor(who, deed);
elseif ((who.x > leftx) && (who.x < rightx) && (who.y > topy) && (who.y < bottomy))
CreateVendor(who, deed);
else
SendSysMessage( who, "You cannot place your vendor here");
return;
endif
endprogram
function CreateVendor(who, deed)
place := CreateNpcFromTemplate("playervendor", who.x, who.y, who.z);
if(!place)
SendSysMessage( who, "Your vendor has not been created");
return;
else
SendSysMessage(who, "You have successfully created a vendor");
SetObjProperty(place, "master", who.serial);
SetObjProperty(place, "mn", who.name);
SetObjProperty(place, "r", 1500);
if(!DestroyItem(deed))
RevokePrivilege(place, "invul");
SetObjProperty(place, "guardkill", 1);
ApplyRawDamage(place, (GetHp(place) + 5));
endif
endif
endfunction
|
then declare these variables at the top of your script
var leftx := // The leftmost X (or western border) of your region
var rightx := // The rightmost X (or eastern border)
var topy := // The topmost Y (or northern border)
var bottomy := // The bottommost border (or southern border)
Be aware that the script I put there does no other checking of any kind if you're within the region box unless you're in a house then it will do all house checks. If you want to add extra checks and restrictions for your region, add them after
elseif ((who.x > leftx) && (who.x < rightx) && (who.y > topy) && (who.y < bottomy)) |
|
 |
|
|
 |
 |
| Author |
Message |
Poi
Joined: 14 Apr 2006 Posts: 240
|
Posted: Thu Jun 22, 2006 1:26 am Post subject: |
|
|
Thank you, no you didnt solve my problem, you opened a new gateway to how i could place vendors on these tiles
Simple simple simple..:
For further refrence:
| Quote: |
use os;
use uo;
include "include/canAccess";
include "include/attributes";
program makevendor(who, deed)
EraseObjProperty(who, "IsMeditating");
EraseObjProperty(who, "HealTimer");
if(!can_access(who, deed))
return;
endif
if(!ReserveItem(deed))
return;
endif
var place;
if(who.multi.serial)
var multi := who.multi;
var sign;
foreach thing in (multi.components)
if(thing.objtype == 0xbd2)
sign := thing;
break;
endif
endforeach
if(!sign)
SendSysMessage(who, "You cannot place a vendor here.");
return;
endif
if(!GetObjProperty(sign, "Public"))
SendSysMessage(who, "You can only place vendors in public houses.");
return;
endif
CreateVendor(who, deed);
elseif (0xecb9)
CreateVendor(who, deed);
else
SendSysMessage( who, "You cannot place your vendor here");
return;
endif
endprogram
function CreateVendor(who, deed)
var place := CreateNpcFromTemplate("playervendor", who.x, who.y, who.z);
if(!place)
SendSysMessage( who, "Your vendor has not been created");
return;
else
SendSysMessage(who, "You have successfully created a vendor");
SetObjProperty(place, "master", who.serial);
SetObjProperty(place, "mn", who.name);
SetObjProperty(place, "r", 1500);
if(!DestroyItem(deed))
RevokePrivilege(place, "invul");
SetObjProperty(place, "guardkill", 1);
ApplyRawDamage(place, (GetHp(place) + 5));
endif
endif
endfunction
|
|
|
 |
|
|
 |
 |
|