Jump to content

Aerie

Members
  • Posts

    383
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Aerie

  1. You have differents options for announces. The best is to use the hexadecimal colors system :

    announce "TEXT",0,0xFF6600;

    The FF6600 contains the color, change it for get a new color : http://www.2createawebsite.com/build/hex-colors.html

    How get every 3 hours ? You can use a sleep2; command :

    - script announcer-script -1,{
    OnInit:
    sleep2 10000;
    donpcevent "announcer::OnEvent";
    sleep2 10800000;
    donpcevent "announcer::OnInit";
    end;
    OnEvent:
    switch(rand(1,5)){
    case 1:
    announce "This is announcement one.",bc_all,bc_yellow;
    break;
    case 2:
    announce "This is announcement two.",bc_all,bc_blue;
    break;
    case 3:
    announce "This is announcement three.",bc_all,bc_yellow;
    break;
    case 4:
    announce "This is announcement four.",bc_all,bc_blue;
    break;
    case 5:
    announce "This is announcement five.",bc_all,bc_yellow;
    break;
    }
    }
    

  2. 31 august 2002 for south Korea (I guess alpha & beta before). Near 10 years maybe time to think about an anniversary project for rAthena ? Some people interested ? Like quest script / map / new system ?

    • Upvote 2
  3. Emistry you was right about the typo error, sorry for it but impossible for me to edit without get EOL ;D

    I'll share many global system of points for WoE / PvP / (maybe BG but need more modifications) and login settings next for SQL. This seems to be asked many times.

  4. Nice moment for think about what a community project is ... Thanks to all contributors - emulator or client side - who have contributed since years to Ragnarok Online & rAthena/eAthena and make this gaming experience unique. Without all members and developpers this game may be forgotten since many years ;D

    • Upvote 1
  5. This is a simple script for count kills in a woe castle and only during woe. After its up to you to create a NPC that gives prize depending of number of points.

    
    -	script	Woe_points	-1,{
    
    OnInit:
    
    setarray$mapcastl$[0],"aldeg_cas01","aldeg_cas02","aldeg_cas03","aldeg_cas04","aldeg_cas05","gefg_cas01","gefg_cas02","gefg_cas03","gefg_cas04","gefg_cas05","payg_cas01","payg_cas02","payg_cas03","payg_cas04","payg_cas05","prtg_cas01","prtg_cas02","prtg_cas03","prtg_cas04","prtg_cas05";
    end;
    
    
    OnPCKillEvent:
    
    getmapxy @map$,@x,@y,0;
    
    
    for( set .@i, 0; .@i < getarraysize($mapcastl$); set .@i, .@i +1 )
    if (agitcheck() && @map$ == $mapcastl$[.@i]) {
    
      set woe_points,woe_points+1;
      	 }
    
    end;
    }
    

  6. You need to add the OnPCDieEvent: for reset the killstreak value. You can also add a trigger to reset the value if the player leave the map. With a @ variable kind, the value is only rested when you log out.

    But with this part of script, I don't see why it adds 3 kills per kill if there is no other . Reduce the

    setarray $pvpmap$[0],"izlude","pvp_map2","pvp_map3";

    to

    setarray $pvpmap$[0],"izlude";
  7. Please use codebox for your script.

    animeresort,170,196,6 script Guide#mini 832,22,22,{

    If you don't use OnTouch label it's useless to wrote 22,22

    If you're only looking for a warp, I think yhis will be enough ...

    animeresort,170,196,6 script Guide#mini 832, {
    
    end;
    
    OnInit:
    waitingroom "Mini - Games Event Room",20,"Guide#mini::OnMiniwarp",1;
    end;
    
    OnMiniwarp:
    warpwaitingpc "turbo_room", 128, 91;
    end;
    
    }
    

    For you error, it can comes from the fact that if you clicking in the NPC it'll launch the OnInit part, you have to put a end; first.

  8. Here a reduce version of script that I'm using, it's only for SQL all stats can be saved.

    SQL lines to add in your data :

    //ALTER TABLE `char` ADD COLUMN `pvp_Kill` INTEGER UNSIGNED NOT NULL DEFAULT '0' AFTER `rename`;
    //ALTER TABLE `char` ADD COLUMN `pvp_Death` INTEGER UNSIGNED NOT NULL DEFAULT '0' AFTER `rename`;
    

    -    script    C_login    -1,{
    
    
    OnInit:
    
    //For set map used
    setarray $pvpmap$[0],"pvp_map1","pvp_map2","pvp_map3";
    
    
    OnPCDieEvent:
    
    getmapxy @map$,@x,@y,0;
    
    //For PvP maps
      for( set .@i, 0; .@i < getarraysize($pvpmap$); set .@i, .@i +1 )
       if (@map$ == $pvpmap$[.@i]) {
    
           set .@p,getcharid(0); //Char ID
           set .@q,strcharinfo(0); //Char ID
    
    //For killstreak, you can add more lines - Change announce.
    
           set @killstreak,0;
           set @deathstreak,@deathstreak+1;
           if (@deathstreak == 5) {mapannounce ""+@map$+"",""+.@q+" : ["+@deathstreak+"] Kills without be killed !",bc_map;}
           if (@deathstreak == 10) {mapannounce ""+@map$+"",""+.@q+" : ["+@deathstreak+"] Kills without be killed !",bc_map;}
           if (@deathstreak == 15) {mapannounce ""+@map$+"",""+.@q+" : ["+@deathstreak+"] Kills without be killed !",bc_map;}
           if (@deathstreak == 20) {mapannounce ""+@map$+"",""+.@q+" : ["+@deathstreak+"] Kills without be killed !",bc_map;}
    
           //Par Joueur
           query_sql("SELECT `pvp_Death` FROM `char` WHERE `char_id` = '"+.@p+"'",.@countL); //Check name
           setarray .@countL[0],.@countL[0]+1;
           query_sql "UPDATE `char` SET `pvp_Death` = '"+.@countL[0]+"' WHERE `char_id` ='"+.@p+"'";
           }
    
       //============================= Bottom
    
           if(killerrid==0) {dispbottom "You just killed yourself.";end;}
           set @killer$, rid2name(killerrid);
           dispbottom "You have been killed by "+@killer$+"!";
           end;
    
       //=================================================================================
    
    OnPCKillEvent:
    
    
    getmapxy @map$,@x,@y,0;
    
      for( set .@i, 0; .@i < getarraysize($pvpmap$); set .@i, .@i +1 )
       if (@map$ == $pvpmap$[.@i]) {
    
           set .@x,getcharid(0); //Char ID
           set .@y,strcharinfo(0);
    
           set @deathstreak,0;
           set @killstreak,@killstreak+1;
           if (@killstreak == 5) {mapannounce ""+@map$+"",""+.@y+" : ["+@killstreak+"] died without kill !",bc_map;}
           if (@killstreak == 10) {mapannounce ""+@map$+"",""+.@y+" : ["+@killstreak+"] died without kill !",bc_map;}
           if (@killstreak == 15) {mapannounce ""+@map$+"",""+.@y+" : ["+@killstreak+"] died without kill !",bc_map;}
           if (@killstreak == 20) {mapannounce ""+@map$+"",""+.@y+" : ["+@killstreak+"] died without kill !",bc_map;}
    
           //Par Joueur
           query_sql("SELECT `pvp_Kill` FROM `char` WHERE `char_id` = '"+.@x+"'",.@countX); //Verif le nom
           setarray .@countX[0],.@countX[0]+1;
           query_sql "UPDATE `char` SET `pvp_Kill` = '"+.@countX[0]+"' WHERE `char_id` ='"+.@x+"'";
           }
    
    
       //============================= Bottom
    
      	 set @killed$, rid2name(killedrid);
           if(strcharinfo(0)==@killed$) {end;}
           dispbottom "You have kill "+@killed$+"!";
           end;
    
    }
    

  9. In your db/item_db.txt, you can enable those one :

    //7598,BlueCard_I,Blue I Card,3,0,,10,,,,,,,,,,,,,{},{},{}

    //7599,BlueCard_D,Blue D Card,3,0,,10,,,,,,,,,,,,,{},{},{}

    //7600,BlueCard_K,Blue K Card,3,0,,10,,,,,,,,,,,,,{},{},{}

    //7601,BlueCard_S,Blue S Card,3,0,,10,,,,,,,,,,,,,{},{},{}

    //7602,BlueCard_R,Blue R Card,3,0,,10,,,,,,,,,,,,,{},{},{}

    Others seems missing, they didn't existing. But you can easily create new ones, all cards using same sprite.

×
×
  • Create New...