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

[ROZWIĄZANE] Kary JailBreak.


  • Zamknięty Temat jest zamknięty
13 odpowiedzi w tym temacie

#1 WeBsteR

    Wszechwidzący

  • Użytkownik

Reputacja: 57
Pomocny

  • Postów:297
  • Imię:dawid
  • Lokalizacja:Rzeszów
Offline

Napisano 13.02.2015 13:05

Witam.

Mógłby mi ktoś pokazać jak dodać kary do silnika JailBreak.

Chcę aby nad napisem: Dzien numer - dzień tygodnia (czyli linijka 1777) pisało:

Siedzisz za: i tutaj te powody, czyli:

formatex(szDay, 63, "Siedzisz za: %s^nDzien %i - %s^n", siedzi_za, jail_day, dni_tygodnia[jail_day%7]);

Fajnie by było, jakby powody były dodawane w 1 zmiennej ( a nie przez kary.ini) np.

new siedzi_za[][] = {
    "Powod 1",
    "Powod 2",
    "Powod 3",
    "Powod 4",
    "Powod 5",
    "Powod 6",
    "Powod 7"
}

Tutaj jest link do osobnego pluginu (link pomocniczy): http://amxx.pl/topic...lbreak-dodatki/

Silnik w załączniku.

Załączone pliki


  • +
  • -
  • 0
Zabijaka Gryps to mój autorytet!

#2 Mr.VoVelo .^^.

    Zaawansowany

  • Użytkownik

Reputacja: 9
Nowy

  • Postów:91
  • GG:
  • Imię:Jakub
  • Lokalizacja:Polska
Offline

Napisano 13.02.2015 13:16

to chyba osobny plugin.

tutaj masz; http://amxx.pl/topic...-co-sie-siedzi/


  • +
  • -
  • 1

1384627433-U989241.jpg


#3 WeBsteR

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 57
Pomocny

  • Postów:297
  • Imię:dawid
  • Lokalizacja:Rzeszów
Offline

Napisano 13.02.2015 13:19

+, ale nie chce tego mieć jako osobny plugin chcę mieć wszystko w silniku, mógłby ktoś dodać tak jak napisałem wyżej, oczywiście link @up też jest pomocniczy.


  • +
  • -
  • 0
Zabijaka Gryps to mój autorytet!

#4 Mr.VoVelo .^^.

    Zaawansowany

  • Użytkownik

Reputacja: 9
Nowy

  • Postów:91
  • GG:
  • Imię:Jakub
  • Lokalizacja:Polska
Offline

Napisano 13.02.2015 13:22

weź kod z tego pluginu i dodaj je do silnika ^^


  • +
  • -
  • 0

1384627433-U989241.jpg


#5 WeBsteR

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 57
Pomocny

  • Postów:297
  • Imię:dawid
  • Lokalizacja:Rzeszów
Offline

Napisano 13.02.2015 15:04

Gdzie jest błąd , niby errorów nie ma, ładnie wyświetla się Siedzisz za:  lecz tylko 1 powód, nie pokazują się pozostałe powody tylko i wyłącznie ten pierwszy, jak można zrobić by za każdym zabiciem więźnia następnego dnia losowało mu od nowa powód skazania. Teraz wyskakuje cały czas: Siedzisz za: Sranie w sklepie

Korzystałem z:  http://amxx.pl/topic...ic-infoproblem/

Silnik w załączniku.

Załączone pliki


  • +
  • -
  • 0
Zabijaka Gryps to mój autorytet!

#6 Mr.VoVelo .^^.

    Zaawansowany

  • Użytkownik

Reputacja: 9
Nowy

  • Postów:91
  • GG:
  • Imię:Jakub
  • Lokalizacja:Polska
Offline

Napisano 13.02.2015 15:31

cvary dodałeś (jeżeli były) ? do tego chyba potrzeba kary.ini :)


  • +
  • -
  • 0

1384627433-U989241.jpg


#7 WeBsteR

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 57
Pomocny

  • Postów:297
  • Imię:dawid
  • Lokalizacja:Rzeszów
Offline

Napisano 13.02.2015 15:44

Po co mi cvary i plik kary.ini jak wszystko mam w:

new static reasons[][] = {
    "Sranie w sklepie",
    "Narkotyki",
    "Lamienie",
    "Gwalciciel",
    "Kradziez",
    "Granie w minecrafta",
    "Brak kolan",
    "Brak plecow"
}

  • +
  • -
  • 0
Zabijaka Gryps to mój autorytet!

#8 Mr.VoVelo .^^.

    Zaawansowany

  • Użytkownik

Reputacja: 9
Nowy

  • Postów:91
  • GG:
  • Imię:Jakub
  • Lokalizacja:Polska
Offline

Napisano 13.02.2015 16:18

A to pierwsze

    "Sranie w sklepie",

 

zamień na

    "Narkotyki",

 

To "sranie w sklepie", daj zaczym "Narkotyki" na dole to będę wiedział chyba w czym problem


  • +
  • -
  • 0

1384627433-U989241.jpg


#9 WeBsteR

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 57
Pomocny

  • Postów:297
  • Imię:dawid
  • Lokalizacja:Rzeszów
Offline

Napisano 13.02.2015 17:47

Nie działa, no ale dobra przekonsultujmy kod:

 

Cały kod osobnego pliku wygląda tak:

#include <amxmodx>

#include <amxmisc>

#include <hamsandwich>

#define USERTASK 921

#define UPDATEDELAY 1.0

new static reasons[][] = {

    "Sranie w sklepie",

    "Narkotyki",

    "Lamienie",

    "Gwalciciel",

    "Kradziez",

    "Granie w minecrafta",

    "Brak kolan",

    "Brak plecow"

}

new userreason[33], hudhandler;

public plugin_init()

{
    register_plugin("JailBreak: Basic Info", "1.0", "Hubert");

    RegisterHam(Ham_Spawn, "player", "client_spawn", 1);

    hudhandler = CreateHudSyncObj();

}

public client_disconnect(id)

{

    userreason[id] = -1;

    if(task_exists(id + USERTASK))

    remove_task(id + USERTASK);

}

public client_spawn(id)

{    
    if(task_exists(id + USERTASK))

    remove_task(id + USERTASK);

    if(get_user_team(id) == 1)

    {    
        userreason[id] = random_num(0, sizeof reasons - 1);        

        set_task(UPDATEDELAY, "client_jailinfo", id + USERTASK, .flags="b");

    }    

}

public client_jailinfo(TASKID)

{
    static id;

    id = TASKID - USERTASK;

    set_hudmessage(0, 255, 0, 0.8, 0.1, 0, 6.0, 12.0);

    ShowSyncHudMsg(id, hudhandler, "Siedzisz za %s.", reasons[userreason[id]]);

} 

Do silnika JB dodaje:

Jakby nie było, ale to jest więc pomijam.

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>

dalej dodaje:

new static reasons[][] = {
    "Sranie w sklepie",
    "Narkotyki",
    "Lamienie",
    "Gwalciciel",
    "Kradziez",
    "Granie w minecrafta",
    "Brak kolan",
    "Brak plecow"
}
 
new userreason[33];

Następnie w

public client_disconnect(id)

dodaje

userreason[id] = -1;

Mamy juz

RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1);

wiec nie dodaje

RegisterHam(Ham_Spawn, "player", "client_spawn", 1);

teraz w

public Odrodzenie(id)

w tym publicu w

    switch(cs_get_user_team(id))
    {
    case CS_TEAM_T:
        {

dodaje

userreason[id] = random_num(0, sizeof reasons - 1);

potem w

public task_server()
{

dodaje

static id;

i na koniec

formatex(szDay, 63, "Siedzisz za: %s^nDzien %i - %s^n", reasons[userreason[id]], jail_day, dni_tygodnia[jail_day%7]);

jedynie mnie przyjmuje co zrobić z tym?

    static id;
    id = TASKID - USERTASK;

i gdzie popełniłem błąd proszę o jakieś sugestie.


Użytkownik WeBsteR edytował ten post 13.02.2015 17:50

  • +
  • -
  • 0
Zabijaka Gryps to mój autorytet!

#10 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 13.02.2015 20:56

pokaż funkcje task_server - w niej tkwi błąd, że należy pewnie zrobić pętle po wszystkich graczach, zamiast wysyłać wszystkim ten sam powód, bo id == 0. A wiadomość wysyłasz aktualnie do wszystkich (do wszystkich tą samą) (tak jest standradowo w jailbreak_api, bo nie potrzebna jest pętla, jeśli nie ma powodów :D)


  • +
  • -
  • 1

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#11 WeBsteR

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 57
Pomocny

  • Postów:297
  • Imię:dawid
  • Lokalizacja:Rzeszów
Offline

Napisano 13.02.2015 21:55

set_task(1.0, "task_server", _, _, _, "b");

oraz

public task_server()
{
    if(end_usun)
    return;
    
    #if defined DEBUG
    log_to_file("jail_api_jailbreak.log", "task_server pre");
    #endif
    for(new id=1; id<=MAX; id++)
    {
        if(!is_user_alive(id) || !is_user_connected(id))
        continue;
        
        if(gTeam[id] == 1)
        {
            if(dane_dnia[6])
            {
                new PlayerPos[3];
                get_user_origin(id, PlayerPos);
                if(PlayerPos[0] == LastPosition[id][0] && PlayerPos[1] == LastPosition[id][1])
                {
                    TimeAfk[id]++;    
                    if(TimeAfk[id] == 15)
                    {
                        ColorChat(id, TEAM_COLOR, "^x04[PrisonBreak] ^x01Przestan Kampic!");
                        ExecuteHam(Ham_TakeDamage, id, 0, 0, 5.0, (1<<14));
                    }
                    else if(TimeAfk[id] == 18)
                    {
                        ColorChat(id, TEAM_COLOR, "^x04[PrisonBreak] ^x01Przestan Kampic!");
                        ExecuteHam(Ham_TakeDamage, id, 0, 0, 10.0, (1<<14));
                    }
                    else if(TimeAfk[id] >= 20)
                    {
                        ColorChat(id, TEAM_COLOR, "^x04[PrisonBreak] ^x01Przestan Kampic!");
                        ExecuteHam(Ham_TakeDamage, id, 0, 0, 20.0, (1<<14));
                    }
                }
                else
                TimeAfk[id] = 0;
                
                LastPosition[id][0] = PlayerPos[0];
                LastPosition[id][1] = PlayerPos[1];
            }
            
            if(czas_bronie && dane_dnia[0] == 1 && ostatni_wiezien == id && !pokaz_raz)
            {
                new iRet;
                usun_ustawienia_dzien();
                
                ExecuteForward(fLastPrisonerShowWish, iRet, id);
                
                obsluga_dala = true;
                pokaz_raz = true;
            }
        }
        else if(gTeam[id] == 2)
        {
            PokazStatusText(id, "Wiezniowie: %i zywi | %i Wszyscy", ilosc_graczy[ZYWI], ilosc_graczy[WSZYSCY]);
            if(czas_bronie && !dane_dnia[0] && ostatni_wiezien && prowadzacy == id && !pokaz_raz)
            {
                menu_display(id, ProwadzacyMenu);
                
                usun_ustawienia_dzien();
                pokaz_raz = true;
            }
        }
    }
    
    //set_hudmessage(0, 255, 0, 0.6, 0.1, 0, 0.01, 1.0);
    //ShowSyncHudMsg(0, SyncHudObj2, "Dzien %i - %s", jail_day, dni_tygodnia[jail_day%7]);
    
    static szDay[256];
    static id;
    formatex(szDay, 63, "Siedzisz za: %s^nDzien %i - %s^n", reasons[userreason[id]], jail_day, dni_tygodnia[jail_day%7]);
    set_hudmessage(0, 255, 0, 0.01, 0.18, 0, 0.01, 1.0);
    if(prowadzacy && !szInfo[0])
    {    
        set_hudmessage(0, 255, 0, 0.01, 0.18, 0, 0.01, 1.0);
        format(szDay, 255, "%s%s jest prowadzacym straznikiem.", szDay, nazwa_gracza[prowadzacy]);
    }
    else if(szInfo[0])
    {
        set_hudmessage(255, 0, 0, 0.01, 0.18, 0, 0.01, 1.0);
        format(szDay, 255, "%s%s", szDay, szInfo);
    }
    ShowSyncHudMsg(0, SyncHudObj3, szDay);
    
    if(szPoszukiwani[0] && !szInfoPosz[0])
    {
        set_hudmessage(255, 85, 85, 0.01, 0.4, 0, 0.01, 1.0);
        ShowSyncHudMsg(0, SyncHudObj4, "Poszukiwani:%s", szPoszukiwani);
    }
    else if(szInfoPosz[0])
    {
        set_hudmessage(0, 255, 0, 0.01, 0.22, 0, 0.01, 1.0);
        ShowSyncHudMsg(0, SyncHudObj4, szInfoPosz);
    }
    
    #if defined DEBUG
    log_to_file("jail_api_jailbreak.log", "task_server post");
    #endif
}

To jest oryginalny silnik, nie udostępniam mojego przerobionego, bo szkoda mi mojej pracy. Jak możesz napisz jak to zmienić?


  • +
  • -
  • 0
Zabijaka Gryps to mój autorytet!

#12 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 13.02.2015 22:08

    static szDay[256];
    static id;
    formatex(szDay, 63, "Siedzisz za: %s^nDzien %i - %s^n", reasons[userreason[id]], jail_day, dni_tygodnia[jail_day%7]);
    set_hudmessage(0, 255, 0, 0.01, 0.18, 0, 0.01, 1.0);
    if(prowadzacy && !szInfo[0])
    {    
        set_hudmessage(0, 255, 0, 0.01, 0.18, 0, 0.01, 1.0);
        format(szDay, 255, "%s%s jest prowadzacym straznikiem.", szDay, nazwa_gracza[prowadzacy]);
    }
    else if(szInfo[0])
    {
        set_hudmessage(255, 0, 0, 0.01, 0.18, 0, 0.01, 1.0);
        format(szDay, 255, "%s%s", szDay, szInfo);
    }
    ShowSyncHudMsg(0, SyncHudObj3, szDay);
    

->

	static szDay[256];
	
	
	for(new i=1; i<=32; i++)
	{
		if(!is_user_connected(i))
		return;
		
		if(gTeam[i] == 1)
		formatex(szDay, 63, "Siedzisz za: %s^nDzien %i - %s^n", reasons[userreason[i]], jail_day, dni_tygodnia[jail_day%7]);
		else
		formatex(szDay, 63, "Dzien %i - %s^n", jail_day, dni_tygodnia[jail_day%7]);
		
		set_hudmessage(0, 255, 0, 0.01, 0.18, 0, 0.01, 1.0);
		if(prowadzacy && !szInfo[0])
		{    
			set_hudmessage(0, 255, 0, 0.01, 0.18, 0, 0.01, 1.0);
			format(szDay, 255, "%s%s jest prowadzacym straznikiem.", szDay, nazwa_gracza[prowadzacy]);
		}
		else if(szInfo[0])
		{
			set_hudmessage(255, 0, 0, 0.01, 0.18, 0, 0.01, 1.0);
			format(szDay, 255, "%s%s", szDay, szInfo);
		}
		ShowSyncHudMsg(i, SyncHudObj3, szDay);
	}

  • +
  • -
  • 2

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#13 WeBsteR

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 57
Pomocny

  • Postów:297
  • Imię:dawid
  • Lokalizacja:Rzeszów
Offline

Napisano 13.02.2015 22:25

DZIAŁA! Nawet lepiej niż chciałem, masz już ode mnie 2 plusy! Wielkie dzięki!

Pomoc udzielona.


  • +
  • -
  • 0
Zabijaka Gryps to mój autorytet!

#14 radim

    Godlike

  • Moderator

Reputacja: 939
Master

  • Postów:2 725
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Janów Lub.
Offline

Napisano 13.02.2015 22:37

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0

Chcąc napisać do mnie prywatną wiadomość, wpierw zapoznaj się ze stroną "O mnie" w moim profilu użytkownika [ radim ] !





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

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