Page 1 of 1
Stable Master
Posted: Sat Aug 19, 2006 10:47 am
by Poi
In stablemaster.src(AI) If i change
if(GetObjProperty(ticket, "StableMaster") != me.serial)
PrintTextAbovePrivate(me, "This doesnt seem to be one of my tickets, please take it to the stable master who issued it.", player);
MoveItemToContainer(ticket, player.backpack);
return;
elseif(!canclaim(player,GetObjProperty(ticket, "pettemplate")))
say("You have no chance of controlling that!");
return;
endif
to
if(GetObjProperty(ticket, "StableMaster") != me.serial)
say("One moment please...");
elseif(!canclaim(player,GetObjProperty(ticket, "pettemplate")))
say("You have no chance of controlling that!");
return;
endif
Would that remove the part that makes it so you can only take it to that specific stable master?
Posted: Sat Aug 19, 2006 1:40 pm
by Pierce
I don't know your scripting, but it seems that the stablemaster serial, where the pet is stabled is stored as CProp "StableMaster" on the ticket.
If you don't won't that you can ignore that ticket cprop, or better don't save it on the ticket.
If it is on the ticket you can save script performance time if you use:
Code: Select all
if(!canclaim(player,GetObjProperty(ticket, "pettemplate")))
say("You have no chance of controlling that!");
return;
endif
If that's what you want, you should remove the saving of the serial of the stablemaster on the ticket. Because in this case it is useless.
Posted: Sat Aug 19, 2006 2:41 pm
by Poi
Eh ok new problemo..
Uhm, it tells me he doesnt have this pet... any ideas on how i could fix this? Maybe write a whole new simple script..
Ok i did this
Code: Select all
if(!pet)
CreateNpcFromTemplate( pet, player.x, player.y, player.z );
endif
and got an error(in game) it said "take care of error text = "Object does not support members" be sure to feed it!
entire function:
Code: Select all
function Load_Ticket_Data(player, ticket)
if(!canclaim(player,GetObjProperty(ticket, "pettemplate")))
say("You have no chance of controlling that!");
return;
endif
var tempdata := 0;
var newpet := 0;
var pet;
if(ticket.objtype == 0x14f0)
tempdata := GetObjProperty(ticket, "petserial");
say("Oh, let me find your pet for you. One moment, please.");
sleep(1);
var petserial := GetObjProperty(ticket, "petserial");
mystorage := GetObjProperty(me, "Pets");
if(petserial in mystorage)
pet := SystemFindObjectBySerial(petserial);
endif
if(!pet)
CreateNpcFromTemplate( pet, player.x, player.y, player.z );
endif
SetObjProperty(pet, "master", player.serial);
SetObjProperty(pet, "prevtamed", 1);
EraseObjProperty(pet,"stabled");
EraseObjProperty(pet,"days");
pet.script := "tamed";
RestartScript(pet);
RevokePrivilege(pet, "invul");
MoveCharacterToLocation(pet, player.x, player.y, player.z, MOVECHAR_FORCELOCATION);
var holder := array;
mystorage := GetObjProperty(me, "Pets");
foreach thing in mystorage
if(thing != pet.serial)
holder.append(thing);
endif
endforeach
mystorage := holder;
SetObjProperty(me, "Pets", mystorage);
EraseObjProperty(pet, "NextCounter");
say("Take care of " + pet.name + " and be sure to feed it!");
DestroyItem(ticket);
else
TakeItem(player, ticket);
endif
endfunction
Posted: Mon Aug 21, 2006 1:56 pm
by Poi
Bump... As to the post above, it does not creat the pet either.
Posted: Thu Aug 24, 2006 1:09 pm
by Poi
bump, please help my shard is growing and this is becoming increasingly a problem... And school just started so i dont have as much time to script..