Jump to content

GodLesZ

Members
  • Posts

    186
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by GodLesZ

  1. Please read the comments above these 2 configs again and then set them correctly.
  2. Maybe you will get some help on this while posting @ Source Modification Support. I tried to translte your question using google translation but it isent understandable ..
  3. Try to plug it out & in again, just to be sure. If it dosnt help, reset your color & lightning/brightness settings. If anything fails, try another monitor (+ cable!) instead. If it looks like normally, your other monitor seems to be bugged. If the second monitor looks also like the first, your graphics card maybe has some problems.
  4. GodLesZ

    Modify @AFK

    This is how its done /*========================================== * @afk * Turns on/off logout on player *------------------------------------------*/ ACMD_FUNC(afk) { nullpo_retr(-1, sd); // Map checks if ( map[sd->bl.m].flag.novending // No vending on the whole map || map[sd->bl.m].flag.nochat // No chats on the whole map || map[sd->bl.m].flag.autotrade != battle_config.autotrade_mapflag // Autotrade config dosnt match ) { clif_displaymessage(fd, "AFK is not allowed on this map."); return -1; } // Cell checks if ( map_getcell(sd->bl.m, sd->bl.x, sd->bl.y, CELL_CHKNOVENDING) // No vending on the current cell || map_getcell(sd->bl.m, sd->bl.x, sd->bl.y, CELL_CHKNOCHAT) // No chats on the current cell ) { clif_displaymessage(fd, "AFK is not allowed on this spot."); return -1; } // All checks passed sd->state.monster_ignore = 0; sd->state.autotrade = 1; if( battle_config.at_timeout ) { int timeout = atoi(message); status_change_start(&sd->bl, SC_AUTOTRADE, 10000, 0, 0, 0, 0, ((timeout > 0) ? min(timeout,battle_config.at_timeout) : battle_config.at_timeout) * 60000, 0); } clif_authfail_fd(fd, 15); return 0; }
  5. Even if the problem itself is solved, just to correct you & as info for any other looking in this topic.. Please look @ the wiki: [wiki]enablewaitingroomevent[/wiki] The bracklets { and } means that this argument/parameter is optional. And also, the syntax for calling embedded functions is (using enableWaitingRoomEvent as example) enableWaitingRoomEvent; enableWaitingRoomEvent(); enableWaitingRoomEvent "NPC name"; enableWaitingRoomEvent("NPC name"); As you can see, it isent case intensitive. so you dont need to write all in lowercase, uppercase or any other format. I'm preffer camel-case style, but thats just my favorite.
  6. Written from scratch, more an idea, so please dont bother me.. // Variable syntax // $PARADIGM_<CharID>_<ParadigmType>_COUNT // $PARADIGM_<CharID>_<ParadigmType>_ID[<index>] // $PARADIGM_<CharID>_<ParadigmType>_LV[<index>] // CharID to store vars set .@cID, getCharID(0); // Paradigm menu mes("Paradigm management"); next; set .@paradigmType, select("Offensive", "Defensive", "Magic"); // Display skills of the paradigm mes("^FF0000Current skills^000000"); set .@count, getD("$PARADIGM_" + .@cID + "_" + .@paradigmType + "_COUNT"); for (set .@i, 0; .@i < .@count; set .@i, .@i + 1) { set .@skillID, getD("$PARADIGM_" + .@cID + "_" + .@paradigmType + "_ID[" + .@i + "]"); set .@skillName$, skillID2Name(.@skillID); mes(" - " + .@skillName$); } // Enable to manage set .@manage, select("+ Add skills", "- Delete skills", "= Apply paradigm"); if (.@manage == 1) { //------------------------------------------- // Add skills to paradigm //------------------------------------------- mes("Please choose the skill to be add to the paradigm"); // At this step we had to reset the existing paradigm tree and grant all standard skills the character had before // because we need to fetch all skills the character currently have to allow them to be added to the paradigm // TODO: reset skilltree function // After reset, fetch all skills and build a menu getSkillList(); set .@menu$, ""; for (set .@i, 0; .@i < @skilllist_count; set .@i, .@i + 1) { // TODO: Search all existing skills in the paradigm and dont display them to prevent the same skills more than once set .@skillID, @skilllist_id[.@i]; set .@skillName$, skillID2Name(.@skillID); set .@menu$, (.@menu$ == "" ? "" : .@menu$ + ":") + "+ " + .@skillName$; } // Display menu & get selected skillID set .@choice, select(.@menu$) - 1; set .@choosenSkillID, @skilllist_id[.@choice]; set .@choosenSkillLv, getSkillLv(.@choosenSkillID); // Get new index fror the skillID set .@skillCount, getD("$PARADIGM_" + .@cID + "_" + .@paradigmType + "_COUNT"); // Append to paradigm and raise skill count setD("$PARADIGM_" + .@cID + "_" + .@paradigmType + "_ID[" + .@skillCount + "]", .@choosenSkillID); setD("$PARADIGM_" + .@cID + "_" + .@paradigmType + "_LV[" + .@skillCount + "]", .@choosenSkillLv); setD("$PARADIGM_" + .@cID + "_" + .@paradigmType + "_COUNT", .@skillCount + 1); // TODO: Back to management menu.. } else if (.@manage == 2) { //------------------------------------------- // Remove skills from paradigm //------------------------------------------- mes("Please choose the skill to be removed from the paradigm"); // Build menu based on all skills in the paradigm set .@menu$, ""; set .@skillCount, getD("$PARADIGM_" + .@cID + "_" + .@paradigmType + "_COUNT"); for (set .@i, 0; .@i < .@skillCount; set .@i, .@i + 1) { // TODO: Search all existing skills in the paradigm and dont display them to prevent the same skills more than once set .@skillID, getD("$PARADIGM_" + .@cID + "_" + .@paradigmType + "_ID[" + .@i + "]"); set .@skillName$, skillID2Name(.@skillID); set .@menu$, (.@menu$ == "" ? "" : .@menu$ + ":") + "- " + .@skillName$; } // Display menu and get choosen skill index set .@choice, select(.@menu$) - 1; // Delete skill index setD("$PARADIGM_" + .@cID + "_" + .@paradigmType + "_ID[" + .@choice + "]", 0); setD("$PARADIGM_" + .@cID + "_" + .@paradigmType + "_LV[" + .@choice + "]", 0); // TODO: reorder array to fill the wasted space // Redurce skill count in the paradigm setD("$PARADIGM_" + .@cID + "_" + .@paradigmType + "_COUNT", .@skillCount - 1); // TODO: Back to management menu.. } else if (.@manage == 3) { //------------------------------------------- // Apply paradigm //------------------------------------------- // Reset the skills resetSkill(); // Remove skill points set SkillPoint, 0; // Grand all skills form the paradigm set .@skillCount, getD("$PARADIGM_" + .@cID + "_" + .@paradigmType + "_COUNT"); for (set .@i, 0; .@i < .@skillCount; set .@i, .@i + 1) { set .@skillID, getD("$PARADIGM_" + .@cID + "_" + .@paradigmType + "_ID[" + .@i + "]"); set .@skillLv, getD("$PARADIGM_" + .@cID + "_" + .@paradigmType + "_Lv[" + .@i + "]"); // Grant the skill skill(.@skillID, .@skillLv, 0); } } Of course global vars arent that good, but without a source mod i cant see any other ways for storing them. Before granting the first paradigm or maby on the first npc visit you have to save the current skill tree to reset them later on. €dit: I forgot the skillID2Name script command.. BUILDIN_FUNC(skillid2name) { int skillID = script_getnum(st, 2); script_pushstrcopy(st, skill_get_name(skillID)); return 0; }
  7. If we allow only specific members aka "beta tester" to join the server, i dont think could be happen. If its puplic access, of course, this will end up as a playground Anyways, i think this could be nice idea, if we had everything done right, i.e. a build bot.
  8. GodLesZ

    Rentitem

    AFAIK the expire time display can't be changed on serverside because of it's just a entry in the message string table in your client. So you need some assembler knowledge to change the display in the way you want.
  9. Maybe try a atCommand("@refresh"); to refresh the client display. I don't know if it isen't just displayed or need a complete re-calculation.
  10. Sure they have. Forged equipment can't have slots, because of the infos about the forger is saved in the places of the slots, so no space is left for card ID's or something else. Equipment with an attack or defence element are still able to be slotted or forged.
  11. Good job! I hope this will speed up the search for someone. The search on the old eathena.ws board was just pain in your .. everone know what i mean
  12. Maybe someone else is interested in this too? If you solved your problem, you should also say how. Basicly, there are 2 simple ways. #1 check for users on the battleground map, i.e. getmapusers("bat_b02"); // Flavius getmapusers("bat_a01"); // Tierra #2 after joining the battleground you receive a quest. Each Battleground has its own quest. So just check the quest i.e. set(.@questTime, checkQuest(2070, PLAYTIME)); // Value of .@questTime (taken from script_commands.txt) -1 = Quest not started (not in quest log) 0 = the time limit has not yet been reached 1 = the time limit has not been reached but the quest is marked as complete 2 = the time limit has been reached
  13. GodLesZ

    CeresCP

    Could you also? do a 'VOTE FOR POINTS' on Ceres? Looking forward in this Topic. Regards, Mindless I've released one long time before in the old eAthena.ws forum: here. Its a simple addon and should still working for simple purposes. Maybe a hint for @Brian to come up with?
  14. I've got a bunch of scripts/tools @ home for extracting & converting sprites from a folder or GRF. If no one comes up, i will send it to you today in the evening or @ least tomorrow.
  15. Lets see how KeyWorld's roBrowser comes up. @LMF: Any results on testing yet?
  16. Sounds nice, i like there tracker. I'm using many google services & have a gmail account too "Google Plus"-style: "+1 for the issue tracker idea <3
  17. Maybe I'm a bit old-school or outdated, but in my opinion its something like: Low up to 25x Mid up to 500x High up to 2.000x Super high above 2.000x But we should reserv some space to deal with it. A description on each sub-forum like "1x - <50x" on Low Rates and so on. Just to let the user know which rates are found in the sub-forum, regardless if its called "low", "mid" or "high". Btw, no sub-forum for "super high"? I think they are important today for many players.
  18. I dont think so. The object status is sent to client in this function. Also updates should be passed through it. clif_updatestatus can be found in clif.c This is how eAthena orders there namespaces.. clif_* functions are in clif.c, pc_* functions in pc.c, and so on. Just PM & ask, i will try to answer as soon as possible.
  19. can be this way? cause i see the starting should be in ((sd->sc.count && and end at fever])) Yep, here the same a bit better: // No "chatting" while muted if ( sd->sc.count && ( (sd->sc.data[sC_NOCHAT] && sd->sc.data[sC_NOCHAT]->val1&MANNER_NOCHAT) || (sd->sc.data[sC_DEEPSLEEP] && sd->sc.data[sC_DEEPSLEEP]->val2) || sd->sc.data[sC_SATURDAYNIGHTFEVER] ) ) return -1; Strange if so. But yea, this sounds like Gravity
  20. Without the beginning (, yes. The block should be if (sd->sc.count && //no "chatting" while muted. ((sd->sc.data[sC_NOCHAT] && sd->sc.data[sC_NOCHAT]->val1&MANNER_NOCHAT) || (sd->sc.data[sC_DEEPSLEEP] && sd->sc.data[sC_DEEPSLEEP]->val2) || sd->sc.data[sC_SATURDAYNIGHTFEVER])) return -1;
  21. I've attached a small diff. Its untested but removed the berserk check on talk-related functions. Let me know if it works. berserk_talkable.diff
  22. Too bad, i liked them =/ Anyways thanks for the infos
  23. Even other custom bbcodes like [info="Box title"]Content in the info box[/info] are also lost in space =/
  24. GodLesZ

    CeresCP

    Nice, i never tought there is developing on it again. Good luck with it! PS: You should try to post or sync the news posts with your svn log. Everytime i visited the site, i didnt see any changes on the news & left it afterwards.
  25. I would try a combination of hex edit and faking. Search the Strings of HP and SP; change them (HP to SP and SP to HP) and edit clif_updatestatus to send status.hp instead of SP and so on. I dont know if this breaks other things, but i would give it a try. The HP and SP values on clientside are taken form offsets, so you cant change them without decent assembler knowledge.
×
×
  • Create New...