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

Problem Invalid function or declaration


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

#1 GabrieL

    Zaawansowany

  • Zbanowany

Reputacja: 6
Nowy

  • Postów:137
  • Imię:Gabriel
  • Lokalizacja:Grudziądz
Offline

Napisano 18.07.2012 01:01

Siemka. Zrobiłem swoją testową ruletkę i mam problem przy kompilowaniu .

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <fun>

#define PLUGIN "Ruletka_FFA"
#define VERSION "1.0"
#define AUTHOR "GabrieL"


public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("say /ruletka","rulcia");
}

public rulcia(id);
{
switch(random_num(1,4));
{
case 1;
{
client_print(id,print_chat,"Ha ! Ha ! Ha ! Zostalo Ci 1 HP !");
set_user_health(id,1);
}
case 2;
{
client_print(id,print_chat,"Gratulacje ! Dostales darmowe M4");
give_item(id,"weapon_m4a1");
give_item(id,"ammo_556nato");
}
case 3;
{
client_print(id,print_chat,"Twoja Grawitacja spada do 400!");
set_user_gravity (id, Float:gravity = 0.50);
}
case 4;
{
client_print(id,print_chat,"Masz 100hp !");
set_user_health(id,100);
}
}
}


Błąd przy kompilowaniu. [Wycinek]
Spoiler


#2 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 18.07.2012 03:04

switch(random_num(1,4));
Tam nie może być średnika

case 1;
Zamiast średnika należy użyć dwukropków dla wszystkich case`ów.

Warto także sprawdzić, czy gracz choćby żyje, a na początku nowej rundy np. przywrócić domyślną grawitację.

#3 GabrieL

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 6
Nowy

  • Postów:137
  • Imię:Gabriel
  • Lokalizacja:Grudziądz
Offline

Napisano 18.07.2012 11:07

Nadal ten sam błąd.

#4 GT Team

    Ten lepszy xD

  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1 435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Napisano 18.07.2012 11:28

Patrz na to :

public rulcia(id);
{


usuń średnik.

a tu :

case 4;


i w resztę : case, zamień na dwukropki

i tu :

switch(random_num(1,4));


też usuń średnik :]

P.S :


set_user_gravity (id, Float:gravity = 0.50);


ma być tak :

set_user_gravity(id, 0.50);

: ]

Użytkownik PaTrIcKx edytował ten post 18.07.2012 11:30

Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 


#5 GabrieL

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 6
Nowy

  • Postów:137
  • Imię:Gabriel
  • Lokalizacja:Grudziądz
Offline

Napisano 18.07.2012 11:38

Nadal to samo . :<
Spoiler


#6 GT Team

    Ten lepszy xD

  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1 435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Napisano 18.07.2012 11:42

Masz, nie zrobiłeś tego co mówiłem ...

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <fun>

#define PLUGIN "Ruletka_FFA"
#define VERSION "1.0"
#define AUTHOR "GabrieL"


public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("say /ruletka","rulcia");
}

public rulcia(id)
{
switch(random_num(1,4))
{
case 1:
{
client_print(id,print_chat,"Ha ! Ha ! Ha ! Zostalo Ci 1 HP !");
set_user_health(id,1);
}
case 2:
{
client_print(id,print_chat,"Gratulacje ! Dostales darmowe M4");
give_item(id,"weapon_m4a1");
give_item(id,"ammo_556nato");
}
case 3:
{
client_print(id,print_chat,"Twoja Grawitacja spada do 400!");
set_user_gravity (id, 0.50);
}
case 4:
{
client_print(id,print_chat,"Masz 100hp !");
set_user_health(id,100);
}
}

}



sprawdzałem, działa

Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 


#7 GabrieL

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 6
Nowy

  • Postów:137
  • Imię:Gabriel
  • Lokalizacja:Grudziądz
Offline

Napisano 18.07.2012 11:54

Dzięki :) masz + :>

Jeszcze jedno...
Jak zrobic Ograniczenie czasowe by mozna było uzywac ruletki co 180 sekund ?
mam taki kod :

if(rulcia,(id) + 180.0 > get_gametime())
{
client_print(id, print_center, "Ruletki możesz Uzywac Co 180 sekund");
return PLUGIN_CONTINUE;
}

Użytkownik GabrieL edytował ten post 18.07.2012 11:54


#8 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 18.07.2012 14:05

if jest funkcją jednoargumentową i służy sprawdzeniu, czy dany argument jest spełniony,

Możesz stworzyć tablicę globalną typu boolean i przechowywać w niej informację, czy dany gracz w ciągu ostatnich 180 sekund korzystał z ruletki, czy nie.

W momencie skorzystania danego gracza z ruletki, ustaw informację, że dany gracz ostatnio skorzystał z ruletki i stwórz taska, który po 180 sekundach zmieni informację na taką, że ostatnio gracz nie skorzystał z ruletki.
Możesz także zapisywać czas i go porównywać, jednak do tego i tak przydałaby się jakaś tablica globalna.

W momencie skorzystania z ruletki, musisz także sprawdzić, czy dany gracz może grać w ruletkę odpowiednio w zależności od wybranej metody zapisu informacji.

Tutaj przedstawię Ci przykład funkcji
#include <amxmodx>
#include <amxmisc>
#include <fun>

#define PLUGIN "Ruletka_FFA"
#define VERSION "1.0"
#define AUTHOR "GabrieL"

new Float:czasGrania[33]; // tablica globalna, przechowująca czas opstatniego użycia ruletki przez gracza

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("say /ruletka","rulcia");
}

public client_authorized(id){
czasGrania[id]=0.0;
}

public rulcia(id)
{
if(is_user_alive(id) && (czasGrania[id]+180.0<=get_gametime())){
czasGrania[id]=get_gametime();
switch(random_num(1,4))
{
case 1:
{
client_print(id,print_chat,"Ha ! Ha ! Ha ! Zostalo Ci 1 HP !");
set_user_health(id,1);
}
case 2:
{
client_print(id,print_chat,"Gratulacje ! Dostales darmowe M4");
give_item(id,"weapon_m4a1");
give_item(id,"ammo_556nato");
}
case 3:
{
client_print(id,print_chat,"Twoja Grawitacja spada do 400!");
set_user_gravity (id, 0.50);
}
case 4:
{
client_print(id,print_chat,"Masz 100hp !");
set_user_health(id,100);
}
}
}
}


#9 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 18.07.2012 15:03

Częściej ludzie korzystają z metody numer 1 o której benio wspomiał. Tworzy się też tablice przechowującą wartość prawda/fałsz (true/false) i po uzyciu ruletki tworzy sie taska na 180 sekund po tych 180 sekundach ustawia parametr na true . Kod mniej wiecej wyglada tak

#include <amxmodx>
#include <amxmisc>
#include <fun>
#define PLUGIN "Ruletka_FFA"
#define VERSION "1.0"
#define AUTHOR "GabrieL"
new bool:moze_uzyc[33];
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("say /ruletka","rulcia");
}
public client_authorized(id)
{
remove_task(id+7661)
moze_uzyc[id]=true;
}
public rulcia(id)
{
if(is_user_alive(id) && moze_uzyc[id]) // sprawdz czy jest zywy i moze uzyc ruletki
{
  switch(random_num(1,4))
  {
   case 1:
   {
    client_print(id,print_chat,"Ha ! Ha ! Ha ! Zostalo Ci 1 HP !");
    set_user_health(id,1);
   }
   case 2:
   {
    client_print(id,print_chat,"Gratulacje ! Dostales darmowe M4");
    give_item(id,"weapon_m4a1");
    give_item(id,"ammo_556nato");
   }
   case 3:
   {
    client_print(id,print_chat,"Twoja Grawitacja spada do 400!");
    set_user_gravity (id, 0.50);
   }
   case 4:
   {
    client_print(id,print_chat,"Masz 100hp !");
    set_user_health(id,100);
   }
  }
  moze_uzyc[id] = false; // uzyl - teraz nie bedzie mogl uzywac
  set_task(180.0,"MozeUzyc_h",id+7661) // za 180.0 sekund bedzie mogl
}
else
  client_print(id,print_chat,"Juz ruletku uzyles albo jestes niezywy");

}
public MozeUzyc_h(id)
{
id-=7661;
moze_uzyc[id] = true; // ustawiamy graczowi ze moze korzystac
client_print(id,print_chat,"Juz mozesz uzyc ruletki"); // i go informujemy
}

  • +
  • -
  • 0

#10 GabrieL

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 6
Nowy

  • Postów:137
  • Imię:Gabriel
  • Lokalizacja:Grudziądz
Offline

Napisano 19.07.2012 11:50

A jak zrobić Grawitacje na czas ?
dodałem #define TIME 30
new TIME [30]
i w case * [grawitacji]
dodałem set_user_gravity(id,0.50,TIME)
Niestety sie nie kompiluje :(

#11 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 19.07.2012 11:56

W funkcji set_user_gravity nie ma parametru TIME, nie możesz od tak sobie go dodać.
Zmień grawitację i ustaw task na 30 sekund, który po tym czasie ponownie zmieni grawitację na normalną.

#12 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 19.07.2012 12:26

polecam zajrzeć do Dokumentacji wpisać funkcje jaką chce się użyć i jakie ma parametry. - nic na siłę. ;)
  • +
  • -
  • 0




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

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