Hi
Ich will bei meinen Zollstationen abfragen wo der Spieler gerade ist also an welcher er ist. Ich hab die Zollschranken in ein Enum gepackt und ich schaffe es auch auszulesen, wo der spieler ist.
aber jetzt zu meinem Problem:
Da es eine Zollstation ist soll sich ja die zollschranke bewegen.....
#define FILTERSCRIPT
#include <a_samp>
#include <dini>
#if defined FILTERSCRIPT
#define green 0x33FF33AA
new text [256];
new imax;
new x2;
new ZollSchranke1;
new ZollSchranke2;
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Blank Filterscript by your name here");
print("--------------------------------------\n");
return 1;
}
public OnGameModeInit()
{
ZollSchranke1 = CreateObject(978, 52, -1539.19921875, 5.0533084869385, 0, 0, 79.991455078125);
ZollSchranke2 = CreateObject(978, 54.200000762939, -1524.5, 6, 0, 0, 261.99096679688);
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
#else
main()
{
print("\n----------------------------------");
print(" Blank Gamemode by your name here");
print("----------------------------------\n");
}
#endif
enum Zoll
{
Float:x,
Float:y,
Float:z,
Float:Rad,
modellid,
name[20]
}
new IsAtZoll [] [Zoll] =
{
{54.200000762939, -1524.5, 6.0, 5.0,978,"ZollSchranke1"},
{52.0, -1539.19921875, 5.0533084869385,5.0,978,"ZollSchranke2"}
};
checkzoll(playerid)
{
new i;
i=0;
while (i < 2)
{
imax = 2;
if(i<imax)
{
if(IsPlayerInRangeOfPoint(playerid,IsAtZoll[i][Rad],IsAtZoll[i][x],IsAtZoll[i][y],IsAtZoll[i][z]))
{
x2 = strval(IsAtZoll[1][x]);
format(text, sizeof(text), "X=%d", x2);
SendClientMessage(playerid, green, text);
format (text, sizeof(text), "Du bist an der Zollstation %s", IsAtZoll[i][name]);
SendClientMessage(playerid, green, text);
MoveObject(ZollSchranke1,Float:x, Float:y, 0.0,3.0);
return 1;
}
i=i+1;
}
else
{
return 1;
}
}
return 0;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(strget(cmdtext,0),"/zoll", true) ==0)
{
checkzoll(playerid);
return 1;
}
return 0;
}
stock strget(strx[], pos, search = ' ') {
new arg, ret[128], idxx;
for (new i = 0; i < strlen(strx); i++) {
if(strx[i] == search || i == strlen(strx) || strx[i + 1] == 10) {
arg++;
if (arg == pos + 1){
ret[i-idxx] = EOS;
return ret;
} else if (arg == pos)
idxx= i+1;
}
else if (arg == pos)
ret[i - idxx] = strx[i];
}
return ret;
}
mein Problem ist das MoveObject, das auch Varriabel werden soll allerdings schaffe ich das nicht und bei dem x2 hab ich versuch das was er oben in der IsPlayerInRangeOfPoint ermittelt hat da rein zu schreiben
bitte help
Wichtig!!!!!:
Ich hab mal weiter gemacht:
im Enum hab ich ja Float:Rad deffiniert da steht an der stelle bei dem new jetzt ja der Radius der 5.0 ist
des hab ich mir im Spiel mal ausgeben lassen da kommt jetzt immer: 1084227584
kann es daran liegen dass das mit dem MoveObject nicht funtzt????
mfg The_OTTO