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
 

Zdjęcie

Kod pluginu na grawitację


Najlepsza odpowiedź Wielkie Jol, 23.11.2014 19:15

Tworzymy 33 elementową tablicę, by pomieścić wszystkich w niej graczy

new gravity[33];

 

Będzie ona przyjmowała wartość prawda/fałsz by sprawdzić, czy gracz już wpisał daną komendę.

 

Przy wpisywaniu komendy nasz plugin sprawdza, czy ta wartość jest ustawiona na prawdę czy na fałsz, dla każdej osoby osobno ( po to stworzyliśmy tę tablicę ).

Przy połączeniu gracza jest ona zawsze ustawiana na fałsz, jeżeli wcześniej nie przypisaliśmy ( np. przy funkcji client_putinserver ) wartości na true.

 

Czyli to wygląda tak:

 

new gravity[33]; // deklaracja 33 elementowej tablicy na pomieszczenie graczy 
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /g", "cmdgravity"); // rejestrujemy komende
}
 
public cmdgravity(id){ // po wpisaniu komendy odnosnik do funkcji
if(!is_user_alive(id)) // zeby miec pewnosc, ze martwy gracz nie bedzie ustawial sobie grawitacji
return;  // sprawdzamy czy zyje
if(!gravity[id]){ // tu sprawdzamy czy gracz o swoim wlasnym id ma wartosc gravity na false
set_user_gravity(id, 0.5); // tak ma na falsz - ustawiamy mu grawitacje.
gravity[id] = true; // mowimy pluginowi o tym, ze gracz uzyl komendy i ma juz ustawiona grawitacje zmniejszona
}
else { // w innym wypadku - wartosc bool przyjmuje tylko true / false, czyli teraz jest na true.
set_user_gravity(id, 1.0) // ustawiamy normalna grawitacje
gravity[id]=false;  // dajemy na falsz zmienna, by plugin znow wiedzial, ze zmienil sobie grawitacje na normalna.
}
}
Przejdź do postu


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

#1 v139

    Zaawansowany

  • Użytkownik

Reputacja: 4
Nowy

  • Postów:92
  • Lokalizacja:Ziemia
Offline

Napisano 23.11.2014 18:40

Cześć, napisałby ktoś taki prosty plugin? Sam się za niego zabrałem, ale za każdym razem błędy :/

Polegałby na tym, że po wpisaniu /g na czacie, ustawiałoby graczowi używającego tej komendy grawitację na 400, a po ponownym wpisaniu /g ustawiałoby na 800.

 


  • +
  • -
  • 0

#2 Wielkie Jol

    REPREZENTUJE SIEBIE I CAŁĄ GALAKTYKĘ

  • Support Team

Reputacja: 683
Wszechmogący

  • Postów:1 258
  • GG:
  • Lokalizacja:AMXX
Offline

Napisano 23.11.2014 18:59

/* Plugin generated by AMXX-Studio */
 
#include <amxmodx>
#include <amxmisc>
#include <fun>
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Wielkie Jol"
 
new gravity[33];
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /g", "cmdgravity");
}
 
public cmdgravity(id){
if(!is_user_alive(id))
return;
if(!gravity[id]){
set_user_gravity(id, 0.5);
gravity[id] = true;
}
else { 
set_user_gravity(id, 1.0)
gravity[id]=false; 
}
}

  • +
  • -
  • 1

"Żaden etyczny inżynier oprogramowania nie zgodzi się napisać procedury zniszczBagdad. Jego poczucie etyki domaga się, aby napisał procedurę zniszczMiasto, a Bagdad przekazał jako parametr" - Nathaniel Borenstein.


#3 v139

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 4
Nowy

  • Postów:92
  • Lokalizacja:Ziemia
Offline

Napisano 23.11.2014 19:02

Dzięki wielkie, a mógłbyś wyjaśnić co robi gravity[id]? Tylko tego nie rozumiem


  • +
  • -
  • 0

#4 Wielkie Jol

    REPREZENTUJE SIEBIE I CAŁĄ GALAKTYKĘ

  • Support Team

Reputacja: 683
Wszechmogący

  • Postów:1 258
  • GG:
  • Lokalizacja:AMXX
Offline

Napisano 23.11.2014 19:15   Najlepsza odpowiedź

Tworzymy 33 elementową tablicę, by pomieścić wszystkich w niej graczy

new gravity[33];

 

Będzie ona przyjmowała wartość prawda/fałsz by sprawdzić, czy gracz już wpisał daną komendę.

 

Przy wpisywaniu komendy nasz plugin sprawdza, czy ta wartość jest ustawiona na prawdę czy na fałsz, dla każdej osoby osobno ( po to stworzyliśmy tę tablicę ).

Przy połączeniu gracza jest ona zawsze ustawiana na fałsz, jeżeli wcześniej nie przypisaliśmy ( np. przy funkcji client_putinserver ) wartości na true.

 

Czyli to wygląda tak:

 

new gravity[33]; // deklaracja 33 elementowej tablicy na pomieszczenie graczy 
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /g", "cmdgravity"); // rejestrujemy komende
}
 
public cmdgravity(id){ // po wpisaniu komendy odnosnik do funkcji
if(!is_user_alive(id)) // zeby miec pewnosc, ze martwy gracz nie bedzie ustawial sobie grawitacji
return;  // sprawdzamy czy zyje
if(!gravity[id]){ // tu sprawdzamy czy gracz o swoim wlasnym id ma wartosc gravity na false
set_user_gravity(id, 0.5); // tak ma na falsz - ustawiamy mu grawitacje.
gravity[id] = true; // mowimy pluginowi o tym, ze gracz uzyl komendy i ma juz ustawiona grawitacje zmniejszona
}
else { // w innym wypadku - wartosc bool przyjmuje tylko true / false, czyli teraz jest na true.
set_user_gravity(id, 1.0) // ustawiamy normalna grawitacje
gravity[id]=false;  // dajemy na falsz zmienna, by plugin znow wiedzial, ze zmienil sobie grawitacje na normalna.
}
}

  • +
  • -
  • 1

"Żaden etyczny inżynier oprogramowania nie zgodzi się napisać procedury zniszczBagdad. Jego poczucie etyki domaga się, aby napisał procedurę zniszczMiasto, a Bagdad przekazał jako parametr" - Nathaniel Borenstein.


#5 v139

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 4
Nowy

  • Postów:92
  • Lokalizacja:Ziemia
Offline

Napisano 23.11.2014 22:23

Świetna odpowiedź, wielkie dzięki. Tablica może mieć dowolną nazwę?
  • +
  • -
  • 0

#6 Wielkie Jol

    REPREZENTUJE SIEBIE I CAŁĄ GALAKTYKĘ

  • Support Team

Reputacja: 683
Wszechmogący

  • Postów:1 258
  • GG:
  • Lokalizacja:AMXX
Offline

Napisano 23.11.2014 22:59

Jasne ale najlepiej by zmienne nazywaly to do czego sluza, gdyz przy większych projektach łatwo się pogubić
  • +
  • -
  • 0

"Żaden etyczny inżynier oprogramowania nie zgodzi się napisać procedury zniszczBagdad. Jego poczucie etyki domaga się, aby napisał procedurę zniszczMiasto, a Bagdad przekazał jako parametr" - Nathaniel Borenstein.


#7 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

  • Postów:1 500
  • Lokalizacja:Radom
Offline

Napisano 24.11.2014 00:30


Przy połączeniu gracza jest ona zawsze ustawiana na fałsz

Gdzie ? Nie widzę takiego kodu.

 

Ponadto jeśli wartość ma być tylko false/true to zmienną tworzymy typu bool, czyli:

new gravity[33]; 

powinno wyglądać tak:

new bool:gravity[33];

Użytkownik grankee edytował ten post 24.11.2014 00:31

  • +
  • -
  • 2




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

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