Назад

Линк для 10+ уровней гма

Автор: S2pidsMan: Дата: 03.03.2011

//Supporter NPC
//By: Brendash Taylor
//
prontera,171,225,3 script Prontera Linker::Soul-Linker 714,{

OnInit:
defpattern 1, "([^:]+):.*link me.*", "LinkMe";
activatepset 1;
end;

LinkMe:
{
if(Class<=6 && Class==22 && Class>=24 && Class<=27 && Class>=4023 && Class<=4046){
goto NoLink;}
else if(Class >= Job_Novice_High && Class <= Job_Thief_High){
if(Baselevel <= 69)
{npcskilleffect 494,5,0,0;
callfunc("Linked");}
else
goto NoLink;}
else if((Class==Job_Knight)||(Class==Job_Lord_Knight)){
npcskilleffect 452,5,0,0;
callfunc("Linked");}
else if((Class==Job_Hunter)||(Class==Job_Sniper)){
npcskilleffect 460,5,0,0;
callfunc("Linked");}
else if((Class==Job_Wizard)||(Class==Job_High_Wizard)){
npcskilleffect 453,5,0,0;
callfunc("Linked");}
else if((Class==Job_Blacksmith)||(Class==Job_Whitesmith)){
npcskilleffect 458,5,0,0;
callfunc("Linked");}
else if((Class==Job_Assassin)||(Class==Job_Assassin_Cross)){
npcskilleffect 457,5,0,0;
callfunc("Linked");}
else if((Class==Job_Priest)||(Class==Job_High_Priest)){
npcskilleffect 454,5,0,0;
callfunc("Linked");}
else if((Class==Job_Crusader)||(Class==Job_Paladin)){
npcskilleffect 450,5,0,0;
callfunc("Linked");}
else if((Class==Job_Bard)||(Class==Job_Dancer)||(Class==Job_Clown)||(Class==Job_Gypsy)){
npcskilleffect 455,5,0,0;
callfunc("Linked");}
else if((Class==Job_Sage)||(Class==Job_Professor)){
npcskilleffect 449,5,0,0;
callfunc("Linked");}
else if((Class==Job_Alchemist)||(Class==Job_Creator)){
npcskilleffect 445,5,0,0;
callfunc("Linked");}
else if((Class==Job_Rogue)||(Class==Job_Stalker)){
npcskilleffect 456,5,0,0;
callfunc("Linked");}
else if((Class==Job_Monk)||(Class==Job_Champion)){
npcskilleffect 447,5,0,0;
callfunc("Linked");}
else if(Class==Job_SuperNovice){
npcskilleffect 451,5,0,0;
callfunc("Linked");}
else if(Class==Job_Star_Gladiator){
npcskilleffect 448,5,0,0;
callfunc("Linked");}
else if(Class==Job_Soul_Linker){
npcskilleffect 461,5,0,0;
callfunc("Linked");}
else {sleep 2000;
npctalk "Your soul cannot be linked in your current state.";
end;}
}
NoLink:
{sleep 2000;
npctalk "Your soul cannot be linked in your current state.";
end;}
}
morocc,168,109,3 duplicate(Soul-Linker) Morocc Linker 714
geffen,133,65,3 duplicate(Soul-Linker) Geffen Linker 714
payon,188,225,3 duplicate(Soul-Linker) Payon Linker 714
alberta,129,60,3 duplicate(Soul-Linker) Alberta Linker 714
izlude,139,154,3 duplicate(Soul-Linker) Izlude Linker 714
aldebaran,143,126,3 duplicate(Soul-Linker) Al De Baran Linker 714
xmas,153,110,3 duplicate(Soul-Linker) Lutie Linker 714
comodo,222,135,3 duplicate(Soul-Linker) Comodo Linker 714
yuno,173,209,3 duplicate(Soul-Linker) Juno Linker 714
amatsu,136,166,3 duplicate(Soul-Linker) Amatsu Linker 714
gonryun,171,142,3 duplicate(Soul-Linker) Gonryun Linker 714
umbala,131,132,3 duplicate(Soul-Linker) Umbala Linker 714
niflheim,215,200,3 duplicate(Soul-Linker) Niflheim Linker 714
louyang,210,124,3 duplicate(Soul-Linker) Louyang Linker 714
ayothaya,221,191,3 duplicate(Soul-Linker) Ayothaya Linker 714
einbroch,88,207,3 duplicate(Soul-Linker) Einbroch Linker 714
lighthalzen,163,68,3 duplicate(Soul-Linker) Lighthalzen Linker 714
einbech,206,132,3 duplicate(Soul-Linker) Einbech Linker 714
hugel,114,162,3 duplicate(Soul-Linker) Hugel Linker 714
rachel,122,130,3 duplicate(Soul-Linker) Rachel Linker 714
veins,224,134,3 duplicate(Soul-Linker) Veins Linker 714
moscovia,225,207,3 duplicate(Soul-Linker) Moscovia Linker 714


Вот сам код, а хотелось бы сделать так, что-бы в ЛЮБОМ месте, ну разумеется кроме гв карт при написания слова LinkMe Аккаунтам с уровнем 10+ гма кидался линк.

Автор: S2pidsMan: Дата: 03.03.2011

Буду пробовать.

Автор: S2pidsMan: Дата: 03.03.2011

Примерно так:

LinkMe:
getmapxy .@map$, .@x, .@y, 0;
if(getgmlvl<10||getmapflag(.@map$,mf_gvg_castle) )

нпц стал реагировать на то, что его просят дать линк и нпц говорит, что дает линк. Но в мапе пишет ошибку :
script:callfunc: function not found! [Linked]
Source : Prontera Linker at prontera <171,225>

Есть еще идеи?)

Автор: Кеник: Дата: 03.04.2011

Конечно есть :D

script:callfunc: function not found! [Linked]

В этой строчке сказано, что скрипт не может найти функцию Linked! Теперь посмотри на свой 1 пост, ты идишь там функцию Linked?) Вот и мап-сервер тоже не видит...

Автор: S2pidsMan: Дата: 03.04.2011

Это я и сам понял)))
Мне не понять как написать эту функцию =)

Автор: Мяфк: Дата: 03.04.2011

Function TAB script TAB Linked TAB {
}

Да и проверка не правильная:
if(getgmlvl<10||getmapflag(.@map$,mf_gvg_castle) )
Если ставим || условие срабатывает, если Гм 10 лвл или мапа не ГВГ, надо:
if( (getgmlvl<10) && (getmapflag(.@map$,mf_gvg_castle) )

Автор: Кеник: Дата: 03.04.2011

Ты не прав. Как раз чтоб получить линк - надо чтоб выполнялись оба условия - у чара ГМ-лвл 10 и более и он находится не в замке. Если поставить как ты сказал - все чары в замке, кроме ГМов 10 лвл будут получать линк, что не есть правильно, если я верно понял топик-стартера.

Автор: Мяфк: Дата: 03.04.2011

Нет.
&& = Условие И. Как в си++.
|| = Или. Как в си++.

Автор: Кеник: Дата: 03.04.2011

if(getgmlvl()<10||getmapflag(.@map$,mf_gvg_castle) ) { goto NoLink; }

?

Вариант #1 - Если чар не ГМ (0 лвл) - мапу можно не смотреть - сразу направляется на NoLink.
Вариант #2 - Если чар ГМ 10 лвл и более, но мапа - замок -> NoLink
Вариант #3 - Если чар ГМ 10 лвл и мапа не замок -> идем далее по скрипту и вот он наш линк.


ЧЯДНТ?

Автор: S2pidsMan: Дата: 03.05.2011

А теперь такой вопрос:
Как в функцию Function
TAB script TAB Linked TAB {
}
Запихнуть сам линк. Просто ведь функция по идеи должна вмещать в себя что именно она будет делать, то есть давать линк при вызове ее.

Автор: Кеник: Дата: 03.05.2011

function	script	linked	{
switch(Class)
{
//Knight
case 7:
case 4008:
case 4030:
set @skillid,452;
break;

//Crusader
case 14:
case 4015:
case 4037:
set @skillid,450;
break;

//Wizard
case 9:
case 4010:
case 4032:
set @skillid,453;
break;

//Sage
case 16:
case 4017:
case 4039:
set @skillid,449;
break;

//Hunter
case 11:
case 4012:
case 4034:
set @skillid,460;
break;

//Bard
case 19:
case 4020:
case 4042:
//Dancer
case 20:
case 4021:
case 4043:
set @skillid,455;
break;

//Priest
case 8:
case 4009:
case 4031:

set @skillid,454;
break;

//Monk
case 15:
case 4016:
case 4038:
set @skillid,447;
break;

//Blacksmith
case 10:
case 4011:
case 4033:
set @skillid,458;
break;

//Alchemist
case 18:
case 4019:
case 4041:
set @skillid,445;
break;

//Assassin
case 12:
case 4013:
case 4035:
set @skillid,457;
break;

//Rogue
case 17:
case 4018:
case 4040:
set @skillid,456;
break;

//Super Novice
case 23:
set @skillid,451;
break;

//Soul Linker
case 4049:
set @skillid,461;
break;

//Star Gladiator
case 4047:
set @skillid,448;
break;

default:
return;
break;
}
sc_start4 SC_SPIRIT,350000,5,@skillid,0,0;
return;
}
function script cast_soul_link {
switch(Class)
{
//Knight
case 7:
case 4008:
case 4030:
set @skillid,452;
break;

//Crusader
case 14:
case 4015:
case 4037:
set @skillid,450;
break;

//Wizard
case 9:
case 4010:
case 4032:
set @skillid,453;
break;

//Sage
case 16:
case 4017:
case 4039:
set @skillid,449;
break;

//Hunter
case 11:
case 4012:
case 4034:
set @skillid,460;
break;

//Bard
case 19:
case 4020:
case 4042:
//Dancer
case 20:
case 4021:
case 4043:
set @skillid,455;
break;

//Priest
case 8:
case 4009:
case 4031:

set @skillid,454;
break;

//Monk
case 15:
case 4016:
case 4038:
set @skillid,447;
break;

//Blacksmith
case 10:
case 4011:
case 4033:
set @skillid,458;
break;

//Alchemist
case 18:
case 4019:
case 4041:
set @skillid,445;
break;

//Assassin
case 12:
case 4013:
case 4035:
set @skillid,457;
break;

//Rogue
case 17:
case 4018:
case 4040:
set @skillid,456;
break;

//Super Novice
case 23:
set @skillid,451;
break;

//Soul Linker
case 4049:
set @skillid,461;
break;

//Star Gladiator
case 4047:
set @skillid,448;
break;

default:
return;
break;
}
sc_start4 SC_SPIRIT,350000,5,@skillid,0,0;
return;
}

Как-то так.

Автор: S2pidsMan: Дата: 03.05.2011


Function script Linked {
switch(Class)
{
//Knight
case 7:
case 4008:
case 4030:
set @skillid,452;
break;

//Crusader
case 14:
case 4015:
case 4037:
set @skillid,450;
break;

//Wizard
case 9:
case 4010:
case 4032:
set @skillid,453;
break;

//Sage
case 16:
case 4017:
case 4039:
set @skillid,449;
break;

//Hunter
case 11:
case 4012:
case 4034:
set @skillid,460;
break;

//Bard
case 19:
case 4020:
case 4042:
//Dancer
case 20:
case 4021:
case 4043:
set @skillid,455;
break;

//Priest
case 8:
case 4009:
case 4031:

set @skillid,454;
break;

//Monk
case 15:
case 4016:
case 4038:
set @skillid,447;
break;

//Blacksmith
case 10:
case 4011:
case 4033:
set @skillid,458;
break;

//Alchemist
case 18:
case 4019:
case 4041:
set @skillid,445;
break;

//Assassin
case 12:
case 4013:
case 4035:
set @skillid,457;
break;

//Rogue
case 17:
case 4018:
case 4040:
set @skillid,456;
break;

//Super Novice
case 23:
set @skillid,451;
break;

//Soul Linker
case 4049:
set @skillid,461;
break;

//Star Gladiator
case 4047:
set @skillid,448;
break;

default:
return;
break;
}
sc_start4 SC_SPIRIT,350000,5,@skillid,0,0;
return;
}

Lunette,68,97,5 script Wip Linker::Soul-Linker 714,{

OnInit:
defpattern 1, "([^:]+):.*Wip.*", "LinkMe";
activatepset 1;
end;

LinkMe:
getmapxy .@map$, .@x, .@y, 0;
if(getgmlvl<10||getmapflag(.@map$,mf_gvg_castle) )
{
if(Class<=6 && Class==22 && Class>=24 && Class<=27 && Class>=4023 && Class<=4046){
goto NoLink;}
else if(Class >= Job_Novice_High && Class <= Job_Thief_High){
if(Baselevel <= 69)
{npcskilleffect 494,5,0,0;
callfunc("Linked");}
else
goto NoLink;}
else if((Class==Job_Knight)||(Class==Job_Lord_Knight)){
npcskilleffect 452,5,0,0;
callfunc("Linked");}
else if((Class==Job_Hunter)||(Class==Job_Sniper)){
npcskilleffect 460,5,0,0;
callfunc("Linked");}
else if((Class==Job_Wizard)||(Class==Job_High_Wizard)){
npcskilleffect 453,5,0,0;
callfunc("Linked");}
else if((Class==Job_Blacksmith)||(Class==Job_Whitesmith)){
npcskilleffect 458,5,0,0;
callfunc("Linked");}
else if((Class==Job_Assassin)||(Class==Job_Assassin_Cross)){
npcskilleffect 457,5,0,0;
callfunc("Linked");}
else if((Class==Job_Priest)||(Class==Job_High_Priest)){
npcskilleffect 454,5,0,0;
callfunc("Linked");}
else if((Class==Job_Crusader)||(Class==Job_Paladin)){
npcskilleffect 450,5,0,0;
callfunc("Linked");}
else if((Class==Job_Bard)||(Class==Job_Dancer)||(Class==Job_Clown)||(Class==Job_Gypsy)){
npcskilleffect 455,5,0,0;
callfunc("Linked");}
else if((Class==Job_Sage)||(Class==Job_Professor)){
npcskilleffect 449,5,0,0;
callfunc("Linked");}
else if((Class==Job_Alchemist)||(Class==Job_Creator)){
npcskilleffect 445,5,0,0;
callfunc("Linked");}
else if((Class==Job_Rogue)||(Class==Job_Stalker)){
npcskilleffect 456,5,0,0;
callfunc("Linked");}
else if((Class==Job_Monk)||(Class==Job_Champion)){
npcskilleffect 447,5,0,0;
callfunc("Linked");}
else if(Class==Job_SuperNovice){
npcskilleffect 451,5,0,0;
callfunc("Linked");}
else if(Class==Job_Star_Gladiator){
npcskilleffect 448,5,0,0;
callfunc("Linked");}
else if(Class==Job_Soul_Linker){
npcskilleffect 461,5,0,0;
callfunc("Linked");}
}
}

Вот так стал работать линк при вызове, но только там, где стоит нпц.

Автор: Кеник: Дата: 03.05.2011

А при вызове с других локаций что пишет? Мап ругается или нет?

Автор: S2pidsMan: Дата: 03.05.2011

Да ничего не пишет) просто не дает линк и все. Мап не ругается.

Автор: Jarek: Дата: 03.05.2011

Lunette,68,97,5 script Wip Linker::Soul-Linker 714,{

Указана конкретная локация, на других локациях естественно работать не будет.
Что, если привести к виду:
- script Wip Linker::Soul-Linker -1,{

?

Автор: S2pidsMan: Дата: 03.05.2011

Теперь нужно что-то думать с данной функцией, так как она не срабатывает.

OnInit:
defpattern 1, "([^:]+):.*Wip.*", "LinkMe";
activatepset 1;
end;

Автор: Jarek: Дата: 03.05.2011

А, ну да, так не получится. Скорее всего придется реализовывать по другому.
Нпц будет проверять только близстоящих игроков...

Автор: S2pidsMan: Дата: 03.05.2011

Up.
А не получится сделать на примере сорца @cast?
Не могу понять как в сорцах реализовать проверку на профу.

Автор: Jarek: Дата: 03.06.2011

switch(sd->class_&MAPID_UPPERMASK){
case MAPID_KNIGHT:
case MAPID_WIZARD:
...
}

Автор: S2pidsMan: Дата: 03.06.2011

Буду пробовать