Dann existiert der Pfad in dem die Häuser gespeichert werden sollen nicht.
Beiträge von Jeffry
-
-
Lade dir das crashdetect Plugin herunter und füge es in deinen Server ein. Dann poste was im Server Log steht, wenn du den Befehl eingibst.
http://forum.sa-mp.com/showthread.php?t=262796Poste ggf auch den Befehl.
-
Das i ist in diesem Code Teil nicht deklariert. Füge ein
new i;
hinzu, an die entsprechende Stelle. -
Ändere den Kopf mal zu:
new SkinData[][e_SkinData] =Wenn es dann nicht geht dann brauchen wir das ganze Array. Entweder du postest es hier, oder, wie ich grade in deiner PN gesehen habe, schicke es mir per PN, wenn du es nicht komplett öffentlich haben willst.
-
Also so ganz blick ich in deinem System noch nicht durch, daher kann ich nicht nachvollziehen warum sich das Objekt "klont", da müsste man mal den Code sehen, mit dem du das Objekt verschiebst.
Zwecks dem angezeigten Pin, ändere mal folgende Dinge:new Pin = random(15);
switch(Pin)
{
case 0: Pin = 1;//4564;
case 1: Pin = 2;//4563;
case 2: Pin = 3;//7456;
case 3: Pin = 4;//4567;
case 4: Pin = 5;//1047;
case 5: Pin = 6;//4507;
case 6: Pin = 7;//4467;
case 7: Pin = 8;//3217;
case 8: Pin = 9;//1454;
case 9: Pin = 10;//4204;
case 10: Pin = 11;//3448;
case 11: Pin = 12;//4045;
case 12: Pin = 13;//4254;
case 13: Pin = 14;//6542;
case 14: Pin = 15;//6542;
case 15: Pin = 16;//6547;
}
SetPVarInt(playerid,"Pin",Pin);
zu:
SetPVarInt(playerid,"Pin",random(15)+1);
Dann sparst du dir den switch.Und dann:
format(string,sizeof(string),"[Pin: %i]",GetPVarInt(playerid,"Pin"));
zu:
format(string,sizeof(string),"[Pin: %s]",pin);Allerdings weiß ich nicht warum du das als String in "pin" speicherst.
Die Timer musst du so ändern:
SetTimer("Freiheit",1000,false);
zu:
SetTimerEx("Freiheit", 1000, false, "d", playerid);Sonst übergibst du die playerid nicht. Das musst du natürlich bei allen diesen Timern machen, auch bei Freiheit2 und Freiheitback.
-
-
So:
CMD:admins(playerid)
{
if(!IsLoggedIn(playerid)) return SendClientMessage(playerid,COLOR_GRAU,"Du bist nicht eingeloggt.");
new string[145];
SendClientMessage(playerid,COLOR_GRAU,"Aktive Team-Mitglieder:");
for(new i=0,j=GetMaxPlayers();i<j;i++)
{
if(IsPlayerConnected(i) && Spieler[i][pLoggedIn] && Spieler[i][pAdmin] > 0)
{
format(string,sizeof(string),"%s: %s",GetName(i),GetPlayerAdminName(i));
SendClientMessage(playerid,COLOR_GRAU,string);
}
}
return 1;
} -
Versuche es so:
cmd:autoparken(playerid, params[])
{
printf("InVeh: %d", IsPlayerInAnyVehicle(playerid));
if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, dunkelgrün, "Du bist in kein Auto!");
new vID = GetPlayerVehicleID(playerid);
for(new i = 0; i < sizeof(AutoInfo); i++)
{
printf("i: %d / vID: %d / Fahrzeugid: %d", i, vID, AutoInfo[i][Fahrzeugid]);
if(vID == AutoInfo[i][Fahrzeugid])
{
printf("Besitzer: %s / Name: %s", AutoInfo[i][Besitzer], SpielerName(playerid));
//Er sucht ab, ob der spieler ein auto besitzt, wenn ja:
if(!strcmp(AutoInfo[i][Besitzer], SpielerName(playerid)))
{
new query[128];
GetVehiclePos(vID, AutoInfo[i][c_x],AutoInfo[i][c_y],AutoInfo[i][c_z]);
GetVehicleZAngle(vID,AutoInfo[i][c_r]);
format(query, sizeof(query), "UPDATE Autos SET x='%f',y='%f',z='%f',r='%f' WHERE id='%i'",AutoInfo[i][c_x],AutoInfo[i][c_y],AutoInfo[i][c_z],AutoInfo[i][c_r],AutoInfo[i][db_id]);
printf("query: %s", query);
mysql_function_query(dbhandle,query,false," "," ");
SendClientMessage(playerid, dunkelgrün, "Du hast dein Auto geparkt.");
printf("Auto %d wurde geparkt.", i);
return 1;
}
}
}
return SendClientMessage(playerid, dunkelgrün, "Du sitzt nicht in deinem Auto!");
}
Wenn es nicht geht, poste was im Server Log steht, wenn du den Befehl ausführst. -
if(inputtext[abgebendialog]== 5791)
Zu
if(strval(inputtext) == 5791)Natürlich gleich beim anderen Dialog.
-
-
ApplyAnimation(playerid, "LOWRIDER", "Sit_relaxed", 4.1, 1, 1, 1, 1, 1, 1);
https://wiki.sa-mp.com/wiki/Animations -
Hier hast du ein Tutorial, welches dir erklärt wie du das mit den Variablen (PlayerInfo) und dini machst:
http://forum.sa-mp.com/showthread.php?t=167937 -
Hast du schon versucht die Überschrift einfach mit
http://wiki.sa-mp.com/wiki/TextDrawAlignment
zu zentrieren (2)? -
Die Daten bei jeder Verwendung aus der Datei zu laden macht Performance mäßig keinen Sinn, das wird dir je nach Menge sehr schnell Lags bescheren.
Mache es über Spielervariablen.
-
Beim besten Willen, aber so ein Code hat für 99,9% der Leute hier nur einen Verwendungs-Nutzen und keinerlei Änderungs-Nutzen, da sie den Code nicht verstehen, und somit keine Änderungen vornehmen können, ohne alles kaputt zu machen. Zum einen kommt die überkomplizierte Schreibweise, und zum anderen kommt der komplett unübersichtliche Aufbau. Einen solchen Code würde dir in einer halbwegs seriösen Firma keiner abnehmen.
Zudem gilt unter Programmieren die ungeschriebene Regel, dass pro Zeile nur eine Anweisung kommt. Eine Aneinander-Reihung mit Kommas bringt keinen Nutzen, das einzigste was du damit erreichst ist, dass der Code nicht mehr lesbar ist.
http://de.wikipedia.org/wiki/ProgrammierstilÜbrigens, es wurde bereits eine Version veröffentlicht die zum einen wesentlich mehr kann, und zum anderen ist der Code ist absolut einfach und verständlich gehalten, wie es sein muss.
[WIP] PEDs Include (controllable GTA pedestrians, AI system, collisions...) - 0.3.7+ -
legend: Unterlasse bitte die Vollzitate, besonders in diesem Thread ist das extrem störend.
Außerdem muss die Funktion dann so aussehen, sonst bekommst du einen Error.stock IsPlayerNearVehicle(playerid, vehicleid, Float:range) //©Jeffry
{
new Float:x, Float:y, Float:z;
GetVehiclePos(vehicleid, x, y, z);
if(IsPlayerConnected(playerid) && GetPlayerDistanceFromPoint(playerid, x, y, z) <= range) return 1;
return 0;
}Man könnte auch noch abfragen, ob das Fahrzeug existiert, falls man das nicht schon davor macht.
stock IsPlayerNearVehicle(playerid, vehicleid, Float:range) //©Jeffry
{
new Float:x, Float:y, Float:z;
GetVehiclePos(vehicleid, x, y, z);
if(IsValidVehicle(vehicleid) && IsPlayerConnected(playerid) && GetPlayerDistanceFromPoint(playerid, x, y, z) <= range) return 1;
return 0;
} -
Kleine Frage, wie kann ich abfragen ob einer in der nähe eines Fahrzeuges ist?

Hiermit:
stock IsAnyPlayerNearVehicle(vehicleid, Float:range) //©Jeffry
{
new Float:x, Float:y, Float:z;
GetVehiclePos(vehicleid, x, y, z);
for(new i=0; i<MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i)) continue;
if(GetPlayerDistanceFromPoint(i, x, y, z) <= range) return 1;
}
return 0;
} -
Und offen ist noch wie ich das mit einem Befehl erstelle, was mir am wichtigsten ist weil das sonst jeder kann :l
Was soll der Befehl machen? -
Schreibe es so:
public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
switch(weaponid)
{
case 10..15, 28, 30..32, 34:
{
if(fX != 0.0 && fY != 0.0 && fZ != 0.0)
{
SetPlayerPos(playerid,fX,fY,fZ);
}
}
}
return 1;
}
Den return bei der if-Abfrage zu verwenden ist schlecht, denn wenn danach noch Code folgen sollte irgendwann, dann kann das zu Fehlern führen, an denen du ewig suchst wo das Problem liegt.
Zwecks der mehreren Waffen, nutze den switch. In dem Beispiel gehen die IDs: 10,11,12,13,14,15,28,30,31,32,34
Das ".." heißt "bis". -
1.) Du erstellst ein Dynamisches Objekt.
2.) Du brauchst gar kein Objekt erstellen.
atobj = CreateDynamicObject(1265,0.0,0.0,0.0,0.0,0.0,0.0);
SetPlayerAttachedObject(playerid,1,atobj,6,Pos[0], Pos[1], Pos[2], Pos[3], Pos[4], Pos[5]);
zu:
SetPlayerAttachedObject(playerid,1,1265,6,Pos[0], Pos[1], Pos[2], Pos[3], Pos[4], Pos[5]);