I WonT To BeLiVe
Домашняя ] Вверх ]
All what you wont, Last update 12.08.07.


Upload

In Da Forum форум сайта смотрим тут


Новости Сайта

12.08.07 Доработан дизайн.


03.07.07 Добавлены разделы.

02.07.07 Новый дизайн.

22.11.06 Обновление.

10.07.06 Форум упал.

20.06.06 Новый форум.

17.06.06 Форум удален.
 

10.06.06 Новый дизайн.


________________
Происшествия
________________
Предложения и пожелания,нашли неработающую ссылку?

Напишите об этом Администратору
Спасибо !!!
 

 
Исправим баг на Rune book

use uo;
use os;
use math;

include "customSpells";
include "include/math";
include "include/client";
include "include/coords";
include "include/canAccess";

const OBJTYPE_RUNE := 0x1f14;
const X1 := 28;
const X2 := 210;
const Y1 := 40;
const Y2 := 115;
const TILE_OFFSET_X := 42;
const TEXT_OFFSET_X := 25;
const TEXT1_OFFSET_Y := 40;
const TEXT2_OFFSET_Y := 20;
const BUTTON_OFFSET_X := 100;
const GATE_OFFSET_Y := 43;
var critical_runes := { 3,5,7,9,11,13,15};
var runecount := 0;
var pagecount := 1;
var layout := {
"page 0",
"gumppic 0 0 2220 ",

"page 1",
"button 55 10 2472 2473 1 0 900",
"text 85 12 0 0 ",
"text 260 12 0 6 ",
"text 85 38 0 1 ",
"text 150 38 0 3 ",
"text 230 38 0 2 ",
"text 333 38 0 4 ",
"gumppic 50 50 57 ",
"gumppic 70 50 58 ",
"gumppic 85 50 58 ",
"gumppic 100 50 58 ",
"gumppic 115 50 58 ",
"gumppic 130 50 58 ",
"gumppic 145 50 58 ",
"gumppic 160 50 59 ",
"gumppic 218 50 57 ",
"gumppic 233 50 58 ",
"gumppic 248 50 58 ",
"gumppic 263 50 58 ",
"gumppic 278 50 58 ",
"gumppic 293 50 58 ",
"gumppic 308 50 58 ",
"gumppic 323 50 59 "
};

var data := {
"Rename Book",
"Charges:",
"Max Charges:",
"",
"",
"Set Default",
""
};

program runebook(who, book)
EraseObjProperty(who, "IsMeditating");
EraseObjProperty(who, "HealTimer");
if(!can_access(who, book))
return;
endif
if(!ReserveItem(book))
return;
endif
var charges := GetObjProperty(book, "charges");
if(!charges)
charges := 0;
SetObjProperty(book,"charges", charges);
endif
var maxcharges := GetObjProperty(book, "maxcharges");
if(!maxcharges)
maxcharges := 5;
SetObjProperty(book,"maxcharges", maxcharges);
endif
data[4] := charges;
data[5] := maxcharges;
var selected_rune_struct;
var ret;
FillInArrays(book);
var result := SendDialogGump( who, layout, data );
if( result[0] == 0 )
return;
elseif(result[0] == 900)
if(book.movable == 0)
SendSysMessage(who, "You cannot do that while the book is locked down. ");
return;
else
renamebook(who, book);
return;
endif
endif
if(result[0] >= 600)
if(charges < 1)
SendSysMessage(who,"your book is out of charges.");
return;
endif
var d := (result[0] - 600);
var defs := GetObjProperty( book, "runedefs" );
var runeinfo := defs[d];
CreateItemInBackpack(who, 0x0F86);
CreateItemInBackpack(who, 0x0F7B);
CreateItemInBackpack(who, 0x0F7A);

ret := custom_recall(who, runeinfo, book);
charges := GetObjProperty(book,"charges") - 1;
SetObjProperty(book,"charges", charges);
bookname(book);
if( ret == 0 )
SendSysMessage( who, "Recall Failed." );
endif
return;
elseif(result[0] >= 500)
if(book.movable == 0)
SendSysMessage(who, "You cannot do that while the book is locked down. ");
return;
else
var d := (result[0] - 500);
var defs := GetObjProperty( book, "runedefs" );
var runeinfo := defs[d];
SetObjProperty(book,"x", runeinfo[2]);
SetObjProperty(book,"y", runeinfo[3]);
SetObjProperty(book,"z", runeinfo[4]);
return;
endif
elseif (result[0] >= 81)
if(book.movable == 0)
SendSysMessage(who, "You cannot do that while the book is locked down. ");
return;
else
var d := (result[0] - 80);
var defs := GetObjProperty( book, "runedefs" );
var runeinfo := defs[d];
if(!runeinfo)
SendSysMessage(who, "That rune no longer exists");
return;
endif
var rune := CreateItemInBackpack(who, 0x1f14);
SetName(rune, runeinfo[1]);
SetObjProperty(rune,"x", runeinfo[2]);
SetObjProperty(rune,"y", runeinfo[3]);
SetObjProperty(rune,"z", runeinfo[4]);
defs.erase(d);
SetObjProperty(book,"runedefs", defs);
return;
endif
endif
var funct := NormalizeReturnValue( result[0] );
var newval := result[0];
if(newval != 1 )
selected_rune_struct := FindThatRune( book, newval);
endif
case (funct)
0: return;
2: if(!ConsumeReagents(who, 32 ))
SendSysMessage(who,"you do not have enough reagents.");
PerformAction(who,ANIM_CAST_DIR);
PlaySoundEffect(who,0x005d);
PlayObjectCenteredEffect(who, 0x3735,0x0a, 0x1e);
return;
endif
CreateItemInBackpack(who, 0x0F86);
CreateItemInBackpack(who, 0x0F7B);
CreateItemInBackpack(who, 0x0F7A);
if(CheckSkill(who, SKILLID_MAGERY, 1, 1))
ret := custom_recall(who, selected_rune_struct, book);
endif
if( ret == 0 )
SendSysMessage(who, "Recall Failed.");
endif
3: if(!ConsumeReagents(who, 52 ))
SendSysMessage(who,"you do not have enough reagents.");
PerformAction(who,ANIM_CAST_DIR);
PlaySoundEffect(who,0x005d);
PlayObjectCenteredEffect(who, 0x3735,0x0a, 0x1e);
return;
endif
ret := custom_gate(who, selected_rune_struct, book);
if( ret == 0 )
SendSysMessage(who, "Gate Failed.");
endif
default:
endcase
endprogram

function bookname(book)
var name := GetObjProperty(book,"name");
if(!name)
name := "a runebook";
endif
var charges := GetObjProperty(book,"charges");
var newname := (name + " [charges: " + charges + "]");
book.name := newname;
endfunction

function renamebook(who, book)
var charges := GetObjProperty(book, "charges");
if(!charges)
charges := 0;
endif
var name := SendTextEntryGump( who, "enter the new name of the runebook. ", TE_CANCEL_ENABLE, TE_STYLE_NORMAL);
if((!name) || (name == ""))
name := "a runebook";
endif
SetObjProperty(book, "name", name);
bookname(book);
endfunction

function FillInArrays(book)
var r := 1;
var desc;
var i := 5;
var datalen;
var layoutlen;
var line1;
var line2;
var page_rune_num;
var buttonret := 2;
var val := 10;
var runedefs;
if( runedefs != "error" )
layout.append( "page " + CStr(pagecount));
pagecount := pagecount + 1;
layout.append( "button 320 8 2236 2236 0 " + CStr(pagecount));
runedefs := GetObjProperty( book, "runedefs" );
foreach runed in runedefs
var txt := runed[1];
if( len(txt) <= 12 )
desc := txt;
else
desc := txt[1,12];
endif
if (!desc)
desc := "";
endif
datalen := data.size();
data.append(desc);
case(r)
1: layout.append("text 76 60 0 " + datalen);
layout.append("button 56 62 2118 2117 1 0 " + (r+600));
2: layout.append("text 76 75 0 " + datalen);
layout.append("button 56 77 2118 2117 1 0 " + (r+600));
3: layout.append("text 76 90 0 " + datalen);
layout.append("button 56 92 2118 2117 1 0 " + (r+600));
4: layout.append("text 76 105 0 " + datalen);
layout.append("button 56 107 2118 2117 1 0 " + (r+600));
5: layout.append("text 76 120 0 " + datalen);
layout.append("button 56 122 2118 2117 1 0 " + (r+600));
6: layout.append("text 76 135 0 " + datalen);
layout.append("button 56 137 2118 2117 1 0 " + (r+600));
7: layout.append("text 76 150 0 " + datalen);
layout.append("button 56 152 2118 2117 1 0 " + (r+600));
8: layout.append("text 76 165 0 " + datalen);
layout.append("button 56 167 2118 2117 1 0 " + (r+600));
9: layout.append("text 226 60 0 " + datalen);
layout.append("button 206 62 2118 2117 1 0 " + (r+600));
10: layout.append("text 226 75 0 " + datalen);
layout.append("button 206 77 2118 2117 1 0 " + (r+600));
11: layout.append("text 226 90 0 " + datalen);
layout.append("button 206 92 2118 2117 1 0 " + (r+600));
12: layout.append("text 226 105 0 " + datalen);
layout.append("button 206 107 2118 2117 1 0 " + (r+600));
13: layout.append("text 226 120 0 " + datalen);
layout.append("button 206 122 2118 2117 1 0 " + (r+600));
14: layout.append("text 226 135 0 " + datalen);
layout.append("button 206 137 2118 2117 1 0 " + (r+600));
15: layout.append("text 226 150 0 " + datalen);
layout.append("button 206 152 2118 2117 1 0 " + (r+600));
16: layout.append("text 226 165 0 " + datalen);
layout.append("button 206 167 2118 2117 1 0 " + (r+600));
endcase
r := r + 1;
endforeach
layout.append( "page " + CStr(pagecount) );
runedefs := GetObjProperty( book, "runedefs" );
layout.append( "button 50 8 2235 2235 0 " + CStr(pagecount - 1) );
r := 1;
var counters := 0;
foreach runedef in runedefs
var txt := runedef[1];
runecount := runecount + 1;
datalen := data.size();
layoutlen := layout.size();
var runename := txt;
if (!runename)
runename := "";
endif
var split := SplitWords( runename );
var j;
for( j := 1; j <= 10; j := j + 1 )
if( !split[j] )
split[j] := "";
endif
endfor
if( len(runename) <= 16 )
line1 := runename;
line2 := "";
elseif( (len(split[1]) + len(split[2]) + len(split[3]) + 2) <= 16 )
line1 := split[1] + " " + split[2] + " " + split[3];
line2 := split[4] + " " + split[5];
elseif( len(split[1]) + len(split[2]) + 1 <= 12 )
line1 := split[1] + " " + split[2];
line2 := split[3] + " " + split[4] + " " + split[5];
elseif( len(split[1]) <= 12 )
line1 := split[1];
line2 := split[2] + " " + split[3] + " " + split[4] + " " + split[5];
endif
data.append(line1);
data.append(line2);
data.append(ToSextant(runedef[2], runedef[3]));
data.append("Drop Rune");
if(runecount in critical_runes)
pagecount := pagecount + 1;
layout.append("page " + (pagecount));
layout.append("button 50 8 2235 2235 0 " + CStr(pagecount - 1));
endif
page_rune_num := CurrentPageRuneNum( pagecount + 1, i );
case(page_rune_num)
1: layout.append("gumppic 50 40 57 ");
layout.append("gumppic 70 40 58 ");
layout.append("gumppic 85 40 58 ");
layout.append("gumppic 100 40 58 ");
layout.append("gumppic 115 40 58 ");
layout.append("gumppic 130 40 58 ");
layout.append("gumppic 145 40 58 ");
layout.append("gumppic 160 40 59 ");
layout.append("gumppic 218 40 57 ");
layout.append("gumppic 233 40 58 ");
layout.append("gumppic 248 40 58 ");
layout.append("gumppic 263 40 58 ");
layout.append("gumppic 278 40 58 ");
layout.append("gumppic 293 40 58 ");
layout.append("gumppic 308 40 58 ");
layout.append("gumppic 323 40 59 ");
layout.append("text 85 28 0 1 ");
layout.append("text 228 28 0 2 ");
layout.append("text 150 30 0 3 ");
layout.append("text 333 28 0 4 ");
layout.append("button 85 15 2361 2362 1 0 " + (r+ 500) );
layout.append("button 50 54 2118 2118 1 0 " + (r+ 600) );
layout.append("button 62 129 2438 2437 1 0 " + (val + 71) );
layout.append("button 65 150 2271 2271 1 0 " + buttonret );
layout.append("button 125 150 2291 2291 1 0 " + (buttonret + 1) );
layout.append("text 100 12 0 5 " );
layout.append("text 66 52 0 " + datalen );
layout.append("text 66 72 0 " + CStr(datalen+1));
layout.append("text 60 100 0 " + CStr(datalen+2));
layout.append("text 82 125 0 " + CStr(datalen+3));
buttonret := buttonret + 1;
val := val + 1;
r := r + 1;
2: layout.append("button 220 15 2361 2362 1 0 " + (r+ 500) );
layout.append("button 209 54 2118 2118 1 0 " + (r+ 600) );
layout.append("button 227 129 2438 2437 1 0 " + (val + 71) );
layout.append("button 230 150 2271 2271 1 0 " + buttonret );
layout.append("button 290 150 2291 2291 1 0 " + (buttonret + 1) );
layout.append("text 226 52 0 " + datalen );
layout.append("text 226 72 0 " + CStr(datalen+1));
layout.append("text 212 100 0 " + CStr(datalen+2));
layout.append("text 247 125 0 " + CStr(datalen+3));
layout.append("text 235 12 0 5 ");
if((counters + 1) < len(runedefs))
layout.append("button 320 8 2236 2236 0 " + CStr(pagecount + 1));
endif
layout.append("text 333 28 0 4 ");
buttonret := buttonret + 1;
val := val + 1;
r := r + 1;
endcase
buttonret := buttonret + 1;
counters := counters + 1;
i := i + 1;
endforeach
endif
endfunction

function CurrentPageRuneNum( pagecount, rune_number )
return( rune_number - ( (pagecount-1) * 2));
endfunction

function NormalizeReturnValue( button_num )
if( button_num == 1 )
return 1;
elseif( button_num == 2 )
return 2;
endif
var mod_ret := Mod( button_num, 2);
return (mod_ret + 2);
endfunction

function FindThatRune(book, button_num )
var runedefs := GetObjProperty( book, "runedefs" );
var rune_num := CInt( button_num / 2);
runedefs[rune_num].append(rune_num);
return( runedefs[rune_num]);
endfunction

 


 

Новое из разделов:


Юмор:
Комментатор

 


Тюнинг:
Самое мощное авто

 


Web дизайн:
Хитрости

 


Мобильник:
Сервисные коды

 

 


История дня:

Звони по 0,01$


 

 
Hosted by uCoz