GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: szilikee1998 - 2016. július 25. - 14:44:56

Cím: Van-e a közelben olyan object.
Írta: szilikee1998 - 2016. július 25. - 14:44:56
Sziasztok.
Olyan kérdéssel fordulok ma hozzátok, hogy van egy X object idénk, legyen most a 2000 ami egy szekrény. Lehetséges e az, hogy lekérdezzük hogy játékosunk közelében van-e 2000 object idjű object.
Tudom tudom elég kitekert kérdés, de szerintem Pedró. és a többi ilyen atomfej tudnak erre is megoldást adni :)
Köszönöm előre is :)
Cím: Van-e a közelben olyan object.
Írta: Kyosuke_Hiroshi - 2016. július 25. - 15:41:03
hát ha a szekrény változóban van ilyen tömbös megoldással akkor simán
ha arra akarsz hogy 2000 es object idéjű csak úgy akkor meg 3 for ciklus egymásba szerintem és úgy lehetne de akkor az laggot is okozhat én szerintem.
Változóba ha elmented hol van a 2000 es szekrény akkor
Ez jó lehet
és akkor a szekrény pozíciója alapján fogja megnézni
Cím: Van-e a közelben olyan object.
Írta: Pedró - 2016. július 25. - 15:45:01
Alap objectekkel nem lehet megoldani, max lerakott objectekkel.
Lerakott objecteshez írok neked egy megoldást.
10perc.

Dupla hozzászólás automatikusan összefûzve. ( [time]2016/07/25 - 16:03:07[/time] )

stock Vaneakozelben(playerid, _modelid) {
new modelid, Float:distancetoobject, Float:playerpos[3], result = -1;
GetPlayerPos(playerid, playerpos[0], playerpos[1], playerpos[2]);
for(new i; i < Streamer_CountItems(STREAMER_TYPE_OBJECT); i++) {
    modelid = Streamer_GetIntData(STREAMER_TYPE_OBJECT, i, E_STREAMER_MODEL_ID);
   
if(modelid == _modelid) {
    Streamer_GetDistanceToItem(playerpos[0], playerpos[1], playerpos[2], STREAMER_TYPE_OBJECT, i, distancetoobject);
   
    if(distancetoobject < 3.0) {
      SendClientMessage(playerid, -1, \"Közel áll hozzád egy 2000-es idjű object!\");
      result = i;
      break;
    }
}
}
return result;
}

 
Nem teszteltem. Tessék.

Dupla hozzászólás automatikusan összefûzve. ( [time]2016/07/25 - 16:06:06[/time] )

Vaneakozelben(playerid) pedig visszatér a objectid-vel.
gyakorlati példa:
 

public OnPlayerSpawn(playerid) {
new objectid = Vaneakozelben(playerid, 2000);
if(objectid == -1) {
SendClientMessage(playerid, -1, \"Nincs a közeledben 2000-es idjű object.\");
}else{
DestroyDynamicObject(objectid);
//pl törlöd.
}
return 1;
}
Cím: Van-e a közelben olyan object.
Írta: szilikee1998 - 2016. július 26. - 14:33:51
Mondtam én, hogy Pedró. megoldja  :D :D :D . Köszi szépen, ment a +, pont erre gondoltam :)