hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.03.28. 13:06



Jelenlévő felhasználók

Jelenleg 240 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 239 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: Google [Bot] az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 5 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: TÖRÖLHETŐ!
HozzászólásElküldve: 2013.12.21. 14:09 
Offline
Jómunkásember
Avatar

Csatlakozott: 2013.12.15. 19:13
Hozzászólások: 495
Megköszönt másnak: 289 alkalommal
Megköszönték neki: 14 alkalommal
Hali!
Erről a pluginról lenne szó: http://www.hlmod.hu/viewtopic.php?f=101&t=12477

Keresgettem hol kellene átírni/beírni a saját szövegem, de nem találtam, ezért/ebben kellene segítség!

Szeretném, ha 10 secenként írna ki 3 üzenetet(szövegek között is 10 sec)
1. szöveg: Teszt1 Counter 1.6 <-- csapat színnel
2. szöveg: Teszt2 Counter 1.6 <-- csapat színnel
3. szöveg: Teszt3 Counter 1.6 <-- csapat színnel

Van segítség a leírásban(linkra kattinva nézd meg, ha kell) + van 1 advertisements.ini fájl is.

SMA:

SMA Forráskód: [ Mindet kijelol ]#include <amxmodx>#include <amxmisc> #pragma semicolon 1 new const PLUGIN[] = "Autoresponder/Advertiser";new const VERSION[] = "0.5";new const AUTHOR[] = "MaximusBrood"; #define NORM_AD 0#define SAY_AD 1 #define COND 0#define STORE 1 #define COND_TKN '%'#define SAY_TKN '@' #define COND_STKN "%"#define DEVIDE_STKN "~"#define SAY_STKN "@" //-.-.-.-.-.-.-.-.DEFINES.-.-.-.-.-.-.-.-.-.-. //Maximum amount of ads#define MAXADS 64 //Minimum difference between two different ads (float)new const Float:RAND_MIN = 60.0; //Maximum difference between two different ads (float)new const Float:RAND_MAX = 80.0; //-.-.-.-.-.-.-.-.END DEFINES..-.-.-.-.-.-.-. //Storesnew sayConditions[MAXADS][3][32];new normConditions[MAXADS][3][32];new normStore[MAXADS][128];new sayStore[MAXADS][2][128]; new gmsgSayText; //Countersnew adCount[2] = {0, 0}; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_cvar("admanager_version", "0.5", FCVAR_SERVER);  register_cvar("ad_react_all", "1");  gmsgSayText = get_user_msgid("SayText");  register_clcmd("say","eventSay"); register_clcmd("say_team","eventSay");  //Delay the load proces by 10 sec because we don't want to get more load //on the already high-load mapchange. //Too soon to affect players while playing, too late to create time-out @ mapchange set_task(10.0, "load");} public load(){ //Load the data new filepath[64]; get_configsdir(filepath, 63); format(filepath, 63, "%s/advertisements.ini", filepath);  if(file_exists(filepath)) { new output[512], conditions[128], temp[64], type;  //Open file new fHandle = fopen(filepath, "rt");  //Checks for failure if(!fHandle) return;  //Loop through all lines for(new a = 0; a < MAXADS && !feof(fHandle); a++) { //Get line fgets(fHandle, output, 511);   //Work away comments if(output[0] == ';' || !output[0] || output[0] == ' ' || output[0] == 10) { //Line is not counted a--; continue; }  //Reset type type = 0;  //Check if it contains conditions if(output[0] == COND_TKN) { //Cut the conditions off the string split(output, conditions, 127, output, 511, DEVIDE_STKN);  //Determine if its say check or normal ad type = output[0] == SAY_TKN ? 1 : 0;  //Put the conditions in own space for(new b = 0; b < 3; b++) { new sort[16], cond[32], numb;  //Remove the % from line conditions[0] = ' '; trim(conditions);  //Get one condition from the line split(conditions, temp, 64, conditions, 127, COND_STKN);  split(temp, sort, 15, cond, 31, " ");  if(equali(sort, "map")) { numb = 0; } else if(equali(sort, "min_players")) { numb = 1; } else if(equali(sort, "max_players")) { numb = 2; } else { continue; }  //Copy it to its final resting place ^^ setString(COND, type, cond, adCount[type], numb);  //Exit if it hasn't got more conditions if(!conditions[0]) break; } }  if(type == 0) type = output[0] == SAY_TKN ? 1 : 0;  if(type == SAY_AD) { new said[32], answer[128];  //Remove the @ from line output[0] = ' '; trim(output);  split(output, said, 31, answer, 127, DEVIDE_STKN);  //Apply color setColor(answer, 127);  //Save it setString(STORE, SAY_AD, said, adCount[SAY_AD], 0); setString(STORE, SAY_AD, answer, adCount[SAY_AD], 1); } else//if(type == NORM_AD) { //Apply color setColor(output, 511);  //Save it setString(STORE, NORM_AD, output, adCount[NORM_AD]); }  //Increment the right counter adCount[NORM_AD] += type == NORM_AD ? 1 : 0; adCount[SAY_AD] += type == SAY_AD ? 1 : 0; }  //Set a first task, if there are any normal ads if(adCount[NORM_AD] != 0) set_task(random_float(RAND_MIN, RAND_MAX), "eventTask");  //Close file to prevent lockup fclose(fHandle); }} new currAd = -1; public eventTask(){ //Go past all ads and check conditions for(new a = 0; a < adCount[NORM_AD]; a++) { //Put current ad to the next one currAd = currAd == adCount[NORM_AD] - 1 ? 0 : currAd + 1;  if(checkConditions(currAd, NORM_AD)) { //Display the ad new data[3]; data[0] = currAd; data[1] = NORM_AD; data[2] = 0; displayAd(data);  break; } }  //Set a new task set_task(random_float(RAND_MIN, RAND_MAX), "eventTask");  return PLUGIN_CONTINUE;} public eventSay(id){ //If nothing is said, don't check if(adCount[SAY_AD] == 0) return PLUGIN_CONTINUE;  new talk[64], keyword[16]; read_args(talk, 63) ;  //En nu rennen voor jullie zakgeld klootzjakken! for(new a = 0; a < adCount[SAY_AD]; a++) { //Get the string getString(STORE, SAY_AD, keyword, 15, a, 0);  if(containi(talk, keyword) != -1) { //Check the rest if it fails to conditions if(!checkConditions(a, SAY_AD)) continue;  new data[3]; data[0] = a; data[1] = SAY_AD; data[2] = id;  //Set the task set_task(0.3, "displayAd", 0, data, 3);  //Don't execute more of them break; } }  return PLUGIN_CONTINUE;} public displayAd(params[]){ //Get the string that is going to be displayed new message[128]; getString(STORE, params[1], message, 127, params[0], params[1]);  //If its enabled by cvar and id is set, display to person who triggered message only if(get_cvar_num("ad_react_all") == 0 && params[2] != 0) { message_begin(MSG_ONE, gmsgSayText, {0,0,0}, params[2]); write_byte(params[2]); write_string(message); message_end();  } else { //Display the message to everyone new plist[32], playernum, player;  get_players(plist, playernum, "c");  for(new i = 0; i < playernum; i++) { player = plist;  message_begin(MSG_ONE, gmsgSayText, {0,0,0}, player); write_byte(player); write_string(message); message_end(); } }  return PLUGIN_HANDLED;} //---------------------------------------------------------------------------// STOCKS//--------------------------------------------------------------------------- stock checkConditions(a, type){ //Mapname if((type == NORM_AD && normConditions[a][0][0]) || (type == SAY_AD && sayConditions[a][0][0])) { new mapname[32]; get_mapname(mapname, 31);  if(! (type == NORM_AD && equali(mapname, normConditions[a][0]) ) || (type == SAY_AD && equali(mapname, sayConditions[a][0]) ) ) return false; }  //Min Players if((type == NORM_AD && normConditions[a][1][0]) || (type == SAY_AD && sayConditions[a][1][0])) { new playersnum = get_playersnum();  if( (type == NORM_AD && playersnum < str_to_num(normConditions[a][1]) ) || (type == SAY_AD && playersnum < str_to_num(sayConditions[a][1]) ) ) return false; }  //Max Players if((type == NORM_AD && normConditions[a][2][0]) || (type == SAY_AD && sayConditions[a][2][0])) { new playersnum = get_playersnum();  if( (type == NORM_AD && playersnum > str_to_num(normConditions[a][2]) ) || (type == SAY_AD && playersnum > str_to_num(sayConditions[a][2]) ) ) return false; }  //If everything went fine, return true return true;}  stock setColor(string[], len){ if (contain(string, "!t") != -1 || contain(string, "!g") != -1 || contain(string,"!n") != -1) { //Some nice shiny colors ^^ replace_all(string, len, "!t", "^x03"); replace_all(string, len, "!n", "^x01"); replace_all(string, len, "!g", "^x04");  //Work away a stupid bug format(string, len, "^x01%s", string); }} stock getString(mode, type, string[], len, one, two = 0){ //server_print("mode: %d type: %d len: %d one: %d two %d", mode, type, len, one, two);  //Uses the fact that a string is passed by reference if(mode == COND) { if(type == NORM_AD) { copy(string, len, normConditions[one][two]); } else//if(type = SAY_AD) { copy(string, len, sayConditions[one][two]); } } else//if(mode == STORE) { if(type == NORM_AD) { copy(string, len, normStore[one]); } else//if(type == SAY_AD) { copy(string, len, sayStore[one][two]); } }} stock setString(mode, type, string[], one, two = 0){ if(mode == COND) { if(type == NORM_AD) { copy(normConditions[one][two], 31, string); } else//if(type = SAY_AD) { copy(sayConditions[one][two], 31, string); } } else//if(mode == STORE) { if(type == NORM_AD) { copy(normStore[one], 127, string); } else//if(type == SAY_AD) { copy(sayStore[one][two], 127, string); } }}
Előre is köszönöm!


A hozzászólást 2 alkalommal szerkesztették, utoljára ZiT3K 2021.02.13. 03:51-kor.

Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: AUTOMATIKUS HÍRDETŐ ÁTÍRÁS HELP
HozzászólásElküldve: 2013.12.21. 14:12 
Offline
Jómunkásember
Avatar

Csatlakozott: 2012.11.14. 15:20
Hozzászólások: 449
Megköszönt másnak: 80 alkalommal
Megköszönték neki: 19 alkalommal
advertisements.ini-be kell beleírni!
tehát advertisements.ini-be:
!gTeszt1 !nCounter !t1.6
!gTeszt2 !nCounter !t1.6
!gTeszt3 !nCounter !t1.6

_________________
Kép

Ők köszönték meg Gatshow nek ezt a hozzászólást: ZiT3K (2013.12.21. 14:47)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: AUTOMATIKUS HÍRDETŐ ÁTÍRÁS HELP
HozzászólásElküldve: 2013.12.21. 14:40 
Offline
Lelkes
Avatar

Csatlakozott: 2013.12.06. 18:31
Hozzászólások: 15
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 4 alkalommal
Nem tudom h mit szeretnél az sma-val.
Ahogy már az előbb leírták, "advertisements.ini" ben van a megoldás! :)
1 Kiss Segítség.
;[kozep]Használat:
; !g - tedd a szöveg elé ha azt akarod hogy zöldel irja
; !t - tedd a szöveg elé ha azt akarod hogy a csapatod színével irja
; !n - tedd a szöveg elé ha azt akarod hogy sárgával irja[/kozep]

Gomb ha már érted! :)
Példa:
!g[HLMOD.HU] !tA legjobb !nFórum
Enyi:D

Ők köszönték meg Konfigos nek ezt a hozzászólást: ZiT3K (2013.12.21. 14:48)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: AUTOMATIKUS HÍRDETŐ ÁTÍRÁS HELP
HozzászólásElküldve: 2013.12.21. 14:52 
Offline
Jómunkásember
Avatar

Csatlakozott: 2013.12.15. 19:13
Hozzászólások: 495
Megköszönt másnak: 289 alkalommal
Megköszönték neki: 14 alkalommal
Gondoltam, hogy az advertisements.ini-ben kellene átírni csak ott nem CSAK példák voltak, amiket csak át kellett volna írnom. Így fordultam az SMA felé, de ott sem találtam olyasmit, ahol szöveget lehetne írni. Végül kértem segítséget. Még azt mondjátok el hol tudom beállítani az azt, hogy a szövegek között mennyi idő teljen el?

IGAZ! :D


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: AUTOMATIKUS HÍRDETŐ ÁTÍRÁS HELP
HozzászólásElküldve: 2013.12.21. 17:17 
Offline
Lelkes
Avatar

Csatlakozott: 2013.12.06. 18:31
Hozzászólások: 15
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 4 alkalommal
//*Hirdetési idő*\\
RAND_MIN = 60.0 - //Menyi idő tejen le minimum a hirdetések közöt.
RAND_MAX = 80.0 - //Menyi idő teljen le maximum a hirdetések közöt.

;)
Gomb :D

Ők köszönték meg Konfigos nek ezt a hozzászólást: ZiT3K (2013.12.21. 18:04)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 5 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 17 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole