jaBote
-
Content Count
2037 -
Joined
-
Last visited
-
Days Won
43
Reputation Activity
-
jaBote got a reaction from Söel in Ranking PvP Mooka com classes [site]
Já editei a minha resposta e marquei como resolvido. Feliz que serviu.
-
jaBote got a reaction from JulioCF in Como cancelar uso de YGG / SEEDS durante a WOE
Mais facil ainda:
Ir a db/re/map_zone_db.conf para Renovação ou db/pre-re/map_zone_db.conf para Pre-Renovação.
Procure:
{ /* GvG zone is applied to all maps with a gvg mapflag */ name: "GvG" /* changing this name requires MAP_ZONE_GVG_NAME to also be changed in src/map/map.h file */ disabled_skills: { AL_TELEPORT: "PLAYER" AL_WARP: "PLAYER" WZ_ICEWALL: "PLAYER" TF_BACKSLIDING: "PLAYER" RG_INTIMIDATE: "PLAYER" WE_CALLPARTNER: "PLAYER" HP_ASSUMPTIO: "PLAYER" HP_BASILICA: "PLAYER" CG_MOONLIT: "PLAYER" WE_CALLPARENT: "PLAYER" WE_CALLBABY: "PLAYER" CR_CULTIVATION: "PLAYER" NJ_KIRIKAGE: "PLAYER" CASH_ASSUMPTIO: "PLAYER" BS_GREED: "PLAYER" SC_FATALMENACE: "PLAYER" SC_DIMENSIONDOOR: "PLAYER" } disabled_items: { Assumptio_5_Scroll: true Greed_Scroll: true Pty_Assumptio_Scroll: true } /* 5 second duration increase on GvG */ /* knockback disabled */ /* GvG Mode Damage Reductions */ /* - weapon_damage_rate -40% */ /* - magic_damage_rate -40% */ /* - misc_damage_rate -40% */ /* - long_damage_rate -20% */ /* - short_damage_rate -20% */ mapflags: ( "invincible_time_inc 5000", "noknockback", "weapon_damage_rate 60", "magic_damage_rate 60", "misc_damage_rate 60", "long_damage_rate 80", "short_damage_rate 80", "nocashshop", "gvg_noparty", ) },
E adicione o seguinte no grupo de disabled_items:
Yggdrasilberry: trueSeed_Of_Yggdrasil: true
é pronto.
-
jaBote reacted to Mumbles in Pedido Blue Ghost setup
Here's a ZIP archive containing the file you requested: http://www.mediafire.com/download/9yu5xgex7fqsk8p
-
jaBote reacted to Patskie in request - npc who give hourly points
- script hourly_points -1,{OnInit: //Configs .time = 60 * 60 * 1000; // Time in milliseconds. Default: 1 hour (60 * 60 * 1000) .max_idle = 15 * 30; // Maximum idle time in seconds .points = 1; // Points to give the user each active hour. .points_variable$ = "#CASHPOINTS"; // Variable name to store the points end;OnPCLoginEvent: addtimer .time, strnpcinfo(3)+"::OnPoints"; end;OnPoints: if (checkidle() < .max_idle && checkvending() != 2) { setd .points_variable$, getd(.points_variable$) + .points; dispbottom "Current Balance = " + #CASHPOINTS; goto OnPCLoginEvent; } end;}
Would trigger once only after script has been executed.
You can access character and account variables. In your example instead of doing too many query_sql commands. You can do like
dispbottom "Current Balance = " + hourlypoints; -
jaBote got a reaction from oblinez in request - npc who give hourly points
There you go. Edit it to further suit your needs:
- script hourly_points -1,{OnInit: //Configs .time = 60 * 60 * 1000; // Time in milliseconds. Default: 1 hour (60 * 60 * 1000) .max_idle = 15 * 30; // Maximum idle time in seconds .points = 1; // Points to give the user each active hour. .points_variable$ = "#CASHPOINTS"; // Variable name to store the points end;OnPCLoginEvent: addtimer .time, strnpcinfo(3)+"::OnPoints"; end;OnPoints: if (checkidle() < .max_idle && checkvending() != 2) { setd .points_variable$, getd(.points_variable$) + .points; } end;} -
jaBote got a reaction from JulioCF in Ranking PvP Mooka com classes [site]
Já editei a minha resposta e marquei como resolvido. Feliz que serviu.
-
jaBote reacted to Hyroshima in Ajuda com pack iniciante
O símbolo para set variável de conta seria o #.
set #item,10; Não use aspas duplas se vai guardar nessas variáveis números.
E então você verifica se o player já pegou algo que só pode 1 vez por conta.
Abaixo fiz um exemplo de um code pra você.
prontera,150,172,5 script ScriptTest 512,{ mes "Olá, gostaria de receber alguns itens de graça?"; next; if(select("Sim:Não")==2){ close; } if(#Freeget == .Maxgetitem) { mes "Háa, infelizmente você já pegou a quantidade que podia!"; mes "["+#Freeget+"/"+.Maxgetitem+"]"; close; } getitem .ItemID,.ItemValue; if(.FreeZeny != 0) set Zeny,Zeny+.FreeZeny; mes "Prontinho, você pode pegar esses itens ["+#Freeget+"/"+.Maxgetitem+"] ."; set #Freeget,#Freeget+1; close;OnInit: //*- Essa label (lbl) faz com que as variáveis abaixo // seja carregada assim queo emulador for iniciado(re-iniciado). // essas são variáveis de npc. set .Maxgetitem,1; // Quantidade de vezes que a pessoa pega por conta. set .ItemID,607; // ID do item que ele vai receber. set .ItemValue,2; // Quantidade do item a receber. set .FreeZeny,0; // Quantidade de Zeny (0 = Desativado).end;} -
jaBote got a reaction from mukinhas in Ranking PvP Mooka com classes [site]
Já editei a minha resposta e marquei como resolvido. Feliz que serviu.
-
jaBote got a reaction from Söel in Ranking PvP Mooka com classes [site]
Vistos os dados, a consulta SQL você deveria fazer é a seguinte:
SELECT p.`name`, p.`kills`, c.`class` FROM `pvpm_data` p LEFT JOIN `char` c on p.`id` = c.`char_id` WHERE p.`type` = 0 ORDER BY p.`kills` DESC LIMIT 50
Teste, e voçê me dizer.
-
jaBote got a reaction from mukinhas in Ranking PvP Mooka com classes [site]
A minha pergunta é: como têm aparecido clãs na tabela? A não ser que a tabela foi concebida para o armazenamento de clãs em vez de jogadores, ou clãs e jogadores ao mesmo tempo. Nesse caso eu necessito de mais informaçao do script que maneja as inserções na tabela.
-
jaBote got a reaction from mukinhas in Ranking PvP Mooka com classes [site]
Oh, mea culpa. O resultado é na membro 'class' do array $pvp, não na 'classe'. Eu editei o meu post anterior.
Se o erro não é resolvido, favor poste a mensagem do erro aqui.
P.E.: Eu testei este código e parece funcional
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Ranking PvP Mooka</title></head> <body><?php for ($i = 0; $i <= 6; $i++) echo nome_do_classe($i) . '<br>';?></body></html><?phpfunction nome_do_classe($classe) { switch($classe) { case 0: return "Novice"; case 1: return "Swordman"; case 2: return "Mage"; case 3: return "Archer"; case 4: return "Acolyte"; case 5: return "Merchant"; case 6: return "Thief"; // (Adicione as classes restantes) default: return "Erro"; }}?> -
jaBote got a reaction from JulioCF in Queria almentar Delay da BG para uns 10 min
Desculpe, eu estava errado. BG_Delay_Tick é o delay para os desertores na BG.
O delay da BG não tem nada a ver com esse script porque o script mais recente usa quests (desativadas por padrão, ou seja, 0 delay). Me deixe ver seu script para a admissão do jogadores na KvM.
P.E.: Eu não sou Português ou Brasileiro, sou Espanhol e tento aprender um pouco, me desculpe meus erros escrevendo.
-
jaBote got a reaction from mukinhas in Ranking PvP Mooka com classes [site]
Eu poderia ver a estrutura da tabela?
A tabela é na mesma base de dados como o resto de dados no jogo?
-
jaBote got a reaction from mukinhas in Ranking PvP Mooka com classes [site]
Sim. Também gostaria de saber se a coluna id da tabela é para char id ou account id.
Então use a seguinte consulta SQL em vez da atual:
SELECT p.`name`, p.`kills`, c.`class` FROM `pvpm_data` p LEFT JOIN `char` c on p.`id` = c.`char_id` WHERE p.`type` = 0 ORDER BY p.`kills` DESC LIMIT 50
e pode mudar tudo o codigo para o seguinte (adicione as classes restantes):
<?PHP $connecta = mysql_connect('127.0.0.1','ragnarok','ragnarok');$db = mysql_select_db('ragnarok');?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><link rel="stylesheet" type="text/css" href="estilo.css" /><title>Ranking PvP Mooka</title></head> <body><div id="ranking"><table border="0" cellpadding="0" cellspacing="0"> <tr align="center" id="title"> <td>Posição</td> <td>Nome</td> <td>Classe</td> <td>Matou</td> </tr> <?PHP $tabela = mysql_query("SELECT p.`name`, p.`kills`, c.`class` FROM `pvpm_data` p LEFT JOIN `char` c on p.`id` = c.`char_id` WHERE p.`type` = 0 ORDER BY p.`kills` DESC LIMIT 50"); $pos = 1; while($pvp = mysql_fetch_assoc($tabela)){ echo ' <tr align="center" id="player"> <td>'.$pos.'º</td> <td>'.$pvp['name'].'</td> <td>'.nome_do_classe($pvp['class']).'</td> <td>'.$pvp['kills'].'</td> </tr> '; $pos++; } ?></table></div> </body></html><?phpfunction nome_do_classe($classe) { switch($classe) { case 0: return "Novice"; case 1: return "Swordman"; case 2: return "Mage"; case 3: return "Archer"; case 4: return "Acolyte"; case 5: return "Merchant"; case 6: return "Thief"; // (Adicione as classes restantes) default: return "Erro"; }}?>
Pode utilizar este arquivo se quiser: http://sourceforge.net/p/cerescp/svn/HEAD/tree/trunk/db/jobs.txt
Em outro caso, me dizer e tentarei de adapta-lo.
P.E.: Eu não sou Português ou Brasileiro, sou Espanhol, me desculpe meus erros.
-
jaBote reacted to Jedzkie in Problemas con algunas modificaciones...
I translate your question in google and you can find all of your questions in db/(PRE-RE or RE)/map_zone_db.conf
-
jaBote got a reaction from Sunzuki in sql and txt
Haven't tested, but they should since they load all the data from the SQL table instead of the conf engine.
-
jaBote got a reaction from Legend in RO Open Setup, v3.1.0.627 - last updated 2023/11/18
Meep meep
IDINFOICON_SOUND_MISSINGFILES, "Aviso: Los archivos de "Miles Sound System" faltan o están corruptos.nnFaltan todos o algunos de los siguientes archivos: 'mss32.dll', 'mssfast.m3d', 'mp3dec.asi'. La música del juego podría no funcionar." IDCHECKBOX_MONSTERHP, "Activa o desactiva mostrar la barra de vida restante (HP) de los monstruos.nnUso en el juego: /monsterhp" IDCHECKBOX_Q1, "Activa o desactiva el mapeo de F9 al ratón.nPermite utilizar la skill asignada a la tecla F9 con un click derecho.nnUso en el juego: /quickspell o /q1" IDCHECKBOX_Q2, "Activa o desactiva el mapeo de F7 y F8 al ratón.nPermite utilizar skills asignadas a las teclas F7 y F8 desplazando la rueda del ratón hacia arriba y abajo, respectivamente.nnUso en el juego: /quickspell2 o /q2" -
jaBote got a reaction from mrlongshen in Monster Wiki Version 3 problem
[Warning]: script error in file 'npc/custom/monsterwiki.txt' line 14 column 3 parse_syntax: use of deprecated keyword (use 'case' instead).
Here's your answer: lowercase it, use 'case' instead of 'Case'.
-
jaBote got a reaction from Helena in How to also block/check for items in cart?
There's no current script command to retrieve the item list from a character's cart (or storage, or gstorage if ever needed), so you'd have to rethink and hope the player's cart has been saved previously to entering the WoE map and do a SQL query like this:
query_sql("SELECT `nameid` FROM `cart_inventory` WHERE `char_id` = " + getcharid(0), .@itemids);
You'll get all Item IDs the player has on this cart on the array .@itemids, so you have now to loop through it and check for every blacklisted item on each entry.
-
jaBote reacted to Keith in [Release] ADI (Auto Database Installer) [Linux]
Hello everyone!
My name is Keith, I've been around the RO community since early 2003, it's been years since I've contributed to the community ...well since deving at eAthena..anyway.. today I'm releasing my script I created that installs the database for you, you can choose either pre-renewal or renewal, it's all up to you.
How do you use it?
It's simple!..just.. copy/paste the content from the URL below into a .sh file, make it a executable (chmod +x db-installer.sh) and run it (./db-installer.sh)
Download: https://gist.github.com/KeithGS/bc6a3220c488ae11f870
UPDATED: 06/18/14 4:20 CST
UPDATE: Now includes inserting log database into main database if you choose not to have a separate database for logs.
UPDATE 2: Fixed some minor bugs.
UPDATE 3: Some spacing issues, and grammar fixes.
Picture in Action:
Have any questions? Please let me know.
-
jaBote reacted to aero011 in About Thor Patcher again (GRF)
Here's a guide i'm giving when they purchased thor patcher.
Hope this can help you.
-
jaBote reacted to Tragedy in [SRC] Love Benediction (Skill Custom)
Veo que hay poca actividad de aportes en el foro de español, así que poco a poco iré posteando una que otra cosa que he desarrollado. Esta fue una sencilla skill custom que desarrollé hace unos 3/4 años para un servidor viejo que tuve y mi primer aporte en DivineRO.
Bueno aquí les cuento un poco como surgió la idea.
Varias de las parejas dentro de un servidor el cual trabajé hace años me sugirieron
Segun ellos por que les encanta levear juntos en pareja etc y les caeria bien un "beneficio"... Dije ok, me pareció interesante la idea y bueno... ¿Por que no hacerla? (Disculpen el nombre de la Skill, mi imaginación en ese tipo de cosas es PÉSIMA) No es la gran cosa, asi que hay va: En Unit.C Buscar case WE_MALE:case WE_FEMALE:
Y añadir Abajo case F_BENEDICTION: En Skill.C Buscamos case WE_FEMALE: { int sp_rate=(skilllv <= 0)? 0:skill_db[skillid].sp_rate[skilllv-1]; int gain_sp=tstatus->max_sp*abs(sp_rate)/100;// The earned is the same % of the target SP than it costed the caster. [Skotlex] clif_skill_nodamage(src,bl,skillid,status_heal(bl, 0, gain_sp, 0),1); } break;
Y añadimos de bajo
case F_BENEDICTION: { //Indicamos que dopa saldre de forma random, lvl de la Skill y duraccion de la Skill (El dope solo durara 1 minuto) int bene = rand()%5; switch (bene) { case 0: // Bless sc_start(bl,SC_BLESSING,100,10,60000); break; case 1: // Agi sc_start(bl,SC_INCREASEAGI,100,10,60000); break; case 2: // Assump sc_start(bl,SC_ASSUMPTIO,100,10,60000); break; case 3: // Angelus sc_start(bl,SC_ANGELUS,100,10,60000); break; case 4: // Wind Walk sc_start(bl,SC_WINDWALK,100,10,60000); break; } } clif_specialeffect(bl, 363, AREA); // Indicamos el efecto visual de la Skill (Chequen en la documentación de Eathena, el archivoeffect_list.txt para mas efectos clif_emotion(sd,3); // Indicamos el emoticon /lv e_lv (Chequen su const.txt en su carpeta DB) break; En su Skill.H
EL_ROCK_CRUSHER_ATK, EL_STONE_RAIN,
Y añadimos abajo:
//Custom F_BENEDICTION = 990,
Bien ya acabamos la parte del SRC Seguimos con lo demas item_db.txt Modificamos:
2634,Bridegroom_Ring,Wedding Ring,5,0,,0,,0,,0,0xFFFFFFFF,7,1,136,,0,0,0,{ skill "WE_MALE",1; skill "WE_FEMALE",1; skill "WE_CALLPARTNER",1; },{},{}2635,Bride_Ring,Wedding Ring,5,0,,0,,0,,0,0xFFFFFFFF,7,0,136,,0,0,0,{ skill "WE_MALE",1; skill "WE_FEMALE",1; skill "WE_CALLPARTNER",1; },{},{}
Por: 2634,Bridegroom_Ring,Wedding Ring,5,0,,0,,0,,0,0xFFFFFFFF,7,1,136,,0,0,0,{ skill "WE_MALE",1; skill "WE_FEMALE",1; skill "WE_CALLPARTNER",1; skill "F_BENEDICTION",1; },{},{}2635,Bride_Ring,Wedding Ring,5,0,,0,,0,,0,0xFFFFFFFF,7,0,136,,0,0,0,{ skill "WE_MALE",1; skill "WE_FEMALE",1; skill "WE_CALLPARTNER",1; skill "F_BENEDICTION",1; },{},{}
En Skill_db.txt
10014,0,0,0,0,0,0,1,0,no,0,0x10,0,none,0, GD_DEVELOPMENT,Permanent Development //10015,0,0,0,0,0,0,1,0,no,0,0x10,0,none,0, GD_ITEMEMERGENCYCALL,Unknown Skill Y añadimos abajo
990,9,6,4,0,0x1,0,1,1,yes,0,0x4,0,none,0, F_BENEDICTION,Love Benediction
En Skill_cast_db.txt Buscamos
//-- GD_EMERGENCYCALL 10013,5000,0,0,0,300000 //=
Y añadimos de bajo
+//-- F_Benediction990,3000,60000,0,0,0
Tiene un delay de 1 minuto, para que sea una dopa cada vez que hagan la Skill, ya los tiempos dependen de ustedes
Si tienen algún pedido o idea que quieran que desarrolle, no duden en contactarme. Estaré activo en este foro para darle un poco de vida a la sección en español.
En la semana añadiré un paquete de plugins de skills elementales custom, junto con esta, así se daran idea de como hacer un plugin.
-
jaBote got a reaction from Hadeszeus in @unmute player on specific map onLogoutEvent
Yes, you can be creative ending it.
According to source:
/*========================================== * @unmute [Valaris] *------------------------------------------*/ACMD(unmute) { struct map_session_data *pl_sd = NULL; if (!message || !*message) { clif->message(fd, msg_txt(1234)); // Please enter a player name (usage: @unmute <char name>). return false; } if ( (pl_sd = map->nick2sd((char *)message)) == NULL ) { clif->message(fd, msg_txt(3)); // Character not found. return false; } if(!pl_sd->sc.data[SC_NOCHAT]) { clif->message(sd->fd,msg_txt(1235)); // Player is not muted. return false; } pl_sd->status.manner = 0; status_change_end(&pl_sd->bl, SC_NOCHAT, INVALID_TIMER); clif->message(sd->fd,msg_txt(1236)); // Player unmuted. return true;}
Since I suppose you already know your character is logged in and muted you can skip all the checks and go directly to what you want. Try this instead?
OnPCLogoutEvent: if (strcharinfo(3) == "guild_vs1" ) { Manner = 0; // sc_end SC_NOCHAT; // Edit, not needed as of the documentation says? } end;
EDIT: You've also got some nice advice on the scripting documentation regarding that on our scripting documentation :
I've just commented out the SC_NOCHAT line. If that doesn't work just edit the script and try with that uncommented again P.S.: You sure you didn't get any warning or so from the console when trying to atcommand? O.o -
jaBote got a reaction from Tragedy in Normas del foro (traducidas al español)
Aunque tratamos de evitar hacer de los foros una dictadura, nos gustaría que siguieras las pocas normas que tenemos para hacer mejor tu experiencia en Hercules. Se espera que todos los miembros de la comunidad las siga o se podrán aplicar sanciones: desde una advertencia verbal, pasando por un incremento de tu nivel de warn, revisión de moderador (los moderadores aprobarán tus posts), suspensión de posteo (puedes leer los foros pero no postear) y hasta la suspensión total del foro (no podrás ver ni postear).
Líneas Generales de Posteo:
Los posts no deberán contener SPAM. Se considera spam cualquier post de una palabra, posts que no aporten nada al tema o múltiples posts seguidos sin razón. Tampoco se permitirá postear en la sección incorrecta. Los posts del foro Off-Topic son la única excepción. No se permite postear temas por duplicado. Publica tus temas una sola vez en la sección correcta. Si
accidentalmente posteas en la sección equivocada, utiliza el botón Report (Reportar) para reportar tu propio post: nuestros moderadores se harán cargo de él por ti. Los posts en las secciones de soporte se pueden reavivar (siempre que no estén muertos, ver siguiente sección) con más información en no menos de 24 horas desde el último post. Si tienes información nueva en menos de 24h, edita tu post anterior. Revivir temas muertos está prohibido a menos que se disponga de información constructiva que añadir.
En otro caso, el tema está muerto por alguna razón. Si algún link está roto, por favor envía un MP al miembro que lo posteó, no comentes que el link está
roto en el tema: será considerado spam.
Firmas y Avatares
Las firmas no deben exceder de 650px de ancho y 150px de alto EN TOTAL. Esto incluye las imágenes y su
respectivo texto en caso de haberlo. Las firmas, además, no podrán enlazar a nada de warez, sistemas para hacerse rico rápidamente, desnudez o cualquier obscenidad. Los avatares no podrán ser de naturaleza inapropiada, por ejemplo desnudez u obscenidades. Las firmas y los avatares pueden ser eliminados a discreción de un moderador, dependiendo de su
contenido. Por favor, ten en cuenta que el resto de normas del foro también aplican a tu firma, avatar y título
personalizado.
Lenguas
Debe hacerse uso del inglés en cualquier sección de habla inglesa. Si no te desenvuelves bien con el
inglés, por favor busca y utiliza el foro internacional en tu lengua, al final de la página principal.
Etiqueta General del Foro
Por favor, evita postear un mensaje completamente en mayúsculas, usar una cantidad excesiva de
emoticonos o hacer de cualquier otra forma tu post molesto y difícil de leer. No se adrmite ningún tipo de acoso. Tampoco se admite el Trolleo y el Flameo a otros usuarios. Crear una nueva cuenta si tu cuenta actual está baneada no está permitido. En ese caso, lo más seguro
es que tu nueva cuenta sea baneada instantáneamente sin previo aviso. No se admiten posts que enlacen a pornografía, desnudez, warez o sistemas para hacerse rico rápidamente. Se desaconseja intentar suplantar el trabajo de un moderador. Por favor, utiliza el botón Report (disponible en la esquina inferior derecha de cada post). Está prohibido hacer publicidad de cualquier forma (excepto en la sección Advertisement y las secciones
de publicitación de cada sección internacional). No se permite solicitar dinero a través de MP o del propio foro. Por favor, no edites tus posts para eliminar tu pregunta una vez tu problema se ha resuelto.
Sección Paid Services
Los temas nuevos en la sección Paid Services son invisibles hasta que son aprobados por un administrador.
Si un miembro del foro no tiene un anuncio aprobado en la sección Paid Services, no puede tener anuncios en su firma o hacer ningún post en los foros sobre sus servicios. La sección Paid Services está para publicitar solo tus servicios de pago. No publicites tu servidor personal (de Ragnarok Online). No hay problema en dar links a otros servidores si los usas como referencias de tu trabajo (diseños,
trabajos, características, etc., que hayas creado. Esto no aplica a servicios relacionados con el código fuente: por favor, simplemente publica los trozos de código que veas oportuno. Todos los Servicios de Pago deberán usar HTTPS en las partes más sensibles de sus sitios. Esto
incluye, pero no está limitado a: formularios que recogen contraseñas o alguna información personal o de
pago. Todos los proveedores de hosting deberán tener una web en la que los usuarios puedan solicitar sus
servicios fácilmente. Si ofreces servicios de scripting/modificación de código fuente, tener una web es opcional.
¿Qué tipos de servicios se admiten?
Hosting de Servidores (VPS, hosting web) Servicios de Scripting/Modificaciones del código fuente Servicios Gráficos (mapas, sprites, diseño web, etc.) Servicios de Programación Web Modificaciones Client-Side (de lado del Cliente)
Estas normas pueden cambiar en cualquier momento.
Infringir estas normas conllevará un posible aviso o sanción. Tres infracciones leves acarrearán un ban temporal, y cinco conllevarán un ban permanente. Según las circunstancias de la sanción, se podrá aplicar un ban permanente en cualquier momento. Puedes apelar cualquier acción que algún Moderador (Moderator) haya tomado en tu contra contactando con un Moderador Global (Global Moderator) a través de un mensaje privado (PM). Deberás aportar una razón válida y un enlace hacia la decisión que estés apelando. No envíes un PM al Moderador que haya actuado originalmente contra ti, pues es posible que te acarree más problemas.
El Staff de Hercules hace cumplir estas normas. Por favor, respeta al Staff y a sus decisiones.
-
jaBote got a reaction from Kichi in script_command call NPC
You've got a clear example at mob.c for example, on this chunk of code (sorry for no tabs at all, it screws up):
if( md->npc_event[0] && !md->state.npc_killmonster ) { if( sd && battle_config.mob_npc_event_type ) { pc->setparam(sd, SP_KILLERRID, sd->bl.id); npc->event(sd,md->npc_event,0); } else if( mvp_sd ) { pc->setparam(mvp_sd, SP_KILLERRID, sd?sd->bl.id:0); npc->event(mvp_sd,md->npc_event,0); } else npc->event_do(md->npc_event); } else if( mvp_sd && !md->state.npc_killmonster ) { pc->setparam(mvp_sd, SP_KILLEDRID, md->class_); npc->script_event(mvp_sd, NPCE_KILLNPC); // PCKillNPC [Lance] }
Just use npc->script_event(sd, npc_event) for when you want to attach a player or npc->event_do(npc_event) for an event without any attached player. The NPC event can be hardcoded if you want ("NPCNAME::OnMyEventName") if you find it simpler.