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

Pomoc z pluginem, wytłumaczenie kilku rzeczy.


  • Zamknięty Temat jest zamknięty
1 odpowiedź w tym temacie

#1 Piotreq183

    Banned

  • Zbanowany

Reputacja: 14
Początkujący

  • Postów:43
  • GG:
  • Lokalizacja:Polska
Offline

Napisano 22.11.2013 20:06

Siemka, kiedyś próbowałem nauczyć się pisać w PAWN, jednak był to słomiany zapał, załapałem jedynie podstawy. Teraz znowu chcę spróbować. Dla treningu napisałem plugin. Jest to ruleta pod serwer z cod modem. Kompilować mi się nie chce. Nie potrafię tego naprawić. Chciałem prosić Was o pomoc, żebyście wyjaśnili co jest nie tak(nie chodzi mi, żeby plugin działał, bo i tak leci do śmietnika, po prostu chcę wiedzieć, jakie błędy popełniłem ;) ) Zarzucam kod SMA:

#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <fun>
#include <cstrike>

#define PLUGIN ""
#define VERSION ""
#define AUTHOR ""

new bool:uzyte[33] = false
new bool:losujacy[33] = false
public plugin_init()
{

    register_plugin("PLUGIN", VERSION, AUTHOR)
    register_clcmd("say /ruletka", "ruletka")
    register_clcmd("say_team /ruletka", "ruletka")
    register_event("HLTV", "reset_bool_uzyte", "a", "1=0", "2=0")
    register_event("DeathMsg", "ustawienie_losujacy_false", "a")
    register_logevent("sprawdzenie_losujacego", 2, "1=Round_Start")
}

public ruletka(id)
{
    new kasa = cs_get_user_money(id)
    new hp = get_user_health(id)
    new dodac_hp = ((hp/100)*20)
    new zabranie_hp = ((hp/100)*35)
    new exp = cod_get_user_level(id)
    new lvl = cod_get_user_level(id)
    new dodany_exp = cod_get_level_xp(lvl+1) - exp
    new odjety_exp = exp - cod_get_level_xp(lvl-1)
    if(uzyte[id]==true)
    {
        client_print(id, print_chat, "juz uzyles ruletki w tej rundzie")
    }
    if(uzyte[id]==false)
    {
        if(kasa < 6000)
        {
            client_print(id, print_chat, "masz za malo kasy")
        }
        
        if(kasa > 5999)
        {
            
            
            uzyte[id]=true
            
            cs_set_user_money(id, kasa - 6000)
            
            switch(random_num(1, 10))
        case 1:
            {
                set_user_health(id, hp+dodac_hp)
                client_print(id, print_chat, "Wylosowales zwiekszenie HP o 20%")
            }
        case 2:
            {
                set_user_health(id, hp - zabranie_hp)
                client_print(id, print_chat, "straciles 35% swojego HP")
            }
        case 3:
            {
                
                cod_give_weapon(id, CSW_AWP)
                cod_give_weapon(id, CSW_M4A1)
                client_print(id, print_chat, "dostajesz AWP i M4 dopoki nie zgineisz")
                
                losujacy[id] = true
            }
        case 4:
            {
                strip_user_weapons(id)
                client_print(id, print_chat, "cos zgubiles :)")
            }
        case 5:
            {
                cs_set_user_money(id, 16000)
                client_print(id, print_chat, "hajs sie sypie")
            }
        case 6:
            {
                new strata = random_num(1, 8000)
                cs_set_user_money(id, kasa - strata)
                client_print(id, print_chat, "straciles %d kasy", strata)
            }
        case 7:
            {
                cod_set_user_xp(id, exp + dodany_exp)
                client_print(id, print_chat, "zdobyles nowy poziom !")
            }
        case 8:
            {
                cod_set_user_xp(id, exp - odjety_exp)
                client_print(id, print_chat, "straciles jeden poziom ")
            }
        case 9:
            {
                set_user_health(id, 0)
                client_print(id, print_chat, "nie zyjesz")
            }
        case 10:
            {
                set_user_godmode(id, 1)
                set_task(8.0, "niesmiertelnosc", .flags="a", 1)
            }
            
        }
    }
}

public reset_bool_uzyte()
{
    new i
    for(i=0;i<33;i++)
    {
        uzyte[i] = false
    }
}



public ustawienie_losujacy_false(zabity)
{
    new zabity = read_data(1)
    losujacy[id] = false
}

public sprawdzenie_losujacego(id)
{
    if(losujacy[id] == false)
    {
        cod_take_weapon(id, CSW_M4A1)
        cod_take_weapon(id, CSW_AWP)
        
    }
}

public niesmiertelnosc(id)
{
    set_user_godmode(id, 1)

 

Oprócz tego co niezbędne, do poprawnego skompilowania pluginu, prosiłbym o jakieś rady na przyszłość które mogą się przydać ;)

Do tego jeszcze 2 pytania.

 

czy to:

    new kasa = cs_get_user_money(id)
    new hp = get_user_health(id)
    new dodac_hp = ((hp/100)*20)
    new zabranie_hp = ((hp/100)*35)
    new exp = cod_get_user_level(id)
    new lvl = cod_get_user_level(id)
    new dodany_exp = cod_get_level_xp(lvl+1) - exp
    new odjety_exp = exp - cod_get_level_xp(lvl-1)

dałem w dobrym miejscu, zastanawiam się czy nie powinno być

public ruletka(id)

TUTAJ

{

 

I drugie pytanie. Czy zmienna użyta w pętli for musi nazywać się "i", czy można użyć inną literę/wyraz, bo jak zauważyłem, to chyba, każdy daje "i" w tej pętli?

Oczywiście za pomoc lecą plusiki ;)

 

@edit

Jeszcze jedno pytanie przypomniało mi się. Uważacie, że jest sens dawać takie nazwy publiców jak ja, chodziło mi o to, żeby od początku wpajać sobie pewne nawyki, żeby np. w przyszłości pisząc duży plugin czy mod nie pogubić się w tych wszystkich publicach i łatwiej było na nich operować ;)


Użytkownik Piotreq183 edytował ten post 22.11.2013 20:09


#2 TibacK

    Diler pod gimnazjum dla niepełnosprawnych dzieci

  • Power User

Reputacja: 466
Wszechobecny

  • Postów:2448
Offline

Napisano 22.11.2013 21:18

co do for to mozesz dac inna zmienna. i jest to najprawdopodobniej integer czyli liczba calkowita (bylo to gdzies na kursie programowania :/)
a co do publicow to mysle ze na poczatek mozna dak dawac. Jednak jest to meczace takie pisanie dlugich nazw. Dlatego ja uzywam nazw angielskich (krotsze), ale nie zawsze.

Co do kody to nie sprawdzalem.
  • +
  • -
  • 1

Sprzedam Paczkę CoD pod CS 1.6 (JEST WIELE WERSJI DO WYBORU TEJ PACZKI) na lvl od 201 - 601

Silnik (8 nowych statystyk, poprawiony zapis, dodatkowy exp, pozbyto się CurWeapon). Ponad 100 perków (do wyboru do koloru). Sklep, NOWE MISJE (QUESTY), premium i super premium, AUKCJE, KLANY, zapis nVault, 4 zestawy modeli bronii do wyboru!

JESTEŚ ZAINTERESOWANY KUPNEM? NAPISZ WIADOMOŚĆ DO MNIE!





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

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