Jump to content

Lighta

Members
  • Posts

    737
  • Joined

  • Last visited

  • Days Won

    9

Everything posted by Lighta

  1. no poting at all for 10s outch that gonna hurt. For what you asked sevenrosuport is quite the same but you'll need to differentiate wich item give sp.
  2. not sure wich value return agicheck on eamod so it may cause issue, but you'll just have to remove the agicheck2 part => set .@enable, .@enable && (.@woe & (agitcheck() + 1) > 0);
  3. I think he would have done it already if he knew how. I'm sorry I can't you help you much about this since I never done it myself but I think wiki was quite accurate about this : http://rathena.org/wiki/Sprite_Recolors Try it yourself and ask question how to do stuff where you have difficulty would probably be faster.
  4. A guide ? hmm I gave 2 option, so for cmake wiki quite good about this : http://rathena.org/wiki/Compiling To review you're configure / makefile.in well you'll need a difftool like meld, beyond compare, kdiff3... Then compare you're current server folder let say myserv with rathena. It'll show all differences Then you synchronise all this (here for exemple I didn't took test folder...), clean, configure, rebuild and you should be fine.
  5. Lighta

    item_db.sql

    You don't have to select the table, it's already set in the query, and yes it's in sql query that you copy past this. But it's only an exemple I don't know wich item was change you just need to grep those line and do it.
  6. Lighta

    item_db.sql

    He means take a look at sql_files/update_svn...sql Usually when the db change they put those files as a query to execute to do the change. For exemple lastest I got is upgrade_svn16518.sql, if I open phpmyadmin (or any other mysql client) connect to my db and execute the query in that file, my db will be updated for the change in r16518. (in this exemple it'll add colum favorite to my inventory table). Otherwise if you don't know when that happen but know the change you could just create a query to apply them. like : REPLACE INTO `item_db_re` VALUES (19513,'Chicken_Bill','Chicken Bill',5,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,4096,NULL,1,NULL,699,NULL,NULL,NULL); Wich will update the item 19153. Hope you got it =)
  7. @Natsu, you have the same computer specification as mine (mine is a vaio pcg-4v1m) And for compiling yes you can, would be long trough but you can. around 5min for me. What I'll suggest you and it's what I'm doing a bit is cross-compiling, mean you have your IDE in your computer but you compiling on another faster host. Quick easy to setup with netbeans and SSH, as anyway you'll probably need to transmit files once finished.
  8. Are you really using eathena and not eamod cause as I remenber eamod didn't had agicheck2 wich could be the case. Otherwise I can't see the full line in your picture so dunno if there a small mistake there. (I tought you didn' cnged anything anyway)
  9. that just an sql query, so you jut need an mysql client to use it. Wich you probably do if you using mysql. As an exemple from terminal : "mysql -u user -p pass ragnarok_db" we connect to our mysql server using id=user and pass=pass to db ragnarok_db. "LOAD DATA INFILE '.\db\re\item_db.txt' INTO TABLE `item_db` FIELDS TERMINATED BY ','" we read all item_db.txt field and put them into item_db table (remenber to check the file path). From this point you're done since you just wanted to use your txt db into mysql, anyway if you want backup or an .sql file you still can do afterward. "exit" Quit mysql old connection. "mysqldump -u -p ragnarok_db item_db > sql_files\item_db.sql" Here you create a sql files for the table, so basically you've "converted" txt into sql. Seem longer like that but it's actually just 2 command and you're sure that the field are correct in db otherwise you'll get an sql error.
  10. Seem like your makefile/configure failed. Update your svn and assuming you have some differences for your server take a close look at /configure; /configure.in, /src/map/makefile.in src/common/makefile.in (all src/x/makefile.in). clean, reconfigure and retry. (here there was probably a failure in configure build last time). Or you can also try to build the makefile with cmake, I don't think you touch that too much.
  11. May be sweet to integrate mapflag as bitflag instead. (I mean like item_trade kinda). Just using db/const value for the value to create the bitflag should be good. Issue would be that you'll need to enable multiple entry for same skillid since we may want different lvl for map (like right now). But at least with these mapflag thing we could reach all map and adjust as we wished. (just a suggestion).
  12. Lighta

    /b command

    in group.conf too : item: [true, true] The second "true" mean I can use it in #command, otherwise I can't. For /b look at your conf and in wich group did you put @kami ?
  13. Do you get this mapannounce ? : mapannounce "poring_C01","Come play again!",0; That only a theorie but it's the only place where you use "C" instead "c" for mapname, wich I believe he doesn't found then fail to warp...
  14. Lighta

    /b command

    Hmm, ok I should have explained. /b command use @kami to work now, so you need to give him @kami right for him to use /b, do you get it ? So wheater is enable or not it depend on your group.conf, I don't remenber default one nor what u mean by lower's gm. (It's all group now).
  15. Lighta

    /b command

    Give him @kami right and it should work fine.
  16. Hi Tribbiani sound like a nice little mod but you ain't fully compatible with rAthena. Seem like you still using old gmlevel systeme instead group_id. "if(item_data->atcmd_block && sd->gmlevel < item_data->atcmd_block_minlvl)" map_session_data doesn't have gmlevel attribute see : http://rathena.org/doxygen/structmap__session__data.html Quick fix would be : "if(item_data->atcmd_block && pc_get_group_level(sd) < item_data->atcmd_block_minlvl)"
  17. my only tool would be : "LOAD DATA INFILE '%s' INTO TABLE %s FIELDS TERMINATED BY ','" Then you spécify you file and table and here you go, possibly you can dump the able afterward to make a .sql save.
  18. Lighta

    About EDP

    Did you get what this switch was doing ?? If you want EDP to have no effect in cross impact you have to ADD it ! by default (so when nothing said) we add val3 atk. (you should add it near the 1st case where there is just break following. Here should fix it : if( sc->data[sC_EDP] ){ // FIX ME: Should Rolling Cutter be affected by EDP? switch(skill_num){ case AS_SPLASHER: case AS_VENOMKNIFE: case AS_GRIMTOOTH: case GC_ROLLINGCUTTER: case GC_CROSSIMPACT: break; //the previous skills wont be affected by edp #ifndef RENEWAL_EDP case ASC_BREAKER: case ASC_METEORASSAULT: break; #else case AS_SONICBLOW: case ASC_BREAKER: case GC_COUNTERSLASH: ATK_RATE(50); break; //the previous skill will have their dmg halved #endif default: ATK_ADDRATE(sc->data[sC_EDP]->val3); Here I even add you some comment so I hope it may help you. btw I hate this comment : "// only modifier is halved but still benefit with the damage bonus" cause it ABSOLUTLY FALSE from the current state. for that comment to be true will have either to remove the break: atfer "ATK_RATE(50)", or add the ATK_ADD before it again.. tsss and they say documentation ain't important...
  19. do you want to specify the mapname or just current map ? anyway assuming you giving a mapname : ACMD_FUNC(freezall) { struct map_session_data* pl_sd; struct s_mapiterator* iter; int map_id=0; char map_name[MAP_NAME_LENGTH_EXT] = ""; bool chkmap = 1; if (sscanf(message, "%15s", map_name) < 1 || (map_id = map_mapname2mapid(map_name)) < 0){ chkmap=0; //no valid map found do not chk it } iter = mapit_getallusers(); for( pl_sd = (TBL_PC*)mapit_first(iter); mapit_exists(iter); pl_sd = (TBL_PC*)mapit_next(iter) ) { if (sd && (pc_get_group_level(sd) < pc_get_group_level(pl_sd) || sd->status.account_id == pl_sd->status.account_id) || (chkmap && pl_sd->bl.m != map_id) ) { continue; //skip it if we have someone attach and his lower gmlvl than the other. } //(perhaps we should check groupid instead or add a new permission..) pl_sd->sc.opt1 = 10; clif_changeoption(&pl_sd->bl); } mapit_free(iter); return 0; } There you go just adapt it for freezmap or whatever right now if you don't give him a map (or it's an invalid one) he would freeze them all (like before). You can just check other atcommand for thoses adds actually.
  20. They will be the sae for 3ceam or Ea, you just need to change the declaration part : ACMD_DEF(freez), to { "freez", 60,60, atcommand_freez}, but it ain't a 3ceam forum here, plus since it was merged there no really point kepping it. @malufett, dunno if I would force check sd for freezall and unfreezall, make sense for player usage but may be a bother if he planing using it from a script. So in short I would only check the level thing if we have a player attach otherwise do it for all.. ACMD_FUNC(freezall) { struct map_session_data* pl_sd; struct s_mapiterator* iter; iter = mapit_getallusers(); for( pl_sd = (TBL_PC*)mapit_first(iter); mapit_exists(iter); pl_sd = (TBL_PC*)mapit_next(iter) ) { if (sd && (pc_get_group_level(sd) < pc_get_group_level(pl_sd) || sd->status.account_id == pl_sd->status.account_id) ) { continue; //skip it if we have someone attach and his lower gmlvl than the other. } //(perhaps we should check groupid instead or add a new permission..) pl_sd->sc.opt1 = 10; clif_changeoption(&pl_sd->bl); } mapit_free(iter); return 0; }
  21. Just change the colum name of your table. That would be enough to fix that error but you may have other issues like incompatible conf file : atcomand_athena.conf etc... Take a look closely at the Emistry link for that. Anyway for just the sql part do this : ALTER TABLE `login` CHANGE `level` `group_id` TINYINT( 3 ) NOT NULL DEFAULT '0'
  22. Didn't get what you wantedabout the 15min but for you script the errorswasn"t in else but in closing npc:
  23. Source edit. src/map/skill.c search CG_TAROTCARD. You'll see : eff = rnd() % 14; wich mean every card get the same amount oh chance of appreance. Change this like : eff = rnd()%135; if(eff<5) { //5/135 do tarot sc_start(bl, SC_COMA, 100, skilllv, skill_get_time2(skillid, skilllv)); sc_start(bl, SC_CURSE, 100, skilllv, skill_get_time2(skillid, skilllv)); sc_start(bl, SC_POISON, 100, skilllv, skill_get_time2(skillid, skilllv)); } elseif(eff<15) //10/135 confusion sc_start(bl, SC_CONFUSION, 100, skilllv, skill_get_time2(skillid, skilllv)); elseif(eff<25) //10/135 stun sc_start(bl, SC_STUN, 100, skilllv, 5000); ...... Etc, so basically you just need to change the rand() and the switch associated. Think about with rate you want to attribuate of the rest of card, in my exemple here I gave 5/135 chance for tarot and 10/135 for the other, (since we have 14 card total will be 135) That the way I'll do it otherwise you may just alter the chance of getting the coma status and not changing the card chance. (wich mean you may get the card but not the status wich can be quite annoying...)
  24. Just look the news sound good but perhaps will be good to have a centralized account so other news devs (not that famous yet) may have something for their contributions too. Also if we want to donate for all and not just for somes (I don't thinkI will go in each people page if I want to do that).
  25. Lighta

    check weight?

    He mean that since some item have 0.1 weight and we didn't want to bother with decimal values weight is always*10 to get the real values. To understand with exemple an arrow at 0.1 weight in desc will be 1 weight in emulator. Then if if you want to check if a player avec over 40K weight you should actually check for 400K So in the end you'll get : if( Weight >= 400000*10 ){ mes "Reduce ur weight."; close; } And it should work fine
×
×
  • Create New...