Szerző Téma: Mozgó objekt  (Megtekintve 736 alkalommal)

Mozgó objekt
« Dátum: 2013. november 18. - 19:20:48 »
0 Show voters
Üdv!
Van egy objektem.
Hogy oldjam meg ,hogy :
Van Pl 5 db pozició.
Ha beírom hogy /mozog1 akkor az objekt az elsõ pozicióhoz mozog..ha /mozog2 akkor a másodikhoz..Értelemszerûen ugyan úgy a többi.
De ezt csak egy adott sugárban és magasságban lehessen beírni.

Nem elérhető BoOy

  • 3209
  • 2013-as év szkriptere
    • Profil megtekintése
Mozgó objekt
« Válasz #1 Dátum: 2013. november 18. - 19:49:07 »
+1 Show voters
Szia. lehet hogy egy kicsit nehezebben de röviden csináltam meg  ;)
 
#include <a_samp>
#include <zcmd>
#include <sscanf2>
new OID;
new Float:Positions[][] = {
{0.0,0.0,0.0},//Elsõ hely pozíció
{0.0,0.0,0.0},//Második hely pozíció
{0.0,0.0,0.0}//Harmadik hely pozíció
};
public OnFilterScriptInit()
{
OID = CreateObject(324,Positions[0][0],Positions[0][1],Positions[0][2],0.0,0.0,0.0);//Az object..
return 1;
}
CMD:mozog(playerid,params[])
{
new pos;
if(sscanf(params,\"d\",pos)) return SendClientMessage(playerid,-1,\"HASZNÁLAT: /mozog [tárgy helyének elmozgatása 0-3]\");
if(!IsPlayerInRangeOfPoint(playerid,4.0,/*Ide írod be az adott pozíciót*/))return SendClientMessage(playerid,-1,\"Nem vagy az adott helyen!\");
MoveObject(OID,Positions[pos-1][0],Positions[pos-1][1],Positions[pos-1][2], 3.00);
return 1;
}
« Utoljára szerkesztve: 2013. november 18. - 19:51:12 írta BoOy »

Nem elérhető Pedró

  • 3341
  • 2014 © Az év Szkriptere
    • Profil megtekintése
Mozgó objekt
« Válasz #2 Dátum: 2013. november 18. - 19:53:11 »
+1 Show voters

Szia. lehet hogy egy kicsit nehezebben de röviden csináltam meg  ;)
 
#include 
#include
#include
new OID;
new Float:Positions[][] = {
{0.0,0.0,0.0},//Elsõ hely pozíció
{0.0,0.0,0.0},//Második hely pozíció
{0.0,0.0,0.0}//Harmadik hely pozíció
};
public OnFilterScriptInit()
{
OID = CreateObject(324,Positions[0][0],Positions[0][1],Positions[0][2],0.0,0.0,0.0);//Az object..
return 1;
}
CMD:mozog(playerid,params[])
{
new pos;
if(sscanf(params,\"d\",pos)) return SendClientMessage(playerid,-1,\"HASZNÁLAT: /mozog [tárgy helyének elmozgatása 0-3]\");
if(!IsPlayerInRangeOfPoint(playerid,4.0,/*Ide írod be az adott pozíciót*/))return SendClientMessage(playerid,-1,\"Nem vagy az adott helyen!\");
MoveObject(OID,Positions[pos-1][0],Positions[pos-1][1],Positions[pos-1][2], 3.00);
return 1;
}

 

[/quote]
Helyesbítenék:
 
#include 
#include
#include
new OID;
new Float:Positions[][] = {
{0.0,0.0,0.0},//Elsõ hely pozíció
{0.0,0.0,0.0},//Második hely pozíció
{0.0,0.0,0.0}//Harmadik hely pozíció
};
public OnFilterScriptInit()
{
OID = CreateObject(324,Positions[0][0],Positions[0][1],Positions[0][2],0.0,0.0,0.0);//Az object..
return 1;
}
CMD:mozog(playerid,params[])
{
new pos;
if(sscanf(params,\"d\",pos)) return SendClientMessage(playerid,-1,\"HASZNÁLAT: /mozog [tárgy helyének elmozgatása 0-3]\");
       if(!(-1 < pos =< sizeof(Positions))) return SendClientMessage(playerid, 0xFF0000AA, \"Hibás érték!\");
if(!IsPlayerInRangeOfPoint(playerid,4.0,/*Ide írod be az adott pozíciót*/))return SendClientMessage(playerid,-1,\"Nem vagy az adott helyen!\");
MoveObject(OID,Positions[pos][0],Positions[pos][1],Positions[pos][2], 3.00);
return 1;
}

Nem elérhető BoOy

  • 3209
  • 2013-as év szkriptere
    • Profil megtekintése
Mozgó objekt
« Válasz #3 Dátum: 2013. november 18. - 19:57:19 »
0 Show voters

 

Szia. lehet hogy egy kicsit nehezebben de röviden csináltam meg  ;)
 
#include 
#include
#include
new OID;
new Float:Positions[][] = {
{0.0,0.0,0.0},//Elsõ hely pozíció
{0.0,0.0,0.0},//Második hely pozíció
{0.0,0.0,0.0}//Harmadik hely pozíció
};
public OnFilterScriptInit()
{
OID = CreateObject(324,Positions[0][0],Positions[0][1],Positions[0][2],0.0,0.0,0.0);//Az object..
return 1;
}
CMD:mozog(playerid,params[])
{
new pos;
if(sscanf(params,\"d\",pos)) return SendClientMessage(playerid,-1,\"HASZNÁLAT: /mozog [tárgy helyének elmozgatása 0-3]\");
if(!IsPlayerInRangeOfPoint(playerid,4.0,/*Ide írod be az adott pozíciót*/))return SendClientMessage(playerid,-1,\"Nem vagy az adott helyen!\");
MoveObject(OID,Positions[pos-1][0],Positions[pos-1][1],Positions[pos-1][2], 3.00);
return 1;
}

 

[/quote]
Helyesbítenék:
 
#include 
#include
#include
new OID;
new Float:Positions[][] = {
{0.0,0.0,0.0},//Elsõ hely pozíció
{0.0,0.0,0.0},//Második hely pozíció
{0.0,0.0,0.0}//Harmadik hely pozíció
};
public OnFilterScriptInit()
{
OID = CreateObject(324,Positions[0][0],Positions[0][1],Positions[0][2],0.0,0.0,0.0);//Az object..
return 1;
}
CMD:mozog(playerid,params[])
{
new pos;
if(sscanf(params,\"d\",pos)) return SendClientMessage(playerid,-1,\"HASZNÁLAT: /mozog [tárgy helyének elmozgatása 0-3]\");
       if(!(-1 < pos =< sizeof(Positions))) return SendClientMessage(playerid, 0xFF0000AA, \"Hibás érték!\");
if(!IsPlayerInRangeOfPoint(playerid,4.0,/*Ide írod be az adott pozíciót*/))return SendClientMessage(playerid,-1,\"Nem vagy az adott helyen!\");
MoveObject(OID,Positions[pos][0],Positions[pos][1],Positions[pos][2], 3.00);
return 1;
}

 

[/quote]
 :p :p :p :p :p :p :p

Mozgó objekt
« Válasz #4 Dátum: 2013. november 18. - 20:20:31 »
0 Show voters
 public OnFilterScriptInit()
{
       OID = CreateObject(324,Positions[0][0],Positions[0][1],Positions[0][2],0.0,0.0,0.0);//Az object..
       return 1;
}

 
Erre kérhetnék egy rövidke magyarázatot?:D

Mozgó objekt
« Válasz #5 Dátum: 2013. november 18. - 20:25:03 »
+1 Show voters
Egyszerû.
Ha egy objectet szeretnél mozgatni akkor elõtte létre is kell hozni. :D
Amit majd az OID változó fog azonosítani a kódban.
A kódban most az eltárolt tömb változóban \"Positions\" felhasznált legelsõ hely szerepel, hogy az eredeti helyére is vissza lehessen mozdítani a parancs segítségével \"/mozgat 0\".

Mozgó objekt
« Válasz #6 Dátum: 2013. november 18. - 20:34:16 »
0 Show voters
Köszönöm szépen mindenkinek! :D +-ok kiosztva,Téma zárva ;)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal