Jump to content

Sa dispara masinile personale!


eltAndrei

Recommended Posts

Salut, vreau sa fac sa dispara masinile personale cand un player iese de pe server si sa apara doar cand este on fiindca se aduna foarte multe masini la spawn si fac lag pe server. Voi ramane recunoscator daca ma veti ajuta!

SKINS SYSTEM BY ELTANDREI >> CLICK <<

DMV SYSTEM BY ELTANDREI >> CLICK <<

(!)SERVER DISCORD: https://discord.gg/8Hwd8EF

Link to comment
Share on other sites

Salut eu nu am treaba cu respawn... dar vreau sa dispara masinile personale cand un player iese de pe server ma poti ajuta ce functii sa pun doar pentru masinile personale? :)

SKINS SYSTEM BY ELTANDREI >> CLICK <<

DMV SYSTEM BY ELTANDREI >> CLICK <<

(!)SERVER DISCORD: https://discord.gg/8Hwd8EF

Link to comment
Share on other sites

Pai este godfather gamemode-ul si iti poti da seama cum sunt definite masinile prin topic-ul acela care l-am facut eu cu "setplate" problema asta ma inebuneste fiindca sunt prea multe masini la spawn si am facut o comanda /gotopark sa le parcheze acolo dar degeaba... Fiindca nu ai cu cine sa vorbesti daca ma puteti ajuta o sa raman recunoscator :)

SKINS SYSTEM BY ELTANDREI >> CLICK <<

DMV SYSTEM BY ELTANDREI >> CLICK <<

(!)SERVER DISCORD: https://discord.gg/8Hwd8EF

Link to comment
Share on other sites

Ti-am raspuns mai sus ce trebuie sa faci, dar vad ca nu ai inteles. Explic din nou:

1. Mergi la linia 'onplayerdisconnect'

2. Pui conditia ca daca e vehicul personal, sa fie distrus

3. pui variabila din sistem care numara vehiculele de pe server sa scada

Gata, au disparut masinile personale.

Un alt mod ar fii sa le despawnezi dupa un anumit timp in care nu sunt utilizate,  te descurci de aici.

Link to comment
Share on other sites

Pai am facut cum ai zis tu si cand se conecteaza nu mai apar masinile de exemplu a iesit de pe server si masina dispare pentru totdeauna... nu mai apare..

SKINS SYSTEM BY ELTANDREI >> CLICK <<

DMV SYSTEM BY ELTANDREI >> CLICK <<

(!)SERVER DISCORD: https://discord.gg/8Hwd8EF

Link to comment
Share on other sites

Salut . Foloseste-te de SetVehicleVirtualWorld . La OnPlayerDisconnect folosesti pentru fiecare masina a player-ului SetVehicleVirtualWorld(vehicleid, idvirtualworld);

 

Exemplu de folosire :

 

new vehicleid = PlayerInfo[playerid][pPcarkey]; // Asta la OnPlayerDisconnect

SetVehicleVirtualWorld(vehicled, 255); // Asta la OnPlayerDisconnect

Tu vei modifica in functie de cum ai tu in gamemode . 255 este id-ul virtual world-ului . Poti pune ce vw vrei tu, dar ai grija sa fie mai mare de 0 .

 

La OnPlayerLogin vei verifica daca player-ul are masina/i personala/e si vei adauga :

 

if(PlayerInfo[playerid][pPcarkey] >= 1)
{
	new vehicleid = PlayerInfo[playerid][pPcarkey];
	SetVehicleVirtualWorld(vehicleid, 0);
}

Si faci asa pentru fiecare slot . Succes !

 

P.S : Cand player-ul iese de pe server , masinile raman creeate, dar intr-un alt vw, unde nu pot fii gasite .

  • Upvote 1
Link to comment
Share on other sites

9 hours ago, NoNamed said:

Salut . Foloseste-te de SetVehicleVirtualWorld . La OnPlayerDisconnect folosesti pentru fiecare masina a player-ului SetVehicleVirtualWorld(vehicleid, idvirtualworld);

 

Exemplu de folosire :

 


new vehicleid = PlayerInfo[playerid][pPcarkey]; // Asta la OnPlayerDisconnect

SetVehicleVirtualWorld(vehicled, 255); // Asta la OnPlayerDisconnect

Tu vei modifica in functie de cum ai tu in gamemode . 255 este id-ul virtual world-ului . Poti pune ce vw vrei tu, dar ai grija sa fie mai mare de 0 .

 

La OnPlayerLogin vei verifica daca player-ul are masina/i personala/e si vei adauga :

 


if(PlayerInfo[playerid][pPcarkey] >= 1)
{
	new vehicleid = PlayerInfo[playerid][pPcarkey];
	SetVehicleVirtualWorld(vehicleid, 0);
}

Si faci asa pentru fiecare slot . Succes !

 

P.S : Cand player-ul iese de pe server , masinile raman creeate, dar intr-un alt vw, unde nu pot fii gasite .

Asta e metoda taraneasca. De ce sa rezolvi problema cand o poti ocoli.

 

Trebuie sa  rescrii sistemul in asa fel incat la logare sa creeze vehiculele personale si la parasirea serverului sa le distruga.

Edited by Ksenon
Link to comment
Share on other sites

Multumesc NoNamed :D! Am reusit iti raman recunoscator, dar mai am o intrebare cand dau restart masinile apar toate iar si vreau sa apara doar atunci cand un player se conecteaza de exemplu: Un player se lasa de server si eu mai lucrez cand dau restart ii apare masina personala si trebuie sa intre iar si sa iasa ca sa dispara masina eu vreau doar cand se conecteaza sa apara. Sper ca ai inteles si iti multumesc.

Edited by AndrewOVP

SKINS SYSTEM BY ELTANDREI >> CLICK <<

DMV SYSTEM BY ELTANDREI >> CLICK <<

(!)SERVER DISCORD: https://discord.gg/8Hwd8EF

Link to comment
Share on other sites

3 hours ago, AndrewOVP said:

Multumesc NoNamed :D! Am reusit iti raman recunoscator, dar mai am o intrebare cand dau restart masinile apar toate iar si vreau sa apara doar atunci cand un player se conecteaza de exemplu: Un player se lasa de server si eu mai lucrez cand dau restart ii apare masina personala si trebuie sa intre iar si sa iasa ca sa dispara masina eu vreau doar cand se conecteaza sa apara. Sper ca ai inteles si iti multumesc.

Verifica functia cu care incarci masinile, sa nu aibe vreo linie care seteaza masinii Virtual World-ul 0 . Sau, seteaza ca vitual world-ul default sa fie 255 la functia de incarcare a masinilor .

Link to comment
Share on other sites

Acum 17 ore, NoNamed a spus:

Salut . Foloseste-te de SetVehicleVirtualWorld . La OnPlayerDisconnect folosesti pentru fiecare masina a player-ului SetVehicleVirtualWorld(vehicleid, idvirtualworld);

 

Exemplu de folosire :

 


new vehicleid = PlayerInfo[playerid][pPcarkey]; // Asta la OnPlayerDisconnect

SetVehicleVirtualWorld(vehicled, 255); // Asta la OnPlayerDisconnect

Tu vei modifica in functie de cum ai tu in gamemode . 255 este id-ul virtual world-ului . Poti pune ce vw vrei tu, dar ai grija sa fie mai mare de 0 .

 

La OnPlayerLogin vei verifica daca player-ul are masina/i personala/e si vei adauga :

 


if(PlayerInfo[playerid][pPcarkey] >= 1)
{
	new vehicleid = PlayerInfo[playerid][pPcarkey];
	SetVehicleVirtualWorld(vehicleid, 0);
}

Si faci asa pentru fiecare slot . Succes !

 

P.S : Cand player-ul iese de pe server , masinile raman creeate, dar intr-un alt vw, unde nu pot fii gasite .

Stimabile domn NoNamed, aceasta metoda nu e deloc recomandata, deoarece in minunata modificare a jocului GTA San Andreas, numita SA:MP, exista o exorbitanta limitare de 2000 de vehicule create server-sided. In loc sa faci asta, care chiar e o super pierdere de timp, poti crea masinile la conectarea jucatorului pe server folosind minunata functie CreateVehicle si le poti sterge folosind DestroyVehicle la delogarea acestuia, ca de-asta s-au inventat.

 

Daca ii rezolvi problema unui jucator, rezolv-o cu cap...

Edited by KruZZ
Link to comment
Share on other sites

ai putea face asta :

la onplayerdisconnect

          if(PlayerInfo[playerid][pCarKey] >= 1)
        {
            DestroyVehicle(PlayerInfo[playerid][pCarKey]);

     }

la onplayerconnect

     if(PlayerInfo[playerid][pCarKey] >= 1)

{

PlayerInfo[playerid][pCarKey] = CreateVehicle(PlayerInfo[v][pCarModel] , ( aici puti ce ai tu culori pozitia de spawn etc )     );

}

eu am de exeplu :

playerVariables[v][pCarID1] = CreateVehicle(playerVariables[v][pCarModel1], playerVariables[v][pCarPos1][0], playerVariables[v][pCarPos1][1], playerVariables[v][pCarPos1][2], playerVariables[v][pCarPos1][3], playerVariables[v][pCarColour1][0], playerVariables[v][pCarColour1][1], -1);

 

Edited by MAXYMUSS
Link to comment
Share on other sites

Ati cam deviat de la subiect. Nu e vorba ca ii tin partea colegului meu ci ca doar subliniez ce vad, strict obiectiv.

Nu am raspuns la aceasta problema pentru ca de-alungul timpului am vazut ca se cere numai mura in gura, si daca cineva propune o metoda, se pun 100 de intrebari cum sa se procedeze. Comunitatile de SA-MP de oriunde sunt gandite(sau ar trebui) pentru a ajuta scripetrii, nu pentru a le oferi pe tava. Aceasta presupunand ca cei care vor sa fie ajutati au deja o masa de cunostinte in cea ce priveste limbajul PAWN, dar sunt in lipsa de idei sau de solutii si apeleaza la o comunitate in domeniu. Asta inseamna ca tu, fiind un aspirant al acestui limbaj vii cu o problema pe care o discutam la un anumit nivel, nu ceri sa ti se faca tot scriptul. Noi nu stim ce GM folosesti(in mod categoric un edit), nu stim ce se afla in systemul de masini personal, si de aceea nu vei primi un raspuns concret. Am observat ca se cer niste tutoriale pur si simplu IDIOATE, de genu: "cum sa fac comanda /getgift", "cum sa modific x sistem" sau alte cereri absolut stupide. Dar acele persoane care cer tutorialul nu au habar cum sa structureze o comanda sau sa faca macar o simpla verificare "if". Aceasta e alta piesa si am cam deviat si eu de la subiect.

 

Acestea fiind spuse am sa propun si eu un model:

Foloseste o variabila globala pentru vehiculele personale: new PersonalVehicle[sizeof(CarData)]; Eu am pus CarData pentru ca aceasta variabila o folosesc in systemul Dealership pe care il construiesc in momentul de fata. Tu poti avea sub diferite forme: CarInfo, VehicleData, V_Data etc. Schimba in denumirea pe care o poarta array-ul tau.

Unde se face LOAD la vehiculele personale pune : PersonalVehicle = CreateVehicle(CarData[cModel], ...); repet, daca tu in loc de "i" ai schimbat, pune cum ai tu la load.

Creaza o verificare in care sa selectezi masinile cumparate de cele necumparate, eu nu am GM tau in fata, asa ca aici nu te pot ajuta.

Creaza o verificare in care sa afli daca proprietarul masinilor cumparate este conectat sau nu. Daca este conectat, pune return 1;

Daca nu este conectat pune DestroyVehicle(PersonalVehicle); ,  asta dupa ce ai pus loop-ul.

 

Asta e o metoda propusa de mine, poti a faci in n moduri. Metoda propusa de NoNamed este bunicica, deoarece AndrewOVP

nu cred ca va putea face altfel, si asta e o eschiva de la metoda propusa de mine.

  • Upvote 2
Link to comment
Share on other sites

Scuze ca iti spun dar daca vrei iti trimit metodele cum au spus si ceilalti membrii care au incercat sa ma ajute. sa stii ca eu niciodata nu am incercat sa iau totul gata facut si de aceea am facut multe,fara sa am un sprijin de la cineva pe serverul meu eu ma ocup aproape de toate si am zis sa mai cer ajutorul aici nu vreau sa va faceti o parere proasta despre mine, daca eu am gresit ca am cerut ajutorul asta e problema mea si pe viitor o sa fac singur! Va multumesc mult la toti care m-ati ajutat! Sper ca ati inteles cum sta treaba :) Uite si metoda cu destroycar cum au spus ceilalti     

    new masina1;
    new masina2;
    new masina3;
    masina1 = PlayerInfo[playerid][pPcarkey];
    masina2 = PlayerInfo[playerid][pPcarkey2];
    masina3 = PlayerInfo[playerid][pPcarkey3];
    if (masina1 == -1){ }
    else
    {
        SetVehicleToRespawn(masina1);
        DestroyVehicle(masina1);
    }
    if (masina2 == -1){ }
    else
    {
        SetVehicleToRespawn(masina2);
        DestroyVehicle(masina2);
    }
    if (masina3 == -1){ }
    else
    {
        SetVehicleToRespawn(masina3);
        DestroyVehicle(masina3);
    }

Si dupa ce iese de pe server nu ii mai apare masina,am incercat la OnPlayerLogin cu CreateVehicle dar degeaba.

Edited by AndrewOVP

SKINS SYSTEM BY ELTANDREI >> CLICK <<

DMV SYSTEM BY ELTANDREI >> CLICK <<

(!)SERVER DISCORD: https://discord.gg/8Hwd8EF

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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