Назад

помогите со скриптом итема

Автор: San: Дата: 12.31.2010

итем должен давать + 3вит,+ 10%хп, и для каждой професии свое:

{assasin cross}
+10атк
Sonik blow + 5%dmg
{Proffesor}
+10% dmg fair bolt
+2%matk
{High Wizard}
+5% dmg meteor shtorm
+2% matk
{Lord Knight}
+10 atk
+5% dmg spiral pirces

{High Priest}
+15% dmg holy light
+2% resist on demi-human
{Paladin}
+5% dmg Sacrofasie
+5% hp

{Champion}
+3% dmg azura strike
+5 atk
{Sniper}
+5% dmg Sharp shuting
+10 atk

{Clown and Gypsy}
+5% dmg arrow vulcan
+10 atk
{Alchemist}
5% dmg Acid Dmonstration
{Whitesmith}
10% dmg cart termination
вот скрипт итема
{ bonus bVit,3; bonus bMaxHPrate,10; if(BaseJob==Job_Assassin_Cross){ bonus bAtk,10; bonus2 bSkillAtk,"AS_SONICBLOW",5;}if(BaseJob==Job_Professor){ bonus bMatkRate,2; bonus2 bSkillAtk,"MG_FIREBOLT",10;}if(BaseJob==Job_High_Wizard){ bonus bMatkRate,2; bonus2 bSkillAtk,"WZ_METEOR",5; }if(BaseJob==Job_Lord_Knight){ bonus bAtk,10; bonus2 bSkillAtk,"KN_PIERCE",5; }if(BaseJob==Job_High_Priest){ bonus2 bSubRace,RC_DemiHuman,2; bonus2 bSkillAtk,"AL_HOLYLIGHT",15; }if(BaseJob==Job_Paladin){ bonus bMaxHPrate,5; bonus2 bSkillAtk,"CR_DEVOTION",5; }if(BaseJob==Job_Champion){ bonus bAtk,5; bonus2 bSkillAtk,"MO_EXTREMITYFIST",3; }if(BaseJob==Job_Sniper){ bonus bAtk,10; bonus2 bSkillAtk,"SN_SHARPSHOOTING",5; }if(BaseJob==Job_Gypsy){ bonus bAtk,10; bonus2 bSkillAtk,"CG_ARROWVULCAN",5; }if(BaseJob==Job_Whitesmith){ bonus2 bSkillAtk,"WS_CARTTERMINATION",5; }if(BaseJob==Job_Creator){ bonus2 bSkillAtk,"CR_ACIDDEMONSTRATION",5;}},{},{}
но он дает только + 3вит и 10%хп, а определенным профам ничего не дает.:(
помогите найти ошибку, или подскажыте в чем может быть проблема?

Автор: San: Дата: 12.31.2010

делал и так и так, в таких случаях ругается мап сервер что неправильный формат Script column.

Автор: ShadowOfLight: Дата: 12.31.2010

У тебя, по-моему, большое количество символов ";" пропущено.
Конструкция "if" может быть записана двумя способами:

1. if (strcharinfo(0)=="Джонни Кейдж") {
mes "Джонни! Я тебя ждал!!!";
} else {
mes "Ты не Джонни Кейдж, я не буду с тобой разговаривать";
}
Полная форма, после последней фигурной скобки разделитель ";" не нужен
2. if (strcharinfo(0)=="Джонни Кейдж") {
mes "Джонни! Я тебя ждал!!!";
};
Краткая форма, на конце обязателен разделитель ";"

У тебя как раз второй случай

А вообще я бы посоветовал в данном случае использовать конструкцию свитча:
switch(BaseJob) {
case Job_Assassin_Cross: bonus bAtk,10; bonus2 bSkillAtk,"AS_SONICBLOW",5; break;
case Job_Professor: bonus bMatkRate,2; bonus2 bSkillAtk,"MG_FIREBOLT",10; break;
(и т.д.)
}

Автор: San: Дата: 12.31.2010

не помогло:(

Автор: ShadowOfLight: Дата: 12.31.2010

Хм, кажется, мы вообще не ту переменную используем)))
Не 'BaseClass', а просто 'Class' (подсмотрено у скрипта Poison Bottle ^^)

Автор: San: Дата: 12.31.2010

большое спасибо.:)

Автор: San: Дата: 01.01.2011

Еще появилась ошибка, нельзя сделать чтобы давало бонус клоуну или гипсе, можно вписать только кого то одного, когда вписываю двоих мап сервер пишет ошибку что неправильный формат Script column.

Если делаю так

case Job_"+((sex)?"Clown":"Gypsy")+":
пишет что не правильный формат (OnEquip_Script column) , хотя в OnEquip_Script я ничего не писал. Когда переношу весь код в OnEquip_Script, всеравно пишет ошибку.:(

Подскажите как сделать, чтобы и для клоуна и для гипси давало бонус?

Автор: ShadowOfLight: Дата: 01.01.2011

Команда свитч позволяет обрабатывать несколько позиций за раз:

case Job_Gypsy: case Job_Clown: bonus bAtk,10; bonus2 bSkillAtk,"CG_ARROWVULCAN",5; break;


Добавлю, что есть ещё такое понятие, как дефолт - "всё остальное".
switch(rand(99)) {
case 0:
mes "Тебе повезло попасть в счастливые 2% выигрышных кликов! Твой приз - TCG!!";
getitem 7227,1;
close; break;
case 1:
mes "Тебе повезло попасть в счастливые 2% выигрышных кликов! Твой приз - Snow Crystal!!";
getitem 7088,1;
close; break;
default:
mes "Увы, ты проиграл. Но ничего страшного - победителями могут стать только 2% кликеров.";
close;
}


А вообще, раз он у тебя выдал ошибку "OnEquip", то проверь, не поставил ли ты лишнюю "}"