Skocz do zawartości

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
 

PunisheR - zdjęcie

PunisheR

Rejestracja: 30.12.2010
Aktualnie: Nieaktywny
Poza forum Ostatnio: 31.03.2011 16:10
-----

#201459 Pierwszy plugin

Napisane przez GwynBleidD w 30.12.2010 19:48

1.
pod:
public ruletka(id)
{

dodaj:
if (get_systime()-last_used[id]<CZAS_OCZEKIWANIA){
client_print(id, print_chat, "Musisz odczekać jeszcze %d aby użyć ruletki", CZAS_OCZEKIWANIA-get_systime()+last_used[id])
return PLUGIN_HANDLED;
}
last_used[id] = get_systime();


pod:
#define AUTHOR "Mr.Cma"

dodaj:
new last_used[33] = 0


oraz dodaj funkcję:
public client_connect(id) {
last_used[id] = 0;
}


2.
Pod moją poprzednią edycją (pod last_used[id] = get_systime();) dodaj:
if (!is_user_alive(id) {
client_print(id, print_chat, "Nie możesz grać w ruletkę jak nie żyjesz");
return PLUGIN_HANDLED;
}


3. Spodziewam się że jakiś plugin podmienia zwykłe granaty na te, więc po prostu dodaj graczowi granata danego typu (jak np granat zamrażający jest zamiast smoke to daj graczowi smoke), np:
give_item(id, "weapon_hegrenade")

[dokumentacja]give_item[/dokumentacja] tu masz więcej o tym.
Jeśli plugin nie podmienia zwykłych granatów to pokaż mi jaki plugin to jest, bez tego nic nie zrobię, ale z tego co wiem to to jest niemożliwe żeby dodać taki granat

4. pętla for :) najlepiej zrobić sobie taką funkcję:
stock client_no_print(id, type, const message[], any:...)
static msg[512];
vformat(msg, charsmax(msg), message, 4)
new players[32], num;
for (new i=0; i<num; i++) {
new aid = players[i];
if (aid == id)
continue;
client_print(aid, type, msg);
}
}

Funkcja działa bardzo prosto: wysyła wiadomość wszystkim, oprócz gracza o określonym ID. Jeśli jako ID podamy 0 lub jakiś nieistniejący numer (np 666) to wiadomość wyświetli się wszystkim. Jedyny limit, wiadomość może mieć max 512 znaków(właściwie to 511 bo jeden znak zajmuje null), ale można to zmienić prosto w jednym miejscu :)
Następnie upewniasz się że wszystkie client_print w funkcji ruletki wyglądają tak: client_print(id, ................... po to, żeby graczowi wyświetlana była ta wiadomość, następnie pod tym client print gdzie chcesz innych poinformować że dany gracz wylosował to to i to dodajesz:
new nick[36];
get_user_name(id, nick, charsmax(nick));
client_no_print(id, print_chat, "Gracz %s wylosował kupę", nick);

Gdzie kupę sobie zmieniasz na to co aktualnie wylosował :)

Mam nadzieję, że napisałem zrozumiale.
  • +
  • -
  • 2