Jump to content

HD Scripts

Members
  • Posts

    183
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by HD Scripts

  1. Veja o padrão de tradução do Cronus SOCERO: https://github.com/Cronus-Emulator/-SOCERO-emulador/tree/master/npc/instances
    Veja que tem uma pasta chamada "pt-br", nela você coloca os arquivos traduzidos.
    Após, no arquivo scripts_athena.conf:

    // ------------------------ Instances ---------------------------
    //npc: npc/instances/SealedShrine.txt
    //npc: npc/instances/EndlessTower.txt
    //npc: npc/instances/OrcsMemory.txt
    //npc: npc/instances/NydhoggsNest.txt
    // ------------------------ Instances traduzido ---------------------------
    //npc: npc/instances/pt-br/
    npc: npc/instances/pt-br/EndlessTower.txt
    npc: npc/instances/pt-br/NydhoggsNest.txt
    npc: npc/instances/pt-br/OrcsMemory.txt
    npc: npc/instances/pt-br/SealedShrine.txt
  2. Cara, vou te falar uma coisinha: EU, simplesmente, pego os scripts antigos de outros emuladores (traduzidos) e vou modificando no emulador atual.
    Por ex:

    Pego um script do emulador de 2014, abro o arquivo e pego as traduções e aplico onde é necessário, e reorganizo o script.

  3. Irei testar.
    Caso funcione o comando @fontcolor, será que daria pra setar uma variável padrão do emulador que é iniciada quando o mesmo inicia?

    #edit

    Então, eu testei o comando @fontcolor, e o mesmo não funciona como eu imaginei.
    Terei que estudar como criar os canais corretamente.

  4. 28 minutes ago, Killusion said:
    
    /// Validates and processes global messages
    /// 008c <packet len>.W <text>.?B (<name> : <message>) 00 (CZ_REQUEST_CHAT)
    /// There are various variants of this packet.
    void clif_parse_GlobalMessage(int fd, struct map_session_data* sd)
    {
    const char* text = (char*)RFIFOP(fd,4);
    int textlen = RFIFOW(fd,2) - 4;
    int gm_lvl = pc_get_group_level(sd);
    char *name, *message, *fakename = NULL;
    int namelen, messagelen;
    		 unsigned long player = strtoul("0x55AE3A",NULL,0); //normal player color leaf
    	unsigned long GM20 = strtoul("0xFFA500",NULL,0); //GM level 20 to 39 color orange
    	unsigned long GM40 = strtoul("0xCD00CD",NULL,0); //GM level 40 to 59 color magenta3
    	unsigned long GM60 = strtoul("0x006400",NULL,0); //GM level 60 to 79 color dark green
    	unsigned long GM80 = strtoul("0x00008B",NULL,0); //GM level 80 to 98 color dark blue
    	unsigned long admin = strtoul("0xFF0000",NULL,0); //Admin color red
    bool is_fake;
    // validate packet and retrieve name and message
    if( !clif_process_message(sd, 0, &name, &namelen, &message, &messagelen) )
      return;
    if( is_atcommand(fd, sd, message, 1)  )
      return;
    if( sd->sc.data[SC_BERSERK] || (sd->sc.data[SC_NOCHAT] && sd->sc.data[SC_NOCHAT]->val1&MANNER_NOCHAT) )
      return;
    if( battle_config.min_chat_delay )
    { //[Skotlex]
      if (DIFF_TICK(sd->cantalk_tick, gettick()) > 0)
       return;
      sd->cantalk_tick = gettick() + battle_config.min_chat_delay;
    }
    /**
      * Fake Name Design by FatalEror (bug report #9)
      **/
    if( ( is_fake = ( sd->fakename[0] ) ) ) {
      fakename = (char*) aMalloc(strlen(sd->fakename)+messagelen+3);
      strcpy(fakename, sd->fakename);
      strcat(fakename, " : ");
      strcat(fakename, message);
      textlen = strlen(fakename) + 1;
    }
    		// send message to others (using the send buffer for temp. storage)
    		WFIFOHEAD(fd, 12 + textlen);
    		WFIFOW(fd,0) = 0x2C1;
    		WFIFOW(fd,2) = 12 + textlen;
    		WFIFOL(fd,4) = sd->bl.id;
    		if(gm_lvl == 99){
    				WFIFOL(fd,8) = (admin & 0x0000FF) << 16 | (admin & 0x00FF00) | (admin & 0xFF0000) >> 16;
    		}
    		else if (gm_lvl==0){
    				WFIFOL(fd,8) = (player & 0x0000FF) << 16 | (player & 0x00FF00) | (player & 0xFF0000) >> 16;
    		}
    	else if (gm_lvl >=20 && gm_lvl<=39)
    	{
    				WFIFOL(fd,8) = (GM20 & 0x0000FF) << 16 | (GM20 & 0x00FF00) | (GM20 & 0xFF0000) >> 16;
    	}
    	else if (gm_lvl >=40 && gm_lvl <= 59)
    	{
    		WFIFOL(fd,8) = (GM40 & 0x0000FF) << 16 | (GM40 & 0x00FF00) | (GM40 & 0xFF0000) >> 16;
    	}
    	else if (gm_lvl >=60 && gm_lvl <= 79)
    	{
    		WFIFOL(fd,8) = (GM60 & 0x0000FF) << 16 | (GM60 & 0x00FF00) | (GM60 & 0xFF0000) >> 16;
    	}
    	else if (gm_lvl >=80 && gm_lvl <= 98)
    	{
    		WFIFOL(fd,8) = (GM80 & 0x0000FF) << 16 | (GM80 & 0x00FF00) | (GM80 & 0xFF0000) >> 16;
    	}
    safestrncpy((char*)WFIFOP(fd,8), is_fake ? fakename : text, textlen);
    //FIXME: chat has range of 9 only
    clif_send(WFIFOP(fd,0), WFIFOW(fd,2), &sd->bl, sd->chatID ? CHAT_WOS : AREA_CHAT_WOC);
    // send back message to the speaker
    if( is_fake ) {
      WFIFOW(fd,0) = 0x8e;
      WFIFOW(fd,2) = textlen + 4;
      safestrncpy((char*)WFIFOP(fd,4), fakename, textlen);
      aFree(fakename);
    } else {
      memcpy(WFIFOP(fd,0), RFIFOP(fd,0), RFIFOW(fd,2));
      WFIFOW(fd,0) = 0x8e;
    }
    WFIFOSET(fd, WFIFOW(fd,2));
    #ifdef PCRE_SUPPORT
    // trigger listening npcs
    map_foreachinrange(npc_chat_sub, &sd->bl, AREA_SIZE, BL_NPC, text, textlen, &sd->bl);
    #endif
    // Chat logging type 'O' / Global Chat
    log_chat(LOG_CHAT_GLOBAL, 0, sd->status.char_id, sd->status.account_id, mapindex_id2name(sd->mapindex), sd->bl.x, sd->bl.y, NULL, message);
    }

    i need use item/npc script and I don't want to use gm lv

    this command is working on rathena actual?

  5. Buenas.

    Seguinte: eu acompanhei vários tópicos aqui e no Hercules.
    Porém nenhum está atualizado.

    Eu consegui aplicar um diff, que mudou a cor do que eu escrevo, mas só no chat.
    Não aparecendo o "balão" de conversa em cima do char.
    E para os outros players, aparece a cor verde (normal) da conversa.

    Tópicos:

    https://herc.ws/board/topic/9763-plugin-colored-chat/

    O que eu queria era algo assim:
    vU4MDQmmqiU.jpg
     

    Alguém teria alguma solução?
    Obrigado.

  6. prontera,150,156,5	script	Simple Warper#HD	99,{
    
    	mes "Hello.";
    	mes "I am Lukkas, I have created some rooms where it is possible to test their damages.";
    	mes "I can teleport you there if you wish.";
    	mes "With which monster you want to test your damage?.";
    	
    	switch(select("- Pharao:- Garm:- Orc Hero:- Exit"))
    	{
    		case 1:
    			warp "pharao_test",50,50; // Change this warp coordinates
    			end;
    		case 2:
    			warp "garm_test",50,50; // Change this warp coordinates
    			end;
    		case 3:
    			warp "orchero_test",50,50; // Change this warp coordinates
    			end;
    		case 4:
    			close;
    	}
    }

     

×
×
  • Create New...