Jump to content

jaBote

Community Contributors
  • Content Count

    2037
  • Joined

  • Last visited

  • Days Won

    43

Everything posted by jaBote

  1. I once made a 3CeAM to Hercules converter back on the beginnings of Hercules, but that one is more than a couple years outdated (April 16, 2103) and I highly doubt it'd be functional. Seems that you could give it a try (especially if your 3CeAM version is before r766, which was posted on Jul 6, 2015) but honestly, can't assure you anything. I guess your best shot is using the converter then apply all SQL upgrades since then. main database converter: http://upaste.me/ef265666de9023e5 logs database converter: http://upaste.me/d74356659a88eaa2 I liked to make these converters before (it was kinda fun) but I unfortunately no longer have time for these. Hope you can get to Hercules with this one and hope you did tests on a backup (else your situation might be really screwed up).
  2. Hi people. I've recently seen other implementations of a function which just checks if a given value (numeric or string) is member on an array. It feels strange to me since I've always thought the best and most straight-forward way for doing that is via the implementation I've always done, which works for both numeric and string variables (please don't mind the .@i inicialization to 0, I know it's useless but it just does reassure me): // Tries to find if a given element is inside a selected array// @params: element, array// @returns: 1 if found, 0 otherwisefunction in_array { .@total = getarraysize(getarg(1)); .@i = 0; while (.@i < .@total) { if (getarg(0) == getelementofarray(getarg(1),.@i)) { return 1; } .@i++; } return 0;} But I've recently seen @@Winterfox's implementation in a request's topic (this one), which is a rather creative two-line implementation (disregarding the other lines): function script PVPLP_revertLevel { setarray .@maps$, "izlude", "pvp2", "pvp3"; getmapxy( .@map$, .@x, .@y, 0 ); if( !compare( implode( .@maps$, ":" ), .@map$ ) ) end; atcommand "@blvl " + (PVPLP_TRUE_LEVEL - BaseLevel);} Which makes me wonder about what one is more efficient and scalable. I guess Winterfox's implementation is somewhat faster (an implicit loop inside of implode and a string comparison is faster than a loop in which you compare elements one by one), but I've already used mine to find the index of the array which contains a given value (change return 1; to return i; and return 0; to return -1; (for not found) along with function's description (I named it array_pos, by the way). P.S.: I guess it'd be a good idea if we made a suggestion for getting these functions (in_array and array_pos, whichever its implementation is) inside our repository? Implemented via source or as function, but we should also get repository public functions documented since no one I know makes use of them, or even gets them rewritten to make exactly_the_same_thing.
  3. Woah, sleep 1, for just 1 millisecond? You'll use up a lot of your processing time just for that. I guess it'd be good enough if you wait a second (1000 ticks) for that. That'll make your script a literal thousand times more resource-efficient, while not damaging performance that much since players don't care for that delay. If you want to make the delay invisible to human eye (seeming almost instantly), just change it to 100 (or 50 if you've got people with lightning-fast eye reaction time).
  4. Exactly what Winterfox said. Only problem I can think of is if a player disconnects while showing the text or another player connects on that while, but it's as easy as cancelling the operation via the NPC itself on the first case (making an online check) and manually on the second one. If I recall correctly, it's currently not possible to refresh menu options on the fly without making the menu again, and same for the dialog box (you can just add lines - not remove them).
  5. BTW remember that MySQL doesn't allow remote connections by default. So, in case you get connection refused errors, remember that you should enable them on the my.cnf file, somewhere under the [mysqld] tag.
  6. I've always made 10x rates, but for personal convictions. And best advice I can give you in case you want to make a server is to be comfortable with the characteristics of your own server. This will encourage you to spend time on its administration and management.
  7. Yep, I guess it's planned.
  8. jaBote

    gm bypass

    @@glemor123 - script NoChatVendPront -1,{OnInit: setcell "Hallow01",91,113,121,82,cell_nochat,1; setcell "Hallow01",91,113,121,82,cell_novending,1; setcell "Hallow01",99,61,112,49,cell_nochat,1; setcell "Hallow01",99,61,112,49,cell_novending,1; end;OnWhisperGlobal: if (getgroupid() >= 90){ setcell "Hallow01",91,113,121,82,cell_nochat,0; setcell "Hallow01",91,113,121,82,cell_novending,0; setcell "Hallow01",99,61,112,49,cell_nochat,0; setcell "Hallow01",99,61,112,49,cell_novending,0; dispbottom "Chat and vending protection disabled. Will be reenabled automatically in 10 seconds."; sleep2 10000; setcell "Hallow01",91,113,121,82,cell_nochat,1; setcell "Hallow01",91,113,121,82,cell_novending,1; setcell "Hallow01",99,61,112,49,cell_nochat,1; setcell "Hallow01",99,61,112,49,cell_novending,1; dispbottom "Chat and vending protection reenabled."; }} Anyways, I suggest performing a change on src since in these 10 seconds (as an example) anybody can vend on chat on there.
  9. Seems working. OS doesn't really mind provided the compiler you used supports compiling Hercules and the OS is relatively modern.
  10. At least it'll parse corretly if you fix the uncommented line 12 author left uncommented and fix a wrong case usage on the $MVP_Maps$ array (there is one with Maps in all lowercases). So I think yes provided you fix the aforementioned issues.
  11. Esto no es un tema de soporte, aunque yo llevo más de un año sin tocar clientes 2015 y por tanto no tengo ni idea. Si al colega mío al que te refieres es Miengo, parece ser que no solucionó ningún problema más que nada porque aunque logró poner el cliente a funcionar, ningún emulador actual (ni Hercules ni rAthena) tienen los paquetes incluidos y no es posible hacer nada con ellos de momento.
  12. Las opiniones no dejan de ser opiniones. Yo he dado lo que es mi visión según lo que veo que se cuece por ahí, lo más objetiva posible, y honestamente no la veo tanto como muerta. Por otro lado, la sección hispana siempre ha estado muy parada en su actividad en parte porque ni los españoles suelen publicar en este foro, y por otro lado debido a las limitaciones que M4T3R y yo tenemos, en cuanto a tiempo y conocimientos (solo disponemos de nociones básicas y una pequeña "especialidad", siendo mi caso el scripting y el de M4T3R los clientes).
  13. Del demás Staff de Hercules no sé, pero en lo que a mí respecta en 2015 es que está siendo absolutamente horroroso en cuanto a cargas lectivas y familiares, al menos en mi entorno (y no, pensaba que ahora que el periodo escolar en la universidad había terminado y muchas otras cargas no han hecho más que aflorar, dejándome igual que antes). De ahí que por lo menos yo ande bastante más inactivo (aunque trato de pasarme a diario al foro, leer y cuando me es posible responder como mínimo. He tenido que marcar muchísimos foros de las secciones anglosajonas como leídos debido a mi normalmente muy poca utilidad en ellos (las secciones de cliente entre ellas, jamás se me dieron bien). En cuanto al resto del Staff, últimamente estoy teniendo menos trato del que yo desearía tener con ellos, aunque no voy viendo tema por tema su actividad no veo mucho cambio en su actividad. En caso de ser cierto será precisamente porque los veo poco. Siento mucho que esto cause problemas aunque supongo que, al menos en lo concerniente a mí (que era posiblemente el miembro del Staff más activo en los foros), hay que entender que lo que se debe solucionar primero los problemas del día a día en la vida real. ¿No? Un saludo.
  14. All of these are defined as constants on the db/const.txt file of Hercules, along with a lot of other constants used throughout the scripting engine.
  15. I guess you could use some programming to get your job done. You should have some basic knowledge to make your SQL statement via a simple C program for example: #include <stdio.h>int main(void){int i,num_items;int items[] = {22556,3300,3301,3250,3251,22564,22565,22566,22567, 22568,22569,22570,22571,22573,22574,22575,22576,22577,22578, 22579,22580,22581,22582,22583,22584,22585,22586,22587,22588, 22589,22590,22591,22592,22593,22594,22595,22596,22597,22598, 22599,22600,22601,22602,22603,22604,22605,22606,22607,22608, 22610,22611,22612,22613,22614,22615,22616,22617,22618,22619, 22620,22621,22622,22623,22624,22625,22626,22627,22628,22629, 22630,22631,22632,22633,22634,22635,22636,22637,22638,22639, 22640,22641,22642,22643,22644,22645,22646,22647,22648,22649, 22650,22651,22652,22653,22654,22655,22656,22657,22658,22659, 22660,22661,22662,22663,22664,22665,22666,22667,22668,22669, 22670,22671,22672,22673,22674,22675,22676,22677,22678,22679, 22680,22681,22682,22683,22684,22685,22686,22687,22688,22689, 22690,22691,22692,22693,22694,22695,22696,22697,22698,22699, 22701,22702,22703,22704,3400,3401,3403,3404,3405,3406,3407, 3408,3409,3410,3411,3412,3413,3414,3415,3416,3417,3418,3419, 3420,3421,3422,3423,3424,3425,3426,3427,3428,3429,3430,3431, 3432,3433,3434,3435,3436,3437,3438,3439,3440,3441,3442,3443, 3444,3450,3451,3452,3453,3454,3455,3456,3457,3458,3459,3460, 3461,3462,3463,3464,3465,3466,3467,3468,3469,3470,3471,3472, 3473,3474,3475,3476,3477,3478,3479,3480,3481,3482,3483,3484, 3485,3486,3487,3488,3340,3341,3342,3343,3344,3345,3347,3348, 3349,3350,3351,3352,3353,3354,3355,3321,3322,3323,3324,3325, 3326,3327,3328,3356,3357,3358,3359,3360,3361,3362,3363,3364, 3365,3366,3367,3368,3369,3370,3371,18076,18077,18078,18079, 18080,18081,3346};// an int can take up different space on each computernum_items = sizeof(items) / sizeof(items[0]);// let's make the query stringprintf("Your query is: n");printf("UPDATE `storage` SET `nameid`=18546 WHERE `nameid` = %d", items[0]);for (i = 1; i < num_items; i++) { printf (" OR `nameid` = %d", items[i]);}printf(";n");printf("Done.");scanf("%d",i);return 0;} Compile&run it and you'll have your query. Remember to backup before applying, I may have made any sort of unexpected error on that. P.S.: I didn't make use of the fact there are ranges of items that you could use to have an "OR ('nameid' > val1 AND 'nameid < val2)" type sentence and save OR checks.
  16. No puedo testear el script ahora mismo, aunque tras echarle un vistazo parece que debería funcionar en condiciones. Una pregunta estúpida (que es un detalle pero a veces se escapa): el script está programado para funcionar únicamente en un determinado mapa. ¿Estás haciendo todas las pruebas en el mapa pvp_n_1-5? Si no, normal que no funcione.
  17. My time claims me somewhere else too much like Mysterious and some other projects I ought to resume as soon as possible, but I wouldn't mind doing a quick translation here and there provided I have kind of the free time at the moment, but seems not possible at the moment @.@
  18. No hay problema, nos ocurre a todos.
  19. No sé muy bien a qué te refieres, pero... ¿quizá esto? conf/battle/drops.conf // Make broadcast ** Player1 won Pupa's Pupa Card (chance 0.01%) ***// This can be set to any value between 0~10000.// Note: It also announces STEAL skill usage with rare items// 0 = don't show announces at all// 1 = show announces for 0.01% drop chance items// 333 = show announces for 3.33% or lower drop chance items// 10000 = show announces for all itemsrare_drop_announce: 0
  20. Ni yo podría haberme explicado mejor que los dos posts que hay encima del mío. Esa es la triste realidad, por desgracia.
  21. Sí, así es. Comprueba que tienes bien el announce porque al pasar el parser te debería dar un error similar a este: [Error]: script error in file '(DIRECT INPUT)' line 4 column 1 parse_callfunc: not enough arguments, expected ',' 1: { 2: OnClock2227: 3: announce "mensaje de ejemplo"* 4: end; ^ 5: } Ya Triedge y Aurora te han comentado como resolverlo. Un saludo.
  22. Si no permite cambiar las keys, entonces es posible que el problema sea más bien de NEMO. Yo no he probado personalmente la encriptación de paquetes aunque podría ser así ya que la información que se tiene para editar los clientes en forma hexadecimal (como hacen NEMO y el resto de programas que te diffean clientes) es más bien incompleta. Por otro lado, lo único que tienes que tener en cuenta si utilizas un cliente superior a cuando se introdujo Renewal en el RO (ya no recuerdo cuándo, sobre 2010 o 2011), las descripciones de objetos y habilidades te vendrán como las nuevas. Por lo demás, yo he usado clientes de 2009 a 2014 con servidores pre-renewal y no he tenido ningún problema reseñable (salvo cuando el cliente no es estable). Un saludo.
  23. Si te lo dice el Nemo bien claro: que ninguna de las keys deberían coincidir (coinciden la segunda y la tercera), así que cambia tanto para el cliente como para el servidor el valor de la tercera clave a cualquier otro que puedas, como por ejemplo 0x49876543 (que acabo de testear y funciona). Claro que puedes cambiar los valores de las keys a tu antojo, siempre que no coincida ninguna de las keys entre sí pero sí coincidan entre el cliente y el servidor. Eso sí, te voy a dar un consejo: no las publiques aquí porque entonces un posible usuario con malas intenciones de tu servidor puede tomar las mismas keys que tú para ejecutar WPE y saltarse la protección .
  24. Voy a ser rápido porque no debería estar aquí ahora mismo. #define OBFUSCATIONKEY3 0x42814281 Cambia esa última clave a cualquier valor en hexadecimal, pues dos claves no deben coincidir. Las obfuscation key deberían ser las mismas, EXACTAMENTE, tanto en cliente como servidor para que te funcione aunque parece que no pueden coincidir por algún motivo. Si buscas entre los posts de un tal usuario Keyworld, había hecho una aplicación web para comprobar online si las claves de encriptación son válidas, comienza a buscar en el tema de Hercules WPE free. Siento la precipitación.
  25. Imageshack was the only serious alternative to an image service I dislike (for personal reasons) such as imgur. Guess I'll have to swallow it. Not sure, but hope I still have the guide pics on my PC as I do with the other guides I wrote in Spanish...
×
×
  • Create New...

Important Information

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