Jump to content

AnnieRuru

Script Developers
  • Content Count

    1677
  • Joined

  • Last visited

  • Days Won

    245

Everything posted by AnnieRuru

  1. RFYL = Risk for your life try to elaborate what is the system you want I made last man standing here http://rathena.org/board/topic/90441-last-man-standing/?p=236642 and poring bomb event here http://rathena.org/board/topic/91996-does-any-1-remember-this-script-3/?p=242233 they should be able to use in hercules ... ... except the mapflags ... hahaha just change the mapflags at the bottom of the scripts into setmapflag script command
  2. src/map/mob.c | 3 +++ 1 file changed, 3 insertions(+)diff --git a/src/map/mob.c b/src/map/mob.cindex d504171..35fe37d 100644--- a/src/map/mob.c+++ b/src/map/mob.c@@ -2404,6 +2404,9 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) //MSG: "'%s' won %s's %s (chance: %0.02f%%)" intif_broadcast(message,strlen(message)+1,0); }+ if ( sd )+ if ( it->type == 6 )+ pc_setglobalreg( sd, "Daily_Points", pc_readglobalreg( sd, "Daily_Points" ) +( ( mob_db(md->mob_id)->status.mode & 32 )? 10 : 1 ) ); // Announce first, or else ditem will be freed. [Lance] // By popular demand, use base drop rate for autoloot code. [Skotlex] mob_item_drop(md, dlist, ditem, 0, md->db->dropitem[i].p, homkillonly);this one works for rathenahercules shouldn't be that far off
  3. https://github.com/HerculesWS/Hercules/blob/master/conf/battle/monster.conf#L190change to 0 but note this will change everything ... including normal monster kill and such
  4. a bit off-topic butyeah, 1 of the reason I move here because in hercules already has some powerful scripters around the only thing that jabote missed out is missing setmapflag - script warp_banned -1,{OnInit: setarray .not_2ndjob$[0], "morocc", "payon", "aldebaran"; // Maps NOT for second jobs. Add more with a comma, last member should have a semicolon setarray .not_3rdjob$[0], "amatsu", "gonryun", "geffen"; // Same as above, but for third jobs .not_2ndjob_size = getarraysize(.not_2ndjob$); .not_3rdjob_size = getarraysize(.not_3rdjob$); for ( .@i = 0; .@i < .not_2ndjob_size; .@i++ ) setmapflag .not_2ndjob$[.@i], mf_loadevent; // Thx to Keyworld <3 for ( .@i = 0; .@i < .not_3rdjob_size; .@i++ ) setmapflag .not_3rdjob$[.@i], mf_loadevent; end;OnPCLoadMapEvent: if ( eaclass() & ( EAJL_UPPER | EAJL_2 ) ) { // Player is 2nd trans job while ( strcharinfo(3) != .not_2ndjob$[.@i] && .@i < .not_2ndjob_size ) .@i++; } else if ( eaclass() & EAJL_THIRD ) { // Player is the 3rd job while ( strcharinfo(3) != .not_3rdjob$[.@i] && .@i < .not_3rdjob_size ) .@i++; } else end; if ( .@i != .not_2ndjob_size || .@i != .not_3rdjob_size ) { dispbottom "You're not supposed to be here..."; warp "SavePoint",0,0; } end;}... hmm .. why this {code} doesn't has cut the length ...edit ... oh ... have to refresh the page =/
  5. lol if( ( checkvending() == 2 && !.autotrade ) // Autotrade && ( checkidle() && !.idle ) // Idle && ( checkchatting() && !.chat ) // Chat ) sleep2 1000; set lrs_passed, lrs_passed+1; set lrs_passed_total, lrs_passed_total+lrs_passed;where is the else statement ?this script means ... if the user is vending/idle/chatroom, the script will just delay execute by 1 sec .. but still continue to count the variables below the whole things below needs to be inside else { }
  6. AnnieRuru

    Slavele

    update item_db_reset equip_script = 'getmapxy .@map$, .@x, .@y, 0; for ( .@i = 0; .@i < 3; .@i++ ) clone .@map$, .@x, .@y, "clonecheck::On"+ getcharid(0), getcharid(0), getcharid(0), 0x8D, 1;',unequip_script = 'killmonster strcharinfo(3), "clonecheck::On"+ getcharid(0);'where id = 1201;like this should work
  7. http://www.eathena.ws/board/index.php?s=&showtopic=183284&view=findpost&p=1007286 makes me remember I wrote this script 5 years ago
  8. http://rathena.org/board/tracker/issue-8180-storage-armor-weapon-tab-are-inverted/ so skotlex means that "We've always believed" is actually since year 2008 ? hmm ... well at least this has clear one of my doubt
  9. try not to use attachnpctimer unnecessary attachnpctimer I only use them in 1 scenario which use in botkiller script to kick players which doesn't answer in a certain time period means, only use in a npc dialog script because if this script already uses attachnpctimer, if there is other script use attachnpctimer again, the timer wouldn't run anymore for this kind of script, I rather use sleep2 http://rathena.org/board/topic/90989-hourly-points-help/?p=238289
  10. https://github.com/HerculesWS/Hercules/blob/master/src/map/clif.c#L73 holy **** ... this can't be right ... I can't believe hercules is using bandage solution ...
  11. https://github.com/HerculesWS/Hercules/blob/master/npc/warps/guildcastles.txt comment every warp portal that leads to other castles other than the portals that leads to prtg_cas01 using WoE setter script is a bandage solution, I wouldn't recommend using some external script because it will discourage members from learning how to script
  12. AnnieRuru

    Quest Board

    the problem is, showevent script command is currently bug on certain client version some says ... its not working anymore some says ... the doc is wrong ... and me using oudated client 20100730 ... its working fine http://herc.ws/board/tracker/issue-7720-showevent-issue/?gopid=20498#entry20498 ok you using some client version as mine this make things easier try this script http://www.eathena.ws/board/index.php?s=&showtopic=269839&view=findpost&p=1481667
  13. honestly ... that's the reason I go for SQL database ... I knew hercules has rewritten the item_db.txt has better loading time but I still in favor for the SQL ones ... because I can always manipulate the data easily with SQL commands hercules's item_db.txt ... is extremely hard to edit unlike rathena still using old system, I can still suggest using regular expression to solve this problem but hercules one ... I have no idea how to edit them ... because the Type: and Buy: is in different lines EDIT: suddenly I feel like this might work if modify source code ..
  14. if you use SQL database update item_db_re set price_buy = 1 where type = 0; #healing itemsupdate item_db_re set price_buy = 1 where type = 2 or type = 11; #usable itemsupdate item_db_re set price_buy = 5 where type = 3; #Etc itemsupdate item_db_re set price_buy = 10 where type = 5; #Armor itemsupdate item_db_re set price_buy = 20 where type = 4; #Weapon itemsEDIT wait ...hercules still haven't fix the weapon and armor item type ?
  15. I did bg_pvp script in rathena forumwithout source modification http://rathena.org/board/topic/73801-can-someone-fix-this-for-me-thank-you/?p=154091 http://rathena.org/board/topic/90734-annieruru-custom-bg/?p=236961 with source modification http://rathena.org/board/topic/73755-requesting-3v3-event-semi-bg-type-blue-team-vs-red-team/?p=172997 what you need to do is, use source modification and put every party member into a team with setbgid and if you test my script, you'll immediately notice there is an advantage over party system -> the party system counted every single player on the map, if there is 3 players on team A and 4 players on team B, it will display 1/7 at the right down corner of the screen -> the battleground system has bg_updatescore, which you can use the scoreboard manually display the score in any way you like
  16. in my opinion, these party related script commands are absolute ... I never use them better just learn how to use battleground and there's a flaw about party_create and then party_addmember which needs to use sleep in between them because it needs to transfer the data from char-server.exe battleground system however, is entirely calculated inside map-server.exe, which doesn't have this kind of bug
  17. AnnieRuru

    Slavele

    http://www.eathena.ws/board/index.php?s=&showtopic=177722&view=findpost&p=1001559 abuse the event labels the only down side of using this trick is your server will spam error message like cannot find label clonecheck::On150000 but the script works perfectly fine
  18. OMFG !! of course ! XD but after year 2010 I seldom visit malaysian/indon subforum anymore I'm more active in scripting/source section by then
  19. great ! no more the ugly 127 index in an array next -> 2 dimensional array ! .array[1][0] <-- like this is this possible ? then no more ugly setd/getd stuff like setd ".party"+ getcharid(1) +"data["+ .@i +"]", value; if possible, please make it support at least 3 dimension I have made a custom utility script that runs on 3 dimensional loop
  20. I have no idea how my name get inside I never apply as a developer, and all things I have done is just promoting eathena/rathena with custom made scripts though, I admit at some point I did help the developers fixed some script related bugs, but only by providing a patch, the developer just applied it if my name is inside, there is more members like keyworld - suggest freeloop, getargcount() toastofdoom - suggest bindatcmd and string manipulation script commands Yhn - I recall him making some official eathena scripts back in 2006 ... Trancid - he's the one who started wiki scripting guide, we just expanded it later shazeya and seventh were helped too, they were past admin and you guys missed mentioning about freya emulator ... though I already see all their names inside
  21. atcommand.c if (town >= 0 && town < ARRAYLENGTH(data)) { m = map->mapname2mapid(data[town].map); if (m >= 0 && map->list[m].flag.nowarpto && !pc_has_permission(sd, PC_PERM_WARP_ANYWHERE)) { clif->message(fd, msg_txt(247)); return false; } if (sd->bl.m >= 0 && map->list[sd->bl.m].flag.nowarp && !pc_has_permission(sd, PC_PERM_WARP_ANYWHERE)) { clif->message(fd, msg_txt(248)); return false; } if ( sd->status.class_ == JOB_NOVICE && sd->status.base_level < 14 ) { clif->message( fd, "You can't use @go while you are still a novice below base level 14" ); return false; } if (pc->setpos(sd, mapindex->name2id(data[town].map), data[town].x, data[town].y, CLR_TELEPORT) == 0) { clif->message(fd, msg_txt(0)); // Warped. } else { clif->message(fd, msg_txt(1)); // Map not found. return false; } }
  22. ok, I'm noob lilith's post is the correct answer hercules/rathena already have clif_colormes https://github.com/HerculesWS/Hercules/blob/master/src/map/clif.c#L8352 so just need to tweak the script command a little bit and it shall be done BUILDIN_FUNC(dispbottom2) { TBL_PC *sd; if ( script_hasdata(st,4) ) { if ( data_isstring( script_getdata(st,4) ) ) sd = map_nick2sd( script_getstr(st,4) ); else sd = map_id2sd( script_getnum(st,4) ); } else sd = script_rid2sd(st); if ( sd ) { unsigned int colorcode; if ( script_hasdata(st,3) ) colorcode = script_getnum(st,3); else colorcode = 0xbbffbb; clif_colormes( sd, colorcode, script_getstr(st,2) ); } return 0;} huh ? why not ? it looks cool ! xD I have tried to do message2 which display color message overhead your character however I have found no known way to display a color message on top of your own head it seems possible for other players to see your color message, but not by your own
  23. OMFG !!totally forgotten about channel system you are right, NO LIMITATION I used rathena emulator to get this working fine BUILDIN_FUNC(dispbottom) { TBL_PC *sd; if ( script_hasdata(st,4) ) { if ( data_isstring( script_getdata(st,4) ) ) sd = map_nick2sd( script_getstr(st,4) ); else sd = map_id2sd( script_getnum(st,4) ); } else sd = script_rid2sd(st); if ( sd ) { const char* msg = script_getstr(st,2); unsigned short msg_len = strlen( msg ) +1; unsigned int colorcode; if ( script_hasdata(st,3) ) colorcode = script_getnum(st,3); else colorcode = 0xbbffbb; 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) = colorcode; safestrncpy((char*)WFIFOP(sd->fd,12), msg, msg_len); WFIFOSET( sd->fd, msg_len + 12 ); } return 0;} BUILDIN_DEF(dispbottom,"s??"),it works !prontera,162,180,5 script kjsdfhksdjf 100,{ dispbottom "test color"; dispbottom "test color", 0xff0000; dispbottom "test color", 0x0000ff; dispbottom "test color", 0xffffff; dispbottom "test color", 0xff00ff; end;}
  24. https://github.com/HerculesWS/Hercules/blob/master/npc/merchants/refine.txt#L601
  25. if ( eaclass( class ) & EAJL_THIRD ) { mes "Cool ! You have already advanced to third job !"; close;}if ( eaclass( class ) & EAJL_THIRD == 0 ) { mes "Hmm, you are not that cool, eh ?"; close;}
×
×
  • Create New...

Important Information

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