←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Zamiana formatex na colorchat

Locked

  • +
  • -
QuahodronN's Photo QuahodronN 29.09.2012

Siema, mam pytanko ponieważ nie bardzo wiem jak zamienić formatex na colorchat

formatex(szPrefix,charsmax( szPrefix ),"^x04[%s]",gWlascicielPrefix);
Chciałbym aby to wyglądało to jakoś tak :P
ColorChat(id, GREEN, "[%s]", gWlascicielPrefix);

Ale czy to będzie działać? Chyba mi się wydaje że nie :P
Wolę zapytać i otrzymać jakąś pomoc jeśli jest źle :)

Z góry dzięki.
Quote

  • +
  • -
speedkill's Photo speedkill 30.09.2012

Daj cały kod, będzie łatwiej to zrobić ;)
Quote

  • +
  • -
sNH.'s Photo sNH. 30.09.2012

Będzie działać, ale jak dobrze pamiętam przy formatex jest coś z line itd. Trzeba wyrzucić parę "linijek" :D
Quote

  • +
  • -
QuahodronN's Photo QuahodronN 30.09.2012


#include <amxmodx>

new const gNazwaPluginu[] = "Chat Tags";
new const gWersjaPluginu[] = "1.1";
new const gAutorPluginu[] = "MisieQ";

new gWlascicielFlaga[32], gHeadAdminFlaga[32], gAdminFlaga[32], gVipFlaga[32], gGraczFlaga[32];
new gWlascicielPrefix[32], gHeadAdminPrefix[32], gAdminPrefix[32], gVipPrefix[32], gGraczPrefix[32];
public plugin_init()
{
register_plugin(gNazwaPluginu, gWersjaPluginu, gAutorPluginu);

register_message(get_user_msgid("SayText"), "Prefix");

/* Cvary */
register_cvar("wlasciciel_flaga", "abcdefghijklmnopqrstuwvx"); 
register_cvar("headadmin_flaga", "abcdefghijklmnopqstu");
register_cvar("admin_flaga", "bcdefijtmu");
register_cvar("vip_flaga", "bt");
register_cvar("gracz_flaga", "z");

get_cvar_string("wlasciciel_flaga", gWlascicielFlaga, sizeof gWlascicielFlaga -1)
get_cvar_string("headadmin_flaga", gHeadAdminFlaga, sizeof gHeadAdminFlaga -1)
get_cvar_string("admin_flaga", gAdminFlaga, sizeof gAdminFlaga -1)
get_cvar_string("vip_flaga", gVipFlaga, sizeof gVipFlaga -1)
get_cvar_string("gracz_flaga", gGraczFlaga, sizeof gGraczFlaga -1)

/* Prefixy */
register_cvar("wlasciciel_prefix", "Wlasciciel");
register_cvar("headadmin_prefix", "HeadAdmin");
register_cvar("admin_prefix", "Admin");
register_cvar("vip_prefix", "VIP");
register_cvar("gracz_prefix", "Gracz");

get_cvar_string("wlasciciel_prefix", gWlascicielPrefix , sizeof gWlascicielPrefix  -1)
get_cvar_string("headadmin_prefix", gHeadAdminPrefix , sizeof gHeadAdminPrefix  -1)
get_cvar_string("admin_prefix", gAdminPrefix , sizeof gAdminPrefix  -1)
get_cvar_string("vip_prefix", gVipPrefix , sizeof gVipPrefix  -1)
get_cvar_string("gracz_prefix", gGraczPrefix, sizeof gGraczPrefix -1)
}

public has_flags(id,string[])
{
new ret=1
new byte

new len = strlen(string)
new p_flag = get_user_flags(id)

for(new i=0;i<=len;i++)
{
if(string[i]>='a' && string[i]<='z') byte = (1<<(string[i]-'a'))
else if(string[i]>='A' && string[i]<='Z') byte = (1<<(string[i]-'A'))
else if(string[i]==',' && ret==1) return 1
else if(string[i]==',') ret=1
if(byte!=0 && !(p_flag & byte)) ret=0

byte=0
}

return ret
}

public Prefix(msgId,msgDest,msgEnt)
{

new id = get_msg_arg_int(1);

if(!is_user_connected(id))
return PLUGIN_CONTINUE;

new szTmp[256],szTmp2[256];

get_msg_arg_string(2,szTmp, charsmax( szTmp ) )

new szPrefix[64];

if(has_flags(id, gWlascicielFlaga))
{
formatex(szPrefix,charsmax( szPrefix ),"^x04[%s]",gWlascicielPrefix);
}
else if(has_flags(id, gHeadAdminFlaga))
{
formatex(szPrefix,charsmax( szPrefix ),"^x04[%s]",gHeadAdminPrefix);
}
else if(has_flags(id, gAdminFlaga))
{
formatex(szPrefix,charsmax( szPrefix ),"^x04[%s]",gAdminPrefix);
}
else if(has_flags(id, gVipFlaga))
{
formatex(szPrefix,charsmax( szPrefix ),"^x04[%s]",gVipPrefix);
}
else if(has_flags(id, gGraczFlaga))
{
formatex(szPrefix,charsmax( szPrefix ),"^x04%s",gGraczPrefix);
}
else
{
formatex(szPrefix,charsmax( szPrefix ),"^x04%s",gGraczPrefix);
}

if(!equal(szTmp,"#Cstrike_Chat_All"))
{
add(szTmp2,charsmax(szTmp2),szPrefix);
add(szTmp2,charsmax(szTmp2)," ");
add(szTmp2,charsmax(szTmp2),szTmp);
}
else
{
add(szTmp2,charsmax(szTmp2),szPrefix);
add(szTmp2,charsmax(szTmp2),"^x03 %s1^x01 : %s2");
}

set_msg_arg_string(2,szTmp2);

return PLUGIN_CONTINUE;
}

Oto cały kod :)
a konkretnie chodzi o to :P
if(has_flags(id, gWlascicielFlaga))
{
formatex(szPrefix,charsmax( szPrefix ),"^x04[%s]",gWlascicielPrefix);
}
else if(has_flags(id, gHeadAdminFlaga))
{
formatex(szPrefix,charsmax( szPrefix ),"^x04[%s]",gHeadAdminPrefix);
}
else if(has_flags(id, gAdminFlaga))
{
formatex(szPrefix,charsmax( szPrefix ),"^x04[%s]",gAdminPrefix);
}
else if(has_flags(id, gVipFlaga))
{
formatex(szPrefix,charsmax( szPrefix ),"^x04[%s]",gVipPrefix);
}
else if(has_flags(id, gGraczFlaga))
{
formatex(szPrefix,charsmax( szPrefix ),"^x04%s",gGraczPrefix);
}
else
{
formatex(szPrefix,charsmax( szPrefix ),"^x04%s",gGraczPrefix);
}
Quote

  • +
  • -
K!113r's Photo K!113r 30.09.2012

Colorchat drukuje tekst (+ obsługuje kolory), ale tylko drukuje, a formatex formatuje stringa i zapisuje do tablicy.

W tym kodzie łapiesz wiadomość z say, zmieniasz i puszczasz dalej (dodajesz np. prefiks), czyli nie możesz użyć colorchatu.
Quote

  • +
  • -
QuahodronN's Photo QuahodronN 30.09.2012

Konkretnie chcę uzyskać efekt aby kolor prefiksu był czerwony ;)
Quote

  • +
  • -
K!113r's Photo K!113r 30.09.2012

Raczej można uzyskać kolor teama (to na pewno), ale co do stałego czerwonego nigdy nie próbowałem
Quote

  • +
  • -
QuahodronN's Photo QuahodronN 30.09.2012

Wiem że teraz się da uzyskać kolor teamu zmieniając x04 na x03 ale własnie chodzi mi aby był cały czas czerwony stąd moje pytanie czy da radę to zamienić na ColorChat.
Quote

  • +
  • -
K!113r's Photo K!113r 30.09.2012

Dać to się da, lecz jeżeli chcesz mieć prefix na czerwono (stały) to nick też bd miał stale czerwony, nawet w ct.
Quote

  • +
  • -
QuahodronN's Photo QuahodronN 30.09.2012

A to dobra :P niech będzie zielony tak jak był :P

Dzięki :)

Można zamknąć.
Quote

  • +
  • -
sebul's Photo sebul 30.09.2012

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Temat zamknięty na prośbę użytkownika.


Z pozdrowieniami,
Zespół AMXX.PL
Quote
Locked