Jump to content

Oxxy

Members
  • Content Count

    142
  • Joined

  • Last visited

  • Days Won

    5

Posts posted by Oxxy


  1. 1,2) you could use my mod
    its outdated tho, but if you have some skills, it will be easy to you, and then you could use 2 new variables to manage player's exp. :>


    3. when you give item do something like

    expireDate = gettimetick(2) + (3600 * 24 * 7);


    then
    OnPCLoginEvent:if(expireDate <= gettimetick(2)) {	 delitem <item_id>,<amount>;	 dispbottom "Your item has expired";	 end;}


    also you could use rentitem.

    4)
    OnPCBaseLvUp:if(BaseLevel == 255 && JobLevel == 150) delitem <item_id>,<amount>;

  2. How to change this script? i want that the stylist only offer Hairstyle change and Hairstyle Color, and the cloth dye will be remov

    //===== Hercules Script ======================================//= Stylist//===== By: ==================================================//= Euphy//===== Current Version: =====================================//= 1.1//===== Description: =========================================//= Changes your hair style, hair color, and cloth color.//===== Additional Comments: =================================//= 1.1 Switched to 'getbattleflag', credits to Saithis. [Euphy]//============================================================prontera,170,180,1	script	Stylist#custom_stylist	2_M_DYEINGER,{	setarray .@styles[1],getbattleflag("max_cloth_color"),getbattleflag("max_hair_style"),getbattleflag("max_hair_color");	setarray .@Look[1],7,1,6;	set .@s, select(" ~ Cloth color: ~ Hairstyle: ~ Hair color");	set .@Revert, getlook(.@Look[.@s]);	set .@style,1;	while(1) {		setlook .@Look[.@s], .@style;		message strcharinfo(0),"This is style #"+.@style+".";		set .@menu$, " ~ Next (^0055FF"+((.@style!=.@styles[.@s])?.@style+1:1)+"^000000): ~ Previous (^0055FF"+((.@style!=1)?.@style-1:.@styles[.@s])+"^000000): ~ Jump to...: ~ Revert to original (^0055FF"+.@Revert+"^000000)";		switch(select(.@menu$)) {			case 1: set .@style, ((.@style!=.@styles[.@s])?.@style+1:1); break;			case 2: set .@style, ((.@style!=1)?.@style-1:.@styles[.@s]); break;			case 3: message strcharinfo(0),"Choose a style between 1 - "+.@styles[.@s]+".";				input .@style,0,.@styles[.@s];				if (!.@style) set .@style, rand(1,.@styles[.@s]);				break;			case 4: set .@style, .@Revert; setlook .@Look[.@s], .@Revert; break;		}	}}

     

     

     

    Anyone can help? thank yoU!

    //===== Hercules Script ======================================//= Stylist//===== By: ==================================================//= Euphy//===== Current Version: =====================================//= 1.1//===== Description: =========================================//= Changes your hair style, hair color, and cloth color.//===== Additional Comments: =================================//= 1.1 Switched to 'getbattleflag', credits to Saithis. [Euphy]//============================================================prontera,170,180,1	script	Stylist#custom_stylist	2_M_DYEINGER,{	setarray .@styles[1],getbattleflag("max_cloth_color"),getbattleflag("max_hair_style"),getbattleflag("max_hair_color");	setarray .@Look[1],7,1,6;	set .@s, select("~ Hairstyle: ~ Hair color");	set .@Revert, getlook(.@Look[.@s+1]);	set .@style,1;	while(1) {		setlook .@Look[.@s+1], .@style;		message strcharinfo(0),"This is style #"+.@style+".";		set .@menu$, " ~ Next (^0055FF"+((.@style!=.@styles[.@s+1])?.@style+1:1)+"^000000): ~ Previous (^0055FF"+((.@style!=1)?.@style-1:.@styles[.@s+1])+"^000000): ~ Jump to...: ~ Revert to original (^0055FF"+.@Revert+"^000000)";		switch(select(.@menu$)) {			case 1: set .@style, ((.@style!=.@styles[.@s+1])?.@style+1:1); break;			case 2: set .@style, ((.@style!=1)?.@style-1:.@styles[.@s+1]); break;			case 3: message strcharinfo(0),"Choose a style between 1 - "+.@styles[.@s+1]+".";				input .@style,0,.@styles[.@s+1];				if (!.@style) set .@style, rand(1,.@styles[.@s+1]);				break;			case 4: set .@style, .@Revert; setlook .@Look[.@s+1], .@Revert; break;		}	}}

     

    try this, not sure if it will work correctly tho :P


  3.  

    set #delay,#delay + ( 3600 * 5 );

    this one means what delay for how long? @@Dastgir

    5 hours ( 60  seconds * 60 minutes * 5 )

     

    Btw, better do it that way (waitingroom):

     

    OnInit:delwaitingroom;waitingroom "Bossnia MVP",0;end;}

    either way map server will throw warnings every time you @reloadscript

     

    Btw, for saying Thanks there is "Thumbs up" (green) button :>


  4.  

     

    In your script, after line

    bossnia_04,142,61,1,1 boss_monster Ifrit 1832,1,7200000,0,0

     

    add right curly

    }

    got another error.. @@Oxxy

     

    2weji8w.png

    Sorry, wrong place to place right curly.

     

    Delete the one I said to you and add it here:

     

    }else{	set zeny,zeny-50000000;	warp "bossnia_0" + .@choice,202,204;	set #delay,#delay + ( 3600 * 5 );}end;

    after end;

    so it will be like this:

    }else{	set zeny,zeny-50000000;	warp "bossnia_0" + .@choice,202,204;	set #delay,#delay + ( 3600 * 5 );}end;}

     


  5. Here it is, bro:

     

    prontera,150,150,6    script    Aura NPC    700,{    mes "[Aura NPC]";    mes "Please choose an aura from the list!";    switch(select("Aura 1:Aura 2:Aura 3:Aura 4: Aura 5: Aura 6")) {            case 1:            next;            mes "[Aura NPC]";            mes "Your Aura was set to #1";            aura 586,-1,-1;            close;                        case 2:            next;            mes "[Aura NPC]";            mes "Your Aura was set to #2";            aura 586,362,-1;            close;                        case 3:            next;            mes "[Aura NPC]";            mes "Your Aura was set to #3";            aura 586,362,240;            close;                        case 4:            next;            mes "[Aura NPC]";            mes "Your Aura was set to #4";            aura 418,-1,-1;            close;                        case 5:            next;            mes "[Aura NPC]";            mes "Your Aura was set to #5";            aura 486,-1,-1;            close;                        case 6:            next;            mes "[Aura NPC]";            mes "Your Aura was set to #6";            aura 485,-1,-1;            close;    }}

  6. Actually this will be right:

    					    unsigned int ratio = skillratio + 100*(8 + st->sp/10);						//You'd need something like 6K SP to reach this max, so should be fine for most purposes.						if (ratio > 60000) ratio = 60000; //We leave some room here in case skillratio gets further increased.


    means if you have 6k sp the formula will be:

    skillratio + 100*(8+6000/10) = skillratio + 100*608 = skillratio + 60800


     


  7. change this:

        if (zeny < 50000000) {		mes "[Riss]";		mes "You don't have enough money...";		mes "Come back when you get at least 50,000,000 zeny.";		close;	}

     

    into this:

        if (countitem(673) <10) {        mes "[Riss]";        mes "You don't have enough items";        mes "Come back when you get "+(countitem(673) - 10)+" more "+getitemname(673)+".";        close;    }

     

    and then change this:

        set zeny,zeny-50000000;	warp "bossnia_0" + .@choice,202,204;	set #delay,#delay + ( 3600 * 5 );

     

    into this:

        delitem 673,10;    warp "bossnia_0" + .@choice,202,204;    set #delay,#delay + ( 3600 * 5 );


     


     


  8. in this part:

     

        if (getequippercentrefinery(.@part) > rand(100) || getequippercentrefinery(.@part) > rand(100)) {        successrefitem .@part;        next;        emotion e_no1;        mes "[Blacksmith Mighty Hammer]";        mes "The sound refreshes my mind everytime I hear it.";        mes "Here, have it. Refine succeeded flawlessly!";        close;    }

     

    change to that:

     

        if (getequippercentrefinery(.@part) > rand(100) || getequippercentrefinery(.@part) > rand(100)) {        successrefitem .@part;        if(getequiprefinerycnt(.@part) == 12)            announce strcharinfo(0)+" refined item "+getitemname(getequipid(.@part))+" to the +12 state!",bc_all;        next;        emotion e_no1;        mes "[Blacksmith Mighty Hammer]";        mes "The sound refreshes my mind everytime I hear it.";        mes "Here, have it. Refine succeeded flawlessly!";        close;    }

  9.  

    idk what for I created this, but feel free to use, it allows you to put this function inside the bonus of item so it will be used to ressurect yourself.

    syntax is:

    CallFunc("ResItem", <itemID>, <itemAmount>, <1:0>); 
     

     

    function	script	ResItem	{	set .@resItemEnabled, 1; // Res item enabled.    set .@itemID, getarg(0); // Item ID used for ressurection    set .@itemIDa, getarg(1); // Item amount used for ressurection    set .@delitem, getarg(2); // Delete item after ressurection? 1 = yes, 0 = no	    OnPCDieEvent:	if(killedrid == getcharid(0) && .@resItemEnabled) {		if(countitem(.@itemID) >= .@itemIDa) {			if(.@delitem)				delitem .@itemID, .@itemIDa;							atcommand "@alive";		} else end;	}} 
    Correct me if I am wrong, but I think OnPCDieEvent won't work inside function.

    Not sure about it, I've created that back in 2012?~


  10.  

    Hey guys!!

    I'm bringin here, the source modification I wanted:

    a guy from the Cronus board made this,

    It's will change the default dispbottom to a dispbottom color, with a optional parameter!!

    Example:

    dispbottom "Hello everyone!!"; //Displays a message on default color
    dispbottom "I wanted this so bad!",0xFF1493 //Displays a pink message

    Link to patch

    I don't know if you can apply dis .patch in your Hercules emulator, I think you should apply this manually!!

    **Sorry for my english!!

    And thanks AnnieRuru, the SlexFire (who made's this modification) has wrote credits to you!!

    We had this done a while ago, check my signature.

    And yours code is really messy.


  11.  

     

    when i type a msg. my GM sprite gone.. why is this happening??..

    and my character become targetable..

     

    not yet saying any msg.2q8o5et.jpg

     

    after typing a msg..

    n2k7r9.jpg

     

    and become targetable..

    2d6p6id.jpg

    Because of this
    Great, a feature to remove gm sprites in game, now make a command to put them back :P

    It does remove it only for a short amount of time and other players see you using GM sprite anyway :-)


  12. Building plugins under Windows
    Building plugins under Linux

    What this plugin does?:

    It allows you to make your chat colored!


    New commands:


    2 script commands:*color2hex(var) - converts the decimal value into hex, showing the color in #HEXFORMAT (like #FF0000);*setcolor(var) - sets CHAT_COLOR variable to var value;


     

    @color "HEX_COLOR";example usage: @color 0x0000FF - will set your chat color to Blue.


    Changelist:

    version 1.0: initial release


    Screenshots:
    vU4MDQmmqiU.jpg
    udfH89tTpG4.jpg

     

    Added other version of chat_color, now it doesn't disguise you and make you targetable, tho you can't see by yourself the color of your chat. That is done this way because the packet 0x2C1 actually was made to be used only by npcs. For you it will look like normal (green in chat, white above the head), others will see the true color(red, for example, if you set your @color 0xFF0000). :-)

     

    Example script to set color:

    prontera,150,150,6   script    chat color    700,{    mes color2hex(CHAT_COLOR);    mes CHAT_COLOR;    if(select("close:set color value") == 1) close;    input .@a$;    setcolor(axtoi(.@a$));    close;}

    chat_color.c

    chat_colorA.c


  13. kay, here you go: download VertrigoServ (ye, you could use clean mySQL, tho i prefer installing vertrigo). Just google for it.
    After you installed, download server from GIT using TortoiseGIT, if its server for localhost, you don't actually need to change that s1/p1 account and password.

    then go to conf folder, open map-server.conf

     

    uncomment this:

     

    char_ip: 127.0.0.1map_ip: 127.0.0.1

     

    save, close. open char-server.conf

     

    uncomment this:

     

    login_ip: 127.0.0.1char_ip: 127.0.0.1

     

    save, close. open inter-athena.conf

     

    scroll till the sql settings, put everywhere in

     

    account field: rootpassword field: vertrigodb field: ragnarok

     

    then open browser, type 127.0.0.1, go to PHPMyAdmin, type in root / vertrigo (acc / pass) create new db ragnarok and import main.sql + log.sql files from server/sql folder.

    now go to server/src/common/mmo.h and find this lines:

     

    #ifndef PACKETVER    #define PACKETVER 20131223#endif // PACKETVER

     

    change the date to yours EXE date. recompile server. Now the server side is ready :-) (if i didn't miss anything)


  14.  

    db/re/map_zone_db.conf

    insert the "loadevent" into the mapflags brackets of the zone named "All".

     

    mapflags: (

    "loadevent",

    )

    -	script	asdfghjkl	-1,{  end;OnInit:	bindatcmd "shower",strnpcinfo(3)+"::OnShowerCommand",80,80;	end;OnShowerCommand:	.@size = query_sql("select account_id form `char` where online = 1 and last_map ='"+strcharinfo(3)+"'",.@aid);	for ( .@i = 0; .@i < .@size; .@i++ ) {		if(!attachrid(.@aid[.@i])) continue;		if(CheckVending()) continue;		getitem 501,100;		announce "Something has been drop from the sky!",bc_self,0xFFC0CB;				}	end;OnPCLoadMapEvent:	query_sql("UPDATE `char` SET last_map='"+strcharinfo(3)+"'");end;}

    The problem in your script is that last_map isn't getting updated real time so some of players may not get the items.

     

    -- oh, I see your solution, tho that's madness, imagine server with 200 online. Query'll load server a lot.

     

     

    correct line:

    .@size = query_sql("select account_id form `char` where online = 1 and last_map ='"+strcharinfo(3)+"'",.@aid);

     

    have to be

    .@size = query_sql("select account_id FROM `char` where online = 1 and last_map ='"+strcharinfo(3)+"'",.@aid);


  15.     Give players stuff © Oxxy, 2015, v 1.2

     

    Changelist:

     

        v1.0 Initial release    v1.1 fixed some typos, should be working correct now.    v1.2 no variable can be set via function, deleted that.

     

    Syntax:

     

    callfunc "New_Player", <JOB_ID>, <BASE_LEVELS>, <JOB_LEVELS>, <ZENY>, <STATUS_POINTS>, <SKILL_POINTS>, <I1>,<I1A>, <I2>,<I2A>, <I3>,<I3A>, <I4>,<I4A>;

    IX stands for Item ID X

    IXA stands from Item ID X Amount

     

    Example usage in scripts:

     

    callfunc "New_Player", 1, 15, 10, 5000, 0, 0, 4001, 1, 7227, 2, 607, 3, 0, 0;

     

    example above will give player Swordman job, 15 base levels, 10 job levels, 5000 zeny, 0 status points, 0 skill points, and items Poring card x1, TCG Card x2, Ygg. berry x3 and the 4th item won't be given.

     

    Useful to create starter NPCs fast.

     

    PLEASE, USE ONLY LATEST SCRIPT. (LAST VERSION: 1.2)

    give_players_stuff1.2.txt


  16. You could also use something like this:

     

     

    -<tab>script<tab>MVPoints<tab>-1,{OnNPCKillEvent:switch(killedrid) { case MVPID:case MVPID1:case MVPID2:and so on...#MVPPoints += 1;dispbottom "You've gained 1 MVP Point for killing MVP!";end;}

     

    Adding multiple locations to script above:

     

    OnNPCKillEvent:

    // EDDGA

    if ( getmonsterinfo( killedrid, MOB_MVPEXP ) && (strcharinfo(3) == "pay_fild11" || strcharinfo(3) == "OTHERMAP" || strcharinfo(3) == "OTHERMAP1")) {
    set #CASHPOINTS, #CASHPOINTS + 10;
    end;
    }

     


  17. Interesting script idea but man... Why would a player receive random bonus stat points? You should just make it a set variable where the player gets like.. 10 stat points or so or whatever you want it to be. This would cause a lot of unbalancing issues and honestly it would be unfair for every player who maxes out different characters. One player achieves max level and gets 500 stat points but another achieves max level and only gains 300 stat points. They're left with 200 stat points less than the other player. In my opinion you should revise this because this is exploitable in the legit way of playing the game.

    That can be useful on high level servers, where you level up really fast, that makes people level up a bit more if they don't like the bonus they've got. On standart server (99/70, 150/80) this script won't be any useful, because the leveling up process is really frustrating. Tho you can just give a fixed amount of status points.

     

    why not get server's max lvl by using the already defined variable?

     

    .serverMaxLevel = MAX_LEVEL;

    Didn't know about that, ty for pointing that out :-)

     

     

    -- Script updated. Check version 1.1.1

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.