Jump to content

AinsLord

Members
  • Posts

    794
  • Joined

  • Last visited

  • Days Won

    3

Posts posted by AinsLord

  1. i would like to have some edit with the PVP script i found

    what should i put when it needs to announce everyone who enters the PVP

    here is the script:

    -	script	PvP Warper	843,{
    mes "[ ^ff0000PVP Warper^000000 ]";
    mes "Do you want to warp to the PvP Arena and fight your enemies?";
    menu "Sure, Bring it on!",L_Yes,"Nah, I'm not ready yet.",L_No;
    
    L_Yes:
    next;
    mes "[ ^ff0000PVP Warper^000000 ]";
    mes "Which PvP Arena do you want to enter?";
    menu	"PvP Arena [ Ancient - Normal ] [" + getmapusers("guild_vs3.gat") + " / 20]",L1,
    	"PvP Arena [ No - Yggdrasil Berry ] [" + getmapusers("guild_vs4.gat") + " / 20]",L2;
    
    L1:
    if (getmapusers("guild_vs3.gat") >= 20) goto Lsorry;
    warp "guild_vs3",0,0;
    close;
    
    L2:
    if (getmapusers("guild_vs4.gat") >= 20) goto Lsorry;
    if(countitem(607)) goto Lsorry2;
    warp "guild_vs4",0,0;
    close;
    
    Lsorry:
    next;
    mes "[ ^ff0000PVP Warper^000000 ]";
    mes "Sorry but this PvP Arena is full, maybe you could try another one.";
    close;
    
    Lsorry2:
    next;
    mes "[ ^ff0000PVP Warper^000000 ]";
    mes "I'm sorry but you can't have any "+getitemname(607)+" when entering the pvp room, please storage them and try again.";
    close;
    
    L_No:
    close;
    }
    
    // Mapflags
    //force_4-1	mapflag	pvp
    guild_vs3	mapflag	pvp
    guild_vs4	mapflag	pvp
    
    alexandria,151,151,5	duplicate(PvP Warper)	PvP Warper#Alex	843
    hugel,101,147,4	duplicate(PvP Warper)	PvP Warper#hugel	843	
    alberta,31,239,4	duplicate(PvP Warper)	PvP Warper#alber	843
    
    //force_4-1	mapflag	nocommand	99
    //force_4-1	mapflag	nosave	SavePoint
    //force_4-1	mapflag	noteleport
    //force_4-1	mapflag	nowarp
    //force_4-1	mapflag	nowarpto
    //force_4-1	mapflag	nomemo
    //force_4-1	mapflag	notrade
    //force_4-1	mapflag	noreturn
    //force_4-1	mapflag	nobranch
    
    //guild_vs3	mapflag	nocommand	99
    guild_vs3	mapflag	nosave	SavePoint
    guild_vs3	mapflag	noteleport
    guild_vs3	mapflag	nowarp
    guild_vs3	mapflag	nowarpto
    guild_vs3	mapflag	nomemo
    guild_vs3	mapflag	notrade
    guild_vs3	mapflag	noreturn
    guild_vs3	mapflag	nobranch
    
    guild_vs4	mapflag	nocommand	99
    guild_vs4	mapflag	nosave	SavePoint
    guild_vs4	mapflag	noteleport
    guild_vs4	mapflag	nowarp
    guild_vs4	mapflag	nowarpto
    guild_vs4	mapflag	nomemo
    guild_vs4	mapflag	notrade
    guild_vs4	mapflag	noreturn
    guild_vs4	mapflag	nobranch

    thanks in advance ❤️

  2. 10 hours ago, Mastagoon said:

    Here's one solution:

    In script.inc. Add this function at the end of the file:

    
    BUILDIN_FUNC(logout_tick)
    {
    	TBL_PC *sd;
    	if (!script_rid2sd(sd)) {
    		script_pushint(st, -1);
    		return SCRIPT_CMD_FAILURE;
    	}
    	if (sd->canlog_tick == 0)
    		script_pushint(st, 0);
    	else
    		script_pushint(st, DIFF_TICK(gettick(), sd->canlog_tick));
    	return SCRIPT_CMD_SUCCESS;
    }

    in script_def.inc. Add this line at the end of the file:

    
    BUILDIN_DEF(logout_tick, ""),

    Then recompile your server.

    This script command will check for the same timer used to check if a player can log out or not. Basically it returns how many milliseconds ago was the character in combat.

    Example usage:

    
    -	script	testscript	-1,{
    OnInit:
    	bindatcmd("testcmd", strnpcinfo(3)+"::OnAtCmd");
    	end;
    
    OnAtCmd:
    	.@tick = logout_tick();
    	dispbottom "You have been in combat "+.@tick/1000+" seconds ago.";
    	if(.@tick >= 5000 || .@tick == 0)
    		dispbottom "Command used successfully!";
    	else 
    		dispbottom "You cannot use this command if you have been in combat during the last 5 seconds.";
    	end;
    }

    Result:

    413241325.thumb.png.1db414ecc14ff936060e491d3a29147b.png

    thnx a lot man 

  3. On 4/14/2020 at 2:42 PM, iraciz said:

    You have to add them 1 by one 1 to the blacklist ID, This is the only way, since the script need the mob_db sql, 

    
    set .Blacklist$,	// Blacklisted mob IDs.
    		"1062,1088,1183,1186,1200,1212,1220,1221,1234,1235,"+
    		"1244,1245,1250,1268,1290,1293,1294,1296,1298,1299,"+
    		"1300,1301,1303,1304,1305,1306,1308,1309,1311,1313,"+
    		"1515,1588,1618,1676,1677,1678,1679,1796,1797,1974,"+
    		"1975,1976,1977,1978,1979,1092";
    

     

    This is my blacklist, and still working on it:

    
    	.Blacklist$ =           // Blacklisted mob IDs.
    		"1062,1088,1183,1186,1120,1200,1212,1220,1221,1234,1235,1302,1634,1289,1638,1720,"+
    		"1244,1245,1250,1262,1268,1290,1293,1294,1296,1298,1299,1203,1204,1205,1259,1090,"+
    		"1300,1301,1303,1304,1305,1306,1308,1309,1311,1313,1705,1707,1712,1710,1633,1975,"+
    		"1515,1588,1618,1676,1677,1678,1679,1796,1797,1703,1291,1566,1704,1681,1861,1636,1709,1839,1830,1974,"+
    		"1975,1976,1977,1978,1979,2017,1388,1582,1992,";

     

    I recomend you, to disable the delay time, and start and abandon missions in order to filter the mobs you want exclude, doing this I managed to exclude monsters like Dark Illusion, Deviaces, literally all monster that are only 1 per map with 10 minuts respawn. etc 

    update to this heres mine with most of mini are listed im still trying to add the monsters that are not normally spawned

    .Blacklist$ =           // Blacklisted mob IDs.
    		"1062,1088,1183,1186,1200,1212,1220,1221,1234,1235,"+
    		"1244,1245,1250,1268,1290,1293,1294,1296,1298,1299,"+
    		"1300,1301,1303,1304,1305,1306,1308,1309,1311,1313,"+
    		"1515,1588,1618,1676,1677,1678,1679,1796,1797,1974,"+
    		"1975,1976,1977,1978,1979,1089,1096,1388,1641,1830,"+
    		"1839,1307,1283,1302,1582,1091,1093,1205,1783,1681,"+
    		"1120,1929,1259,1990,1626,1643,1645,1720,1919,1921,"+
    		"1918,1920,1640,1090,1289,1262,1203,1956,1700,1295,"+
    		"1320,1894,1702,1701,1754,1755,1644,1703,1829,1991,"+
    		"1705,1710,1707,1712,1706,1711,1704,1709,1960,1961,"+
    		"1959,1958,1204,1092,1765,1642";

     

  4. On 5/11/2021 at 6:48 AM, Radian said:

    its .@i not @i

    thnx thnx

    @Radian in addition to this post

    On 5/11/2021 at 5:15 AM, AinsLord said:

    this is the NPC script that im using

    
    //===== rAthena Script ======================================= 
    //= Find the gm event (hide and seek)
    //===== By: ==================================================
    //= Mastagoon
    //===== Description: =========================================
    //= The npc (GM sprite) will teleport to a random location on
    //= the map, and will open a waiting room. The first player to
    //= join that waiting room will win the round.
    //===== Current Version: =====================================
    //= 1.0
    //===== Featuers: ============================================
    //= Can set the number of rounds, map, item&zeny rewards.
    //= the event can start manually or automatically.
    //= There is another version of this script compatiable with 
    //= Stolao's event manager. You can DM me if you want that file.
    //============================================================
    alexandria,166,155,4	script	GM Masta#findgm	871,{
    	if(.status < 2) {
    		mes "["+.npcName+"]";
    		mes "When the event begins, i will teleport to a random location on this map.";
    		mes "And you need to find me to win!";
    		close;
    	}
    	end;
    
    OnInit:
        //SETTINGS
    	.rounds = 5; // for how many rounds should the event last?
        .map$ = "prontera"; // the event where the gm will hide
        .itemReward = 1;  
        setarray .rewards[0],6379,5,7227,5;   // [itemId, itemAmount, {....}]
        .zenyReward = 0;
        .zenyAmount = 10000;
        .debugMode = 0;
        .npcName$ = "GM Kiks";
        .countdown = 3; // the time between event announcements and when the event actually starts.
    	.automatic = 1;	// automatic event or does it need a gm to run it manually?
    	.runEvery = 3;	// (ignore if manual) run the event ever X hours 
    	.offset = 1;	// (ignore if manual) sometimes, you might have another event/announcement at the same time as the event announcement. you can set an offset (announce X minutes after event time.)
        // Do not edit the code below.
        if(.countdown < 0) .countdown = 1;
        if(.rounds < 1) .rounds = 1;
        if(.winnersPerRound < 1) .winnersPerRound = 1;
    	for(.@i = 0; .@i < getarraysize(.rewards); .@i = .@i+2) {
    		if(getitemname(.rewards[.@i]) == "null") {
    			debugmes "[Find GM]: Invalid item id provided "+.rewards[.@i]+" removing item from the rewards list..";
    			deletearray .rewards[.@i],2;
    			.@i -= 2;
    		}
    	}
        .status = 0;
        bindatcmd("eventstart", strnpcinfo(3)+"::OnEventAnnounce",60,99);
    	strnpcinfo(3);
    	end;
    
    OnMinute00:
    	if(.status || !.automatic || gettime(DT_HOUR) % .runEvery != 0 || agitcheck() || agitcheck2() || agitcheck3()) end;
    	sleep .offset * 1000 * 60;
    
    OnEventAnnounce:
    	.status = 1;
    	for(.@i = .countdown; i > 0; i--) {
        	announce "[Find "+.npcName$+"] : The event will begin in "+callfunc("F_InsertPlural",.@i,"minute")+"!",bc_all|bc_blue;
    		sleep .debugMode ? 5000 : 60000;
    	}
    	announce "[Find "+.npcName$+"] : The event has now begun!",bc_all|bc_blue;
    
    OnEventStart:
    	sleep 2000;
    	npctalk "I will now teleport to a random location";
    	sleep 2000;
    	npctalk "You must find me to win the event!";
    	sleep 2000;
    	npctalk "This event will last for "+callfunc("F_InsertPlural",.rounds,"round");
    	sleep 2000;
    	npctalk "Goodluck!";
    	donpcevent strnpcinfo(3)+"::OnRoundStart";
    	.status = 2;
    	.round = 1;
    	end;
    
    OnRoundStart:
    	initnpctimer;
    	do {
    		.@x = rand(0,450);
    		.@y = rand(0,450);
    	} while (!checkcell(.map$,.@x,.@y,cell_chkpass));
    	unitwarp getnpcid(0),.map$,.@x,.@y;
    	debugmes "[Event]: npc is at: "+.@x+" & "+.@y;
    	announce "[Find "+.npcName$+"] :"+.npcName$+" is hiding in a random place in "+.map$+", Find him now!",bc_all|bc_blue;
    	delwaitingroom;
    	waitingroom "Here!", 2, strnpcinfo(3)+"::OnRoundEnd",1;
    	.status = 2;
    	end;
    
    OnRoundEnd:
    	if(.status != 2) end;
    	.status = 1; 
    	//#TODO the winner should be already attached here no?
    	getwaitingroomusers strnpcinfo(3);
    	for(.@i = 0; .@i < getarraysize(.@waitingroom_users); .@i++) {
    		if(.@waitingroom_users[.@i] > 0) {
    			.@winner = .@waitingroom_users[.@i];
    		}
    	}
    	if(!attachrid(.@winner)) {
    		.status = 2;
    		end;
    	}
    	specialeffect2 EF_SPHERE;
    	announce .npcName$+": I've been found by "+strcharinfo(0)+"!",bc_all|bc_blue;
    	if(.itemReward) {
    		for(.@i = 0; .@i < getarraysize(.rewards); .@i = .@i +2) {
    			getitem .rewards[.@i],.rewards[.@i+1];
    		}
    	}
    	if(.zenyReward) {
    		Zeny += .zenyAmount;
    		dispbottom "You've gained "+.zenyAmount+" zeny for winning a round in the event.";
    	}
    	sleep 1000;
    	if(.round >= .rounds) {
    		donpcevent strnpcinfo(3)+"::OnEventEnd";
    		end;
    	}
    	.round++;
    	donpcevent strnpcinfo(3)+"::OnRoundStart";
    	end;
    
    OnEventEnd:
    	.status = 0;
    	announce "[Find "+.npcName$+"]: The event is over! thank you for participating.",bc_all|bc_blue;
    	unitwarp getnpcid(0),.map$,195,58;
    	delwaitingroom;
    	sleep 5000;
    	end;
    
    OnTimer1800000:
    	if(.status) {
    		stopnpctimer;
    		donpcevent strnpcinfo(3)+"::OnEventEnd";
    	}
    	end;
    }

    this is the error showing when the NPC is trying to automatically start

    image.png.b101527132615f1fc1807a615bc79a18.png

    and how can i add other map where the NPC hides like randomly maps?

    thnx in advance highly appreciate it ❤️

    how can i add additional maps where the NPC hide like randomly

    i was trying to put

    .map$ = "prontera"||"izlue"; // the event where the gm will hide

    im getting error

  5. this is the NPC script that im using

    //===== rAthena Script ======================================= 
    //= Find the gm event (hide and seek)
    //===== By: ==================================================
    //= Mastagoon
    //===== Description: =========================================
    //= The npc (GM sprite) will teleport to a random location on
    //= the map, and will open a waiting room. The first player to
    //= join that waiting room will win the round.
    //===== Current Version: =====================================
    //= 1.0
    //===== Featuers: ============================================
    //= Can set the number of rounds, map, item&zeny rewards.
    //= the event can start manually or automatically.
    //= There is another version of this script compatiable with 
    //= Stolao's event manager. You can DM me if you want that file.
    //============================================================
    alexandria,166,155,4	script	GM Masta#findgm	871,{
    	if(.status < 2) {
    		mes "["+.npcName+"]";
    		mes "When the event begins, i will teleport to a random location on this map.";
    		mes "And you need to find me to win!";
    		close;
    	}
    	end;
    
    OnInit:
        //SETTINGS
    	.rounds = 5; // for how many rounds should the event last?
        .map$ = "prontera"; // the event where the gm will hide
        .itemReward = 1;  
        setarray .rewards[0],6379,5,7227,5;   // [itemId, itemAmount, {....}]
        .zenyReward = 0;
        .zenyAmount = 10000;
        .debugMode = 0;
        .npcName$ = "GM Kiks";
        .countdown = 3; // the time between event announcements and when the event actually starts.
    	.automatic = 1;	// automatic event or does it need a gm to run it manually?
    	.runEvery = 3;	// (ignore if manual) run the event ever X hours 
    	.offset = 1;	// (ignore if manual) sometimes, you might have another event/announcement at the same time as the event announcement. you can set an offset (announce X minutes after event time.)
        // Do not edit the code below.
        if(.countdown < 0) .countdown = 1;
        if(.rounds < 1) .rounds = 1;
        if(.winnersPerRound < 1) .winnersPerRound = 1;
    	for(.@i = 0; .@i < getarraysize(.rewards); .@i = .@i+2) {
    		if(getitemname(.rewards[.@i]) == "null") {
    			debugmes "[Find GM]: Invalid item id provided "+.rewards[.@i]+" removing item from the rewards list..";
    			deletearray .rewards[.@i],2;
    			.@i -= 2;
    		}
    	}
        .status = 0;
        bindatcmd("eventstart", strnpcinfo(3)+"::OnEventAnnounce",60,99);
    	strnpcinfo(3);
    	end;
    
    OnMinute00:
    	if(.status || !.automatic || gettime(DT_HOUR) % .runEvery != 0 || agitcheck() || agitcheck2() || agitcheck3()) end;
    	sleep .offset * 1000 * 60;
    
    OnEventAnnounce:
    	.status = 1;
    	for(.@i = .countdown; i > 0; i--) {
        	announce "[Find "+.npcName$+"] : The event will begin in "+callfunc("F_InsertPlural",.@i,"minute")+"!",bc_all|bc_blue;
    		sleep .debugMode ? 5000 : 60000;
    	}
    	announce "[Find "+.npcName$+"] : The event has now begun!",bc_all|bc_blue;
    
    OnEventStart:
    	sleep 2000;
    	npctalk "I will now teleport to a random location";
    	sleep 2000;
    	npctalk "You must find me to win the event!";
    	sleep 2000;
    	npctalk "This event will last for "+callfunc("F_InsertPlural",.rounds,"round");
    	sleep 2000;
    	npctalk "Goodluck!";
    	donpcevent strnpcinfo(3)+"::OnRoundStart";
    	.status = 2;
    	.round = 1;
    	end;
    
    OnRoundStart:
    	initnpctimer;
    	do {
    		.@x = rand(0,450);
    		.@y = rand(0,450);
    	} while (!checkcell(.map$,.@x,.@y,cell_chkpass));
    	unitwarp getnpcid(0),.map$,.@x,.@y;
    	debugmes "[Event]: npc is at: "+.@x+" & "+.@y;
    	announce "[Find "+.npcName$+"] :"+.npcName$+" is hiding in a random place in "+.map$+", Find him now!",bc_all|bc_blue;
    	delwaitingroom;
    	waitingroom "Here!", 2, strnpcinfo(3)+"::OnRoundEnd",1;
    	.status = 2;
    	end;
    
    OnRoundEnd:
    	if(.status != 2) end;
    	.status = 1; 
    	//#TODO the winner should be already attached here no?
    	getwaitingroomusers strnpcinfo(3);
    	for(.@i = 0; .@i < getarraysize(.@waitingroom_users); .@i++) {
    		if(.@waitingroom_users[.@i] > 0) {
    			.@winner = .@waitingroom_users[.@i];
    		}
    	}
    	if(!attachrid(.@winner)) {
    		.status = 2;
    		end;
    	}
    	specialeffect2 EF_SPHERE;
    	announce .npcName$+": I've been found by "+strcharinfo(0)+"!",bc_all|bc_blue;
    	if(.itemReward) {
    		for(.@i = 0; .@i < getarraysize(.rewards); .@i = .@i +2) {
    			getitem .rewards[.@i],.rewards[.@i+1];
    		}
    	}
    	if(.zenyReward) {
    		Zeny += .zenyAmount;
    		dispbottom "You've gained "+.zenyAmount+" zeny for winning a round in the event.";
    	}
    	sleep 1000;
    	if(.round >= .rounds) {
    		donpcevent strnpcinfo(3)+"::OnEventEnd";
    		end;
    	}
    	.round++;
    	donpcevent strnpcinfo(3)+"::OnRoundStart";
    	end;
    
    OnEventEnd:
    	.status = 0;
    	announce "[Find "+.npcName$+"]: The event is over! thank you for participating.",bc_all|bc_blue;
    	unitwarp getnpcid(0),.map$,195,58;
    	delwaitingroom;
    	sleep 5000;
    	end;
    
    OnTimer1800000:
    	if(.status) {
    		stopnpctimer;
    		donpcevent strnpcinfo(3)+"::OnEventEnd";
    	}
    	end;
    }

    this is the error showing when the NPC is trying to automatically start

    image.png.b101527132615f1fc1807a615bc79a18.png

    and how can i add other map where the NPC hides like randomly maps?

    thnx in advance highly appreciate it ❤️

  6. i dont know which thread should i post this so i asked here in general support

    so i dunno why but guild emblem is not showing during WOE/GVG

    is this some kind of source needed?

    image.png.48a43f5bc58f8188c0181b9148146df2.png

    here is the screenshot woe is active but guild emblem is not showing

    thnx for the help appreciate it

    image.png.e3661e42c165809b17343bc6e113933c.png

     

  7. On 5/7/2021 at 9:40 AM, Mastagoon said:

    There is a typo in this code

    change gettimetic(2) to gettimetick(2) .

    i tried but i got this error

    image.png.9373877ce95121e451e870b3b19f5ffe.png

     

    thanks a lot man this would really help ❤️

    On 5/7/2021 at 9:06 PM, Mastagoon said:

    Sorry for the delay, here's the correct code:

    -	script	maintown	-1,{
    OnInit:
    	bindatcmd "maintown",strnpcinfo(3)+"::OnAtcommand";
    	end;
    
    OnAtcommand:
        if(gettimetick(2) < cooldowntime) {
            dispbottom "Please wait "+(cooldowntime - gettimetick(2))+" seconds.";
        	end;
        }
    	atcommand "@warp prontera 158 144";
        set cooldowntime, gettimetick(2) + 5;
    	end;
    }

    image.png.e029abba52199f14141b6c3b75e5d3e6.png

     

  8. 1 minute ago, Mastagoon said:

    Untested

    
    -	script	maintown	-1,{
    OnInit:
    	bindatcmd "maintown",strnpcinfo(3)+"::OnAtcommand";
    	end;
    
    OnAtcommand:
            if(gettimetic(2) < cooldowntime) {
                  dispbottom "Please wait "+cooldowntime - gettimetic(2) / 1000)+" seconds.";
                  end;
            }
    	atcommand "@warp alexandria 158 144";
    	end;
    }

     

    got tested i have this error on my console

    image.png.b0b1d24ae966c7960b515fc09c61e9b5.png

  9. so i was trying to put like 5 secs delay on binded command i dunno if im doing it right seems got errors

    any one can help

    this is the script

    -	script	maintown	-1,{
    OnInit:
    	bindatcmd "maintown",strnpcinfo(3)+"::OnAtcommand";
    	end;
    
    
    OnCommand:
    
        if(gettimetic(2) < cooldowntime ){
            dispbottom "Please wait 5 seconds!";
            end;
        }
        atcommand "@maintown";
        set cooldowntime,gettimetic(2)+5;
    
        end;
    
    OnAtcommand:
    	atcommand "@warp alexandria 158 144";
    	end;
    }

    thanks in advance

  10. thanks again im just confused with the .@gamble2 > 8 what is the 8 for is this the rate/chance for players to get the item?

    .@gamble2,rand(1,15); this one is for?

    sorry got a lot of questions and clarifications heheh

    11 hours ago, Radian said:

    Yeah just add it here

    
    set .@gamble2,rand(1,15);
    
    else if ((.@gamble2 > 8) && (.@gamble2 < 11)) set .@item,7078; // wov
    else if ((.@gamble2 > 12) && (.@gamble2 < 15)) set .@item,ITEM_ID; // New Item

    I think that would work, i didnt test it.

     

  11. BTS NPC is working fine but after it announces the player this shows on my console

    image.png.c5b33ff2858b1048b0653184eb3b9e54.png

    what seems to be the problem?

    here is the script of the BTS npc

    //=============Valkyrie Quest==============
    //===================== BTS =====================================================
    turbo_room,94,108,6	script	Kiks The Handsome	617,{
    if(bry_bry >= 1) goto L_taposme;
    if(hen_hen >= 1) goto L_taposna;
    if(hen_hen < 1)
    mes "[ Jemz ]";
    mes "I will foretell you about Breaking the Seal Quest";
    mes "I am the guardian of the seal, break it and recieve my treasure.";
    next;
    mes "[ Jemz ]";
    mes "These are what I need";
    mes "700 Pieces of Ancient Lips";
    mes "60 Pieces of Peridot";
    mes "60 Pieces of Biotite";
    next;
    mes "45 Pieces of Young Twig";
    mes "45 Pieces of Mother's Nightmare";
    mes "30 Pieces of Matchstick";
    mes "500 Pieces of Hand of God";
    mes "150 Pieces of Cursed Seal";
    next;
    mes "So, are you up to my quest dear child?";
    menu "Yes!.",-, "No, I'm sorry.",L_later;
    
    
    mes "[ Jemz ]";
    mes "Are the items ready? Let me check.";
    next;
    if(countitem(1054) < 700 || countitem(7289) < 60 || countitem(7297) < 60 || countitem(7018) < 45 ||countitem(7020) < 45 ||countitem(7035) < 30 || countitem(1009) < 500 || countitem(7442) < 150) goto L_later2;
    delitem 1054,700;
    delitem 7289,60;
    delitem 7297,60;
    delitem 7018,45;
    delitem 7020,45;
    delitem 7035,30;
    delitem 1009,500;
    delitem 7442,150;
    
    mes "[ Jemz ]";
    mes "Another brave one succeded.";
    set ron_ron,1;
    next;
    
    switch (select("Your Welcome")) {
    
    case 1: // Castle Drops
      set .@gamble1,rand(1,500);
      if ((.@gamble1 > 200) && (.@gamble1 < 205)) {
    set .@gamble2,rand(1,10);
    if	  ((.@gamble2 > 0) && (.@gamble2 <  3)) set .@item,7086; // esg
    else if ((.@gamble2 > 2) && (.@gamble2 <  5)) set .@item,7090; // ripple
    else if ((.@gamble2 > 4) && (.@gamble2 <  7)) set .@item,7091; // billow
    else if ((.@gamble2 > 6) && (.@gamble2 <  9)) set .@item,7077; // silver
    else if ((.@gamble2 > 8) && (.@gamble2 < 11)) set .@item,7078; // wov
      }
      else if ((.@gamble1 >   0) && (.@gamble1 < 201)) set .@item,7086; // esg
      else if ((.@gamble1 > 204) && (.@gamble1 < 301)) set .@item,7090; // ripple
      else if ((.@gamble1 > 300) && (.@gamble1 < 401)) set .@item,7091; // billow
      else if ((.@gamble1 > 401) && (.@gamble1 < 481)) set .@item,7077; // silver
      else if ((.@gamble1 > 480) && (.@gamble1 < 501)) set .@item,7078; // wov
    break;
    }
    
    getitem .@item,1;
    mes "[ Jemz ]";
    mes "Ah, you have out done your self!";
    mes "Thank you for your aid.";
    mes "Now start your journey to find my Nephews who hold the Valkyries";
    announce "Wow! The Seal has been annihilated by "+strcharinfo(0)+" He has just broken the seal and will start the quest of Valkyrie!","0x33FF66";
    close2;
    end;
    L_taposna:
    mes "[ Jemz ]";
    mes "Go out and search the Fields of Payon the Fields of Geffen and the Towns of Lighthalzen and Comodo for the Valkyrie Equipments";
    close;
    L_taposme:
    mes "[ Jemz ]";
    mes "You've already surpassed this quest and there is no point in doing it again.";
    close;
    L_later:
    mes "[ Jemz ]";
    mes "Well too bad";
    mes "Child, I don't like to call you a coward, but you are.";
    close;
    L_later2:
    mes "[ Jemz ]";
    mes "*piff*";
    mes "You lack some items.";
    mes "I do not accept cowardice, come back to me when you're brave enough.";
    close;
    
    }
    turbo_room,98,108,5	script	Kimuel	900,{
    if(bry_bry >= 1) goto L_udone;
    if(kim_kim >= 1) goto L_tapospopo;
    if(ron_ron >= 1) goto continueq;
    if(ron_ron < 1)
    {
    mes "[ Kimuel ]";
    mes "Are you the delivery boy of Pizza Hut?";
    mes "If not go away I don't need you!";
    close;
    }
    continueq:
    
    mes "[ Kimuel ]";
    mes "Oh Grasya Santisimo!!";
    mes "You have spoken to Uncle Ronnel!?";
    next;
    mes "[ Kimuel ]";
    mes "By the way I am Kimuel of Payon the Crafter of the Valkyrie Armor";
    mes "Would you like to possess it?";
    menu "Yes, I deserve it!",-,"No, I'm not good enough.",L_ayaw;
    next;
    mes "[ Kimuel ]";
    mes "This Great Armor is very complicated, it needs very rare materials to craft it. If you really want to possess it gather these items for me";
    next;
    mes "200 Three-Headed Dragon's head";
    mes "25 Emblem of Sun God";
    mes "25 Thor's Gaunlet";
    mes "50 Woman's Moustache";
    mes "75 Fragments of Rossata Stone";
    next;
    mes "100 Pellet";
    mes "75 Metal Fragment";
    mes "300 Steel";
    mes "5 Chain Mail[1]";
    mes "400 Treasure Box";
    next;
    mes "[ Kimuel ]";
    mes "I will be waiting for you chosen one!";
    if(countitem(7443) < 200 || countitem(999) < 300 || countitem(7095) < 75 || countitem(7226) < 100 || countitem(7211) < 75 || countitem(7074) < 50 || countitem(7081) < 25 || countitem(7086) < 25 || countitem(7444) < 400 || countitem(2315) < 5) goto koolang;
    if(countitem(7443) >= 200 || countitem(999) >= 300 || countitem(7095) >= 75 || countitem(7226) >= 100 || countitem(7211) >= 75 || countitem(7074) >= 50 || countitem(7081) >= 25 || countitem(7086) >= 25 || countitem(7444) >= 400 || countitem(2315) >= 5) goto kontinueq;
    close;
    L_ayaw:
    
    mes "[ Kimuel ]";
    mes "Wacha Wachi Wacho... Go! Shoooo";
    mes "Just speak to me if you want it already";
    close;
    
    
    koolang:
    next;
    mes "[ Kimuel ]";
    mes "As I said, one missing material and all the others go to waste";
    close;
    kontinueq:
    next;
    mes "[ Kimuel ]";
    mes "Very well done my friend you have finished the quest and acquired the Valkyrie Armor.";
    delitem 7443,200;
    delitem 7086,25;
    delitem 7444,400;
    delitem 2315,5;
    delitem 999,300;
    delitem 7095,75;
    delitem 7226,100;
    delitem 7211,75;
    delitem 7074,50;
    delitem 7081,25;
    next;
    getitem 2357,1;
    set kim_kim,1;
    next;
    mes "[ Kimuel ]";
    mes "Good Job! Enjoy your precious item.";
    mes "Now, go ahead and seek my Brothers and Cousins to finish the quest";
    mes "And when you gain the Valkyrie Set speak to Bryan";
    mes "If you have no clue about their location, my brothers and cousins are scattered around Rune-Midgard and Bryan is in Valkyrie";
    announce "Wow!"+strcharinfo(0)+" has just acquired the mystical Valkyrie Armor.",8;
    close;
    L_tapospopo:
    mes "[ Kimuel ]";
    mes "As I said, complete the Valkyrie Quest";
    mes "And then speak to Bryan";
    close;
    L_udone:
    mes "[ Kimuel ]";
    mes "This quest, once done there is no more repeating";
    close;
    }
    
    gef_fild07.gat,185,249,5	script	Jhep	899,{
    if(bry_bry >=1) goto L_bulmadone;
    if(jhe_jhe >=1) goto L_bulmatapos;
    if(ron_ron >=1) goto B_ulma;
    if(ron_ron < 1)
    {
    mes "[ Jhep ]";
    mes "I am sight seeing, don't disturb me";
    mes "Go far far away from me!!";
    close;
    }
    B_ulma:
    mes "[ Jhep ]";
    mes "Oh, you know my Uncle?";
    mes "Well, nice to meet you. I'm Jhep";
    mes "I craft the Valkyrie Shield";
    mes "Would you like me to craft the said shield for you?";
    menu "Okay",-,"Nope",M_ofo;
    next;
    
    mes "[ Jhep ]";
    mes "The Valkyrie Shield is a very difficult item to craft and the materials are rare. Well if you're sure you want to make it..";
    mes "Then these are the items I need.";
    next;
    mes "100 Fire Dragon Scale";
    mes "25 Ripple";
    mes "1 Buckler[1]";
    mes "100 Treasure Box";
    next;
    if(bulma >= 1 || countitem(7451) < 50 || countitem(7090) < 7 || countitem(2104) < 1 || countitem(7444) < 100) goto K_ulangot;
    if(bulma >= 1 || countitem(7451) >= 50 || countitem(7090) >= 7 || countitem(2104) >= 1 || countitem(7444) >= 100) goto K_umpleto;
    close;
    
    M_ofo:
    
    mes "[ Jhep ]";
    mes "Okay, talk to me later.";
    close;
    K_ulangot:
    
    mes "[ Jhep ]";
    mes "You don't have the items!";
    close;
    
    K_umpleto:
    
    mes "[ Jhep ]";
    mes "Wow, thanks!";
    delitem 7451,50;
    delitem 7090,7;
    delitem 2104,1;
    delitem 7444,100;
    getitem 2115,1;
    next;
    mes "[ Jhep ]";
    mes "Nicely done isn't? Enjoy the shield";
    mes "So now, continue to search for my friends.";
    mes "And when you gain the Valkyrie Set speak to Bryan";
    mes "If you have no clue about their location, my brothers and cousins are scattered around Rune-Midgard and Bryan is in Valkyrie";
    announce "Wow! "+strcharinfo(0)+" has just acquired the mystical Valkyrie Shield.",8;
    set jhep_jhe,1;
    close;
    
    L_bulmatapos:
    mes "[ Jhep ]";
    mes "Complete the Valkyrie Quest and speak to Bryan";
    close;
    L_bulmadone:
    mes "[ Jhep ]";
    mes "Dude, you can only do this quest once!";
    close;
    }
    
    lighthalzen.gat,189,297,5	script	Frame	904,{
    
    if(bry_bry >=1) goto L_chichix;
    if(fra_fra >=1) goto L_chichi;
    if(ron_ron >= 1) goto tsitsi;
    if(ron_ron < 1)
    {
    mes "[ Frame ]";
    mes "I miss Donna";
    mes "I wish I could see her again";
    close;
    }
    tsitsi:
    mes "[ Frame ]";
    mes "You have spoken to my great Uncle Ronnel?";
    mes "I am Frame, the crafter of Valkyrie Shoes";
    mes "Would you like me to craft you the shoes?";
    next;
    menu "Sure",-,"Maybe Later",L_basho;
    next;
    
    
    
    mes "[ Frame ]";
    mes "The shoe is quite brittle.";
    mes "So it needs some items to harness it.";
    mes "I require you to give me these items";
    next;
    mes "20 Skeletal Armor Piece";
    mes "7 Billow";
    mes "1 Boots[1]";
    mes "100 Treasure Box";
    next;
    if(countitem(7450) < 20 || countitem(7091) < 7 || countitem(7444) < 100 || countitem(2406) < 1) goto M_wala;
    if(countitem(7450) >= 20 || countitem(7091) >= 7 || countitem(7444) >= 100 || countitem(2406) >= 1) goto M_eron;
    mes "[ Frame ]";
    mes "Hurry up! I have something to do.";
    close;
    L_basho:
    
    mes "[ Frame ]";
    mes "Talk to me when you want it already.";
    close;
    
    M_wala:
    
    mes "[ Frame ]";
    mes "You lack some few items.";
    close;
    
    M_eron:
    
    mes "[ Frame ]";
    mes "Oh thank you!";
    delitem 7450,20;
    delitem 7091,7;
    delitem 2406,1;
    delitem 7444,100;
    getitem 2421,1;
    set fra_fra,1;
    next;
    mes "[ Frame ]";
    mes "Good one boy! Enjoy the shoes";
    mes "And continue the holy Valkyrie Quest";
    mes "And when you gain the Valkyrie Set speak to Bryan";
    mes "If you have no clue about their location, my brothers and cousins are scattered around Rune-Midgard and Bryan is in Valkyrie";
    announce "Wow! "+strcharinfo(0)+" has just acquired the mystical Valkyrie Shoes.",8;
    close;
    
    L_chichi:
    mes "[ Frame ]";
    mes "Search my cousins and after that, find Bryan!";
    close;
    
    L_chichix:
    mes "[ Frame ]";
    mes "Nice to meet you again brave warrior. How is life treating you with your new godly equips?";
    close;
    }
    
    comodo.gat,172,229,5	script	JmKhov	731,{
    
    if(bry_bry >=1) goto L_puten;
    if(jmk_jmk >=1) goto L_buten;
    if(ron_ron >=1) goto M_buten;
    if(ron_ron < 1)
    {
    mes "[ JmKhov ]";
    mes "Hi?.";
    mes "Now fly, you noob!";
    close;
    }
    
    M_buten:
    mes "[ JmKhov ]";
    mes "So you know my uncle Ronnel? Wow that's great!";
    mes "I can make the Valkyrie Manteau for you!";
    mes "You surely want it noob?";
    menu "Yeye",-,"Nevermind, thanks.",karpenter;
    next;
    mes "[ JmKhov ]";
    mes "Oh, holy! Give me these items right away!";
    next;
    mes "50 Matchstick";
    mes "7 Silver Ornament";
    mes "1 Manteau[1]";
    mes "100 Treasure Box";
    next;
    mes "[ JmKhov ]";
    mes "Don't miss your chance, I will be waiting for you.";
    if (countitem(7035) < 50 || countitem(7077) < 7 || countitem(2506) < 1 || countitem(7444) < 100) goto Kewlung;
    if (countitem(7035) >= 50 || countitem(7077) >= 7 || countitem(2506) >= 1 || countitem(7444) >= 100) goto Kempleto;
    close;
    
    karpenter:
    next;
    mes "[ JmKhov ]";
    mes "Huhu *sob*! You've wasted my time! Get lost noob!";
    close;
    Kewlung:
    next;
    mes "[ JmKhov ]";
    mes "Incomplete items, noob!";
    close;
    
    Kempleto:
    next;
    mes "[ JmKhov ]";
    mes "I see, you're a trustworthy one.";
    delitem 7444,100;
    delitem 2506,1;
    delitem 7077,7;
    delitem 7035,50;
    getitem 2524,1;
    set jmk_jmk,1;
    next;
    mes "[ JmKhov ]";  
    mes "Rawr! Take this robe and continue the Valkyrie Quest,";
    mes "And when you gain the Valkyrie Set speak to Bryan.";
    mes "If you have no clue about their location, my brothers and cousins are scattered around Rune-Midgard and Bryan is in Valkyrie";
    announce "Wow! "+strcharinfo(0)+" has just acquired the mystical Valkyrie Manteau.",8;
    close;
    
    L_buten:
    mes "[ JmKhov ]";
    mes "Finish my Uncle's quest and speak to Bryan at the Valkyrie";
    close;
    L_puten:
    mes "[ JmKhov ]";
    mes "Wow, you're one of the Mega-Warrior! How is life treating you my friend?";
    close;
    }
    
    valkyrie.gat,49,49,5	script	Bryan	733,{
    mes "[ Bryan ]";
    mes "Hello there child, I am Bryan.";
    next;
    if(bry_bry >= 1) goto L_kalbo;
    if(countitem(2524) < 1 || countitem(2421) < 1 || countitem(2357) < 1 || countitem(2115) < 1) goto Bryan;
    mes "[ Bryan ]";
    mes "Good you have the Valkyrie Set if you must know I am the crafter of the Sleipnir.";
    next;
    if(jmk_jmk >= 1) goto Bryanquest;
    if(jmk_jmk < 1) goto Bryan;
    Bryanquest:
    mes "[ Bryan ]";
    mes "I see, You really have spoken to my brothers.";
    mes "Very well then!";
    next;
    mes "[ Bryan ]";
    mes "By the way I am Bryan of the Valkyries and you already know what I make.";
    mes "Do you desire to have the Sleipnir?";
    menu "Yes",-,"No",L_nono;
    next;
    mes "[ Bryan ]";
    mes "The Great Sleipnir named after Odin's trustee";
    mes "Steed, is the most powerful shoe in the land";
    mes "Gather these items so I may craft it";
    next;
    mes "300 Handcuffs";
    mes "9 Emblem of Sun God";
    mes "10 Matchstick";
    mes "100 Gold";
    next;
    mes "[ Bryan ]";
    mes "I will be waiting for you great one.";
    if(countitem(7345) < 300 || countitem(7086) < 9 || countitem(7035) < 10 || countitem(969) < 100) goto kikiki;
    if(countitem(7345) >= 300 || countitem(7086) >= 9 || countitem(7035) >= 10 || countitem(969) >= 100) goto killhim;
    close;
    L_nono:
    
    mes "[ Bryan ]";
    mes "Go away! If you don't want it. You're wasting my time already.";
    mes "Just speak to me if you're ready.";
    close;
    
    
    kikiki:
    next;
    mes "[ Bryan ]";
    mes "You lack of items, complete it!";
    close;
    killhim:
    next;
    mes "[ Bryan ]";
    mes "Very well done child.";
    mes "You are very good!";
    delitem 7345,300;
    delitem 7086,9;
    delitem 969,100;
    delitem 7035,10;
    getitem2 2410,1,1,@ref,0,254,0,getcharid(0)&0xffff,(getcharid(0)>>16)&0xffff;
    set bry_bry,1;
    next;
    mes "[ Bryan ]";
    mes "As for my excellency, take care of that Sleipnir";
    mes "You are now a Mega-Warrior of Temptation Ragnarok Online";
    mes "Go wild and free, you noble man";
    announce "Raise the Roof! "+strcharinfo(0)+" has just become the Mega-Warrior and gained Sleipnir.",8;
    close;
    
    L_kalbo:
    mes "[ Bryan ]";
    mes "You have already gained Sleipnir";
    mes "How dare you speak to me again!? Now, I order you to go back to Prontera!";
    next;
    percentheal -100,0;
    warp "prontera.gat",0,0;
    close;
    Bryan:
    mes "[ Bryan ]";
    mes "Oh my bad, I see you are just another newbie.";
    mes "Go fly away";
    close;
    }

    and if by any chance how can i add other castle drop items as a random item when repeating the 1st NPC quest

    on this part

    case 1: // Castle Drops
      set .@gamble1,rand(1,500);
      if ((.@gamble1 > 200) && (.@gamble1 < 205)) {
    set .@gamble2,rand(1,10);
    if	  ((.@gamble2 > 0) && (.@gamble2 <  3)) set .@item,7086; // esg
    else if ((.@gamble2 > 2) && (.@gamble2 <  5)) set .@item,7090; // ripple
    else if ((.@gamble2 > 4) && (.@gamble2 <  7)) set .@item,7091; // billow
    else if ((.@gamble2 > 6) && (.@gamble2 <  9)) set .@item,7077; // silver
    else if ((.@gamble2 > 8) && (.@gamble2 < 11)) set .@item,7078; // wov
      }
      else if ((.@gamble1 >   0) && (.@gamble1 < 201)) set .@item,7086; // esg
      else if ((.@gamble1 > 204) && (.@gamble1 < 301)) set .@item,7090; // ripple
      else if ((.@gamble1 > 300) && (.@gamble1 < 401)) set .@item,7091; // billow
      else if ((.@gamble1 > 401) && (.@gamble1 < 481)) set .@item,7077; // silver
      else if ((.@gamble1 > 480) && (.@gamble1 < 501)) set .@item,7078; // wov
    break;
    }

    thnx for the help i appreciate it ❤️

  12. On 5/3/2021 at 9:20 PM, mR L said:

    ugh so that means the one that i found cannot be used anymore

    well thanks again ?

     

    btw sir @mR L can i make this like public MVP room?

    On 5/3/2021 at 9:20 PM, mR L said:

     

  13. 1 minute ago, mR L said:
    
    turbo_room,99,113,4	script	Build Manager	930,{
    	mes "[ Build Manager ]";
    	mes "1x Bloody Branch";
    	mes "  > 100 Dead Branch";
    	mes "  > 100.000 Zeny";
    	mes "^FFFFFF_^000000";
    	mes "How many you want exchange ?";
    	input .@ammount;
    	next;
    	if(countitem(604) < (100*.@ammount) || Zeny < (100000*.@ammount) || .@ammount < 1) {
    		mes "[ Build Manager ]";
    		mes "Not enough requirements";
    		close;
    	}
    	mes "[ Build Manager ]";
    	mes "Here you go";
    	delitem 604,(100*.@ammount);
    	set Zeny,Zeny-(100000*.@ammount);
    	getitem 12103,(1*.@ammount);
    	end;
    }

     

    thansk a lot man appreciate it 

  14. so i found this script here any one can help me make this script like

    asking how many bloody branch to trade in with the correct amount of deadbranch and zennies 

    to deduct

    this is the NPC script

    turbo_room,99,113,4	script	Build Manager	930,{
    
    mes "1 Bloody Branch = 100 Dead Branch + 100K";
    next;
    if(countitem(604) < 100 || Zeny < 100000) {
    mes "Not enough requirements";
    close;
    }
    mes "Here you go";
    delitem 604,100;
    set Zeny,100000;
    getitem 12103,1;
    close;
    }

    thanks in advance highly appreciate it

×
×
  • Create New...