Jump to content

Oxxy

Members
  • Content Count

    142
  • Joined

  • Last visited

  • Days Won

    5

Posts posted by Oxxy


  1. Description:

     

    Random bonus stats on SERVER'S MAX LEVEL (defined by MAX_LEVEL variable) script with announce. © Oxxy, 2015, v1.1.1

     

    The only small config:

     

        .announce = 1;            // Announce that player got max level and his bonus points?    .randBonus = 1;            // Should the bonus be random? Or a set value? 1 = random, 0 = set value    setarray .bonusValues[0], 1000, 1000, 4000; // Array holding the status points that will be given to player.                                                // .bonusValues[0] contains the value that'll given if .randBonus is set to 0                                                // .bonusValues[1] and .bonusValues[2] are the min and max values that are given in rand.

     

    Changelist:

     

        v1.0 Initial release    v1.1 Added setting, where you can set if the bonus will be random value or the set value.    v1.1.1 Added array holding the status points values.

     

    PLEASE, USE ONLY LATEST VERISON (LAST VERSION: 1.1.1)

     

    Screenshots:

    kLm5UYvVP4Y.jpg

    bonus_stats.txt

    bonus_stats1.1.1.txt


  2. Not working at all for me.

     

     

    This part "if(select(Players OnlineGMs online["+getarraysize(.GM_Name$)+"]) == 2) {"

     

    Error.

     

    Download script from first post. Everything is working now. Sorry for that.

     

    -- Added suggestions from posts above.


  3.  

    ---------------------------------------*useatcmd "command";This command will execute an atcommand binding on the attached RID from a script. The three .@atcmd_***** variables will NOT be set when invoking scripts-atcommands this way.---------------------------------------

     

    isn't this enough?

    Oh, didn't know about it, tho would be anyway useful to show these commands in @commands.


  4. Here, tested a bit, should be ok:

     

    dicastes01,157,168,5	   script    Fast-Type Event    421,{    if(getgroupid() >= 99) {        mes "Fast-Type event is" + (.Event?"^00FF00 ON^000000":"^FF0000 OFF^000000");        if(select((!.Event?"^00FF00Start":"^FF0000End") + " Event^000000","Normal Player") == 2) { next; goto PlayerMenu; }        switch(.Event) {            case 1:                close2;                .Event = 0;                .Round = 0;                .String$ = "";                announce "Fast-Type Event: A GM has ended the event.",0; break;                end;            default:                close2;                donpcevent "Fast-Type Event::OnStart";                end;        }        end;    }    PlayerMenu:    if(!.Event) {        mes "There is no Event right now.";    } else if(.String$ == "") {        npctalk "Wait for the next round..";    } else {        mes "Type the Correct Sentences.";        mes "^FF0000" + .String$ + "^000000";        input .@Type$;        if( .String$ == "" ) {            announce "Sorry, " + strcharinfo(0) + " is a bit slow..",0;            close;        }        if (.String$ == .@Type$) {            getitem 7227, 5; //EDIT THE PRIZE HERE            announce "Fast-Type Event: " + strcharinfo(0) + " typed the correct string!",0;            .String$ = "";            .Round++;            close2;            donpcevent "Fast-Type Event::OnStart2";            end;        } else {            close2;            announce "" + strcharinfo(0) + " mispelled some strings XD",0;            end;        }    }    end;    OnMinute00:    OnMinute30:    if(.Event) end;    donpcevent "Fast-Type Event::OnStart";    end;    OnStart:    announce "Fast-Type Event has started at Event AREA !",0;    L_Begin:    .Event = 1;    .String$ = "";    while(getstrlen( .String$ ) < .Length) {        .String$ = .String$ + .List$[rand( getarraysize(.List$))];    }    announce "Round "+(.Round+1)+" Started !",0;    end;    OnStart2:    sleep2 5000;    if(.Round == .Rounds) {        if(!.Event) end;        announce "Fast-Type Event: Event is over!",0;        .Event = 0;        .Round = 0;        end;    }    if(!.Event) end;    announce "Fast-Type Event: Next round starts in 5 seconds...",0;    sleep2 5000;    if(!.Event) end;    goto L_Begin;    OnInit:    .Length = 28; //EDIT THE LENGTH OF CHARACTERS TO BE TYPED    .Round = 5; //EDIT THE ROUNDS    setarray .List$,";","B","_","D","E","%","=","H","I","J","/","L","M","N","6","P","Q","]","S","T",","; //YOU CAN ADD LETTERS, DIGITS & SYMBOLS HERE..    end;}

  5. I guess the line

     

    bindatcmd "killboss",strnpcinfo(3)+"::OnAtCommand", 20,100;

     

    should look like this

     

    bindatcmd "killboss",strnpcinfo(1)+"::OnAtCommand", 20,100;

     

    *strnpcinfo(<type>)This function will return the various parts of the name of the calling NPC.Whatever it returns is determined by type. 0 - The NPC's display name (visible#hidden) 1 - The visible part of the NPC's display name 2 - The hidden part of the NPC's display name 3 - The NPC's unique name (::name) 4 - The name of the map the NPC is in.

     

    You don't have any unique name in NPC's name.
     


  6. Not working.

     

    It's not kicking...no error in ssh.

    Try this, buddy:

     

    -    script    afkwoe    -1,{    OnInit:        .timetocheck = 60;	    //Seconds after which idle is checked.        .idle_time = 3600;	    //Idle time in seconds, from which one can be warped.        end;    OnPCLoginEvent:        addtimer .timetocheck*1000,strnpcinfo(1)+"::OnCheckAFK";        end;                                                                       OnCheckAFK:        if(checkidle() >= .idle_time) {            atcommand "@kick "+ strcharinfo(0);            end;        }        addtimer .timetocheck*1000,strnpcinfo(1)+"::OnCheckAFK";        end;}

  7.  

    thz man! only remove this

    clif_map_property(sd,MAPPROPERTY_AGITZONE);

    you should actually do it everywhere I said. Because mapflag can be set via @fvfon and in @fvfoff you just shouldn't set map property to nothing, cuz there's no point.

    tho np buddy. <3


  8. Yeahp, not show damage! 

    As I remember right there was switch config. Check out faction.conf in conf folder.

     

    --Tried to find it, there's no switch config.

    I'll check the code

     

    Find this in clif.c:

    +    if( sd->status.faction_id ) { // Complete Faction System [Lilith]+        if( map[sd->bl.m].flag.fvf ) {+            faction_hp(sd);+            clif_map_property(sd, MAPPROPERTY_AGITZONE);+        }

     

    try to comment

    clif_map_property(sd,MAPPROPERTY_AGITZONE);

     

    and then find in atcommand.c

    +/*==========================================+ * Complete Faction System [Lilith]+ * @fvfon+ *------------------------------------------*/+ACMD_FUNC(fvfon)+{+    int faction_id = 0, relic_id = 0;++    nullpo_retr(-1, sd);++    if( map[sd->bl.m].flag.fvf ) {+        clif_displaymessage(fd, msg_txt(sd,1513)); // FvF is already on+        return -1;+    }++    if( message )+        sscanf(message, "%d %d", &faction_id, &relic_id);++    map[sd->bl.m].faction.id = faction_id;+    map[sd->bl.m].faction.relic = relic_id;++    map[sd->bl.m].flag.fvf = 1;+    clif_map_property_mapall(sd->bl.m, MAPPROPERTY_AGITZONE);+    map_foreachinmap(faction_reload_fvf_sub, sd->bl.m, BL_ALL);+    clif_displaymessage(fd, msg_txt(sd,1512)); // FvF: On+    return 0;+}

     

    comment this line:

    clif_map_property_mapall(sd->bl.m, MAPPROPERTY_AGITZONE);

     

    and then find

    +/*==========================================+ * Complete Faction System [Lilith]+ * @fvfoff+ *------------------------------------------*/+ACMD_FUNC(fvfoff)+{+    nullpo_retr(-1, sd);++    if( !map[sd->bl.m].flag.fvf ) {+        clif_displaymessage(fd, msg_txt(sd,1515)); // FvF is already off+        return -1;+    }++    map[sd->bl.m].flag.fvf = 0;+    map[sd->bl.m].faction.id = 0;+    map[sd->bl.m].faction.relic = 0;+    clif_map_property_mapall(sd->bl.m, MAPPROPERTY_NOTHING);+    map_foreachinmap(faction_reload_fvf_sub, sd->bl.m, BL_ALL);+    clif_displaymessage(fd, msg_txt(sd,1514)); // FvF: Off+    return 0;+}+

     

    comment this line:

    +    clif_map_property_mapall(sd->bl.m, MAPPROPERTY_NOTHING);


  9. that is not really necessary, I guess they only need time in order to make everything translatable :P but seems like they are on vocation so all we can do is wait

    that's the problem actually.


  10.  

     

    Most of what happened with Cookie on rAthena happened on Skype and IRC

    on an old machine, and at the time my conversations took place with him,

    I didn't think to screenshot or save any logs, so all you'd have is my

    word. Take it with however many grains of salt as you wish.

     

    In short, an abbreviated timeline:

     

    * Cookie contacts me and pressures me to fire Ind and replace with Cookie, I decline

    * Cookie and Maki team up and Cookie is hired, with my reluctant support.

    *

    We warm up to Cookie, Cookie recommends to Maki that Ind be released

    (because "Jman won't listen to my bright ideas, Ind is poison to

    rAthena, he doesn't know how to lead, is a crappy developer, etc etc"),

    dumbly I agree and Ind is removed of permissions and stripped of powers.

    *

    A few days later I try to get Cookie to change his mind about Ind, and

    none of the staff is with me because they all support the all high and

    mighty Cookie

    * Cookie requests donation Paypal access and I decline,

    multiple times. Cookie then (I assume) convinces the staff I'm poison

    to rAthena. A bunch of drama surrounding my favoritism towards Ind and

    keeping the original team together ensues (original team being Maki,

    BrianL, Ind and myself), and to prevent further drama, I resign.

     

    I'm

    not sure what exactly happened around Cookie after I left, if he

    received his donation access or why he quit. Lately I had been trying to

    mend the relationship I used to have with Maki and/or Brian, but

    unfortunately they've not been around at all on rAthena or their IRC to

    speak with. Seems Akkarin is running the show, but just barely.

     

    Oh, and hello yC. Long time no talk. cheesy.gif

     

    RMS: maybe?

    http://forum.ratemyserver.net/server-discussion/ggro-closed/msg178532/#msg178532

     

    Oh, that's really sad. Blindly following kRO is just stupid. How many GREAT or atleast GOOD 1x/1x/1x do you see now-a-days? with plenty of online(100+)? I don't see any, EVERY server is using custom things. Like why would you blindly follow kRO, iRO if there's actually no point in doing that? Actually creating new things is much more exciting


  11. http://herc.ws/board/topic/9522-suggestion-to-scripts-in-order-to-help-localization/

    http://herc.ws/board/topic/9501-suggestion-to-localization-thing/

     

    by the default implementation as stated in the topic by ind, it just translate "mes" and "select" strings

    goddamit, I should finally start to use "Search" button.

    Btw, I know the possible solution to the problem of dispbottom and stuff. We can make @lang assign a PLAYER_LANG variable to some value. Like if you choose @lang English, then the variable PLAYER_LANG will be set to 1. if, for example, you choose @lang Russian, then the value will be set to 2. And then we can manage scripts with this variables. tho this will increase lines in script sometimes by significant amount.

     

    if(PLAYER_LANG == 1) { dispbottom "Testing variable"; end; }if(PLAYER_LANG == 2) { dispbottom "Проверка переменной"; end; }

     

    that would be pretty ok, if Ind doesnt want to waste really much time.


  12. HULD stands for "Hercules Ultimate Localization Design".

    So, suggestions are:

    1. Add option to choose if u need to create translations for standart NPCs or not?
    2. Create command "@reloadlangdb", which will reset the db/translations.conf? So we don't have to restart server
    3. Ability to translate NPCs display name
    4. Make system messages and console messages be translatable?
    5. Make direct assign of variables work

    .@md_name$ = _("Endless Tower");	   //---> doesn't work set .@md_name$, _("Endless Tower");   //---> tested, work fine for me

     

    and few questions:

    1. is it possible to translate waitingrooms? like will they show translated things, or it isn't? if no - make them translatable
    2. is it possible to translate dispbottoms? if no - make them translatable
    3. is it possible to translate message script command(not mes, but message)? if no - make them translatable


  13. Here buddy, didn't test it out, but should be working.

     

    prontera,164,171,0    script    Farm Zone    123,{        mes "Do you want to enter my Farm Zone?";    if(select("Yes:No") == 2) close;    warp "ordeal_3-1",0,0;    end;    OnMinute10:    OnMinute20:    OnMinute30:    OnMinute40:    OnMinute50:    OnMinute00:    mapwarp "ordeal_3-1","prontera",170,170;    end;}// Monstersordeal_3-1,0,0,0,0    monster    War Guardian    1439,200,0,0,0ordeal_3-1,0,0,0,0    monster    War Guardian    1439,200,0,0,0ordeal_3-1,0,0,0,0    monster    War Guardian    1439,200,0,0,0ordeal_3-1,0,0,0,0    monster    War Guardian    1439,200,0,0,0ordeal_3-1,0,0,0,0    monster    War Guardian    1439,200,0,0,0ordeal_3-1,0,0,0,0    monster    War Guardian    1439,200,0,0,0ordeal_3-1,0,0,0,0    monster    War Guardian    1439,200,0,0,0ordeal_3-1,0,0,0,0    monster    War Guardian    1439,200,0,0,0ordeal_3-1,0,0,0,0    monster    War Guardian    1439,200,0,0,0ordeal_3-1,0,0,0,0    monster    War Guardian    1439,200,0,0,0ordeal_3-1,0,0,0,0    monster    War Guardian    1439,200,0,0,0ordeal_3-1,0,0,0,0    monster    War Guardian    1439,200,0,0,0ordeal_3-1,0,0,0,0    monster    War Guardian    1439,200,0,0,0ordeal_3-1,0,0,0,0    monster    War Guardian    1439,200,0,0,0ordeal_3-1,0,0,0,0    monster    War Guardian    1439,200,0,0,0ordeal_3-1,0,0,0,0    monster    War Guardian    1439,200,0,0,0ordeal_3-1,0,0,0,0    monster    War Guardian    1439,200,0,0,0

  14. UPDATED command:

     

    Script.c:

    find

     

    /*========================================== * Displays a message for the player only (like system messages like "you got an apple" ) *------------------------------------------*/BUILDIN(dispbottom){    TBL_PC *sd=script->rid2sd(st);    const char *message;    message=script_getstr(st,2);    if(sd)        clif_disp_onlyself(sd,message,(int)strlen(message));    return true;}

     

    put after

    /*========================================== * Coloured DispBottom [By Dastgir] *------------------------------------------*/BUILDIN(dispbottom2){    TBL_PC *sd=script_rid2sd(st);    const char *message;    unsigned long color;    message=script_getstr(st,3);    color=strtoul(script_getstr(st,2),NULL,0);    if(sd)        clif->colormes_e(sd,color,message);    return 0;}

     

    then find

    BUILDIN_DEF(dispbottom,"s"), //added from jA [Lupus]

     

    put after

    BUILDIN_DEF(dispbottom2,"ss"),

     

     

    Clif.h:

    find

     

    int (*colormes) (int fd, enum clif_colors color, const char* msg);

     

    put after

     

    int (*colormes_e) (struct map_session_data * sd,unsigned long color1, const char* msg);    //[By Dastgir]

     

    Clif.c:

    find

    // Modification of clif_messagecolor to send colored messages to players to chat log only (doesn't display overhead)/// 02c1 <packet len>.W <id>.L <color>.L <message>.?Bint clif_colormes(int fd, enum clif_colors color, const char* msg) {    size_t msg_len = strlen(msg) + 1;    WFIFOHEAD(fd,msg_len + 12);    WFIFOW(fd,0) = 0x2C1;    WFIFOW(fd,2) = msg_len + 12;    WFIFOL(fd,4) = 0;    WFIFOL(fd,8) = color_table[color];    safestrncpy((char*)WFIFOP(fd,12), msg, msg_len);    WFIFOSET(fd, msg_len + 12);    return 0;}

     

    put after

     

    // [By Dastgir]int clif_colormes_e(struct map_session_data * sd,unsigned long color1, const char* msg) {   	 unsigned short msg_len = strlen(msg) + 1;    WFIFOHEAD(sd->fd,msg_len + 12);    WFIFOW(sd->fd,0) = 0x2C1;    WFIFOW(sd->fd,2) = msg_len + 12;    WFIFOL(sd->fd,4) = 0;    WFIFOL(sd->fd,8) = (color1&0x0000FF) << 16 | (color1&0x00FF00) | (color1&0xFF0000) >> 16; // RGB -> BGR    safestrncpy((char*)WFIFOP(sd->fd,12), msg, msg_len);    clif_send(WFIFOP(sd->fd,0), WFIFOW(sd->fd,2), &sd->bl, SELF);    return 0;}

     

    then find

     

    clif->colormes = clif_colormes;

     

    put after

     

    clif->colormes_e = clif_colormes_e;

     

    recompile and be happy. syntax is the same.

     

    dispbottom2 "0x0000FF","Hello"; // Will send message Hello in blue to player

  15. Description:

     

        Shows current players online, then a list with players online    © 2015, Oxxy, v2.1.3

     

    The only small config:

     

    	    .maxPlayersPerPage = 20;    // Max number per page that'll be shown.	    .MinGrpID = 1;                // Min. group id to show in GM list. Also player with grp id < .MinGrpID can't see GMs location.        .MaxGrpID = 99;                // Max. group id to show in GM list. Players that have grp id > .MaxGrpID won't be shown in the GMs list.                .showPlayerInfo = 7;        // Bitwise variable,                                    // 1 = Show only Base/Job Level after the name                                    // 2 = Show only Map after the name                                    // 3 = Show Base/Job Level + Map after the name                                    // 4 = Show only Job after the name                                    // 5 = Show Job + Base/Job Level                                    // 6 = Show Job + Map                                    // 7 = Show Job + Base/Job level + Map                                        .checkWOE = 1;                // If you set this to 1, then it will not show locations during WOE.                                    // 0 to disable this check.                            .showPlayerInfoWOE = 5;        // Show players info while WOE is on? Bitwsie Variable; .checkWOE have to be set to 1.                                    // 1 = Show only Base/Job Level                                    // 2 = Show only Map                                    // 3 = Show Base/Job Level + Map                                    // 4 = Show only Job                                    // 5 = Show Job + Base/Job Level                                    // 7 = Show Job + Base/Job Level + Map                                        .showPeakOnline = 3;        // Show peak online? Bitwise variable                                    // 1 = show only in NPC dialog                                    // 2 = show only in waitingroom                                    // 3 = show in NPC and waitingroom together.                .announceCurrentOnline = 1; // Announce current online every hour?                .allowOtherSortTypes = 1;    // Allow sort by map, b.lvl, j.lvl or class?                                    // 1 = yes                                    // 0 = no

     


    Changelist:

     

    /*    © 2015, Oxxy, v2.0    v1.0 initial release.    v1.1 added @online atcommand.    v1.2 added GMs online list.    v1.2.1 fixed typos.    v1.2.2 fixed menu.    v1.2.3 fixed more typos.    v1.3 added config to show location, level, location+level or nothing but name.    v1.3.1 fixed MORE typos, finally should be working.    v1.4 Added .MaxGrpID config. See OnInit for description.    v1.5 Added GM Level to show together with GM's name. Location of GM will only be shown if the variable .showLocation equals to 1 and your group id is more than 0    v1.5.1 fixed small typo in check of group id. (OnPCLoginEvent and OnPCLogoutEvent)    v1.5.2 Instead of SQL query, update waitingroom with script command getusers(1). - ty Dastgir for pointing that out.    v1.5.3 Merged .showLocation and .showLevel variable into one bitwise variable .showPlayerInfo - ty Dastgir    v1.5.4 Added Job level to show in NPC. so .showPlayerInfo = 1; shows Base and Job level together.    v1.6 Added Peak Online    v1.7 Added disabling of location show when WOE is on if setting .checkWOE equal to 1.    v1.8 Added menu after every .maxPlayersPerPage players, that will allow you to quit at any point, or just continue listing through players.    v1.8.1 translated russian string, accidently got from my script.    v1.8.2 now only players with .minGrpID can see GMs location, fixed one more russian string. hehe.    v1.9 Added Job to show, changed variable .showLocLevel to .showPlayerInfo    v1.9.1 Fixed peak online. Now should be saving properly.    v1.9.2 Cleaned up code a bit(GM location showing code)    v1.9.3 Swapped array variables from .NPC_type to $Global_type -> GMs will be still shown even if you @reloadscript    v1.9.4 Added .showPeakOnline bitwise variable. Check OnInit    v1.9.5 Added new option .announceCurrentOnline. Check OnInit    v1.9.6 Added support of .hidePlayerInfoWOE    v1.9.7 Renamed .hidePlayerInfoWOE to .showPlayerInfoWOE, updated info. Check OnInit    v1.9.8 Updated script, made it with infinite loop which makes it more user-friendly to players    v1.9.9 More explicit conditions - ty GaryMcNabb for helping    v2.0 Added X and Y coordinates to show together with GM's location. (Only players with grp id > .MinGrpID can see GM's location)    v2.1 Fixed GM Online list, added sorting by player chose.    v2.1.1 Deleted useless code.    v2.1.2 Fixed small typos.    v2.1.3 Fixed users online.*/

     

    PLEASE, USE ONLY THE LATEST VERSION OF THE SCRIPT. (Last version: 2.1.3)

     

    Screenshots:

    0ppovWCywj8.jpg

    online_players2.0.txt

    online_players2.1.txt

    online_players2.1.2.txt

    online_players2.1.3.txt

×
×
  • Create New...

Important Information

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