Jump to content

chromus28

Members
  • Posts

    263
  • Joined

  • Last visited

Posts posted by chromus28

  1. place a script on it ,

     

     if WoE is On, no effect

    if WoE is Off , effect is ON

     

    what kind of script ?? T_T

    eAthena has different (and incorrect) behavior regarding restricted items. On rAthena and official servers, adding an item_noequip entry disables the script of an item, not equipping the item itself. On eAthena, you'll have to write in the restrictions, as @BuLaLaKaW posted.

    What kind of script sir??

  2. 
    

    yuno,209,310,6 script Tapestry 111,{

    mes "[Riot Entrance]";

    mes "Please select a private Riot room.";

    if ( getvariableofnpc(.rentitemid, "MVP Summoner") && getvariableofnpc(.rentitemamount, "MVP Summoner") )

    mes "The cost to rent a room for "+ getvariableofnpc(.timeout, "MVP Summoner") +" minutes is "+ getvariableofnpc(.rentitemamount, "MVP Summoner") +" "+ getitemname( getvariableofnpc(.rentitemid, "MVP Summoner") ) +".";

    else if ( getvariableofnpc(.rentcost, "MVP Summoner") )

    mes "The cost to rent a room for "+ getvariableofnpc(.timeout, "MVP Summoner") +" minutes is "+ callfunc("int__", getvariableofnpc(.rentcost, "MVP Summoner") ) +" zeny.";

    else

    mes "You can only use the room for only "+ getvariableofnpc(.timeout, "MVP Summoner") +" minutes.";

    mes " ";

    for ( set .@i, 1; .@i <= 8; set .@i, .@i +1 ) {

    if ( getvariableofnpc(.remaintime[.@i],"MVP Summoner") ) {

    switch ( .type[.@i] ) {

    case 1: set .@color$, "^EE8800"; break;

    case 2: set .@color$, "^70CC11"; break;

    case 3: set .@color$, "^0000FF"; break;

    default: set .@color$, "^000000";

    }

    mes "Room #"+ .@i +" = "+ .@color$ + .whoinuse$[.@i] +"^000000";

    }

    }

    next;

    set .@room, select("Tier 1 ["+ getmapusers("1@cedi1") +"]",

    "Tier 2 ["+ getmapusers("1@cedi2") +"]",

    "Tier 3 ["+ getmapusers("1@cedi3") +"]",

    "Tier 4 ["+ getmapusers("1@cedi4") +"]");

    if ( getvariableofnpc(.remaintime[.@room],"MVP Summoner") ) {

    if ( .inuseid[.@room] == getcharid(.type[.@room]) ) {

    if ( getvariableofnpc(.killmonster,"MVP Summoner") && getmapusers("1@cedi_0"+ .@room) == 0 )

    killmonsterall "1@cedi_0"+ .@room;

    warp "1@cedi_0"+ .@room, 0,0;

    end;

    } else {

    mes "[Riot Entrance]";

    switch ( .type[.@room] ) {

    case 1: set .@color$, "^EE8800Party "; break;

    case 2: set .@color$, "^70CC11Guild "; break;

    case 3: set .@color$, "^0000FFPlayer ";

    }

    mes "This room is reserved for ";

    mes .@color$ + .whoinuse$[.@room] +"^000000 .";

    if ( getgmlevel() < getvariableofnpc(.gmlvlkick,"MVP Summoner") ) {

    mes "Please select another.";

    close;

    }

    mes " ";

    mes "Currently there are "+ getmapusers("1@cedi_0"+ .@room) +" players";

    mes "in that room.";

    set .@remaintime, getvariableofnpc(.remaintime[.@room],"MVP Summoner");

    mes "It still has "+( .@remaintime /10 )+"mn "+( .@remaintime %10 )+"s left.";

    set .@nobodycounter, getvariableofnpc(.nobodycounter[.@room],"MVP Summoner");

    if ( .@nobodycounter )

    mes "And have left empty for "+( .@nobodycounter /10 )+"mn "+( .@nobodycounter %10 )+"s.";

    mes "Kick them ?";

    next;

    if ( select ( "No:Yes" ) == 1 ) close;

    set getvariableofnpc(.remaintime[.@room],"MVP Summoner"), -1;

    mes "[Riot Entrance]";

    mes "Room#"+ .@room +" is empty now.";

    close;

    }

    }

    mes "[Riot Entrance]";

    if ( getvariableofnpc(.rentitemid, "MVP Summoner") && getvariableofnpc(.rentitemamount, "MVP Summoner") ) {

    if ( countitem(getvariableofnpc(.rentitemid, "MVP Summoner")) < getvariableofnpc(.rentitemamount, "MVP Summoner") ) {

    mes "You don't have enough "+ getitemname( getvariableofnpc(.rentitemid, "MVP Summoner") ) +" to rent a room.";

    close;

    }

    }

    else if ( getvariableofnpc(.rentcost, "MVP Summoner") ) {

    if ( zeny < getvariableofnpc(.rentcost, "MVP Summoner") ) {

    mes "You don't have enough zeny to rent a room.";

    close;

    }

    }

    mes "You reserve this room for ...";

    next;

    set .@type, select("For my party members" );

    if ( getcharid(.@type) == 0 ) {

    mes "[Riot Entrance]";

    mes "You do not own a "+( (.@type == 1)?"Party":"Guild" )+".";

    close;

    }

    else if ( getvariableofnpc(.rentitemid, "MVP Summoner") && getvariableofnpc(.rentitemamount, "MVP Summoner") ) {

    if ( countitem(getvariableofnpc(.rentitemid, "MVP Summoner")) < getvariableofnpc(.rentitemamount, "MVP Summoner") ) {

    mes "You don't have enough "+ getitemname( getvariableofnpc(.rentitemid, "MVP Summoner") ) +" to rent a room.";

    close;

    }

    }

    else if ( getvariableofnpc(.remaintime[.@room],"MVP Summoner") ) {

    mes "[Riot Entrance]";

    mes "I'm sorry, somebody else has already register this room faster than you.";

    close;

    }

    for ( set .@i, 1; .@i <= 8; set .@i, .@i +1 ) {

    if ( getvariableofnpc(.remaintime[.@i],"MVP Summoner") && .@type == .type[.@i] && getcharid(.@type) == .inuseid[.@i] ) {

    mes "[Riot Entrance]";

    mes "You already rented Room#"+ .@i +". Use that room instead.";

    close;

    }

    }

    set .type[.@room], .@type;

    set .inuseid[.@room], getcharid(.@type);

    set .whoinuse$[.@room], strcharinfo( (.@type == 3)?0:.@type );

    if ( getvariableofnpc(.rentitemid, "MVP Summoner") && getvariableofnpc(.rentitemamount, "MVP Summoner") ) {

    if ( countitem(getvariableofnpc(.rentitemid, "MVP Summoner")) < getvariableofnpc(.rentitemamount, "MVP Summoner") ) end;

    delitem getvariableofnpc(.rentitemid, "MVP Summoner"), getvariableofnpc(.rentitemamount, "MVP Summoner");

    }

    else if ( getvariableofnpc(.rentcost, "MVP Summoner") ) {

    if ( zeny < getvariableofnpc(.rentcost, "MVP Summoner") ) end;

    set zeny, zeny - getvariableofnpc(.rentcost, "MVP Summoner");

    }

    warp "1@cedi_0"+ .@room, 0,0;

    killmonsterall "1@cedi_0"+ .@room;

    donpcevent "MVP Summoner#"+ .@room +"::OnEnterMap";

    end;

    }

    1@cedi1,45,54,6 duplicate(MVP Summoner) MVP Summoner#1 116

    1@cedi2,45,54,6 duplicate(MVP Summoner) MVP Summoner#2 116

    1@cedi3,45,54,6 duplicate(MVP Summoner) MVP Summoner#3 116

    1@cedi4,45,54,6 duplicate(MVP Summoner) MVP Summoner#4 116

    1@cedi1 mapflag nowarpto

    1@cedi1 mapflag nowarpto

    1@cedi1 mapflag nowarpto

    1@cedi1 mapflag nowarpto

    1@cedi1 mapflag nomemo

    1@cedi1 mapflag nomemo

    1@cedi1 mapflag nomemo

    1@cedi1 mapflag nomemo

    1@cedi1 mapflag noteleport

    1@cedi1 mapflag noteleport

    1@cedi1 mapflag noteleport

    1@cedi1 mapflag noteleport

    1@cedi1 mapflag nosave SavePoint

    1@cedi1 mapflag nosave SavePoint

    1@cedi1 mapflag nosave SavePoint

    1@cedi1 mapflag nosave SavePoint

    1@cedi1 mapflag nopenalty

    1@cedi1 mapflag nopenalty

    1@cedi1 mapflag nopenalty

    1@cedi1 mapflag nopenalty

    1@cedi2 mapflag nowarpto

    1@cedi2 mapflag nowarpto

    1@cedi2 mapflag nowarpto

    1@cedi2 mapflag nowarpto

    1@cedi2 mapflag nomemo

    1@cedi2 mapflag nomemo

    1@cedi2 mapflag nomemo

    1@cedi2 mapflag nomemo

    1@cedi2 mapflag noteleport

    1@cedi2 mapflag noteleport

    1@cedi2 mapflag noteleport

    1@cedi2 mapflag noteleport

    1@cedi2 mapflag nosave SavePoint

    1@cedi2 mapflag nosave SavePoint

    1@cedi2 mapflag nosave SavePoint

    1@cedi2 mapflag nosave SavePoint

    1@cedi2 mapflag nopenalty

    1@cedi2 mapflag nopenalty

    1@cedi2 mapflag nopenalty

    1@cedi2 mapflag nopenalty

    1@cedi3 mapflag nowarpto

    1@cedi3 mapflag nowarpto

    1@cedi3 mapflag nowarpto

    1@cedi3 mapflag nowarpto

    1@cedi3 mapflag nomemo

    1@cedi3 mapflag nomemo

    1@cedi3 mapflag nomemo

    1@cedi3 mapflag nomemo

    1@cedi3 mapflag noteleport

    1@cedi3 mapflag noteleport

    1@cedi3 mapflag noteleport

    1@cedi3 mapflag noteleport

    1@cedi3 mapflag nosave SavePoint

    1@cedi3 mapflag nosave SavePoint

    1@cedi3 mapflag nosave SavePoint

    1@cedi3 mapflag nosave SavePoint

    1@cedi3 mapflag nopenalty

    1@cedi3 mapflag nopenalty

    1@cedi3 mapflag nopenalty

    1@cedi3 mapflag nopenalty

    1@cedi4 mapflag nowarpto

    1@cedi4 mapflag nowarpto

    1@cedi4 mapflag nowarpto

    1@cedi4 mapflag nowarpto

    1@cedi4 mapflag nomemo

    1@cedi4 mapflag nomemo

    1@cedi4 mapflag nomemo

    1@cedi4 mapflag nomemo

    1@cedi4 mapflag noteleport

    1@cedi4 mapflag noteleport

    1@cedi4 mapflag noteleport

    1@cedi4 mapflag noteleport

    1@cedi4 mapflag nosave SavePoint

    1@cedi4 mapflag nosave SavePoint

    1@cedi4 mapflag nosave SavePoint

    1@cedi4 mapflag nosave SavePoint

    1@cedi4 mapflag nopenalty

    1@cedi4 mapflag nopenalty

    1@cedi4 mapflag nopenalty

  3. Guys just wanna ask something.

    I made a custom monster and its fine , then i put an custom card drop and there is no error. But when i put custom item drops i got an error? When the item is dropping ive got an error :( when im using @item on that item there is no error, just the error is when dropping on monster

    does anyone can help???????

  4. <.< ... this is support section so of course I'm just posting an example ...

    the method that I'm talking is the part how to kick the bot, not the bot-checking algorithm

    if you wanted spoon feed you should've tell earlier

    -	script	AntiBot	-1,{
    OnPCLoginEvent:
    	setoption 0x40, 0; // prevent abuse
    	end;
    OnCheat:
    	dispbottom "too long";
    	sc_end sc_berserk;
    	percentheal 100,100;
    	setoption 0x40, 0;
    	end;
    OnNPCKillEvent:
    	if ( rand(100) ) end; // 1% chance to triggering
    	setoption 0x40, 1;
    	sc_start sc_berserk, 1000000000, 1;
    	addtimer 30000, strnpcinfo(0)+"::OnCheat";
    	.@respond = gettimetick(2);
    	mes "if A = "+( .@a = rand(1,10) )+", B = "+( .@b = rand(1,10) );
    	setarray .@arithmetic$, "+", "-", "*", "/";
    	mes "How many is A "+ .@arithmetic$[ .@arithmetic = rand(4) ] +" B ?";
    	switch ( .@arithmetic ) {
    	default: .@answer = .@a + .@b; break;
    	case 1: .@answer = .@a - .@b; break;
    	case 2: .@answer = .@a * .@b; break;
    	case 3: .@answer = .@a / .@b;
    	}
    	next;
    	input .@input, -100, 100;
    	deltimer strnpcinfo(0)+"::OnCheat";
    	sc_end sc_berserk;
    	percentheal 100,100;
    	setoption 0x40, 0;
    	if ( gettimetick(2) > .@respond +30 ) {
    		mes "you taken too long to answer";
    		close;
    	}
    	else if ( .@input == .@answer ) {
    		mes "Good Job";
    		close;
    	}
    	else {
    		mes "Wrong";
    		close;
    	}
    }
    and do you know the input only allow positive numbers ?

    if a = 2, b = 5,

    a - b = -3

    players can never input -3 because it is negative

    a = 4, b = 0

    a / b = ∞

    so I put rand(1,10) for it

     

    mam error

     

     
    script error on npc/rns/main/bot.txt line 16
        parse_line: expect command, missing function name or calling undeclared function
        11 : OnNPCKillEvent:
        12 :        if ( rand(100) ) end; // 1% chance to triggering
        13 :        setoption 0x40, 1;
        14 :        sc_start sc_berserk, 1000000000, 1;
        15 :        addtimer 30000, strnpcinfo(0)+"::OnCheat";
    *   16 :        '.'@respond = gettimetick(2);
        17 :        mes "if A = "+( .@a = rand(1,10) )+", B = "+( .@b = rand(1,10) );
        18 :        setarray .@arithmetic$, "+", "-", "*", "/";
        19 :        mes "How many is A "+ .@arithmetic$[ .@arithmetic = rand(4) ] +" B ?";
        20 :        switch ( .@arithmetic ) {
        21 :        default: .@answer = .@a + .@b; break;
  5. 400 max hp for every 1 vit?

     

    bonus bMaxHP,readparam(bVit)*400;

    yes thanks gonna try it now

    400 max hp for every 1 vit?

     

    bonus bMaxHP,readparam(bVit)*400;

    it works sir thanks, but what if 400 max HP for every 1 vit with capped to 102,000 HP? because this is an accessory card it will over 102,000 HP if not capped

  6. <.< ... this is support section so of course I'm just posting an example ...

    the method that I'm talking is the part how to kick the bot, not the bot-checking algorithm

    if you wanted spoon feed you should've tell earlier

    -	script	AntiBot	-1,{
    OnPCLoginEvent:
    	setoption 0x40, 0; // prevent abuse
    	end;
    OnCheat:
    	dispbottom "too long";
    	sc_end sc_berserk;
    	percentheal 100,100;
    	setoption 0x40, 0;
    	end;
    OnNPCKillEvent:
    	if ( rand(100) ) end; // 1% chance to triggering
    	setoption 0x40, 1;
    	sc_start sc_berserk, 1000000000, 1;
    	addtimer 30000, strnpcinfo(0)+"::OnCheat";
    	.@respond = gettimetick(2);
    	mes "if A = "+( .@a = rand(1,10) )+", B = "+( .@b = rand(1,10) );
    	setarray .@arithmetic$, "+", "-", "*", "/";
    	mes "How many is A "+ .@arithmetic$[ .@arithmetic = rand(4) ] +" B ?";
    	switch ( .@arithmetic ) {
    	default: .@answer = .@a + .@b; break;
    	case 1: .@answer = .@a - .@b; break;
    	case 2: .@answer = .@a * .@b; break;
    	case 3: .@answer = .@a / .@b;
    	}
    	next;
    	input .@input, -100, 100;
    	deltimer strnpcinfo(0)+"::OnCheat";
    	sc_end sc_berserk;
    	percentheal 100,100;
    	setoption 0x40, 0;
    	if ( gettimetick(2) > .@respond +30 ) {
    		mes "you taken too long to answer";
    		close;
    	}
    	else if ( .@input == .@answer ) {
    		mes "Good Job";
    		close;
    	}
    	else {
    		mes "Wrong";
    		close;
    	}
    }
    and do you know the input only allow positive numbers ?

    if a = 2, b = 5,

    a - b = -3

    players can never input -3 because it is negative

    a = 4, b = 0

    a / b = ∞

    so I put rand(1,10) for it

     

    sorry and thanks T_T

  7. http://www.eathena.ws/board/index.php?s=&showtopic=242936&view=findpost&p=1323849

     

    -	script	antibot	-1,{
    OnPCLoginEvent:
    	setoption 0x40, 1;
    	pcblockmove getcharid(3), 1;
    	sc_start sc_berserk, 1000000000, 1;
    	addtimer 10000, "antibot::OnCheat";
    	set @respond, gettimetick(2);
    	mes "[ xxxRO Antibot ]";
    	mes "Are you player or bot ?";
    	mes "Must respond all within 10 seconds";
    	next;
    	if ( select ( "Bot", "Player" ) == 1 ) end;
    	mes "[ xxxRO Antibot ]";
    	mes "Are you sure ?";
    	next;
    	if ( gettimetick(2) > @respond +10 ) end; // try comment this line
    	else if ( select ( "Yes", "No" ) == 2 ) end;
    	deltimer "antibot::OnCheat";
    	setoption 0x40, 0;
    	pcblockmove getcharid(3), 0;
    	sc_end sc_berserk;
    	percentheal 100,100;
    	mes "[ xxxRO AntiBot ]";
    	mes "Congratulation !!";
    	mes "You have passed the test.";
    	close;
    OnCheat:
    	atcommand "@kick "+ strcharinfo(0);
    	end;
    }
    I wonder is there anybody else having a better method ?

    this method is already 3 yeathanks

    thanks annie...uhmm is there a better bot checker?

    btw why OnPCLoginEvent?? why not OnNPCKillEvent?

  8.  

    guys anyone please help? in this one >>>>http://rathena.org/board/files/file/2987-poring-collection/

     

    i successfully patch the King Poring but the other poring is error.. and it said attemp to index "JobNameTable" (a nil value) something like that...the author said 

     

    "previously i have edited the name of each sprites which allow me to install all the mob sprite into the test server of mine easily"

     

    what he mean by edited the name? rename only or there is other way to change the name of it? i tried to rename it like Nekoring (Real Name is 1) but i got error. T_T help please

    sorry wrong section.. changing in other section

    aww maybe right section? i dont know >.< but please anyone help?

     

    lol consult here

     

    http://rathena.org/wiki/Custom_Mobs

     

    i know thats the guide and i did it like what i did on poring king.. i follow that guide and now i successfully made poring king.. but the others is error.. and i got that error  >> attemp to index "JobNameTable" (a nil value)

    when i download the poring collection the author said he change the name of if because when you download alll of it the name of the spr/act is 1 to 28..except poring_king...

×
×
  • Create New...