Jump to content

Akan

Membru
  • Posts

    75
  • Joined

  • Days Won

    6

Posts posted by Akan

  1. Acolada care inchide primul if trebuie pusa la sfarsit, adica dupa toate cele 3 conditii cu IsPlayerInRangeOfPoint.

    Cam asa:

        if (strcmp("/startmission", cmdtext, true, 10) == 0)
        {
            if(IsPlayerInRangeOfPoint(playerid, 2.0, 2333.1101,-1072.5065,1049.0234))
            {
                SetPlayerCheckpoint(playerid, -2091.9893,-2463.1599,30.6250, 3.0);
            }
        	else if(IsPlayerInRangeOfPoint(playerid, 2.0, 2333.2542,-1066.1041,1049.0234))
            {
                SetPlayerCheckpoint(playerid, -2176.0645,-2364.3694,30.6250, 3.0);
            }
        	else if(IsPlayerInRangeOfPoint(playerid, 2.0, 2331.9038,-1061.8888,1049.0234))
            {
                SetPlayerCheckpoint(playerid, -1226.2114,55.9318,14.1322, 3.0);
            }
            return true;
        }

    Si ai grija sa nu stergi nici acel return 1 si acolada inchisa de la sfarsitul codului pe care l-ai pus tu aici, ca din cate vad alea par sa fie de la sfarsitul OnPlayerCommandText, nu de la sfarsitul comenzii.

  2. Ai pus la PlayerToPoint, la SetPlayerCheckpoint si la SetPlayerPosEx coordonatele cu tot cu Rotatie, trebuie puse doar primele 3 coordonate, x, y si z.

    Adica asa ar trebui sa arate:
     

    YCMD:fish(playerid, params[], help) {
        if(PlayerInfo[playerid][pJob] != 7)
        return SCM(playerid, COLOR_GREY, "Nu esti pescar!");
        if(!PlayerToPoint(40, playerid, 2118.5134, -93.6177, 2.0291)) {
            if(targetfind[playerid] != -1)
                return ShowPlayerDialogEx(playerid, DIALOG_CHECKPOINT, DIALOG_STYLE_MSGBOX, "Checkpoint", "Ai deja un checkpoint activ.\nDoresti sa-l anulezi? Daca da, apasa pe 'Ok'.", "Ok", "Exit");
            CP[playerid] = 53;
            SCM(playerid, COLOR_GREY, "Nu esti in zona in care poti pescui.");
            return SetPlayerCheckpoint(playerid, 2118.5134, -93.6177, 2.0291, 3);
    }
    
    
    YCMD:gotofish(playerid, params[], help) {
         if(PlayerInfo[playerid][pAdmin] < 1) return SCM(playerid, COLOR_WHITE, AdminOnly);
          else SetPlayerPosEx(false, playerid, 2118.5134, -93.6177, 2.0291);
          SetPlayerInterior(playerid,0);
          SetPlayerVirtualWorld(playerid,0);
          return true;
        }

    Am lasat acel "false" la SetPlayerPosEx deoarece presupun ca asa ai tu facuta acea functie customizata.

  3. Nu trebuie sa dai destroy la id-ul obiectului in sine, ci la id-ul lui de pe server, adica al catelea a fost creat pe server (ca la vehicule).

    Ai putea sa faci ceva de genul (dar asta va functiona pentru un singur spike per player):


    new Spike[MAX_PLAYERS];

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

            if(Spike[playerid] > 0) return SendClientMessage(playerid, -1, "Ai creat deja un Spike!");
            new Float:Pos[4];
            GetPlayerPos(playerid, Pos[0],Pos[1],Pos[2]);
            GetPlayerFacingAngle(playerid, Pos[3]);
            SendClientMessage(playerid, 0xF31C2B, "*Succesfully Placed Spike*");
            GameTextForPlayer(playerid,"~r~Police Spike ~n~~b~Spike Deployed!",3000,4);
            Spike[playerid] = CreateDynamicObject(2899, Pos[0],Pos[1],Pos[2]-0.9, 00.00,  00.00,  Pos[3]+90);
            return 1;
        }


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

            if(Spike[playerid] == 0)  return SendClientMessage(playerid, -1, "Nu ai creat nici un Spike!");
            SendClientMessage(playerid, 0xF31C2B, "*Succesfully Removed Spike*");
            GameTextForPlayer(playerid,"~r~Police Spike ~n~~b~Spike Removed!",3000,4);
            DestroyDynamicObject(Spike[playerid]), 
    Spike[playerid] = 0;
            return 1;
        }

    • Thanks 1
  4. 17 minutes ago, TheGodfather said:

    Cum se poate face cu streamer? Nu de alta dar am o mapa facuta de 6000+ obiecte folosind CreateDynamicObject :). Si mersi pentru seriozitate, nu pot spune acelasi lucru despre ceilalti

    Trebuie sa gasesti in cod obiectul respectiv pe care jucatorii se teleporteaza/spawneaza.

    Daca nu stii care este, poti baga harta in Map Editor si te duci la coordonatele unde se teleporteaza/spawneaza jucatorul si vei gasi obiectul, apoi cauti in cod obiectul respectiv si din CreateDynamicObject il modifici in CreateObject (si va trebui sa modifici la parametri putin, dar e usor).

    Daca nu te descurci da-mi add pe discord: ! Akan !#5555

  5. On 8/18/2022 at 10:42 PM, TheGodfather said:

    Salut, aveti idee de ce jucatorii de pe telefon cad prin mapping?

    De obicei, jucatorii cu lag cad prin obiectele DINAMICE.
    Incearca sa faci obiectul pe care se spawneaza/teleporteaza jucatorul cu CreateObject (adica sa nu fie cu CreateDynamicObject), dar DOAR obiectul pe care se spawneaza/teleporteaza, nu tot mapping-ul ca dupa o sa ajungi sa depasesti limita de obiecte.

  6. function IsABike(vehicleid) {
        switch(GetVehicleModel(vehicleid)) {
            case 481, 509, 510: return 1;
        }
        return 0;
    }
    
    function IsAMotorcycle(vehicleid) {
        switch(GetVehicleModel(vehicleid)) {
            case 448, 461, 462, 463, 468, 471, 521, 522, 523, 571, 581, 586: return 1;
        }
        return 0;
    }
    
    function IsABoat(vehicleid) {
        switch(GetVehicleModel(vehicleid)) {
            case 430, 446, 452, 453, 454, 472, 473, 484, 493, 595: return 1;
        }
        return 0;
    }
    
    function IsAPlane(vehicleid) {
        switch(GetVehicleModel(vehicleid)) {
            case 417, 425, 447, 460, 464, 465, 469, 476, 487, 488, 497, 501, 511, 512, 513, 519, 520, 548, 553, 563, 577, 592, 594: return 1;
        }
        return 0;
    }

    Ai uitat acoladele la primul switch.
    Si ai uitat niste virgule in case-uri...

    • Thanks 1
  7. 1 hour ago, Smulyz said:

    am rezolvat majoritatea erorilor dar acum imi da erorile astea

    C:/Users/Hawai/OneDrive/Desktop/GM PRINCIPAL/gamemodes/main.pwn(324) : error 017: undefined symbol "playerid"
    C:/Users/Hawai/OneDrive/Desktop/GM PRINCIPAL/gamemodes/main.pwn(324) : error 017: undefined symbol "Iterator@iterator"
    C:/Users/Hawai/OneDrive/Desktop/GM PRINCIPAL/gamemodes/main.pwn(324) : error 036: empty statement
    C:/Users/Hawai/OneDrive/Desktop/GM PRINCIPAL/gamemodes/main.pwn(324) : fatal error 107: too many error messages on one line

    linia:

    foreach(Player : iterator) {

    Sintaxa corecta este:

    foreach(new i : Player)

     

    • Thanks 1
  8. 20 hours ago, Akan said:

    Dar nu asa ti-am spus sa faci.

    Uite asa ti-am spus:

    stock GetPlayerID(playername[]){
                 new x;
                 foreach(Player, i)
                     if(!strcmp(playername, ReturnPlayerName(i), false, 30)) x = i;
                 return x;
             }

     

    M-am uitat acum mai atent si am observat ca functia returneaza 0 daca nu gaseste un jucator cu acel nume, iar aceasta trebuie de fapt sa returneze INVALID_PLAYER_ID;

    Asa trebuie sa fie functia:
     

    stock GetPlayerID(playername[]) {
          foreach(Player, i)
                  if(!strcmp(playername, ReturnPlayerName(i), false, 30)) return i;
          return INVALID_PLAYER_ID;
    }

     

    • Upvote 1
  9. 17 hours ago, Smulyz said:

    linia de la cod

    mysql_format(SQL, gQuery, 128, "select = from accounts where Name = '%s' limit 1", GetName(playerid));

    erorile

    C:/Users/Hawai/OneDrive/Desktop/GM PRINCIPAL/gamemodes/main.pwn(111) : warning 236: unknown parameter in substitution (incorrect #define pattern)
    C:/Users/Hawai/OneDrive/Desktop/GM PRINCIPAL/gamemodes/main.pwn(111) : warning 236: unknown parameter in substitution (incorrect #define pattern)
    C:/Users/Hawai/OneDrive/Desktop/GM PRINCIPAL/gamemodes/main.pwn(111) : error 029: invalid expression, assumed zero
    C:/Users/Hawai/OneDrive/Desktop/GM PRINCIPAL/gamemodes/main.pwn(111) : error 029: invalid expression, assumed zero
    C:/Users/Hawai/OneDrive/Desktop/GM PRINCIPAL/gamemodes/main.pwn(111) : warning 215: expression has no effect
    C:/Users/Hawai/OneDrive/Desktop/GM PRINCIPAL/gamemodes/main.pwn(111) : error 001: expected token: ";", but found "]"
    C:/Users/Hawai/OneDrive/Desktop/GM PRINCIPAL/gamemodes/main.pwn(111) : fatal error 107: too many error messages on one line

     

    Da-mi discord-ul tau ca imi e mai usor sa te ajut asa decat sa las 100 de reply-uri aici.

    • Thanks 1
  10. Linia respectiva trebuie sa arate in felul urmator:

    if(mysql_errno(SQL) != 0) print("[MySQL]: Baza de date nu s-a putut conecta cu succes.");

    Si inlocuiesti tu SQL cu numele variabilei tale pentru baza de date.

  11. Modifica in functia "GetPlayerID" linia 

    if(strcmp(playername, ReturnPlayerName(i), false, 30)) x = i;

    in 

    if(!strcmp(playername, ReturnPlayerName(i), false, 30)) x = i;

     

    Trebuie sa faci asta deoarece functia "strcmp" returneaza 0 daca cele 2 string-uri sunt la fel. Si returneaza 1 sau -1 daca nu sunt la fel.
    Deci, cum ai tu acum in cod, iti apeleaza "x = i" pentru fiecare jucator care NU are acelasi nume cu cel pe care l-ai scris in comanda.

  12. In primul rand ai o paranteza inchisa in plus dupa PlayerInfo[playerid][pMember] != 12
    In al doilea rand nu are ce sa caute punct si virgula la sfarsitul unui if
    Deci ar trebui sa arate asa linia: if(PlayerInfo[playerid][pMember] != 15 && PlayerInfo[playerid][pMember] != 12
     && PlayerInfo[playerid][pMember] != 20)

  13. On 8/11/2021 at 12:29 PM, M4c said:

    E  ușor să bați din gură, veniți cu rezolvarea. 

     Problema este in 'task SetPlayerUnjail[ 1000 ]( ) {'

    Acolo trebuie inlocuit script-ul acesta:
     

            if( GetPlayerCameraMode ( x ) == 53 )
            {
                new Float: cam_pos ;
                GetPlayerCameraPos ( x, cam_pos, cam_pos, cam_pos ) ;
                if ( floatabs ( cam_pos ) > 50000 ) return va_SendClientMessageToAll(COLOR_LIGHTRED, "AdmBot: %s has been kicked by AdmBot, reason: Weapon Crasher #2.", GetName(x));
                Kick(x);
                return 0;
            }

    cu acesta:
     

            if( GetPlayerCameraMode ( x ) == 53 )
            {
                new Float: cam_pos ;
                GetPlayerCameraPos ( x, cam_pos, cam_pos, cam_pos ) ;
                if ( floatabs ( cam_pos ) > 50000 )
                {
                    va_SendClientMessageToAll(COLOR_LIGHTRED, "AdmBot: %s has been kicked by AdmBot, reason: Weapon Crasher #2.", GetName(x));
                    Kick(x);
                    return 0;
                }
            }

    Return-ul este pus gresit doar pe trimiterea mesajului.
    Adica daca ai hack, trimite acel mesaj dar nu iei kick.
    Iar daca nu ai hack, nu trimite mesajul dar iei kick.

  14. Problema este in 'task SetPlayerUnjail[ 1000 ]( ) {'

    Acolo trebuie inlocuit script-ul acesta:
     

            if( GetPlayerCameraMode ( x ) == 53 )
            {
                new Float: cam_pos ;
                GetPlayerCameraPos ( x, cam_pos, cam_pos, cam_pos ) ;
                if ( floatabs ( cam_pos ) > 50000 ) return va_SendClientMessageToAll(COLOR_LIGHTRED, "AdmBot: %s has been kicked by AdmBot, reason: Weapon Crasher #2.", GetName(x));
                Kick(x);
                return 0;
            }

    cu acesta:
     

            if( GetPlayerCameraMode ( x ) == 53 )
            {
                new Float: cam_pos ;
                GetPlayerCameraPos ( x, cam_pos, cam_pos, cam_pos ) ;
                if ( floatabs ( cam_pos ) > 50000 )
                {
                    va_SendClientMessageToAll(COLOR_LIGHTRED, "AdmBot: %s has been kicked by AdmBot, reason: Weapon Crasher #2.", GetName(x));
                    Kick(x);
                    return 0;
                }
            }

    Return-ul este pus gresit doar pe trimiterea mesajului.
    Adica daca ai hack, trimite acel mesaj dar nu iei kick.
    Iar daca nu ai hack, nu trimite mesajul dar iei kick.

×
×
  • 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.