Jump to content

Alberto.

Membru
  • Posts

    153
  • Joined

  • Last visited

  • Days Won

    5

Posts posted by Alberto.

  1. Acum 10 ore, ..H3AtonN.. a spus:

    Salutare.As dori si eu sa scot coliziunile la joburile ce necesita masini.Ce ar trebui sa fac?

    Salut. In primul rand, verifici daca respectivul se afla la lucru. Te orientezi, depinde de fiecare job in parte. Apoi te folosesti de functia:

    https://wiki.sa-mp.com/wiki/DisableRemoteVehicleCollisions

    Nu vreau sa iti dau mura in gura, dar nici sa te las cu nelamuriri. Daca mai ai vreo intrebare poti lasa un reply, bafta.

  2. Problema intalnita (descriere): Am un sistem de pariuri facut de mine, iar la fiecare meci jucat ora:50, foreach-ul care verifica daca cineva a castigat sau nu imi verifica doar pe cel cu id-ul 0. Pe restul jucatorilor nu ii ia in considerare.
    Ero(area / rile) / warning-(ul / urile): Nu sunt erori sau avertismente.
    Liniile de cod / sursa / script-ul(obligatoriu): 

    Spoiler

    foreach(Player, x)
            {
                if(PlayerInfo[x][pBilet] == 1)
                    {
                    if(echipa1 > echipa2)
                    {
                        new Float:cash = PlayerInfo[x][pBaniDepusi] * cota1;
                        if(PlayerInfo[x][pPariu] == 1)
                        {
                            format(string, sizeof(string), "Meciul a fost jucat. Ai castigat %.0f$.", cash);
                            new money = floatround(cash, floatround_round);
                            GivePlayerCash(x, money);
                            SCM(x, COLOR_NEWBIE, "---------------------------------------------------------");
                            SCM(x, COLOR_NEWBIE, string);
                            SCM(x, COLOR_NEWBIE, "---------------------------------------------------------");
                            castig[x] = 1;
                            return 1;
                        }
                        else
                        {
                            format(string, sizeof(string), "Meciul a fost jucat. Biletul tau este necastigator.");
                            SCM(x, COLOR_NEWBIE, "---------------------------------------------------------");
                            SCM(x, COLOR_NEWBIE, string);
                            SCM(x, COLOR_NEWBIE, "---------------------------------------------------------");
                            return 1;
                        }
                    }

     


    Imagini / Video (optional): Nu cred ca e necesar.
    Ati incercat sa rezolvati singur?: Am incercat sa imi dau seama care e problema, dar nu reusesc. Poate aveti voi vreo solutie, multumesc anticipat tuturor.

  3. pune 'count++' sub linia ' GivePlayerWeaponEx(i, gun, ammo); '

    unde ai tu count-ul actual,ai linia ' if(GetPlayerState(i) == PLAYER_STATE_PASSENGER) ' careface verificarea daca player-ul este intr-un vehicul ca pasager. Asta ar fii problema pentru care nu ar creste, altfel nu imi pot da seama de ce nu merge, bafta.

    Edit: la mine iti daduse -1, deoarece ti-am pus ' count-1 ' ca sa te excluda pe tine, dar nu a crescut.

  4. incearca asa, stringul trebuie formatat sub linia cand variabila 'count' creste, altfel va lua mereu valoarea cu care e initiata.

    CMD:areagun(playerid, params[]) // adaugat 'count'
    {
        if(gPlayerLogged[playerid] == 0) return SendClientMessage(playerid, COLOR_RED2, "Nu poti folosi nicio comanda pentru ca nu esti logat.");
        if(PlayerInfo[playerid][pAdmin] >= 2)
    {
    new range,gun,ammo,string[256],sendername[25],count=0;
    if(sscanf(params, "iii", range, gun, ammo)) return SCM(playerid,COLOR_WHITE,"Usage: /areagun [range] [weapon id] [ammo]");
    {
       GetPlayerName(playerid, sendername, sizeof(sendername));
       if(gun < 1||gun > 46||gun==19||gun==20||gun==21||gun==45) return SCM(playerid,COLOR_WHITE,"Invalid weapond ID.");
       if(ammo <1||ammo > 1000) return SCM(playerid,COLOR_WHITE,"Invalid ammo (1-1000).");
    foreach(Player,i)
    {
    if(IsPlayerConnected(i))
    {
    if(ProxDetectorS(range, playerid, i))
    {
    GivePlayerWeaponEx(i, gun, ammo);
    if(GetPlayerState(i) == PLAYER_STATE_PASSENGER)
    {
            new gun2,tmp;
            GetPlayerWeaponData(i,5,gun2,tmp);
            #pragma unused tmp
            if(gun2)SetPlayerArmedWeapon(i,gun2);
            else SetPlayerArmedWeapon(i,0);
            count++;
    }
    }
    }
    }
    format(string, sizeof(string), "AdmCmd: {FFFFFF}%s has given gun %d with %d bullets to all players on range %d. (%d players)", sendername,gun,ammo,range, count-1);
    ABroadCast(COLOR_ADMCOMMANDS,string,1);
    }
    }
    else return SendClientMessage(playerid, COLOR_ERROR, "You are not authorized to use this command.");
    return 1;
    }

  5. format(cNameclans, sizeof(string), 20, "%s", inputtext);//error 035: argument type mismatch (argument 1)
                new verificaClan = MySQLCheckClan( cNameclans[playerid] );//error 028: invalid subscript (not an array or too many subscripts): "cNameclans"

    aici, in loc de 'sizeof(string)' pui 'sizeof(cNameClans)';

     

  6. Nu e suficient ce ai facut tu, trebuie sa preiei din baza de date datele.

    ex:

    new query[500];

    format(query,100,"SELECT * FROM users WHERE `name`='%s' AND `Pin`='%s'",PlayerInfo[playerid][pNormalName],PlayerInfo[playerid][pPin]);

    new Cache: pin = mysql_query(SQL,query);

    if(cache_get_row_count() > 0)
    {
            cache_get_field_content(0, "name", PlayerInfo[playerid][pNormalName], SQL, 130);

            PlayerInfo[playerid][pPin] = cache_get_field_content_int(0, "Pin");

    }

    Spoiler

    Alte informatii:  

    1. Daca esti in ceata, ce am scris mai sus il poti pune la OnPlayerLogin

    2. E foarte probabil sa ai in gamemode aceste salvari si sa fii nevoit sa adaugi doar 'PlayerInfo[playerid][pPin] = cache_get_field_content_int(0, "Pin");'

     

     

  7. La 23.04.2016 la 2:49, Alex136Rx a spus:

    ba ce aveti ma ,v-am rugat sa ma invatati si sariti pe mine ,faceti in pana mea o comanda sa invat ,daia e forumul

    Poti cere ajutor si fara sa te dai rotund. Tu vii aici si spui ca 'recent te-ai apucat de ridicat blocuri dar nu stii din ce se face cimentul', daca intelegi ce spun, Puteai sa vii si sa zici ca esti incepator (bata in script) si nu stii sa faci un dialog, noi intelegeam( ca doar toti am trecut prin asta) si iti explicam cum ii explica mamaie cainelui de ce nu e bine sa se cace in casa:

    1. Primul pas, definesti dialog-ul. 

    #define DIALOG_RULES 1572          ( unde DIALOG_RULES = numele dialogului, 1572 = id-ul dialogului)

    2. Creezi comanda:

    CMD:rules(playerid, params[])

    {

    ShowPlayerDialog(playerid, DIALOG_RULES, DIALOG_STYLE_MSGBOX, "REGULI", "1. Nu ai voie sa..\n 2.Ai voie sa..\n 3.Alte reguli...", "Am inteles", "Nu am inteles ca sunt prost");

    }

    Spoiler

    unde DIALOG_STYLE_MSGBOX = stilul dialogului, la texte e de preferat stilul msgbox.

             Poate te vei intreba ce-s cu '\n'-urile alea acolo. Dupa acel \n ce urmeaza va fii afisat pe randul urmator.

             'REGULI' - este titlul dialogului care apare

              "1. Nu ai voie sa..\n 2.Ai voie sa..\n 3.Alte reguli..." - continutul dialogului, maretele reguli

              'Am inteles' - este primul buton, pe care daca apasa deocamdata nu se va intampla nimic, doar se inchide dialogul.

              'Nu am inteles ca sunt prost" - cel de-al doilea buton. Daca vrei doar un buton, lasi doar ghilimelele libere, ex: ""

     

     

    Alte informatii:

    Daca ce regulile tale sunt foarte multe vei primi erori si ma vei injura ca nu ti-am explicat bine.

    Poti folosi un string de 15000 de caractere ca sa poti pune 5001 de reguli. Deasemenea in locului la "1, nu ai voie sa.. etc.." vei pune cuvantul 'string' fara ghilimele.

    Ar arata ceva in genul:

    new string[500] = "Reguli reguli reguli";

    strcat(string, "alte reguli reguli reguli");

    ShowPlayerDialog(playerid, DIALOG_RULES, DIALOG_STYLE_MSGBOX, "REGULI", string, "Am inteles", "Nu am inteles ca sunt prost");

     

  8. Salut. Te sfatuiesc sa incepi cu ceva mai usor, daca spui ca esti incepator te va depasi si innebuni sa incerci deja sa faci unele sisteme.

    1. Ai functia OnPlayerKeyStateChange care verifica pe ce tasta apasa player-ul, de aici te voi lasa sa te informezi.

    2. In pawn sunt niste functii numite GetVehicleParamsEx si SetVehicleParamsEx care controleaza motorul, farurile, alarma, usile, etc.

    3. Acele 'detalii' se numesc TextDraw-uri si sunt mult mai simplu de facut decat pare, informeaza-te pe wikipedia.

  9. Acum 10 ore, Extremys a spus:

    Nu prea am inteles ce ai vrut sa zici dar, eu amf acut asta pe un server non mysql si rula cam asa :
    Playerul dadea /factions alegea una din ele iar acolo ii aparea Aplica ca membru. DAca aleagea si lider-ul nu era online ii trimitea un mesaj ca nu este online sa incerce mai tarziu iar daca era online liderul primea un mesaj si acesta folosea /startaplciatie id iar el completa intrebarile din acest test Cati ani ai ? etc lider-ul primea mesaj cu intrebarile si jos raspunsul dat de el dar in acelasi timp se salvau si in comadna /aplications dupa mai era /acceptaaplciatie id ii transmitea ca a fost acceptat pentru test practic si /respgineaplciatie id pentru a o respegine el putea aplica odata la 24 ore jcuate de la ultima aplcaitie

     

    E cam greu sa intelegi daca nu ai ideea pe care o am eu in cap, spre exemplu nici eu  nu prea inteleg ce are de aface sistemul tau cu ideea baiatului (doar ca amandoi ati vrut sistem de aplicatii direct din joc). Pe viitor nu te mai grabi cand scrii ca se vede urat, eu ma gandeam la un sistem putin mai complex deoarece sa:mp-ul este prea avansat acum ca sa vii cu sisteme care doar trimit niste mesaje si dau o valoare unei variabile.

  10. Partial mi se pare o idee buna, vorba lui Alin, ar fii mult de munca. Propun ca playerii care aplica sa fie listati in dialogul ala si cand apesi pe ei sa apara urmatoarele informatii: Nume: / Nivel: / Warns: / History: / Convinge-ma in 50 de cuvinte:. In momentul in care aplica la o factiune, sa ii apara doar un dialog stil input in care sa scrie ce vrea, asta va aparea la rubrica "Convinge-ma in 50 de cuvinte" sau cum vrei tu sa o numesti.

    Si daca tot am inceput, in momentul in care un tester foloseste /starttest [id], sa ii apara un test (grila sau cum vrei tu) si daca ii place testerului cum raspunde, eventual il accepta si pentru proba practica. Ar fii un sistem unic si de folos, vezi si tu ce idei mai iti vin si combina-le, bafta.

    Apropo, aici este rubrica "caut scripter" : https://www.sa-mp.ro/forums/forum/382-caut-scripter/

  11. Cred ca inteleg ce anume vrei, uite un mod la care m-am gandit.

    new

    Float: distance1 = GetPlayerDistanceFromPoint(playerid, coordonate),  

    Float: distance2 = GetPlayerDistanceFromPoint(playerid, coordonate),

    ... Float: distance7 = GetPlayerDistanceFromPoint(playerid, coordonate);

    if(distance1 < distance2 && distance1 < distance3  && distance1 < distance4 && distance1 < distance5 && distance1 < distance6  && distance1< distance7)

    {

     /// distance1 e cea mai mica.

    }

    if(distance2 < distance1 && distance2 < distance3  && distance2 < distance4 && distance2 < distance5 && distance2 < distance6  && distance2< distance7)

    {

     /// distance2 e cea mai mica.

    }

    ...

    if(distance7 < distance1 && distance7 < distance3  && distance7 < distance4 && distance7 < distance5 && distance7 < distance6  && distance7 < distance1)

    {

     /// distance7 e cea mai mica.

    }

    Alt mod mai simplu nu imi vine in minte momentan.

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