Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.

  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Pytanie dot. testu na 32 bit


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
8 odpowiedzi w tym temacie

#1 Ashenwall

    Nowy

  • Użytkownik

Reputacja: 0
zer0.

  • Postów:8
  • Lokalizacja:Wrocław
Offline

Napisano 29.02.2012 15:07

Nie jestem pewien czy to odpowiedni dział - jeśli tak nie jest, proszę o przeniesienie.

Mam pewien problem dot. testu na 32 bity.
Mam serwer, na którym zainstalowałem autorespawn i gunmenu (nie csdm, inne pluginy) i z przyczyn technicznych (nie będę tłumaczył o co chodzi) zainstalowany plugin Advanced Fog.
Przezornie chcę zainstalować test na 32 bity - gdzieś na forum znalazłem przrobiony tak, aby test wyświetlał się raz na mape. Wszystko działa pięknie, jednak menu odpowiedzi testu gryzie się z gunmenu - gunmenu włącza się zaraz po teście i gracze nie są w stanie tego testu wypełnić, co skutkuje kickiem.
Moje pytanie - czy jest jakaś możliwośc, żeby test wyświetlał się np. zaraz po wejściu na serwer, i jego wypełnienie byłoby warunkiem wejścia do któregoś z teamu? Ewentualnie czy któś z was spotkał się z inną możliwością rozwiązania takiego problemu?
Pozdrawiam.
  • +
  • -
  • 0

#2 Kolar`.

    Guru

  • Zbanowany

Reputacja: 0
zer0.

  • Postów:704
  • GG:
  • Imię:Kamil
  • Lokalizacja:Jastrzębie Zdrój
Offline

Napisano 29.02.2012 21:25

Użycie taska ?

#3 Ashenwall

    Nowy

  • Autor tematu
  • Użytkownik

Reputacja: 0
zer0.

  • Postów:8
  • Lokalizacja:Wrocław
Offline

Napisano 10.03.2012 18:32

Jak niby?
  • +
  • -
  • 0

#4 Nakupenda.

    Not yet YODA

  • Użytkownik

Reputacja: 136
Zaawansowany

  • Postów:451
  • Imię:Paweł
  • Lokalizacja:Warszawa
Offline

Napisano 10.03.2012 18:38

daj sma któregokolwiek pluginu
  • +
  • -
  • 0

#5 Ashenwall

    Nowy

  • Autor tematu
  • Użytkownik

Reputacja: 0
zer0.

  • Postów:8
  • Lokalizacja:Wrocław
Offline

Napisano 10.03.2012 18:55

Niech to będzie .sma pluginu testu na 32 bity.


/***************************************************

This plugin is to test if players have set 32-bit.

Multiple pictures are show to each player and he or she needs to
choose proper one (in menu). If player does not choose properly
after X tries he or she is disconnected. Pictures are show after
the player dies, not to disturb the gameplay.

CVARs (default):
32bit_max_tries "2"
32bit_immunity_flag ""

Plugin is using "data/lang/32bit_test.txt" language file.

***************************************************/

#pragma semicolon 1
#include <amxmodx>
#include <amxmisc>
#define TASKID 18923

new g_test_details[33][3];
new g_tested[33];
new g_tries[33];
new g_quick_test[33];
new g_immunity_flag;
new p_tested32bit[33];
new p_max_tries;
new p_immunity_flag;
new p_warmup_active; //this cvar is to prevent from testing players during warmup. When "amx_warmup_active" is "1" then tests do not occur (you can use it for custom warmup)

public plugin_init(){
register_plugin("32-bit test","2.0","Czesio");
register_dictionary("32bit_test.txt");

p_max_tries = register_cvar("32bit_max_tries", "2");
p_immunity_flag = register_cvar("32bit_immunity_flag", "");
p_warmup_active = register_cvar("amx_warmup_active", "0");

new tmp[32];
for(new i=1; i<33; i++){
formatex(tmp,31,"tested32bit_%d",i);
p_tested32bit[i] = register_cvar(tmp,"0");
g_tested[i] = get_pcvar_num(p_tested32bit[i]);
}

get_pcvar_string(p_immunity_flag, tmp, 31);
g_immunity_flag = read_flags(tmp);

register_menucmd(register_menuid("menu_start"), 511, "menu_start_handler");
register_menucmd(register_menuid("menu_a"), 511, "menu_a_handler");
register_menucmd(register_menuid("menu_b"), 511, "menu_b_handler");
register_menucmd(register_menuid("menu_c"), 511, "menu_c_handler");

return PLUGIN_CONTINUE;
}

public client_connect(id){
g_tries[id] = 0;
g_quick_test[id] = 0;
}

public test_player(id){
id -= TASKID;

if(get_pcvar_num(p_warmup_active))
return;

if(is_user_connected(id) && !is_user_bot(id) && !is_user_hltv(id) && g_tested[id] != get_user_userid(id)){
if(get_user_flags(id) & g_immunity_flag){
g_tested[id] = get_user_userid(id);
return;
}

g_tries[id]++;

if(g_tries[id] > get_pcvar_num(p_max_tries)){
test_failed(id);
}
else{
g_test_details[id][0] = random(8) + 1;
g_test_details[id][1] = random(8) + 1;
g_test_details[id][2] = random(8) + 1;
if(g_quick_test[id])
show_menu_test(id,0);
else
show_menu_start(id);
}
}
}

public menu_start_handler(id,key){
key++;
if(key == 1)
show_menu_test(id,0);
else if(key == 2)
kick_player(id);
else if(key == 4)
show_more_info(id);
else if(key == 5){
g_quick_test[id] = 1;
show_menu_test(id,0);
}
else
show_menu_start(id);
}

public menu_a_handler(id,key){
menu_test_handler(id, key, 0);
}
public menu_b_handler(id,key){
menu_test_handler(id, key, 1);
}
public menu_c_handler(id,key){
menu_test_handler(id, key, 2);
}

public menu_test_handler(id, key, stage){
key++;
if(key == 9)
show_menu_test(id, stage);
else if(stage == 2 && key == g_test_details[id][stage])
test_passed(id);
else if(key == g_test_details[id][stage])
show_menu_test(id, stage + 1);
else
test_failed(id);
}

public show_menu_start(id){
new menu_body[1000];
formatex(menu_body, 999, "\w%L^n^n\w1. %L^n\w2. %L^n^n\w4. %L^n\w5. %L", id, "WELCOME", id, "WELCOME_ANS1", id, "WELCOME_ANS2", id, "WELCOME_ANS4", id, "WELCOME_ANS5");
show_menu(id, 511, menu_body, -1, "menu_start");
}

public show_menu_test(id, stage){
new menu_body[1000];

if(stage == 0){
formatex(menu_body, 999, "\w%L^n^n\w1. A1^n\w2. A2^n\w3.\w A3^n\w4.\w A4^n\w5.\w A5^n\w6.\w A6^n\w7.\w A7^n\w8.\w A8^n^n\w9. %L", id, "CHOOSE_PICTURE", id, "SHOW_AGAIN");
show_menu(id, 511, menu_body, -1, "menu_a");
}
else if(stage == 1){
formatex(menu_body, 999, "\w%L^n^n\w1. B1^n\w2. B2^n\w3.\w B3^n\w4.\w B4^n\w5.\w B5^n\w6.\w B6^n\w7.\w B7^n\w8.\w B8^n^n\w9. %L", id, "CHOOSE_PICTURE", id, "SHOW_AGAIN");
show_menu(id, 511, menu_body, -1, "menu_b");
}
else{
formatex(menu_body, 999, "\w%L^n^n\w1. C1^n\w2. C2^n\w3.\w C3^n\w4.\w C4^n\w5.\w C5^n\w6.\w C6^n\w7.\w C7^n\w8.\w C8^n^n\w9. %L", id, "CHOOSE_PICTURE", id, "SHOW_AGAIN");
show_menu(id, 511, menu_body, -1, "menu_c");
}
if(!g_quick_test[id] || stage == 0)
do_motd(id, stage);
}

public show_more_info(id){
do_motd(id, -1);
show_menu_start(id);
}

public do_motd(id,stage){
new motd[2000];
new find_string[50];
new replace_string[50];

motd = "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd'><html><head><style type='text/css'>body{background:black;color:#fff;font:bold 16px Arial;text-align:center;margin:0;padding:0}th,td{padding-top:4px}b,u{display:inline-block;width:16px;height:48px}td b{background:#808080}td u{background:#7f7f7f}th b{background:#878787}th u{background:#787878}</style><meta http-equiv='content-type' content='text/html;charset=UTF-8'/></head>";

if(stage != -1 && g_quick_test[id] == 0){
new c;
if(stage == 0)
c = 'A';
else if(stage == 1)
c = 'B';
else if(stage == 2)
c = 'C';

format(motd,1999,"%s<body><br/>%L<br/><br/><table cellpadding='0' cellspacing='5' style='margin:0 auto'><tr><td>%c1<br><b></b><u></u><b></b></td><td>%c2<br><b></b><u></u><b></b></td><td>%c3<br><b></b><u></u><b></b></td><td>%c4<br><b></b><u></u><b></b></td><td>%c5<br><b></b><u></u><b></b></td><td>%c6<br><b></b><u></u><b></b></td><td>%c7<br><b></b><u></u><b></b></td><td>%c8<br><b></b><u></u><b></b></td></tr></table><br/>%L %d / 3</body></html>",motd,id,"DETAILS",c,c,c,c,c,c,c,c,id,"STAGE",stage+1);

formatex(find_string,49,"<td>%c%d<br><b></b><u></u><b></b></td>",c, g_test_details[id][stage]);
formatex(replace_string,49,"<th>%c%d<br><b></b><u></u><b></b></th>",c, g_test_details[id][stage]);
replace(motd, 1999, find_string, replace_string);
}
else if(stage != -1){
strcat(motd,"<body><table cellpadding='0' cellspacing='5' style='margin:0 auto'><tr><td>A1<br><b></b><u></u><b></b></td><td>A2<br><b></b><u></u><b></b></td><td>A3<br><b></b><u></u><b></b></td><td>A4<br><b></b><u></u><b></b></td><td>A5<br><b></b><u></u><b></b></td><td>A6<br><b></b><u></u><b></b></td><td>A7<br><b></b><u></u><b></b></td><td>A8<br><b></b><u></u><b></b></td></tr>",1999);
strcat(motd,"<tr><td>B1<br><b></b><u></u><b></b></td><td>B2<br><b></b><u></u><b></b></td><td>B3<br><b></b><u></u><b></b></td><td>B4<br><b></b><u></u><b></b></td><td>B5<br><b></b><u></u><b></b></td><td>B6<br><b></b><u></u><b></b></td><td>B7<br><b></b><u></u><b></b></td><td>B8<br><b></b><u></u><b></b></td></tr>",1999);
strcat(motd,"<tr><td>C1<br><b></b><u></u><b></b></td><td>C2<br><b></b><u></u><b></b></td><td>C3<br><b></b><u></u><b></b></td><td>C4<br><b></b><u></u><b></b></td><td>C5<br><b></b><u></u><b></b></td><td>C6<br><b></b><u></u><b></b></td><td>C7<br><b></b><u></u><b></b></td><td>C8<br><b></b><u></u><b></b></td></tr></table></body></html>",1999);

formatex(find_string,49,"<td>A%d<br><b></b><u></u><b></b></td>",g_test_details[id][0]);
formatex(replace_string,49,"<th>A%d<br><b></b><u></u><b></b></th>",g_test_details[id][0]);
replace(motd,1999,find_string,replace_string);

formatex(find_string,49,"<td>B%d<br><b></b><u></u><b></b></td>",g_test_details[id][1]);
formatex(replace_string,49,"<th>B%d<br><b></b><u></u><b></b></th>",g_test_details[id][1]);
replace(motd,1999,find_string,replace_string);

formatex(find_string,49,"<td>C%d<br><b></b><u></u><b></b></td>",g_test_details[id][2]);
formatex(replace_string,49,"<th>C%d<br><b></b><u></u><b></b></th>",g_test_details[id][2]);
replace(motd,1999,find_string,replace_string);
}
else{
format(motd,1999,"%s<body><br/>%L</body></html>", motd, id, "MORE_INFO");
}

show_motd(id, motd, "32-bit test");
}

public test_passed(id){
g_tested[id] = get_user_userid(id);
set_pcvar_num(p_tested32bit[id], g_tested[id]);
client_print(id,print_chat,"[TEST] %L",LANG_PLAYER,"TEST_OK");
}

public test_failed(id){
if(g_tries[id] >= get_pcvar_num(p_max_tries)){
kick_player(id);
}
else{
if(get_pcvar_num(p_max_tries) - g_tries[id] == 1)
client_print(id,print_chat,"[TEST] %L",LANG_PLAYER,"TEST_BAD_1_TRY_LEFT",get_pcvar_num(p_max_tries) - g_tries[id]);
else
client_print(id,print_chat,"[TEST] %L",LANG_PLAYER,"TEST_BAD",get_pcvar_num(p_max_tries) - g_tries[id]);
}
}

public kick_player(id){
server_cmd("kick #%d 16-bit video", get_user_userid(id));
}

  • +
  • -
  • 0

#6 Nakupenda.

    Not yet YODA

  • Użytkownik

Reputacja: 136
Zaawansowany

  • Postów:451
  • Imię:Paweł
  • Lokalizacja:Warszawa
Offline

Napisano 10.03.2012 19:16

if(g_quick_test[id])
show_menu_test(id,0);
else
show_menu_start(id);


zamień na

set_task(4.0, "show_menu_start", id)
  • +
  • -
  • 0

#7 Ashenwall

    Nowy

  • Autor tematu
  • Użytkownik

Reputacja: 0
zer0.

  • Postów:8
  • Lokalizacja:Wrocław
Offline

Napisano 10.03.2012 20:01

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2006 ITB CompuPhase, AMX Mod X Team

Error: Invalid function or declaration on line 1
Error: Invalid function or declaration on line 3
Error: Invalid function or declaration on line 5
Error: Invalid function or declaration on line 10
Error: Invalid function or declaration on line 11
Error: Invalid function or declaration on line 14
Error: Invalid function or declaration on line 16
Error: Expected token: ";", but found "}" on line 87
Warning: Symbol is never used: "CVARs" on line 225

8 Errors.
Could not locate output file .../32bit_test.amx (compile failed).


  • +
  • -
  • 0

#8 Nakupenda.

    Not yet YODA

  • Użytkownik

Reputacja: 136
Zaawansowany

  • Postów:451
  • Imię:Paweł
  • Lokalizacja:Warszawa
Offline

Napisano 10.03.2012 21:24

usuń #pragma semicolon 1
  • +
  • -
  • 0

#9 Ashenwall

    Nowy

  • Autor tematu
  • Użytkownik

Reputacja: 0
zer0.

  • Postów:8
  • Lokalizacja:Wrocław
Offline

Napisano 10.03.2012 23:11

Kompiluje się, ale testu nie wyświetla w czasie gry.
  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych