Ändere AddStaticVehicleEx zu AddStaticVehicle...oder gib hinten noch eine respawn Zeit ein ![]()
mfg. ![]()
Ändere AddStaticVehicleEx zu AddStaticVehicle...oder gib hinten noch eine respawn Zeit ein ![]()
mfg. ![]()
Wie kann ich per Befehl die aktuellen Koordinaten via ocmd und sscanf anzeigen lassen? Bekomme das irgendwie nicht hin, dass die angezeigt werden im Chat.
Einfach so:
ocmd:coords(playerid) {
new Float:p[3],string[64];
GetPlayerPos(playerid,p[0],p[1],p[2]);
format(string, sizeof string,"Deine Koordinaten sind X: %.02f | Y: %.02f | Z: %.02f",p[0],p[1],p[2]);
return SendClientMessage(playerid,-1,string);
}
mfg. ![]()
Das objekt kommt einfach nicht.
Also bei mir schon, zwar nicht an seiner richtigen Position, aber es erscheint ![]()
Nutzt du evtl eine Commandprozesser oder ist evtl der Codeblock in einem ungültigen Directive?
Schreib mal einen print rein und schau ob der Befehl überhaupt aufgerufen wird, denn das müsste funktionieren ![]()
mfg. ![]()
steht nichts drin..
Nutze doch einfach SetPlayerAttachedObject.
Da kannst du es einfach so machen:
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp("/objekt", cmdtext, true)) return SetPlayerAttachedObject(playerid,0,18910,2),1;
return 0;
}
mfg. ![]()
CreateObject hat ein Limit von 1000 Objekten...falls du diese Anzahl überschreitest, zeigt wer weitere nicht an. Aus diesem Grund nutzt man Streamer ![]()
mfg. ![]()
Aber der Chat immer noch nicht
Klar geht der ![]()
Hast du vielleicht noch Filterscripts oder Includes wo du da was anderes machst?! ![]()
nicht funktioniert
Nutzt du irgendwelche Anti-Cheat Includes o.ä. dass die Funktion evtl gehookt wurde und es jetzt andere Parameter hat?
Schau halt mal in die Includes oder schau, wie du evtl anders in deinem Script Geld vergibst?! ![]()
Hm, klappt nicht. Bei mir switched es einfach durch ohne zu warten.
In diesem Fall, vielleicht hilft dir dieses Makro: [ MAKRO ] Sleep Funktion
Es kommt nichts in den Chat, ich bekomme aber auch keine Error
Schreib das mal so:
public OnPlayerText(playerid, text[])
{
new Float:p[3],n[MAX_PLAYER_NAME],str[144];
GetPlayerName(playerid, n, sizeof(n)),GetPlayerPos(playerid, p[0], p[1], p[2]);
format(str, sizeof(str), "%s sagt: %s", n, text);
for(new i; i < MAX_PLAYERS; i++){
if(!IsPlayerConnected(i) || !IsPlayerInRangeOfPoint(i, 25.0, p[0], p[1], p[2])) continue;
SendClientMessage(i, 0xFFFFFFFF, str);
}
return 0;
}
mfg. ![]()
Was machst du da auch? ![]()
Schreib es so:
enum oDATA {
objectid,
Float:X,
Float:Y,
Float:Z,
};
new RandomTexture[][] = {
{0, 8839, "vgsecarshow", "lightred2_32"},
{0, 8839, "vgsecarshow", "lightblue2_32"}
}, Textur[][oDATA] ={
{ 19362, 120.39700, 1868.46973, 720.62543 },
{ 19362, 149.28700, 1864.98975, 720.62543 },
{ 19362, 146.07700, 1864.98975, 720.62543 },
{ 19362, 149.28700, 1857.98975, 720.62543 },
{ 19362, 142.86700, 1857.98975, 720.62543 },
{ 19362, 142.86700, 1850.98975, 720.62543 },
{ 19362, 120.39700, 1850.98975, 720.62543 },
{ 19362, 136.44701, 1836.98975, 720.62543 }
};
//und das unten
public OnPlayerSpawn(playerid)
{
new rand;
for( new i; i < sizeof(Textur); i++ ) {
for( new x; x < sizeof(Textur[]); x++ ) {
rand= random(sizeof(RandomTexture));
SetObjectMaterial(CreateObject(Textur[i][x][objectid],Textur[i][x][X],Textur[i][x][Y],Textur[i][x][Z],0.0,0.0,0.0), RandomTexture[rand][0],RandomTexture[rand][1],RandomTexture[rand][2],RandomTexture[rand][3]);
}
}
return 1;
}
mfg. ![]()
[][]
Sowas hilft mir nicht ![]()
Dann sag halt wie groß die Dimensionen sind...das ist das entscheidende, da liegt halt der Fehler ![]()
Array index out of bounds
Das bedeutet, du hast quasi new string[10]; Also 10 Zellen und machst dann sowas: string[12] = 5; ...es gibt keine 12te Zelle also, Array index out of bounds..
mfg. ![]()
Und jetzt sag mir folgendes:
1. Wie groß ist MAX_FVEHS?
2. Die Deklaration von FahrzeugDefinition und von Fahrzeug und von FahrzeugInfoModel und von vFahrzeug...
mfg. ![]()
Du kannst mal versuche ob dieses Plugin dir helfen kann
Das nutzt er doch, deshalb hat er ja diese Fehlermeldung da stehen ![]()
cmd_vehlist
Poste mal diese public-Funktion ![]()
mfg. ![]()
Also er zäht hoch und bei den zeichen runter
Ja, was eine Überraschung ![]()
Um dir dieses Phänomen mal zu erklären, es ist ganz einfach:
//Nehmen wir einen String:
new string[6] = "Hallo";
//Printen wir nun etwas:
print(string[0]); //Hier printet er: Hallo
//Da alles ab dem 0ten Zeichen bis zum Ende ausgegeben wird.
print(string[1]); //Hier printet er: allo
//Da alles ab dem 1ten Zeichen bis zum Ende ausgegeben wird.
Um das Problem, welches du hast zu lösen, musst du einfach dem String noch eine Dimension geben, da du ja noch Zeichen hast, sprich:
LastDriver[vehicleid] = "Hallo";
//Das ist falsch, da du z.B. jetzt nicht das H als Zeichen ausgeben kannst, sondern nur den ganzen String, oder halt ab dem Zeichen.
new LastDriver[MAX_VEHICLES][6];
LastDriver[vehicleid] = "Hallo";
//Jetzt kannst du es ausgeben:
LastDriver[vehicleid][0] // -> Das würde jetzt das H ausgeben
Sprich du musst noch eine Dimension mit MAX_LENGTH des Strings angeben ![]()
mfg. ![]()
Ich weiß aufjedenfall das dass möglichs ist..
Ohne ein extra Plugin, dass gegen die Auflagen der SA-MP Lizenz verstößt, wohl eher nicht ![]()
Was du meinen könntest ist der gpci Hash...aber das ist nur ein Hash aus dem Windows Benutzernamens des Computers, wo der Client gerade connectet.
mfg. ![]()
Entscheid dich doch mal für eine Art von Commandprozessor...
In deinem Server.log steht, du nutzt ocmd, dann kann es zu Komplikationen kommen, wenn du auch noch dcmd nutzt. Da der Callback gehookt wird und somit nicht mehr aufgerufen wird. Du müsstest das dcmd Makro in einen anderen von ocmd gefertigten Callback schreiben.
Also nutze doch entweder nur ocmd oder dcmd, das wäre um einiges leichter ![]()
mfg. ![]()
PlayerCar[playerid][x][Plate] = kz;
Schreib die Zeile so:
//Und bitte deklariere kz so:
kz[32]; //Nicht 128!
format(PlayerCar[playerid][x][Plate], 32, kz);
mfg. ![]()
//Ban(giveplayerid);
Kick(giveplayerid);
Du kickst ihn ja auch nur ![]()
Das Ban(giveplayerid); ist ja auskommentiert...sprich mach es so:
Ban(giveplayerid);
//Kick(giveplayerid); <<kannst du auch ganz löschen
mfg. ![]()
Ich arbeite ganz normal mit Pawn
Dann glaube ich dir das nicht ![]()
Hast du TeamViewer, dann schick mir doch kurz deine Daten per PN und ich schaue mir das an ![]()
mfg. ![]()
Schreibe die Funktion so:
stock CreateLanguage3DTextLabel(const textDE[], const textEN[], color, Float:x, Float:y, Float:z, Float:drawdistance, attachedplayer = INVALID_PLAYER_ID, attachedvehicle = INVALID_VEHICLE_ID, testlos = 0, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = 100.0)
{
if(pInfo[playerid][Language] == LANGUAGE_DE) CreateDynamic3DTextLabel(textDE, color, x, y, z, drawdistance, attachedplayer, attachedvehicle, testlos, worldid, interiorid, playerid, streamdistance);
else if(pInfo[playerid][Language] == LANGUAGE_EN) CreateDynamic3DTextLabel(textEN, color, x, y, z, drawdistance, attachedplayer, attachedvehicle, testlos, worldid, interiorid, playerid, streamdistance);
return 1;
}
Lerne den Unterschied zwischen Attributen und Parametern ![]()
mfg. ![]()
Wie kann man den herrausfinden, wie viele Objekte erstellt worden sind(CreateDynamicObject, CreateObject), wie viele entfernt worden sind(RemoveBuildingForPlayer) und das per einen Print Output ausgeben lassen?
Die Funktionen hooken und einen counter mitzählen lassen ![]()
Habe vor nem Jahr oder so das mal gemacht: [ INCLUDE ] Limit Counter
Kannst dir da ja ein wenig Inspiration holen ![]()
mfg. ![]()