Jump to content

Gabb04

Membru
  • Posts

    29
  • Joined

  • Last visited

    Never

Posts posted by Gabb04

  1. Cauti in GM : public OnPlayerKeyStateChange(playerid, oldkeys, newkeys)

    Inauntrul asteia adaugi :

    if((newkeys & KEY_SUBMISSION) && IsPlayerInAnyVehicle(playerid))
    {
           RepairVehicle(GetPlayerVehicleID(playerid)); SendClientMessage(playerid, COLOR_WHITE, "Your vehicle was succesfully repaired.");
    } 

    Ar trebui sa-ti mearga.

  2. Nu stii sa inlocuiesti ? prin vehicle_id si vehicle3dtext ti-ai definit masina si textu care urmeaza sa atasezi.

    Attach3DTextLabelToVehicle(numele3dtext, masinapecarepui, 0.0,0.0,0.0);

    Dar ca sa nu mai scrii tu , sa te chinui sa cauti vehicleid de fiecare data o definesti prin vehicle_id. Mare branza..

  3. Te folosesti de SetPlayerVirtualWorld si mai creezi o variabla new InHouse[MAX_PLAYERS] , sau cum vrei tu sa se numeasca , asta e cel mai simplu mod cred..

    Eu cel putin asta folosesc.. Cand intra playerul in casa sa-i puna virtualworld 'x' si InHouse[playerid] = houseid;

    Iar atunci cand scrie /exit sa verifice :

     if (PlayerToPoint(3, playerid,HouseInfo[i][hExitx], HouseInfo[i][hExity], HouseInfo[i][hExitz]) && InHouse[playerid] == i) 

    Ti-am scris pe scurt ideea , ar trebui sa te descurci mai departe.

  4. D-apoi ai de lucru la tuning...

    Trebuie sa creezi cate un

    new exhaust[][0] = {
    ...
    };
    Pentru fiecare componenta de tuning... Vents , Exhaust , front bumper , nos , etccc.... vezi SA-MP.com Iar in fiecare acel :
    new exhaust[][0] = {
    ...
    };
    Adaugi toate exhaust care apar pe SA-MP Wiki... Exemplu :
    new exhaust[28][0] = {
        {1018},
        {1019},
        {1020},
        {1021},
        {1022},
        {1028},
        {1029},
        {1037},
        {1043},
        {1044},
        {1045},
        {1046},
        {1059},
        {1064},
        {1065},
        {1066},
        {1089},
        {1092},
        {1104},
        {1105},
        {1113},
        {1114},
        {1126},
        {1127},
        {1129},
        {1132},
        {1135},
        {1136}
    };
    

    Aici sunt toate Exhaust-urile.

    Si-asa mai departe ,dupa ce definesti fiecare componenta trebuie sa adaugi aceste componente sa se salveze la fiecare masina personala in fisierul in care se si incarca masinile,

  5. Eu cred ca cel mai bine e sa descarci textdraw editor. si-ti editezi apoi un textdraw , si-l pozitionezi cum iti place tie direct din joc.

    Baga-l in folderul Filterscripts : http://www.girlshare.ro/1736540.3

    In joc folosesti /text si /edit , astea-s cele 2 comenzi. Iar dupa ce termini de editat.. salvezi tot din joc textdraw-ul si-l vei gasi in scriptfiles.

  6.  if(!PlayerToPoint(6.0, playerid, 1525.9470, -1678.3567, 5.6114) || (PlayerToPoint(6.0, playerid, X, Y, Z))
     

    Tu observi ca la primul playertopoint ai un '!' in fata ?

    if(!PlayerToPoint(6.0, playerid, 1525.9470, -1678.3567, 5.6114) - acel '!' inseamna negatie , adica : Daca nu e la coordonatele acelea.

    Sterge acel '!' si vezi apoi.

  7. Te duci si iei niste coordonatele pt locul in care sa stea camera.. acele coordonate le pui la SetPlayerCameraPos.

    Iar acum , faci ca (,) camera sa se uite inspre ceva anume. Si faci asa : Te duci la locul inspre care vrei sa se uite camera si dai /save , iar coordonatele de-aici le pui la SetPlayerCameraLookAt.

  8. Cu trecerea pe 0.3b , s-a adaugat un nou parametru pt crearea obiectelor , anume : DrawDistance..

    Probabil tu ai obiectele in genu asta

     CreateObject(2587, 2001.195679, 1547.113892, 14.283400, 0.0, 0.0, 96.0);
    Ceea ce inseamna : CreateObject(modelid, X, Y, Z, RotationX, RotationY, RotationZ); Din Sa-mp 0.3b s-a adaugat si DrawDistance si CreateObject va fi : CreateObject(modelid, X, Y, Z, RotationX, RotationY, RotationZ, DrawDistance); Adica
     CreateObject(2587, 2001.195679, 1547.113892, 14.283400, 0.0, 0.0, 96.0, 100.0); 

    Astfel obiectul se va vedea de la 100 metri distanta.

    Sper ca te-am lamurit , nu stiu. in concluzie ... la fiecare CreateObject adauga 100.0 la sfarsit.

  9. Nu ar trebui sa creezi un : new RandomSpawns[x][3] = { }; ?

    Intre acolade sa pui toate coordonatele pt randomspawn.

    Exemplu :

    new Float:RandomSpawns[4][3] = {
    {2458.0073,-2079.2607,13.5469},
    {2802.9756,968.1823,10.7500},
    {2367.6270,2754.8928,10.5280},
    {1637.4083,2340.4880,10.0303}
    };
    
    Dupa care mergi la OnPlayerSpawn si faci :
    if(BlockCommand[playerid] == 1)
    {
          new rand = random(sizeof(RandomSpawns));
          SetPlayerPos(playerid, RandomSpawns[rand][0],RandomSpawns[rand][1],RandomSpawns[rand][2]);
    }

    Daca te-am informat gresit , sorry.

  10.  new playername[64];
    	GetPlayerName(playerid,playername,64);
    
     	if(!strcmp(playername,"BusRouteLS",true)) {
        SetSpawnInfo(playerid, 0, 61, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0 );
        PutPlayerInVehicle(playerid, 286, 0);
    	}
    

    Adauga asta la OnPlayerSpawn(playerid) - in loc de BusRouteLS pune numele NPC-ului tau si modifica 'vehicleid' din PutPlayerInVehicle ( adica sa modifici 286 )

  11. Sub asta : RepairVehicle(GetPlayerVehicleID(playerid));

    Adaugi : GivePlayerMoney(playerid, -x);

    Unde "-x" inseamna suma de bani pe care vrei sa i-o scada.

    Exemplu :  GivePlayerMoney(playerid, -3000);

    In exemplul de mai sus ii va scadea 3000 $.

    Emanuell esti jalnic sincer , /reparatie auzi.

  12. if(strcmp(cmd, "/lay2", true) == 0)
       {
           ApplyAnimation(playerid,"SUNBATHE","Lay_Bac_in",3.0,0,1,1,1,0, 0);
          return 1;
       }
    
    Ultimul parametru ( forcesync ) este 0. Ia inlocuieste cu 1 si va merge sigur.
    ApplyAnimation(playerid,"SUNBATHE","Lay_Bac_in", 3.0, 0, 1, 1, 1, 0, 1); 

    Daca citeai si ce inseamna forcesync si daca citeai si NOTE de pe sa-mp wiki, sigur nu mai aveai problema.

  13. Cauta public OnPlayerLogin in GM...

    Trebuie sa faci cam asa , sper sa intelegi..

    if(strcmp(PlayerInfo[playerid][pKey],password, true ) == 0 )
    {
           ..... aici sunt acele linii cu fread , care incarca tot detaliile despre player din scriptfiles
    }
    else
    {
           SendClientMessage(playerid, COLOR_WHITE, "SERVER: Password does not match your name.");
           return 1;
    }
    

    Bineinteles , eu ti-am dat cel mai simplu exemplu pentru care sa-ti zica ca ai tastat parola gresit ; poti face sub forma de dialog , etc...

  14. Chiar foarte usoara viata pe zcmd + sscanf.

    1. Comenzile pe zcmd + sscanf au un timp de raspuns foarte rapid.

    2. Reducerea liniilor in GM + ca ruleaza mult mai bine.

    3. Parerea mea este ca pe sscanf + zcmd e mai ordonat.

    Deci inainte de zcmd + sscanf aveam gm-ul la 35000 linii , iar acum dupa ce am trecut toate comenzile pe zcmd + sscanf ... 23500 linii, este totusi o economisire de linii.

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