Jump to content

Gawitkkk

Membru
  • Posts

    235
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by Gawitkkk

  1. La public OnPlayerDeath punei acolo unde acorda wanted:

     

    if(PlayerInfo[playerid][pTeam] == 2 && PlayerInfo[playerid] == 3)

     

    pui toate team-urile, inafară de id-ul în care se află polițiștii.

  2. exista IsTrailerAttachedToVehicle si verifici in checkpoint daca are sau nu remorca:

    new carid = GetPlayerVehicleID(playerid);
    if(!IsTrailerAttachedToVehicle(carid)) return SendClientMessage(playerid, COLOR_RED, "Intoarce-te dupa remorca!");

     

    Am făcut cum ai spus tu, uite rezultatul: https://www.youtube.com/watch?v=FvSkCj_R4PY&feature=youtu.be

     

    Script-ul:

     

     

    public OnTrailerHooked(playerid, vehicleid, trailerid)
    {
        if(PlayerInfo[playerid][pJob] == 10 && jobworking[playerid] == 0)
        {
            ShowPlayerDialog(playerid, DIALOG_TRUCKER, DIALOG_STYLE_LIST, "Mission Selection","Ocean Dock's (LS)\nDillimore (LS)\nLas Colinas (LS)\nSpinybed (LV)\nLVA Freight Depot (LV)\nRedsands West (LV)","Chose","");
        }
        if(IsTrailerAttachedToVehicle(vehicleid))
        {
            new carid = GetPlayerVehicleID(playerid);
            if(!IsTrailerAttachedToVehicle(carid)) 
            {
                if(jobworking[playerid] == 1)
                SCM(playerid, COLOR_WHITE, "Trailer pierdut !");
            }
            else if(IsTrailerAttachedToVehicle(carid))
            {
                if(jobworking[playerid] == 1)
                SCM(playerid, COLOR_WHITE, "Trailer recuperat !");
            }
            return 1;
        }
        return 1;
    }

     

    APROPO, și cum pot face să se dezactiveze checkpoint-ul dacă pierd trailer-ul?

    Și după ce îl iau înapoi, să apară checkpoint-ul..

  3. Am o întrebare. Am creat job-ul Trucker, atașez remorca, toate frumoase. Cum pot face ca atunci când pierd remorca să îmi trimită un mesaj și să nu meargă să primesc banii dacă nu am remorca atașată? Un fel de protecție..

     

    M-am gândit să fac ceva de genul următor.

     

    Să creez o funcție "attached", după ce atașez remorca, acea funcție să fie egală cu 1. (attached[playerid] = 1), însă nu știu cum să fac ca după ce o pierd, această funcție să se execute.

  4. Uite comanda

    CMD:setskin(playerid,params[])
    {
        if(playerVariables[playerid][pAdminLevel] >= 1)
        {
            new id, string[256], giveplayer[25],skin;
            if(sscanf(params, "ui", id,skin)) return SendClientMessage(playerid, COLOR_GREY, SYNTAX_MESSAGE"/setskin [playerid] [skin id]");
            {
                if(id != INVALID_PLAYER_ID)
                {
                    if(skin < 300 && skin >= 0)
                    {
                        GetPlayerName(id, giveplayer, sizeof(giveplayer));
                        format(string, sizeof(string), "You set %s's skin to %d.", giveplayer, skin);
                        SendClientMessage(playerid, COLOR_WHITE, string);
                        playerVariables[id][pSkin] = skin;
                        SetPlayerSkin(id, skin);
                        new wakaname[25];
                        GetPlayerName(id,wakaname,25);
                        new str[128];
                        format(str,128,"UPDATE `playeraccounts` SET `playerSkin`='%d' WHERE `playerID`='%d'",skin,playerVariables[id][pInternalID]);
                        mysql_tquery(handle,str);
                    }
                }
            }
        }
        else return SendClientMessage(playerid, COLOR_WHITE, AdminOnly);
        return 1;
    }

     

    Salut ! Uite, pune așa în gamemode și va merge:

     

    CMD:setskin(playerid,params[])
    {
        if(playerVariables[playerid][pAdminLevel] >= 1)
        {
            new id, string[256], giveplayer[25],skin;
            if(sscanf(params, "ui", id,skin)) return SendClientMessage(playerid, COLOR_GREY, SYNTAX_MESSAGE"/setskin [playerid] [skin id]");
            {
                if(id != INVALID_PLAYER_ID)
                {
                    if(skin < 311 && skin >= 0)
                    {
                        GetPlayerName(id, giveplayer, sizeof(giveplayer));
                        format(string, sizeof(string), "You set %s's skin to %d.", giveplayer, skin);
                        SendClientMessage(playerid, COLOR_WHITE, string);
                        playerVariables[id][pSkin] = skin;
                        SetPlayerSkin(id, skin);
                        new wakaname[25];
                        GetPlayerName(id,wakaname,25);
                        new str[128];
                        format(str,128,"UPDATE `playeraccounts` SET `playerSkin`='%d' WHERE `playerID`='%d'",skin,playerVariables[id][pInternalID]);
                        mysql_tquery(handle,str);
                    }
                }
            }
        }
        else return SendClientMessage(playerid, COLOR_WHITE, AdminOnly);
        return 1;
    }

     

    Problema era de la if(skin < 311 && skin >= 0), aceasta este o protecție ce nu te lasă să pui skin-uri cu ID-uri mai mare de 300. Acum numărul maxim este 311, numărul total de skin-uri.

  5. Salut.Am incercat sa pun cuiva unul dintre noile skin-uri aparute in 0.3.7 dar nu functioneaza.

     

    Cum ai încercat să îi setezi skin-ul?

     

    Arată-ne te rog comanda /setskin (sau cum o ai tu definită), folosește

     [//code]
  6. Problema intalnita (descriere): Am o întrebare. Am creat job-ul Trucker, atașez remorca, toate frumoase. Cum pot face ca atunci când pierd remorca să îmi trimită un mesaj și să nu meargă să primesc banii dacă nu am remorca atașată? Un fel de protecție..
    Ero(area / rile) / warning-(ul / urile): -
    Liniile de cod / sursa / script-ul(obligatoriu): -
    Imagini / Video (optional): -
    Ati incercat sa rezolvati singur?: Da, m-am tot gândit cum să fac, însă nu am nici-un fel de idee.

     

    M-am gândit să fac ceva de genul următor.

     

    Să creez o funcție "attached", după ce atașez remorca, acea funcție să fie egală cu 1. (attached[playerid] = 1), însă nu știu cum să fac ca după ce o pierd, această funcție să se execute.

  7. Deci dupa ce a raspuns la dialogul DIALOG_TRUCKER, creezi o variabila prin care arati daca a inceput misiunea. De exemplu: new startjob[MAX_PLAYERS];

    Iar la OnPlayerConnect pui

    startjob[playerid] = 0;

    Iar la OnTRailerHooked

    public OnTrailerHooked(playerid, vehicleid, trailerid)
    {
        if(PlayerInfo[playerid][pJob] == 10 && startjob[playerid] == 0)
        {
            ShowPlayerDialog(playerid, DIALOG_TRUCKER, DIALOG_STYLE_LIST, "Mission Selection","Ocean Dock's (LS)\nDillimore (LS)\nLas Colinas (LS)\nSpinybed (LV)\nLVA Freight Depot (LV)\nRedsands West (LV)","Chose","");
        }
        return 1;
    }

    Iar la dialogul DIALOG_TRUCLER pui startjob[playerid] = 1; si la sfarsitul misiunii pui startjob[playerid] = 0;

    Funcționează, mersi frumos !

  8. Problema intalnita (descriere): Selectez misiunea de la job-ul Trucker, iar dacă din întâmplare se întâmplă ca trailer-ul să părăsească tirul, atunci când îl iau din nou îmi apare iară dialog-ul, ceea ce nu ar trebui să apară, decât la începot. Mai pe scurt, nu vreau să apară decât după ce folosesc din nou comanda /work și atașez trailer-ul.
    Ero(area / rile) / warning-(ul / urile): -
    Liniile de cod / sursa / script-ul(obligatoriu):

    public OnTrailerHooked(playerid, vehicleid, trailerid)
    {
        if(PlayerInfo[playerid][pJob] == 10)
        {
            ShowPlayerDialog(playerid, DIALOG_TRUCKER, DIALOG_STYLE_LIST, "Mission Selection","Ocean Dock's (LS)\nDillimore (LS)\nLas Colinas (LS)\nSpinybed (LV)\nLVA Freight Depot (LV)\nRedsands West (LV)","Chose","");
        }
        return 1;
    }

    Imagini / Video (optional): https://www.youtube.com/watch?v=SUuwT3clwFk&feature=youtu.be
    Ati incercat sa rezolvati singur?: Da, dar tot nu reușesc..
  9. ...

    format(string, sizeof(string), "(Ocean Dock's (LS) %f km)", fDistance / 100.0);

    Daca vrei sa afisezi doar 2 decimale pui %.2f in loc de %f.

    Totul funcționează corect și perfect.

     

    Îți mulțumesc FOARTE mult și frumos pentru tot timpul acordat. Îmi cer scuze dacă te-am deranjat stresându-te cu prostiile mele, încă învăț.. Mulțumesc WoopS, mulțumesc sa-mp.ro !

  10. Daca nu il ascunzi sau distrugi dupa ce l-ai aratat pe ecran jucatorului foloseste TextDrawSetString sa ii modifici scrisul.

    format(string, sizeof(string), "Ocean Dock's (LS) %d km", fDistance);

    Aici in loc de %d trebuie %f, este float.

    L-ai pus macar intr-un timer? :|

    Nu, nu i-am setat timer.. 

     

    Uite cum îmi arată acum: http://i.imgur.com/PmC6Bzx.png

    Linia script-ului:

        if(listitem == 0)
                {
                    TextDrawHideForPlayer(playerid, Trucker1[playerid]);
                    TextDrawHideForPlayer(playerid, Trucker2[playerid]);
                    TextDrawShowForPlayer(playerid, Trucker1[playerid]);
                    new Float: fDistance = GetPlayerDistanceFromPoint(playerid, 237.9, 115.6, 1010.2),
                    string[44];
                    format(string, sizeof(string), "(Ocean Dock's (LS) %f km)", fDistance);
                    TextDrawSetString(Trucker2[playerid], string);
                    TextDrawShowForPlayer(playerid, Trucker2[playerid]);
                }
  11. Incearca sa pui asta in acel timer..

     

    TextDrawHideForPlayer(playerid, Trucker1[playerid]);
    TextDrawHideForPlayer(playerid, Trucker2[playerid]);
    TextDrawShowForPlayer(playerid, Trucker1[playerid]);
    new Float: fDistance = GetPlayerDistanceFromPoint(playerid, 237.9, 115.6, 1010.2);
    new string[44];
    format(string, sizeof(string), "Ocean Dock's (LS) %d km", fDistance);
    TextDrawSetString(Trucker2[playerid], string);   
    TextDrawShowForPlayer(playerid, Trucker2[playerid]);

     

    Am făcut cum ai spus tu, uite rezultatul: http://i.imgur.com/9XSupPI.png

     

    1. Nu își face update numărul de km rămași.

    2. Nu îmi arată în km, ci în metrii (cred).

     

    @Punct. astea

    TextDrawHideForPlayer(playerid, Trucker1[playerid]);
    TextDrawHideForPlayer(playerid, Trucker2[playerid]);
    TextDrawShowForPlayer(playerid, Trucker1[playerid]);
    TextDrawShowForPlayer(playerid, Trucker2[playerid]);


    Nu e nevoie sa fie in timer, poate sa le foloseasca doar o data.

    Am făcut cum a spus Punct., mai sus am scris problemele rămase.

  12. Arata-mi cum ai facut.

     

                    TextDrawShowForPlayer(playerid, Trucker1[playerid]);
                    new
                    Float: fDistance = GetPlayerDistanceFromPoint(playerid, 237.9, 115.6, 1010.2),
                    string[44];
                    format(string, sizeof(string), "Ocean Dock's (LS) %d km", fDistance);
                    TextDrawShowForPlayer(playerid, string[playerid]);
    
  13. Arata-mi tot ce tine de ele, unde le creezi si cum le folosesti, etc..

    Le-am definit la începutul gamemode-ului:

    new Text:Trucker1[MAX_PLAYERS];
    new Text:Trucker2[MAX_PLAYERS];
      După care le-am creat la public-ul OnGameModeInit:
    Trucker1[i] = TextDrawCreate(218.000000, 342.125000, "Drive the truck to the checkpoint.");
            TextDrawLetterSize(Trucker1[i], 0.348499, 1.582500);
            TextDrawAlignment(Trucker1[i], 1);
            TextDrawColor(Trucker1[i], -1);
            TextDrawSetShadow(Trucker1[i], 0);
            TextDrawSetOutline(Trucker1[i], 1);
            TextDrawBackgroundColor(Trucker1[i], 51);
            TextDrawFont(Trucker1[i], 1);
            TextDrawSetProportional(Trucker1[i], 1);
            Trucker2[i] = TextDrawCreate(231.000000, 367.937500, "(Ocean Dock's (LS) - %d km)");
            TextDrawLetterSize(Trucker2[i], 0.449999, 1.600000);
            TextDrawAlignment(Trucker2[i], 1);
            TextDrawColor(Trucker2[i], -1);
            TextDrawSetShadow(Trucker2[i], 0);
            TextDrawSetOutline(Trucker2[i], 1);
            TextDrawBackgroundColor(Trucker2[i], 51);
            TextDrawFont(Trucker2[i], 1);
            TextDrawSetProportional(Trucker2[i], 1);
    

     

    Iar acum, urmează să fie adăugate la job-uri.

    După ce selectez ruta, trebuie (trebuia.. ) să apară textdraw-urile.

     

  14. Arata-mi cum ai facut.

     

    new Text:Trucker1[MAX_PLAYERS];
    new Text:Trucker2[MAX_PLAYERS];
    Trucker1[i] = TextDrawCreate(218.000000, 342.125000, "Drive the truck to the checkpoint.");
            TextDrawLetterSize(Trucker1[i], 0.348499, 1.582500);
            TextDrawAlignment(Trucker1[i], 1);
            TextDrawColor(Trucker1[i], -1);
            TextDrawSetShadow(Trucker1[i], 0);
            TextDrawSetOutline(Trucker1[i], 1);
            TextDrawBackgroundColor(Trucker1[i], 51);
            TextDrawFont(Trucker1[i], 1);
            TextDrawSetProportional(Trucker1[i], 1);
            Trucker2[i] = TextDrawCreate(231.000000, 367.937500, "(Ocean Dock's (LS) - %d km)");
            TextDrawLetterSize(Trucker2[i], 0.449999, 1.600000);
            TextDrawAlignment(Trucker2[i], 1);
            TextDrawColor(Trucker2[i], -1);
            TextDrawSetShadow(Trucker2[i], 0);
            TextDrawSetOutline(Trucker2[i], 1);
            TextDrawBackgroundColor(Trucker2[i], 51);
            TextDrawFont(Trucker2[i], 1);
            TextDrawSetProportional(Trucker2[i], 1);
    

    Atâta am făcut, în rest.. nu am definit nimic la OnPlayerConnected sau altundeva.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.