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

Wysłany: 2013-09-17, 13:19


rajjdd







Wiek: 39
Na forum: 4736 dni
Posty: 2



Respekt: 50

Witam, ot?? mam problem z systemem zlece?. O ile dobrze pami?tam system ten jest z mapki zmyslaka.


1. Doda?em warunek, dzi?ki kt?remu nie mo?na za?adowa? towaru pojazdem bez naczepy. Niby dzia?a, tylko gdy wjad? w checkpoint to wyskakuje to ca?y czas na czacie do p?ki nie wyjad? :D A chcia?bym, ?eby wyskoczy?o info tylko 1 raz :P


2. Przy za?adunku, gdy wpisz? ilo?? ton, w??cza si? timer, jest wszystko ok, tylko jak odliczanie si? sko?czy to okienko wyskakuje jeszcze raz :x Przegl?da?em kilka razy ten kod, ale nie widz? ?adnego b??du :/


Kod (my?l? ?e wszystko wyci??em :) ):

Pawn
#define KOLOR 0x00FFFFFF // kolor wiadomo??i
#define TIME 15 //czas za?adunku/roz?adunku
#define PRZEDMIOTOW 12 //tyle ile masz przedmiotow w liscie
#define T_DIALOG 100 // ID dialogu z list? towar?w
#define COLOR_DARKBLUE 0x300FFAAB
#define GUI_KOMENDY     12





new Truck_Lista[PRZEDMIOTOW][4][24]=
{
    // produkt | wynagrodzenie za km | poczatek | koniec
    {"Krzes?a"859"LS LOT""Szko?a LS"},
    {"Zabawki"250"Stacja LV""Cyrk LS"},
    {"Piach"349"Kopalnia LV""SF Budowa"},
    {"S?odycze"925"Fabryka LV""Cyrk LS"},
    {"W?dki"148"Doki SF""LS Port"},
    {"???ka"649"Fabryka LV""Motel SF-LV"},
    {"Poczt?wki"630"SF LOT""Stacja LV"},
    {"Ryby"780"LS Port""Motel SF-LV"},
    {"Naklejki"989"LV LOT""Stare Lotnisko"},
    {"Paliwo"545"Stacja LV""Kopalnia LV"},
    {"?wir"189"SF Budowa""Stare Lotnisko"},
    {"Stare Meble"954"Motel SF-LV""Fabryka LV"}
};


new Float:Truck_Pos[PRZEDMIOTOW][12]=
{
    {2086.6682, -2284.188213.54681244.1777, -2010.920759.8781},
    {2130.1103888.202410.8129379.3426, -2036.37267.8300},
    {567.1159878.2385, -43.7022, -2108.5913147.579935.2413},
    {982.11582073.016310.8203379.3426, -2036.37267.8300},
    {-1712.255862.00873.54942285.6286, -2401.036813.5468},
    {982.11582073.016314.1439,-783.00742765.578145.6563},
    {-1367.9561, -255.539910.8203,2130.1103888.202410.8129},
    {2285.6286, -2401.036813.5468,-783.00742765.578145.6563},
    {1636.8261,1520.3502,10.7968,404.60102452.877616.5000},
    {2130.1103888.202410.8129,567.1159878.2385, -43.7022},
    {-2108.5913147.579935.2413,404.60102452.877616.5000},
    {-783.00742765.578145.6563,982.11582073.016310.8203}
};












stock IsNumeric(const string[])
{
    for (new 0strlen(string); ji++)
    {
        if (string[i] > '9' || string[i] < '0') return 0;
    }
    return 1;
}






if(strcmp(cmdtext,"/kurs",true)==0)
{

    new vehicleid GetPlayerVehicleID(playerid);

    if(!IsPlayerInAnyVehicle(playerid)){
        SendClientMessage(playerid,COLOR_YELLOW,"Chcesz dostarczyc towar na pieszo?");
        return 1;
    }
    if(!GetVehicleTrailer(vehicleid)){
        SendClientMessage(playerid,COLOR_YELLOW"Nie masz przyczepionej naczepy!");
        return 1;
    }

    if(GetPVarInt(playerid"T_Zlecenie") >= 0)
    {
        SendClientMessage(playeridKOLOR"{FFFFFF}[{DD0000}ERROR{FFFFFF}]{0000FF}:{008040} Wykonujesz ju? jaki? kurs!");
        return 1;
    }


    new str[1024];
    new zlecenie[5];
    zlecenie[0] = random(PRZEDMIOTOW);
    zlecenie[1] = random(PRZEDMIOTOW);
    zlecenie[2] = random(PRZEDMIOTOW);
    zlecenie[3] = random(PRZEDMIOTOW);
    zlecenie[4] = random(PRZEDMIOTOW);

    SetPVarInt(playerid"Zlecenie#1"zlecenie[0]);
    SetPVarInt(playerid"Zlecenie#2"zlecenie[1]);
    SetPVarInt(playerid"Zlecenie#3"zlecenie[2]);
    SetPVarInt(playerid"Zlecenie#4"zlecenie[3]);
    SetPVarInt(playerid"Zlecenie#5"zlecenie[4]);

    for(new i5i++)
        format(strsizeof str"%s\n{FF8000}Z: {FFFFFF}%s {FF8000}Do: {FFFFFF}%s {FF8000}Towar: {FFFFFF}%s {FF8000}Wynagrodzenie: {0000FF}%d$"strTruck_Lista[zlecenie[i]][2], Truck_Lista[zlecenie[i]][3], Truck_Lista[zlecenie[i]][0], Truck_Lista[zlecenie[i]][1]);

    ShowPlayerDialog(playeridT_DIALOGDIALOG_STYLE_LIST"Dostepne towary: [losowe!]"str"Dalej""Anuluj");
    return 1;
}














forward T_Laduj(playerid);
public T_Laduj(playerid)
{
    static odlicz;
    new str[128];

    if(odlicz == TIME)
    {
        new id GetPVarInt(playerid"T_Zlecenie"),
        Float:XFloat:YFloat:Z;

        SendClientMessage(playeridCOLOR_DARKBLUE"{FFFFFF}[INFO]{0000FF}: {FF8000}Uko?czono za?adunek towaru. Dostarcz go do wyznaczonego miejsca {FFFFFF}ci??ar?wk? na mapie.");
        TogglePlayerControllable(playerid1);
        SetPVarInt(playerid"T_Towar"1);
        RemovePlayerMapIcon(playerid99);
        SetPlayerMapIcon(playerid99Truck_Pos[id][3], Truck_Pos[id][4], Truck_Pos[id][5], 510MAPICON_GLOBAL_CHECKPOINT);

        GetPlayerPos(playeridXYZ);
        SetPVarFloat(playerid"T_X"X);
        SetPVarFloat(playerid"T_Y"Y);
        SetPVarFloat(playerid"T_Z"Z);
        odlicz 0;
        KillTimer(GetPVarInt(playerid"T_Timer"));
        return 1;
    }
    format(strsizeof str"%d"TIME odlicz);
    GameTextForPlayer(playeridstr10015);
    odlicz++;
    return 1;
}


forward T_Rozladuj(playeridvehid);
public T_Rozladuj(playeridvehid)
{
    static odlicz;
    new str[128];
    format(strsizeof str"%d"TIME odlicz);

    GameTextForPlayer(playeridstr10015);
    if(odlicz == TIME)
    {
        KillTimer(GetPVarInt(playerid"T_Timer"));
        odlicz 0;

        ShowPlayerDialog(playeridGUI_KOMENDYDIALOG_STYLE_MSGBOX"Wynagrodzenie""{FFFFFF}[INFO]{0000FF}: {0080FF}Towar zosta? roz?adowany\n{FF8000}Twoje wynagrodzenie za towar, {FFFFFF}wp?yne?o na konto.""Ok""Anuluj");

        if(GetPVarInt(playerid"T_Ton") > 20)
            SetPlayerScore(playeridGetPlayerScore(playerid)+2);
        GivePlayerMoney(playerid671);

        TextDrawHideForPlayer(playeridT_TD[playerid][0]);
        TogglePlayerControllable(playerid1);
        RemovePlayerMapIcon(playerid99);
        TextDrawShowForPlayer(playeridT_TD[playerid][1]);

        SetPVarInt(playerid"T_Towar", -1);
        SetPVarInt(playerid"T_Zlecenie", -1);
        SetPVarInt(playerid"T_Block"0);
        SetPVarInt(playerid"T_Premia"0);
        SetPVarInt(playerid"T_Timer"0);
        SetPVarInt(playerid"T_Ton"0);
        Zlecenie[playerid] = -1;
        return 1;
    }
    odlicz++;
    return 1;
}





















new id GetPVarInt(playerid"T_Zlecenie");


if(!GetPVarInt(playerid"T_Block")&& IsPlayerInRangeOfPoint(playerid5.0Truck_Pos[id][0], Truck_Pos[id][1], Truck_Pos[id][2]))
{
    if(!IsPlayerInAnyVehicle(playerid)){
        SendClientMessage(playerid,COLOR_YELLOW,"Chcesz dostarczyc towar na pieszo?");
        return 1;
    }
    if(!GetVehicleTrailer(GetPlayerVehicleID(playerid))){
        SendClientMessage(playerid,COLOR_YELLOW"Nie masz przyczepionej naczepy!");
        return 1;
    }
    ShowPlayerDialog(playeridT_DIALOG+1DIALOG_STYLE_INPUT"Za?adunek""Wpisz ile ton chcesz zapakowa?.\n{FFFFFF}[INFO]{0000FF}: {FF8000}[Max. 30t], {00FF00}[dopuszczalna waga towaru: 28t]:""OK""Anuluj");
    TogglePlayerControllable(playerid0);
    SetPVarInt(playerid"T_Block"1);
    return 1;
}

if(GetPVarInt(playerid"T_Block") && GetPVarInt(playerid"T_Towar") && IsPlayerInRangeOfPoint(playerid5.0Truck_Pos[id][3], Truck_Pos[id][4], Truck_Pos[id][5]))
{
    if(!IsPlayerInAnyVehicle(playerid)){
        SendClientMessage(playerid,COLOR_YELLOW,"Chcesz dostarczyc towar na pieszo?");
        return 1;
    }
    if(!GetVehicleTrailer(GetPlayerVehicleID(playerid))){
        SendClientMessage(playerid,COLOR_YELLOW"Nie masz przyczepionej naczepy!");
        return 1;
    }
    TogglePlayerControllable(playerid0);
    SendClientMessage(playeridKOLOR"{FFFFFF}[INFO]{0000FF}: {FFFFFF}Roz?adowywanie towaru prosz? czeka?...");
    SetPVarInt(playerid"T_Block"0);
    KillTimer(GetPVarInt(playerid"T_Timer"));
    SetPVarInt(playerid"T_Timer"SetTimerEx("T_Rozladuj"10001"dd"playerid));
}
return 1;
}












if(dialogid == T_DIALOG)
{
if(response)
{
    new ID,
    str[128];
    switch(listitem)
    {
        case 0ID GetPVarInt(playerid"Zlecenie#1");
        case 1ID GetPVarInt(playerid"Zlecenie#2");
        case 2ID GetPVarInt(playerid"Zlecenie#3");
        case 3ID GetPVarInt(playerid"Zlecenie#4");
        case 4ID GetPVarInt(playerid"Zlecenie#5");
    }
    SetPVarInt(playerid"T_Zlecenie"ID);
    Zlecenie[playerid] = ID;
    SetPlayerMapIcon(playerid99Truck_Pos[ID][0], Truck_Pos[ID][1], Truck_Pos[ID][2], 510MAPICON_GLOBAL_CHECKPOINT);
    SendClientMessage(playeridKOLOR"{FFFFFF}[INFO]{0000FF}: {8080FF}Za?aduj towar w zaznaczonym miejscu ikon? ci??ar?wki na mapie.");
    TextDrawHideForPlayer(playeridT_TD[playerid][1]);
    TextDrawShowForPlayer(playeridT_TD[playerid][0]);
    TextDrawSetString(T_TD[playerid][0], str);
}
}
if(dialogid == T_DIALOG+1)
{

if(response)
{
    SetPVarInt(playerid"T_Block"0);

    if(!IsNumeric(inputtext))
    {
        ShowPlayerDialog(playeridT_DIALOG+1DIALOG_STYLE_INPUT"Ladowanie""Wpisz ile ton chcesz zapakowa?.\n{FFFFFF}[INFO]{0000FF}: {FF8000}[Max. 30t], {00FF00}[dopuszczalna waga towaru: 28t]:""OK""Anuluj");
        return 1;
    }
    if(strval(inputtext) || strval(inputtext) > 30 || !strlen(inputtext))
    {
        SendClientMessage(playeridKOLOR"Nie mo?esz za?adowa? wi?cej ni? 30 ton");
        return 1;
    }
    SendClientMessage(playeridCOLOR_RED"{FFFFFF}[INFO]{0000FF}: {FFFFFF}?adowanie towaru prosz? czeka?...");
    SetPVarInt(playerid"T_Block"0);
    SetPVarInt(playerid"T_Ton"strval(inputtext));
    SetPVarInt(playerid"T_Timer"SetTimerEx("T_Laduj"10001"dd"playeridGetPlayerVehicleID(playerid)));
    return 1;
}
return 1;
}






Za pomoc daj? piwka :)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-09-17, 14:39


IgrexolonO







Wiek: 34
Na forum: 6809 dni
Posty: 1386

Piwa: 1062

Respekt: 651,8
Respekt: 651,8Respekt: 651,8

"rajjdd" napisał/a:

1. Doda?em warunek, dzi?ki kt?remu nie mo?na za?adowa? towaru pojazdem bez naczepy. Niby dzia?a, tylko gdy wjad? w checkpoint to wyskakuje to ca?y czas na czacie do p?ki nie wyjad? :D A chcia?bym, ?eby wyskoczy?o info tylko 1 raz :P


http://wiki.sa-mp.com/wiki/OnPlayerEnterCheckpoint

"ZAMIAST ONPLAYERUPDATE" - d?izyz.

"rajjdd" napisał/a:

2. Przy za?adunku, gdy wpisz? ilo?? ton, w??cza si? timer, jest wszystko ok, tylko jak odliczanie si? sko?czy to okienko wyskakuje jeszcze raz :x Przegl?da?em kilka razy ten kod, ale nie widz? ?adnego b??du :/


SetPVarInt(playerid, "T_Timer", SetTimerEx("T_Rozladuj", 1000, 1, "dd", playerid));
__
| |
| |
| |
\|/

SetPVarInt(playerid, "T_Timer", SetTimerEx("T_Rozladuj", 1000, 0, "dd", playerid));

A po drugie sam Timer w sobie masz ?le wykonany. T_Rozladuj przyjmuje dwie warto?ci. Ty podajesz tylko jedn?.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-09-17, 16:24


rajjdd







Wiek: 39
Na forum: 4736 dni
Posty: 2



Respekt: 50

Dzi?ki wielkie :) Co do tego drugiego to akurat nie to by?o powodem, ale dzi?ki temu wpad?em na pomys? jak to naprawi? ;D


Leci piwko za pomoc :)

Postaw piwo autorowi tego posta
 

 
Tagi: system :: zleceń
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] System zleceń 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