Page 1 of 1

Servers up, need scripting help.

Posted: Mon Apr 17, 2006 7:33 am
by Lunne
Hi!
The Servers kind of working fine now, but we need some things.

I would like to know how to make an item, that when used creates something in your backpack. Maybe this is a script, but I dont think it would be very hard for a scripter to make this. Maybe it can be done with a command, I dont know.

I would for example want a statue, that when doubleclicked sets ALL your skills to 100, and creates a full armor in your backpack, along with a full spellbook, and like 100 of each reagent.


Also, I would like to know how to set a timer on a gate.
My shard is a temporary PvP shard, so all players will have max skills, and I will not let them outside a small area. Therefore I would like to know how to make a 10 second timer on a gate before it teleports you, so that people cannot escape from fights so easily.

Posted: Mon Apr 17, 2006 8:30 am
by DevGIB
this is based on distro... because thats where most the scripts were stolen from :P i was to lazy to script it all myself :)

Code: Select all

use os;
use uo;

const UOBJ_REG_START := 0xf78;
const UOBJ_REG_END := 0xf91;

include "include/client";
include "include/attributes";

program use_stone(who)
setskills(who, 100);
makeregs(who, 100);
spellbook(who);
makearmour(who);
endprogram


function setskill( who, amount )
var i;
for (i := 0; i <= SKILLID__HIGHEST; i := i + 1)

        print( "Setting Skill " + i + " to "+amount );
        var res := SetBaseSkillBaseValue( who, i, amount*10 );
        if (res == error)
            SendSysMessage( who, "Unable to set skill: " + res.errortext );
        else
            SendSysMessage( who, "New Effective Skill: " + GetEffectiveSkill(who,i) );
        endif
    endfor
endfunction

function makeregs(who, amount)
  amount := CInt(amount);
  if(!amount)
    amount := 20;
  endif
  var backpack := CreateItemInBackpack(who, "backpack", 1);
  backpack.color := 0x3;
  foreach thing in array( 0x0f7a, 0x0f7b, 0x0f84, 0x0f85, 0x0f86, 0x0f88, 0x0f8c, 0x0f8d )
    CreateItemInContainer(backpack, thing, amount);
  endforeach
endfunction

function spellbook( who )
//create normal book
    var book := CreateItemInBackpack(who,0x0efa, 1);
    var i;
    for (i := 0x1f2d; i <= 0x1f6c; i := i + 1)
        CreateItemInContainer(book,  i, 1);
    endfor

endfunction

function makearmour(who)
CreateItemInBackpack(who,0x1412, 1); //helm
CreateItemInBackpack(who,0x1415, 1); //breast
CreateItemInBackpack(who,0x1410, 1); //arms
CreateItemInBackpack(who,0x1411, 1); //legs
CreateItemInBackpack(who,0x1414, 1); //gloves
CreateItemInBackpack(who,0x1413, 1); //gorget
CreateItemInBackpack(who,0x1B76, 1); //heater shield
endfunction

Posted: Mon Apr 17, 2006 8:33 am
by DevGIB
oh and use a sleep(<time in seconds>); to make it wait eg for 10 seconds sleep(10); but i think you also need to add USE OS to make it sleep :)

Posted: Mon Apr 17, 2006 9:05 am
by Lunne
Guys Im sorry but Im really not a scripter, can you explain what to do more exactly?

Posted: Mon Apr 17, 2006 9:57 am
by Damien
Hi Lunne -_-

Posted: Mon Apr 17, 2006 10:01 am
by Lunne
Hello Damien

Posted: Mon Apr 17, 2006 6:32 pm
by DevGIB
http://forums.polserver.com/viewtopic.php?p=1233#1233

that link will take you to a package i made for you to do exactly what you want with a few minor changes. please feel free to download it and use it.

Posted: Tue Apr 18, 2006 12:41 am
by Lunne
Thanks a lot!

Posted: Tue Apr 18, 2006 12:41 am
by Lunne
By the way, how can I make it so you also get a tamed horse?

Posted: Tue Apr 18, 2006 1:10 am
by Lunne
Erm Which file should I change stuff in. I changed stuff in use_statue.src but it didnt affect anything.

Posted: Tue Apr 18, 2006 1:28 am
by DevGIB
itemdesc is where you wanna change the looks of the item and color etc
asfor the mount add this line in use_statue.src in the program use_statue

Code: Select all

EquipItem(who,0x3ea2);

Posted: Tue Apr 18, 2006 1:40 am
by Lunne
Thanks! But I also want to create a some weapons in the backpack.If you have MSN it would rock to get it, so I dont have to wait 2 hours for each answer.