Jump to content

Nurdock

Retired
  • Posts

    291
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Nurdock

  1. Te folosesti de 2 cp-uri, unul static adica cel de unde ia marfa si unul care sa se schimbe mereu adica cel la care duce marfa.

    sa iti explic mai detaliat.

    sa zicem ca tu vrei sa il faci intr-un dialog sa ii apara acele transporturi

    cand apasa pe o cursa ii setezi de ex cp-ul 1, iar cand intra in cp-ul unu ii setezi cp 2 adica de unde ia el cursa noua, si el va merge asa fara oprire.

    sper ca intelegi la ce ma refer.

  2. Acum 7 ore, Leonard a spus:

    Pentru inceput, ai nevoie de un textdraw pentru a face un speedometru.

     

    Pentru a afla viteza unui vehicul, te folosesti de acest stock:

    
    stock GetVehicleSpeed(vehicleid)
    {
    	new Float: velX, Float: velY, Float: velZ;
    	GetVehicleVelocity(vehicleid, velX, velY, velZ);
    	return floatround(((floatsqroot(((velX * velX) + (velY * velY) + (velZ * velZ))) * 170.0)) * 1);
    }

     

    Faci un timer pentru fiecare jucator folosind y_timers:

    
    ptask oneSecondPlayerTimer[1000](playerid)
    {
    	if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    	{
    		new veh_id = GetPlayerVehicleID(playerid);
    		new speed = GetVehicleSpeed(veh_id);
    
    		// Iar aici formatezi textdraw-ul pentru speedometru, exemplu:
    
    		new string[64];
    		format(string, 64, "%d km/h", speed);
    		PlayerTextDrawSetString(playerid, TextDraw, string);
    		PlayerTextDrawShow(playerid, TextDraw);
    	}	
    	
    	return 1;
    }

     

    Tot una ii daca faci cu ptask sau pui la timerul global...

    Ca sa faci un timer pentru fiecare jucator faci un timer care il pornesti cand intra in veh si il opresti cand se da jos.

  3. Acum 6 minute, Matt a spus:

    Nu e mai optim sa creezi un timer pentru fiecare jucator in parte. Orice gm are un timer din secunda in secunda, deci evident ca o sa il foloseasca. 

    Btw, este exclus sa faci cate un timer pentru fiecare jucator in parte.

    apoi nah, eu am vaz ca y_less a zis ca mai optim e sa faci mai multe timere decat unul si sa fie apelat pentru orice in fiecare secuna, asa daca nu este nici un player in veh nu se face nicio verificare. dar nah, fiecare dupa cum gandeste

  4. Acum 5 ore, Matt a spus:

    Creezi un timer in care verifici daca jucatorul este intr-un vehicul. Daca este ii afisezi textdraw-ul tau pentru kilometraj, iar cand iese din masina il ascunzi.

    Spre exemplu:

    
    timer OneSecondTimer[1000]()
    {
    	new query[256];
    	foreach(new playerid : Player)
    	{
    		if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) != PLAYER_STATE_ONFOOT)
    		{
    			new engine,lights,alarm,doors,bonnet,boot,objective;
    			GetVehicleParamsEx(GetPlayerVehicleID(playerid), engine, lights, alarm, doors, bonnet, boot, objective)
    			format(query, 50, aVehicleNames[GetVehicleModel(GetPlayerVehicleID(playerid))-400]);
    			PlayerTextDrawSetString(playerid, TachoPTD[playerid][0], query);
    			PlayerTextDrawShow(playerid, TachoPTD[playerid][0]);
    			format(query, 50, "SPEED:_%d_KM/H", Carspeed(playerid));
    			PlayerTextDrawSetString(playerid, TachoPTD[playerid][1], query);
    			PlayerTextDrawShow(playerid, TachoPTD[playerid][1]);
    			format(query, 50, "FUEL:_%d_L", VehFuel[GetPlayerVehicleID(playerid)]);
    			PlayerTextDrawSetString(playerid, TachoPTD[playerid][2], query);
    			PlayerTextDrawShow(playerid, TachoPTD[playerid][2]);
    			format(query, 50, "%s", (doors < 1) ? ("~g~UNLOCKED") : ("~r~LOCKED"));
    			PlayerTextDrawSetString(playerid, TachoPTD[playerid][3], query);
    			PlayerTextDrawShow(playerid, TachoPTD[playerid][3]);
    		}
    	}
    	return 1;
    }

    Avem un timer de o secunda (ysi_timer) in care verific din toti jucatorii care este in vehicul. Daca jucatorul este intr-unul, atunci ii iau datele despre vehicul si i le afisez in textdraw-uri.

    Cand iese jucatorul din vehicul ii ascund textdraw-urile:

    
    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    	switch(newstate)
    	{
    		case PLAYER_STATE_ONFOOT: for(new i = 0; i < 4; i++) PlayerTextDrawHide(playerid, TachoPTD[playerid][i]);
    	}
    	return 1;
    }

    De asemenea, te poti folosi de functia asta pentru a-i lua viteza jucatorului:

    
    Carspeed(playerid)
    {
        new Float:Speed[3];
        if(IsPlayerInAnyVehicle(playerid)) GetVehicleVelocity(GetPlayerVehicleID(playerid),Speed[0],Speed[1],Speed[2]);
    	else GetPlayerVelocity(playerid, Speed[0], Speed[1], Speed[2]);
        return floatround(1.61*floatsqroot(floatpower(floatabs(Speed[0]), 2.0) + floatpower(floatabs(Speed[1]), 2.0) + floatpower(floatabs(Speed[2]), 2.0)) * 99.38);
    }

     

    daca tot ii areti cum sa faca, dece nu il faci mai optim creand un timer pentru fiecare jucator care e in veh si asa nu faci verificari in fiecare secunda.

    Macar sa invete si el cate cv

  5. 1 oră în urmă, StefanAdv123 a spus:

    Nu e functia aia buna trb sa folosesti alta gen sa folosesti OnPlayerGiveDamage cv de genu in fine erroarea ta se refera la acea functie ca nu este definita!

     

     

    tu sti macar un gram de engleza? symbol already defined asta nu inseamna ca nu e definita inseamna ca e deja definita

    Incearca sa folosesti hook

  6. Acum 8 minute, NoManPv a spus:
    MODEL TOPIC:
    • Username :NoManPv
    • Varsta :16
    • Ce cumperi? :Anti-troll hack full
    • Cat oferi pe produs :40 70 euro
    • Detalii de contact:Pm aici reply
    • Alte precizari:Nmk

    Este unu free postat de robi

×
×
  • Create New...