Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2013-06-01, 21:06


SobiPTR







Wiek: 31
Na forum: 5078 dni
Posty: 29

Piwa: 2

Respekt: 50

Witam,

Chcia?bym zrobi? misje do frakcji PKS. Problem polega na tym ?e kompletnie nie wiem jak si? za to zabra?. Chodzi mi o co? takiego aby do Pracownikow na skinie PKS dociera?a informacja ?e w X,Y,Z jest pe?en przystanek i trzeba tam pojecha?. W tym momencie pojawia si? tam checkpoint i na minimapie "SetPlayerMapIcon" w tych X,Y,Z. Gdy si? tam dojedzie, otrzymujemy 2score i mo?emy wr?ci? na baz?. Wa?ne jest to aby chepointy pokazywa?y si? losowo aby nie je?dzi? non stop tak samo lub w k??ko.

:piwo: [glow=red][shadow=yellow]Poleci naprawd?, du?o browark?w z lod?wki. :piwo: [/shadow][/glow]


Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-06-02, 14:53


pat5055







Wiek: 26
Na forum: 5805 dni
Posty: 24
Nick w MP: ---

Piwa: 841

Respekt: 59,6

Najpierw utworzymy sobie zmienn? odpowiadaj?c? za to, czy gracz podj?? si? jakiego? zadania, a tak?e, definiujemy ID dialogu z pracami - na g?rze mapy:
Pawn
#define pdid 2000//koniecznie zmieni? na ostatnie+1 dialogid wyst?puj?ce w mapie
new wyzwanie[MAX_PLAYERS];

Nast?pnie, w timerze co minut? (o ile takowy jest), lub dowolnym innym - wedle uznania, zamieszczamy kod:
Pawn

if(GetPlayerSkin(playerid) == ID_SKINA_PKS)//sprawdzamy czy gracz posiada wybrany skin
{
    if(wyzwanie[playerid] == 0)//sprawdzamy, czy gracz nie podj?? si? ?adnej pracy
    {
        new random(2);//tworzymy zmienn? o losowej warto?ci, przy czym pi?? oznacza max. RÓŻNYCH prac
        switch p
        {
            case 1:
            {
                ShowPlayerDialog(playerid,pdid,DIALOG_STYLE_MSGBOX,"Praca","Uwaga, uwaga - NAZWA_PRZYSTANKU1 w Los Santos/San Fierro/Las Venturas jest pe?en!\nWybierz si? tam jak najszybciej - przyjmujesz wyzwanie?","Tak","Nie");
                wyzwanie[playerid] = -1;
                return 1;
            }
            case 2:
            {
                ShowPlayerDialog(playerid,pdid,DIALOG_STYLE_MSGBOX,"Praca","Uwaga, uwaga - NAZWA_PRZYSTANKU2 w Los Santos/San Fierro/Las Venturas jest pe?en!\nWybierz si? tam jak najszybciej - przyjmujesz wyzwanie?","Tak","Nie");
                wyzwanie[playerid] = -2;
                return 1;
            }
        }
    }
    return 0;
}

Powy?szy fragment kodu odpowiada za wy?wietlenie na ekranie dialogu z informacj?, czy te? zapytaniem o to, czy gracz pragnie podj?? si? zadania. Oczywi?cie nale?y zamieni? "NAZWA_PRZYSTANKU" na nazw? przystanku, lub te? dzielnic?, na kt?rej on si? znajduje, a "Los Santos/San Fierro/Las Venturas" - na jedno z tych miast, lub te? dan? wiosk?, w kt?rej przystanek jest ulokowany.
W publicu OnDialogResponse zamieszczamy kod:
Pawn

if(dialogid pdid)
{
    if(!response) return 0;
    if(wyzwanie[playerid] == -1)
    {
        ShowPlayerDialog(playerid,6666,DIALOG_STYLE_MSGBOX,"Praca","Zaakceptowa?e? zadanie! Miejsce zaznaczone na radarze.","OK"," ");
        SetPlayerCheckpoint(playerid,X,Y,Z,5.0);//pozycja pierwszego przystanku; tworzenie cp
        wyzwanie[playerid] = 1;
        return 1;
    }
    else if(wyzwanie[playerid] == -2)
    {
        ShowPlayerDialog(playerid,6666,DIALOG_STYLE_MSGBOX,"Praca","Zaakceptowa?e? zadanie! Miejsce zaznaczone na radarze.","OK"," ");
        SetPlayerCheckpoint(playerid,X2,Y2,Z2,5.0);//pozycja drugiego przystanku; tworzenie cp
        wyzwanie[playerid] = 2;
        return 1;
    }
    return 0;
}

?w kod odpowiada za to, co si? stanie, gdy dany gracz przyjmie (lub odrzuci) ofert?. Nale?y zmieni? "X,Y,Z" na w?asne koordynaty.
Kolejnym krokiem b?dzie ustalenie, co ma si? dzia?, gdy gracz wjedzie w dany checkpoint - w tym celu zamieszczamy w publicu OnPlayerEnterCheckpoint kod:
Pawn

if(wyzwanie[playerid] == 1)
{
    ShowPlayerDialog(playerid,6666,DIALOG_STYLE_MSGBOX,"Praca","Dojecha?e? do celu!","OK"," ");
    //EWENTUALNY KOD NAGRODY, np. GivePlayerMoney(playerid,25000);
    wyzwanie[playerid] = 0;
    return 1;
}
else if(wyzwanie[playerid] == 2)
{
    ShowPlayerDialog(playerid,6666,DIALOG_STYLE_MSGBOX,"Praca","Dojecha?e? do celu!","OK"," ");
    //EWENTUALNY KOD NAGRODY, np. GivePlayerMoney(playerid,15000);
    wyzwanie[playerid] = 0;
    return 1;
}


Postaw piwo autorowi tego posta
 

 
Tagi: random :: checkpoint
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN » [INNE] Random Checkpoint Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku