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
 

KoZaK_Pl - zdjęcie

KoZaK_Pl

Rejestracja: 15.04.2011
Aktualnie: Nieaktywny
Poza forum Ostatnio: 15.01.2012 10:00
-----

#347616 [ROZWIĄZANE] Pomoc przy zadaniu z VI OIG

Napisane przez R3X w 10.01.2012 18:56

jeśli maksymalny y=6, minimalny y=-6 to wysokość równa się 6-(-6) = 12

w każdym kroku musisz zapisać:
maksymalny = max( maksymalny , aktualny )
minimalny = min( minimalny , aktualny )

to samo dla drugiej osi i będziesz miał szerokość
  • +
  • -
  • 1


#347277 [ROZWIĄZANE] Pomoc przy zadaniu z VI OIG

Napisane przez R3X w 09.01.2012 22:46

To jest coś w rodzaju języka programowania, masz napisać parser. Stwórz 2 zmienne na pozycje, przyjmij (całkiem słusznie) że S = -N, E = -W i będziesz miał współrzędne Podróżnika w każdym kroku. Potrzebna będzie plansza o wymiarach: (max(pion) - min(pion)) x (max(poziom) - min(poziom))
  • +
  • -
  • 3


#347261 [ROZWIĄZANE] Pomoc przy zadaniu z VI OIG

Napisane przez G[o]Q w 09.01.2012 22:12

jak dla mnie to musisz policzyć liczbe N'ow , S'ow , E'ow , W'ow :D

i potem tak

jesli liczba eN'ow jest mniejsza od liczby eS'ów to wysokosc=eN + (eS-eN)
jesli liczba eSów jest mniejsza od liczby eN'ów to wysokosc=eS+(eN-eS)
jesli te liczby są równe to wysokość = liczba eN'ów


tak na szybko

ale mozesz tez zrobić 2 zmienne wysokośc i szerokość i 4 zmienne tymczasowe na max wys i szer oraz min wys i szer

i jak masz eN to zwiekszasz wysokość jesli S to zmniejszasz wysokość potem porównujesz z maxem zeby mieć max wys i min wysokość potem suma modułów i masz wysokość mapy to samo z szerokością

troche zagmatwane ale da sie zrozumieć
  • +
  • -
  • 1


#346715 [ROZWIĄZANE] Problem z pętlą i licznikiem.

Napisane przez R3X w 08.01.2012 19:12

Po pierwsze tu jest błąd (niefortunnie postawiony średnik)
while(tab[0]!=tab2[licznik]);
{
    licznik++;
}

Po drugie jeśli to nie załatwi sprawy powiedz co ma robić ten program :)
  • +
  • -
  • 1


#346610 Elektromagnes

Napisane przez robaloss w 08.01.2012 16:03

#include <amxmodx>
#include <codmod>
#include <fakemeta>
#include <hamsandwich>

new const perk_name[] = "Elektromagnes Militarny";
new const perk_desc[] = "Co runde mozesz polozyc elektromagnes. Pole dzialania zalezne od inteligencji";



new bool:ma_perk[33]; // on nam będzie włączać/wyłączać item
new pozostale_elektromagnesy[33];

new pcvar_ilosc_elektromagnesow, pcvar_zasieg, pcvar_czas_dzialania, pcvar_widocznosc_fali;


public plugin_init()
{ //TUTAJ ZOSTAWIAMY TAK JAK JEST,
	    register_plugin(perk_name, "1.0", "QTM_Peyote");
    
	    register_event("ResetHUD", "ResetHUD", "abe");
	    
	    cod_register_perk(perk_name, perk_desc);

	    register_plugin(perk_name, "1.0", "Niewiem xD poprostu go mam");
        pcvar_ilosc_elektromagnesow = register_cvar("cod_magnets", "1");
        pcvar_zasieg = register_cvar("cod_magnetradius", "250");
        pcvar_czas_dzialania = register_cvar("cod_magnettime", "14");

}
public cod_perk_enabled(id)
{
	    ma_perk[id] = true
}

public cod_perk_disabled(id)
{
	    ma_perk[id] = false
}

public UzyjElektromagnes(id)
{
if(!ma_perk[id]){

if (pozostale_elektromagnesy[id] < 1)
    {
		 client_print(id, print_center, "Wykorzystales juz elektromagnes!");
		 return PLUGIN_CONTINUE;
    }
    
    pozostale_elektromagnesy[id]--;
    
    new Float:origin[3];
    entity_get_vector(id, EV_VEC_origin, origin);
    
    new ent = create_entity("info_target");
    entity_set_string(ent, EV_SZ_classname, "magnet");
    entity_set_edict(ent, EV_ENT_owner, id);
    entity_set_int(ent, EV_INT_solid, SOLID_NOT);
    entity_set_vector(ent, EV_VEC_origin, origin);
    entity_set_float(ent, EV_FL_ltime, halflife_time() + get_pcvar_num(pcvar_czas_dzialania) + 3.5);
    
    
    entity_set_model(ent, "models/QTM_CodMod/electromagnet.mdl");
    drop_to_floor(ent);
    
    emit_sound(ent, CHAN_VOICE, "weapons/mine_charge.wav", 0.5, ATTN_NORM, 0, PITCH_NORM );
    emit_sound(ent, CHAN_ITEM, "weapons/mine_deploy.wav", 0.5, ATTN_NORM, 0, PITCH_NORM );
    
    entity_set_float(ent, EV_FL_nextthink, halflife_time() + 3.5);
    
    return PLUGIN_CONTINUE;
}
 

Poprawi ktoś?
  • +
  • -
  • 1


#336024 [5.9l] Kilkakrotne zjadanie zwłok nekromantą

Napisane przez mianod w 18.12.2011 13:22

mam takie pytanie wiem ze nie na temat ale powie mi ktos jak dodac dlugi skok do iinej klasy tak aby jak nacisne ctrl przez 3 ek daleko poleci
  • +
  • -
  • 0


#334424 PIerszenstwo pluginow

Napisane przez Lelek w 14.12.2011 21:50

Powinno działać ;)

Spoiler


tego za free usun z plugins ini</engine></fakemeta_util></cstrike></hamsandwich></amxmodx>

Załączone pliki


  • +
  • -
  • 0


#320004 Vectory - tutorial.

Napisane przez ExBiT w 10.11.2011 16:55

Witam.
Na wstępie powiem, że jest to mój pierwszy poradnik na tym forum, więc " DO NOT BE TOO CRUDE".

Vectory - cóż to takiego? Otóż wektor reprezentuje zwykłą tablicę. Jest on jednak wyposażony w kilka dodatkowych funkcji ułatwiających nam jego mordernizację i dynamiczne zarządzanie.

1. Tworzenie.

Inicjacja wektorów w c++ jest dość prosta i działa według argumentacji:

vector <typ> nazwa;


Jako typ oznaczamy standardowe zmienne w c++. Może to być zmienna zmiennoprzecinkowa, całkowita, bądź też tekstowa.

W owym poradniku vectory podzielimy na 3 części (nazewnictwo własne):

a) puste,
B) optymalizujące,
c) optymalizująco-wartościowe.

Żaden z tych typów nie ma wielkiej rozbierzności w ogólnej deklaracji.
Wyżej przedstawione wektory tworzymy w następujący sposób(do opisu ich działania przejdziemy niżej):

a) vector <typ> nazwa;
B) vector <typ> nazwa(wielkość_tablicy);
c) vector <typ> nazwa(wielkosc_tablicy, wartosc_liczbowa_bądź_tekstowa_przyjmowana_przez_każdy_element);

- Wektor pusty nie ogranicza nas objętościowo. Możemy wrzucić do niego tyle elementów, ile nam jest do szczęścia potrzebne.
- Wektor optymalizujący podobnie jak ten opisany wyżej nie nakłada na nas jakichś zakazów działania na tablicach. Jego deklaracji jednakże używamy w szczególnych przypadkach, np. gdy chcemy od razu zarezerwować pewną ilość pamięci.
- Działanie tablicy optymalizująco-wartościowej jest również podobne do poprzedników. Jednakże deklarując wartość odwołujemy się do każdego elementu w tablicy. Jako przykład damy prosty vector, a niżej opiszemy jego działanie dokładniej:

vector <int> tab(99, 9);


Przy takej deklaracji, każdy z 99 elementów vectora będzie posiadał już z góry ustaloną wartość - 9.
Ciekawie jest, jeżeli za typ podamy zmienną tekstową. Wtedy element posiadał będzie ustaloną wartość w postaci tekstu. Przykład:

vector <string> tab(99, "Pozdrawiam amxx.pl"); 


2. Dynamiczne zarządzanie wektorem.

Jak już się możnabyło przekonać, wektory nie tylko są wygodne w użyciu, ale także możemy łatwo nimi "manipulować". Mówiąc "manipulować" mam na myśli łatwe zarządzanie danymi w nim umieszczonymi, lecz nie tylko. Każda funkcja wymaga od nas również odpowiedniej składni:

 nazwa_wektora.funkcja();


a) Dodawanie elementów.

Vector daje nam możliwość wyboru fukncji, z której chcemy korzystać. Mamy je 2, ale to już zawsze coś.
Pierwsza, czyli ta, od której zaczniemy to

push_back();


Daje nam on niestety możliwość dodawania elementów do wektora na sam koniec. Mimo tego jest on dość często używany, w szególnośći przy wypełnianiu tzw. pustych wektorów, o których już wcześniej była mowa. Bardzo dobrze komponuje się z pętlą for. Jeżeli komuś bardziej podoba się ta metoda, to odsyłam do dokumentacji - vector::push_back - C++ Reference

Drugą opcją przy dodawaniu elementów jest metoda insert - vector::insert - C++ Reference Ta jest zdecydowanie częściej stosowana, gdyż pozwala ona nam na swobodne operowanie umiejscowieniem i ilością dodanych elementów.

B) Usuwanie elementów.

Na wymazywanie(eng. erase) elementów położonych w wektorze pozwala nam funkcja:

erase();


Jest ona łatwa w obsłudze, gdyż może przyjmować 2 lub 1 argument. Zastosowanie jedno-argumentowe tej funkcji polega na przekazaniu erase lokacji/położenia elementu. Natomiast drugi sposób umożliwia usuwanie z przedziału od a do b.

Oczywiście wektory mają jeszcze więcej bardzo ciekawych zastosowań, lecz ja starałem się wymienić tylko te najważniejsze. Dla bardziej zainteresowanych umieszam dokumentację - vector - C++ Reference Stronka świetnie oddaje możliwośći wektorów wraz z przykładami.

Myślę już , że przy pojedynku tablica versus wektor, wybierzecie ten drugi ;]
Pozdrawiam, ExBiT
  • +
  • -
  • 5


#319945 Problem z zadaniem - Spoj.pl

Napisane przez ExBiT w 10.11.2011 14:38

Łap moje wypociny. Co prawda dla standardowego OP działa, lecz nie wiem, jak to jest przy dodatkowych testach.

#include <iostream>
    #include <string>
    #include <sstream>

    using namespace std;

    class Wynik {
    public:
	   string pal;
	   int dod;

	   void show()
	   {
		  cout << pal << " " << dod << '\n';
	   }
    };

    string reverse(string wyraz)
    {
	   char c;
	   int j = wyraz.length() - 1;
		  
	   for(int i = 0; i < j; i++, j--) {
		   c = wyraz[i];
		   wyraz[i] = wyraz[j];
		   wyraz[j] = c;
	    }
		  
	   return wyraz;   
    }

    int main() {
	   int t, n, p, id;
	   string txt;
	   Wynik w[1000];

	   cin >> t;
	   for(int i = 0; i < t; i++) {
		  cin >> n;
		  
		  ostringstream kon;
		  kon << n;
		  txt = kon.str();

		  id = 0;
		  while(txt != reverse(txt) && ++id) {
			 istringstream kon2(reverse(txt));
			 kon2 >> p;
			 n += p;
			 ostringstream kon3;
			 kon3 << n;
			 txt = kon3.str();
		  }
		  w[i].pal = txt;
		  w[i].dod = id;
	   }

	   for(int i = 0; i < t; i++)
		  w[i].show();

	   cin.sync();
	   cin.get();

	   return 0;
    }

  • +
  • -
  • 1


#313141 [ROZWIĄZANE] Wielkość tablicy.

Napisane przez DarkGL w 25.10.2011 15:19

tablica liczbowa jest odrazu przy tworzeniu zerowana więc wszystkie jej pola są odrazu zajęte chyba że uznamy iż pole o wartości 0 uznajemy za niezajęte ale do zliczenia takich pól to już funkcje potrafisz sobie napisać
  • +
  • -
  • 1


#312868 [ROZWIĄZANE] Wielkość tablicy.

Napisane przez DarkGL w 24.10.2011 16:48

a w pawn robisz sizeof tablica i tyle :P
dla
new tab[63]
sizeof zwróci 63
dla
new tab[64][2];
sizeof zwróci 64
  • +
  • -
  • 1


#303602 Dzielenie dużych liczb.

Napisane przez R3X w 06.10.2011 13:59

'duże liczby' to zwykle takie, które nie mieszą się nawet na long int
  • +
  • -
  • 1