
Каждый наверно задумывался о продаже каких-либо вещей в СЛ. На самом деле, все предельно просто. Для того что бы открыть собственный магазин нужен лишь участок и витрина (vendor). Создаем куб, делаем из него что-то похожее на витрину, ставим нужную текстуру и размер. Добавляем туда вешь, которую хотим продать (просто перетаскиваем его). В "содержиние" добавляем новый скрипт. Открываем его для правки и копируем туда текст скрипта: integer price = 100; string single_object = "name";
ECGive(key tgt) { if (single_object == "") { integer i; integer num = llGetInventoryNumber(INVENTORY_ALL); for (i=0; i<num;i++) { if (llGetInventoryName(INVENTORY_ALL, i) != llGetScriptName()) { llGiveInventory(tgt,llGetInventoryName(INVENTORY_ALL, i)); } } } else { llGiveInventory(tgt,single_object); } }
default { on_rez(integer num) { llResetScript(); } state_entry() { llSetPayPrice(PAY_HIDE, [PAY_HIDE,PAY_HIDE,PAY_HIDE,PAY_HIDE]); llRequestPermissions(llGetOwner(), PERMISSION_DEBIT); } run_time_permissions(integer perm) { if(perm & PERMISSION_DEBIT) state selling; } }
state selling { on_rez(integer num) { llResetScript(); } state_entry() { llSetPayPrice(PAY_HIDE, [price,PAY_HIDE,PAY_HIDE,PAY_HIDE]); } money(key id, integer amount) { if (amount == price) { ECGive(id); } else { llGiveMoney(id, amount); llInstantMessage(id, "You paid "+(string)amount+", which is the wrong price. The correct price is: "+(string)price); } } } Сохраняем. В скрипте первая строчка integer price = 100; это цена вашей вещи. Вторая строчка string single_object = "name"; ее название.
Теперь закрываем меню правки и кликаем по ветрине, выбираем pay. Удачной торговли ;-)
|