Ja das mit der Fraktionsabfrage habe ich ja verstanden. Wie genau ist das mit der Schleife, wie sieht diese aus? Als ich mal eine
gemacht hab und der int = i war kamen nur Errors.
Beiträge von Skynox
-
-
Hallo Leute,
ich bin noch recht neu bei GTA:N und probiere noch rum. Wo ich jetzt garnicht weiter komme, ich wollte ein Fraktionschat machen, leider schlägt das
mit der Schleife immer fehl. Kann hier irgend jemand ein Beispiel posten? Wie ich ne Schleife mit Max_Players und so mache?MfG
-
Prüfe vor dem CreateObject:
Ich hab die Funktion eingefügt, nur laden jetzt gar keine Blitzer mehr auch nicht die, die ich erstellt habe. Jedoch werden die gespeichert.
-
HI Leute,
folgendes Problem: Ich hab ein Blitzer System geschrieben. Es funktioniert soweit auch. Man wird geblitzt, die Dinger laden und speichern auch alles super. Aber es gibt immer einen Blitzer der wird an
den Koordinaten 0.0,0.0,0.0 erstellt. Ich hab das mal getestet, ob wenn ich alle erstellten Blitzer lösche der dann auch weg ist. Negativ, der wird auch erstellt wenn ich gar keine Blitzer erstellt habe
die gespeichert wurden. Von anderen System bzw Objekten (Map) kann das nicht sein, da ich die Objekte nur in diesem Blitzer System verwende.stock SaveBlitzer()
{
new Datei[64];
for(new i; i < MAX_BLITZER; i++)
{
format(Datei,sizeof(Datei),"/Blitzer/%d.txt",i);
dini_IntSet(Datei,"ID",Blitzer[i][ID]);
dini_IntSet(Datei,"Radius",Blitzer[i][Radius]);
dini_IntSet(Datei,"Strafe",Blitzer[i][Strafe]);
dini_IntSet(Datei,"Erstellt",Blitzer[i][Erstellt]);
dini_IntSet(Datei,"Geschwindigkeit",Blitzer[i][Geschw]);
dini_FloatSet(Datei,"Xpos",Blitzer[i][xpos]);
dini_FloatSet(Datei,"Ypos",Blitzer[i][ypos]);
dini_FloatSet(Datei,"Zpos",Blitzer[i][zpos]);
dini_FloatSet(Datei,"Apos",Blitzer[i][apos]);
dini_IntSet(Datei,"Objekt",Blitzer[i][Objekt]);
dini_Set(Datei,"Aufsteller",Blitzer[i][Aufsteller]);
}
return 1;
}
stock LoadBlitzer()
{
new Spielerdatei[64];
for(new i=0; i < MAX_BLITZER; i++)
{
format(Spielerdatei,sizeof(Spielerdatei),"/Blitzer/%d.txt",i);
format(Blitzer[i][Aufsteller], 25, dini_Get(Spielerdatei,"Aufsteller"));
Blitzer[i][ID] = dini_Int(Spielerdatei,"ID");
Blitzer[i][Radius] = dini_Int(Spielerdatei,"Radius");
Blitzer[i][Strafe] = dini_Int(Spielerdatei,"Strafe");
Blitzer[i][Erstellt] = dini_Int(Spielerdatei,"Erstellt");
Blitzer[i][Geschw] = dini_Int(Spielerdatei,"Geschwindigkeit");
Blitzer[i][xpos] = dini_Float(Spielerdatei,"Xpos");
Blitzer[i][ypos] = dini_Float(Spielerdatei,"Ypos");
Blitzer[i][zpos] = dini_Float(Spielerdatei,"Zpos");
Blitzer[i][apos] = dini_Float(Spielerdatei,"Apos");
Blitzer[i][Objekt] = CreateObject(18880,Blitzer[i][xpos]+1,Blitzer[i][ypos]+1,Blitzer[i][zpos]-2,0.0,0.0,Blitzer[i][apos],400);
}
return 1;
}Habe ich vllt bei der LoadBlitzer(); Funktion irgendwas falsch?
MfG
-
Okay das ist schonmal ein großer hilfreicher Schritt. meine nächste Frage wäre: Wenn der Spieler jetzt dahin kommt und dort z.B. eine M4 liegt als Object. Wie kann das dann
in einem DIALOG_STYLE_LIST angezeigt werden was da liegt? -
Könntest du ein Beispiel zeigen?
-
Ja also was heißt an Random orten, halt so an den Haustüren von Häusern oder in Garagen, auf der Farm etc
-
Juten Tag liebe Fische,
ich arbeite gerade aus Langeweile an einem Survival Script, also richtig mit überleben, verhungern etc. Jetzt möchte ich, dass auf dem Server Items Spawnen an z.B. Haustüren etc. Leider fehlt mir der Ansatz wie ich das
umsetzen soll. Ich hab mir das so vorgestellt wie bei DayZ, dass da immer Random nur Essen oder nur Waffen oder Munition oder alles gemischt Spawnt und wenn der Spieler in der Nähe solcher Items ist er die auch
aufheben kann. Kann mir da jemand Starthilfe geben? Wäre echt super!MfG
Skynox
-
Sieht so aus ob die Objekte nicht richtig gelöscht werden und das limit von 1000 überschritten wurde.
Also gelöscht werden soweit alle richtig hab das Überprüft. Und die 1000 kann dadurch nicht überschritten sein
-
Hey Leute,
ich benutze ein GF Script mit den meisten Standard Befehlen. Nach einiger Zeit wenn man Objekte erstellt und gelöscht hat werden keine Objekte mehr erstellt. Weder Feuer (Feuersystem) noch die /arb Objekte.
Also so als würde CreateObject deaktiviert werden. Ich hab schon in der stream rate und was weiß ich nicht was geguckt ich weiß nicht woran es liegen könnte. Vorher hats funktioniert. Ich hab an diesen Befehlen
nicht gemacht und aufeinmal gehts nicht mehr.MfG
-
Das wäre dann meine nächste Antwort gewesen, dass es an irgendetwas am existierenden Code liegt, da das blockiert.Gut, dass es klappt!
Könntest du uns die Include noch nennen, falls mal wieder jemand dieses Problem hat? Wäre super!
Die Include heißt: GVNP
Und das ist der Code der die Include beinhaltet:
/*
GetVehiclePlate by !TheO
*/new
Plate[MAX_VEHICLES][24];native __SetVehicleNumberPlate(vehicleid, numberplate[]) = SetVehicleNumberPlate;
stock _SetVehicleNumberPlate(vehicleid, numberplate[])
{
format(Plate[vehicleid],24, "%s", numberplate);
return 1;
}#if defined _ALS_SetVehicleNumberPlate
#undef SetVehicleNumberPlate
#else
#define _ALS_SetVehicleNumberPlate
#endif
#define SetVehicleNumberPlate _SetVehicleNumberPlatestock GetVehicleNumberPlate(vehicleid)
{
return Plate[vehicleid];
} -
Lade dir mal den neusten Server von der SA-MP Seite runter und starte den mit einem leeren Gamemode.
Füge dann nur als einfachen Test-Befehl das ein:
new carid = CreateVehicle(400,x,y,z,a,-1,-1,-1);SetVehicleNumberPlate(carid,"Test");Bei x,y,z,a trägst du irgendwelche existierenden Koordinaten ein, in der Nähe wo du spawnst (/save).
Geht es dann?
Ja das funktioniert
//Edit
Problem Gelöst! Es lag an einer Include die die Funktion GetVehicleNumberPlate enthält. Ich hab die Include aus den SAMP Forums. Jetzt habe ich die entfernt und alle
Nummernschilder werden gesetzt.Danke an alle für eure Hilfe
MfG
-
Ok. Das müsste eigentlich beides funktionieren. Bei @LordHit klappt es ja auch, und ich hatte das bei mir damals auch so.
Versuche mal nach dem SetVehicleToRespawn:
SetTimerEx("RespawnCar", 1000, false, "d", carid);Und ganz unten im Code:
forward RespawnCar(vehicleid);public RespawnCar(vehicleid){ return SetVehicleToRespawn(vehicleid);}Klappt es dann? Das Fahrzeug sollte dann auch respawnt werden, nach einer Sekunde. Passe eventuell zum Test die Zeit (1000) an und bewege das Fahrzeug etwas.
Habs versucht, geht immer noch nicht, langsam verzweifle ich....
http://www.pic-upload.de/view-32587550/sa-mp-041.png.html
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == AUTOHAUS)
{
if(response == 0)
{
RemovePlayerFromVehicle(playerid);
}
if(response == 1)
{
new vehicleid = GetPlayerVehicleID(playerid),str[128],name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(str,sizeof(str),"/Fahrzeuge/Auto_%s_%d.ini",name,CarInfo[vehicleid][Model]);
if(dini_Exists(str))return SendClientMessage(playerid,Weiss,"Dieses Fahrzeug Model besitzt du bereits.");
if(SpielerInfo[playerid][pOwnCars] > 1)return SendClientMessage(playerid,Weiss,"Du kannst nicht mehr als 2 Fahrzeuge besitzen.");//Nur 2 Fahrzeuge
SendClientMessage(playerid,Orange,"Du hast den Wagen gekauft.");
RemovePlayerFromVehicle(playerid);
CreatePlayerCar(playerid,CarInfo[vehicleid][Model],1,1,1263.2650,-2029.6702,59.3266,181.0644);
if(CarInfo[vehicleid][Autohaus] == 0) { AutoKasse0 += 10; }//Anpassen
if(CarInfo[vehicleid][Autohaus] == 1) { AutoKasse1 += 10; }//Anpassen
if(CarInfo[vehicleid][Autohaus] == 2) { AutoKasse2 += 10; }//Anpassen
}
}
return 1;
}stock CreatePlayerCar(playerid,model,color1,color2,Float:x,Float:y,Float:z,Float:a)
{
new str[56],name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
new carid = CreateVehicle(model,x,y,z,a,color1,color2,-1);
SetVehicleNumberPlate(carid,name);
SetVehicleToRespawn(carid);
SpielerInfo[playerid][pOwnCars] ++;
format(str,sizeof(str),"/Fahrzeuge/Auto_%s_%d.ini",name,model);
dini_Create(str);
dini_IntSet(str, "Model", model);
dini_FloatSet(str, "F_X", x);
dini_FloatSet(str, "F_Y", y);
dini_FloatSet(str, "F_Z", z);
dini_FloatSet(str, "F_A", a);
dini_Set(str, "Kennzeichen",name);
dini_IntSet(str, "Farbe1", color1);
dini_IntSet(str, "Farbe2", color2);
SetTimerEx("RespawnCar", 1000, false, "d", carid);
return 1;
} -
Dann versuche es mal so:
new carid = CreateVehicle(model,x,y,z,a,color1,color2,-1);SetVehicleNumberPlate(carid, name);
Zu
new carid;SetVehicleNumberPlate((carid = CreateVehicle(model,x,y,z,a,color1,color2,-1)), name);Hab ich gemacht, das Fahrzeug spawnt, aber immer noch diese XYZ Kennzeichen.. Jetzt habe ich es wieder so:
stock CreatePlayerCar(playerid,model,color1,color2,Float:x,Float:y,Float:z,Float:a)
{
new str[56],name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
new carid = CreateVehicle(model,x,y,z,a,color1,color2,-1);
SetVehicleNumberPlate(carid,name);
SetVehicleToRespawn(carid);
SpielerInfo[playerid][pOwnCars] ++;
format(str,sizeof(str),"/Fahrzeuge/Auto_%s_%d.ini",name,model);
dini_Create(str);
dini_IntSet(str, "Model", model);
dini_FloatSet(str, "F_X", x);
dini_FloatSet(str, "F_Y", y);
dini_FloatSet(str, "F_Z", z);
dini_FloatSet(str, "F_A", a);
dini_Set(str, "Kennzeichen",name);
dini_IntSet(str, "Farbe1", color1);
dini_IntSet(str, "Farbe2", color2);
Owner = name;
return 1;
}//Edit: Da mir hier sonst keiner weiterhilft... -.- Habe ich mal bisschen rumgeforscht und herausgefunden dass er SetVehicleToRespawn garnicht ausführt. Der Name wird sogar in der Dini
etc gespeichert aber das Fahrzeug wird einfach nicht respawnt, als ob er carid nicht erkennen würde... -
du musst es auch nach dem Setzen des Nummernschildes machen.
So Schlau bin ich auch...
-
Nutze am Ende des Befehls noch
SetVehicleToRespawn(carid);Funktioniert immer noch nicht
-
Hey Leute, ich sitze an einem eigenen System. Ich bin soweit gut voran gekommen. Nur was ich nicht verstehe, das Nummernschild wird nicht gesetzt.
Das steht immer noch dieses XYZ... wenn ich das Fahrzeug erstelle.
Hoffe jemand kann helfen.stock CreatePlayerCar(playerid,model,color1,color2,Float:x,Float:y,Float:z,Float:a)
{
new str[56],name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
new carid = CreateVehicle(model,x,y,z,a,color1,color2,-1);
SetVehicleNumberPlate(carid, name);
SpielerInfo[playerid][pOwnCars] ++;
format(str,sizeof(str),"%s",name);
format(str,sizeof(str),"/Fahrzeuge/Auto_%s_%d.ini",name,model);
dini_Create(str);
dini_IntSet(str, "Model", model);
dini_FloatSet(str, "F_X", x);
dini_FloatSet(str, "F_Y", y);
dini_FloatSet(str, "F_Z", z);
dini_FloatSet(str, "F_A", a);
dini_Set(str, "Kennzeichen",name);
dini_IntSet(str, "Farbe1", color1);
dini_IntSet(str, "Farbe2", color2);
return 1;
} -
Also um anderen zu helfen die das selbe Problem haben: Ich hab das PickUp durch einen Totenkopf ersetzt, da ich zuvor eine Pille hatte.
Danach hat es normal funktioniert.MfG
-
Könnte eventuell am Toten Pickup liegen, wobei ich eh nicht verstehe wieso man sowas überhaupt braucht ... :o
Und warum könnte das am Pickup liegen? :o Ich meine ist doch nur ein Pickup
-
Hey leute,
ich hab ein ganz normales GF und irgendwie immer wenn ein Spieler stirbt (egal wie) crasht der User daneben. Kann das vllt an SpawnPlayer oder etwas liegen?
//#############################################[ Wiederbelebung ]#########################################
if(PlayerInfo[playerid][pLevel] >= 1 && KHSperre[playerid] == 0 && PlayerChallenge[playerid] == 0 && PlayerInfo[playerid][pPriCP] == 0 && PlayerInLVArena[playerid] == 0 && PlayerInLSArena[playerid] == 0 && PlayerInfo[playerid][pJailed] == 0 && EventDuty[playerid] == 0 && PlayerInfo[playerid][pGangJailed] == 0 && gangfightkill[playerid] == 0 && AdminDuty[playerid] == 0 && PlayerInfo[playerid][pTot] == 0 && gangfightkill[playerid] == 0)
{
PlayerInfo[playerid][pTot] = 1;
new Float:pX,Float:pY,Float:pZ,playaname[MAX_PLAYER_NAME],str[64];
GetPlayerName(playerid,playaname,sizeof(playaname));
GetPlayerPos(playerid, pX, pY, pZ);
KadaverX[playerid] = pX;
KadaverY[playerid] = pY;
KadaverZ[playerid] = pZ;
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
SetPlayerCameraPos(playerid,1521.2195,-1613.5698,27.4405);
SetPlayerPos(playerid,1493.0571,-1565.8458,-6.4895);
SetPlayerCameraLookAt(playerid,1519.4076,-1582.1859,21.6170);
TotenKopf[playerid] = CreateDynamicPickup(1241,1, pX, pY, pZ);
format(str,sizeof(str),"%s [ID: %d]",playaname,playerid);
TotenLabel[playerid] = Create3DTextLabel(str,COLOR_LIGHTRED,pX, pY, pZ,10.0,0,0);
SetPlayerHealth(playerid,5);
SetPlayerSkin(playerid,PlayerInfo[playerid][pSkin]);
Totentimer[playerid] = SetTimerEx("DeleteTotenkopf",181000,false,"i",playerid);
TodTimer[playerid] = SetTimerEx("NachBehandlung2",180000,false,"i",playerid);
SendClientMessage(playerid,COLOR_LIGHTBLUE,"[Krankenhaus]: {FFFFFF}Du bist in Ohnmacht gefallen und wurdest ins Krankenhaus gebracht.");
SendClientMessage(playerid,COLOR_LIGHTBLUE,"[Krankenhaus]: {FFFFFF}Du ruhst dich nun 3 Minuten aus.");
FreezePlayer(playerid);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerInFrac(i,4) && PlayerInfo[i][pTot] == 0 && OnDuty[i] == 1 || FOnDuty[i] == 1)
{
SendClientMessage(i,COLOR_DBLUE,"[HQ]: {FFFFFF}Wir haben einen neuen Notruf!");
SendClientMessage(i,COLOR_DBLUE,"[HQ]: {FFFFFF}Koordinaten werden auf das Navi übertragen.(/opfer)");
}
}
}
else
{
SpawnPlayer(playerid);
}
//##########################################################################################################MfG