Szerző Téma: [Leírás]Autómata üzenet  (Megtekintve 2006 alkalommal)

Nem elérhető csont

  • 153
    • Profil megtekintése
[Leírás]Autómata üzenet
« Dátum: 2012. május 10. - 15:02:21 »
0 Show voters
Leírom nektek hogyan is kell automata üzenetet készíteni timer segítségével
Elõször is hozzuk létre a prototípust. Aki módba csinálja az a main() függvény fölé tegye, aki szkriptbe az a OnFilterScriptInit() függvény fölé, vagy a szkript elejére.
 
forward Auto();

 
Az \"Auto\" csak egy példa, helyette akármit írhatsz, tetszés szerûen, de a késõbbiekben is azt használd!
Most létrehozzuk a publicot, az üzenet tartalmát.
 
public Auto()
{
SendClientMessageToAll(SZÍN, \"SZÖVEG\");
return 1;
}

 
 A \"SZÍN\" helyére írd a definiált színt (pl. COLOR_YELLOW), vagy a színkódot (pl. 0x33AA33AA = GREEN)
Ezt akárhová teheted csak ne másik funkcióba.
Na most jön a timer, amit az OnGameModeInit() függvényhez teszünk, ha szkriptbe csinálod akkor OnFilterScriptInit()-hez.
1000 = 1 s (másodperc)
 
SetTimer(\"Auto\", 60000, 1);

 
Itt az \"Auto\" az általunk kiválasztott funkció, a \"60000\" (1 perc) azt jelöli, hogy mennyi idõk elteltével küldözgesse az adott üzenetet, az \"1\" az ismétlõdést jelöli. (Az \"1\" helyett írhatsz \"true\"-t is, ugyanazt jelentik, ha nem akarod, hogy ismétlõdjön a szöveg, akkor \"0\"-t írj, az helyett meg \"false\"-t is írhatsz.)
Van egy másik modszer is dinamikus üzenet létrehozásának!
De ezt szerintem nem kell elmagyarázni  ;) Itt egy példa:
 
#include forward vmi();
new Rtimer;
new Reklam[][]=
{
\"Szöveg\", //ha tól sok nyugodtan törölj le egy-két sort
\"Szöveg\",
\"Szöveg\",
\"Szöveg\",
\"Szöveg\",
\"Szöveg\",
\"Szöveg\",
\"Szöveg\" //az utolsó után nem kell vesszõ
};
public OnFilterScriptInit()
{
print(\"Reklam kuldes bekapcsolva\");
Rtimer = SetTimer(\"vmi\",50000*2,true); //1000 = 1ms | 60000 = 1perc
return 1;
}
public OnFilterScriptExit()
{
KillTimer(Rtimer);
return 1;
}
public vmi()
{
SendClientMessageToAll(0xFFFF00AA,Reklam[random(sizeof(Reklam))]);
return 1;
}

 
Remélem tudtam segíteni valakinek :)

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
[Leírás]Autómata üzenet
« Válasz #1 Dátum: 2012. május 10. - 18:46:42 »
0 Show voters
:hihi:Itt a csomagolt stringek használata nagyon nagy esély lenne, mivel az 1/4-ét foglalja a rendes karakterláncnak.
 

new const // Konstansként hozzuk létre, mivel nem változtatunk rajta sehol és ez gyorsabb is.
g_szReklamok[][135 char /* a maximum üzenet hosszát írd ide, amit itt használsz, maximum 144 lehet az üzenetben tudtommal*/] =
{
    {!\"asd: láttál csalót, asdawawawawawawawawawawawawan? Jelentsd az adminoknak a /report paranccsal!\"},
    {!\"asd: láttál csalót, asdawawawawawawawawawawawawan? Jelentsd az adminoknak a /report paranccsal!\"},
    {!\"asd: láttál csalót, asdawawawawawawawawawawawawan? Jelentsd az adminoknak a /report paranccsal!\"},
    {!\"asd: láttál csalót, asdawawawawawawawawawawawawan? Jelentsd az adminoknak a /report paranccsal!\"},
    {!\"asd: láttál csalót, asdawawawawawawawawawawawawan? Jelentsd az adminoknak a /report paranccsal!\"}
};
public vmi()
{
new
szUnpacked[144];
// Kicsomagoljuk
strunpack(szUnpacked, g_szReklamok[random(sizeof(g_szReklamok))]);
SendClientMessageToAll(0xFFFF00AA, szUnpacked);
return 1;
}
« Utoljára szerkesztve: 2012. május 10. - 18:48:22 írta kurta999 »

Nem elérhető csont

  • 153
    • Profil megtekintése
[Leírás]Autómata üzenet
« Válasz #2 Dátum: 2012. május 10. - 15:02:21 »
0 Show voters
Leírom nektek hogyan is kell automata üzenetet készíteni timer segítségével
Elõször is hozzuk létre a prototípust. Aki módba csinálja az a main() függvény fölé tegye, aki szkriptbe az a OnFilterScriptInit() függvény fölé, vagy a szkript elejére.
 
forward Auto();

 
Az \"Auto\" csak egy példa, helyette akármit írhatsz, tetszés szerûen, de a késõbbiekben is azt használd!
Most létrehozzuk a publicot, az üzenet tartalmát.
 
public Auto()
{
SendClientMessageToAll(SZÍN, \"SZÖVEG\");
return 1;
}

 
 A \"SZÍN\" helyére írd a definiált színt (pl. COLOR_YELLOW), vagy a színkódot (pl. 0x33AA33AA = GREEN)
Ezt akárhová teheted csak ne másik funkcióba.
Na most jön a timer, amit az OnGameModeInit() függvényhez teszünk, ha szkriptbe csinálod akkor OnFilterScriptInit()-hez.
1000 = 1 s (másodperc)
 
SetTimer(\"Auto\", 60000, 1);

 
Itt az \"Auto\" az általunk kiválasztott funkció, a \"60000\" (1 perc) azt jelöli, hogy mennyi idõk elteltével küldözgesse az adott üzenetet, az \"1\" az ismétlõdést jelöli. (Az \"1\" helyett írhatsz \"true\"-t is, ugyanazt jelentik, ha nem akarod, hogy ismétlõdjön a szöveg, akkor \"0\"-t írj, az helyett meg \"false\"-t is írhatsz.)
Van egy másik modszer is dinamikus üzenet létrehozásának!
De ezt szerintem nem kell elmagyarázni  ;) Itt egy példa:
 
#include forward vmi();
new Rtimer;
new Reklam[][]=
{
\"Szöveg\", //ha tól sok nyugodtan törölj le egy-két sort
\"Szöveg\",
\"Szöveg\",
\"Szöveg\",
\"Szöveg\",
\"Szöveg\",
\"Szöveg\",
\"Szöveg\" //az utolsó után nem kell vesszõ
};
public OnFilterScriptInit()
{
print(\"Reklam kuldes bekapcsolva\");
Rtimer = SetTimer(\"vmi\",50000*2,true); //1000 = 1ms | 60000 = 1perc
return 1;
}
public OnFilterScriptExit()
{
KillTimer(Rtimer);
return 1;
}
public vmi()
{
SendClientMessageToAll(0xFFFF00AA,Reklam[random(sizeof(Reklam))]);
return 1;
}

 
Remélem tudtam segíteni valakinek :)

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
[Leírás]Autómata üzenet
« Válasz #3 Dátum: 2012. május 10. - 18:46:42 »
0 Show voters
:hihi:Itt a csomagolt stringek használata nagyon nagy esély lenne, mivel az 1/4-ét foglalja a rendes karakterláncnak.
 

new const // Konstansként hozzuk létre, mivel nem változtatunk rajta sehol és ez gyorsabb is.
g_szReklamok[][135 char /* a maximum üzenet hosszát írd ide, amit itt használsz, maximum 144 lehet az üzenetben tudtommal*/] =
{
    {!\"asd: láttál csalót, asdawawawawawawawawawawawawan? Jelentsd az adminoknak a /report paranccsal!\"},
    {!\"asd: láttál csalót, asdawawawawawawawawawawawawan? Jelentsd az adminoknak a /report paranccsal!\"},
    {!\"asd: láttál csalót, asdawawawawawawawawawawawawan? Jelentsd az adminoknak a /report paranccsal!\"},
    {!\"asd: láttál csalót, asdawawawawawawawawawawawawan? Jelentsd az adminoknak a /report paranccsal!\"},
    {!\"asd: láttál csalót, asdawawawawawawawawawawawawan? Jelentsd az adminoknak a /report paranccsal!\"}
};
public vmi()
{
new
szUnpacked[144];
// Kicsomagoljuk
strunpack(szUnpacked, g_szReklamok[random(sizeof(g_szReklamok))]);
SendClientMessageToAll(0xFFFF00AA, szUnpacked);
return 1;
}
« Utoljára szerkesztve: 2012. május 10. - 18:48:22 írta kurta999 »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal