Streamst du die Objekte mit einem Streamer? Wenn ja, liegt es daran, dass du zu weit weg bist (also dein Spieler). Dann musst du den Spieler näher an die Objekte setzen.
Beiträge von Jeffry
-
-
Willkommen im Forum!
Tipps: Scripting-Probleme richtig erklären
Du hast hier so ziemlich alles falsch gemacht, so wird und kann dir niemand helfen, da dein Code einfach unleserlich ist.
1.) Beschreibe dein Thema richtig.
2.) Poste nur nötigen Code.
3.) Poste nicht alles in einer Zeile (füge es vorher in Word ein, oder scripte mit dem standard pawno.exe.
4.) Nutze die Vorschau bevor du postest, dann siehst du wie es aussieht. -
Also bei mir klappt das wunderbar.
Lass es mal so laufen, was wird da geprintet?
for(new i = 0; i < MAX_PLAYERS; i++)
{
printf("World(%d) = %d | %d != %d", i, GetPlayerVirtualWorld(i), i, playerid);
if(GetPlayerVirtualWorld(i) == 7 && i!=playerid)
{
printf("Verstecke Marker bei ID %d von ID %d", i, playerid);
SetPlayerMarkerForPlayer(i, playerid, (GetPlayerColor(playerid) & 0xFFFFFF00));
printf("Verstecke Marker bei ID %d von ID %d", playerid, i);
SetPlayerMarkerForPlayer(playerid, i, (GetPlayerColor(i) & 0xFFFFFF00));
}
} -
falls noch etwas gebraucht wird, bitte melden.
Bist du da denn schon eingeloggt? Weil registriert = 1 heißt ja nicht gleich eingeloggt, daher muss auch der Wert in der PVar noch nicht gesetzt sein.
Prüfe das mal.Falls du nicht weiter kommst, poste bitte noch dein OnPlayerConnect und den Teil mit dem du den Spieler einloggst.
Poste bitte die zwei Callbacks aus dem Pastebin (http://pastebin.com/FXq7YX53) auch nochmal dazu, dass es an einer Stelle ist.Apokrate: Alles klar, kein Problem. Super!
-
Ich würde dir raten einen schon vorhandenen Code zu nehmen, da du eh nur das Gleiche erstellen wirst, die Berechnung ist ja immer gleich.
[ FILTERSCRIPT ] Kilometerzähler ( Pille: :D)
Wobei man sich da nicht mit dem Auto teleportieren darf.Oder sowas: http://forum.sa-mp.com/showthread.php?t=189171
-
Das sind wohl sich überschneidende IDs.
Das kannst du ganz leicht beheben:DestroyDynamicPickup(pickupid);
zu:
DestroyDynamicPickup(pickupid);
BF_WEAPON[10] = -1;natürlich auch bei den pickups 0-9 so machen.
Außerdem ist der ganze Time falsch, das wird nicht klappen, für beide Timer:
SetTimerEx("MinigunRespawn", 3*60*1000, false, "i", BF_WEAPON[i]);
zu:
SetTimerEx("MinigunRespawn", 3*60*1000, false, "i", i);Und:
Bei den beiden Timern für den Respawn:
if(pickupid == BF_WEAPON[0])
zu:
if(pickupid == 0)Du darfst nicht die pickupid übergeben, sondern die Index ID, weil die Pickup ID sich immer wieder ändert.
Beispiel:0 erstellt
1 erstellt
2 frei=> Erstelle 2
0 erstellt
1 erstellt
2 erstellt=> Lösche 1
0 erstellt
1 frei
2 erstellt=> Lösche 2
0 erstellt
1 frei
2 frei=> Erstelle 2
0 erstellt
1 erstellt ====>>> Index 2 hat jetzt die pickupid 1.
2 frei -
Eigentlich nicht, aber kannst es ja versuchen.
Hast du SetPlayerColor davor verwendet? Wenn nein, das musst du.Was genau passiert, oder funktioniert nicht?
-
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(GetPlayerVirtualWorld(i) == 7 && i!=playerid) //wenn der gesehene und der "Seher" in vw 7 sind...
{
SetPlayerMarkerForPlayer(i, playerid, (GetPlayerColor(playerid) & 0xFFFFFF00)); //soll jeder playerid als unsichtbar ansehen
SetPlayerMarkerForPlayer(playerid, i, (GetPlayerColor(i) & 0xFFFFFF00)); //soll playerid alle anderen als unsichtbar ansehen
}
} -
Du kannst die R5 nicht mehr verwenden, wenn du die Cache Funktionen nutzen willst. Dazu brauchst du eine der neuen Versionen.
-
Hier die aktuelle Version herunterladen:
https://github.com/pBlueG/SA-MP-MySQL/releases -
Jeffry please
Die richtige Größe wäre 9 - nicht 8output,8, und was bedeutet das? ouput und 8?
Er hat gefragt, was die Zahl 8 im Format bedeutet, das habe ich ihm erklärt. Es ging nicht darum, ob das jetzt in dem Fall richtig ist, oder nicht...
Das hätte er sowieso nach der Erklärung auch selbst gemerkt, dass die Klammer dann hinten fehlt, und er es zu 9 ändern muss.
Sei's drum.xSoldier: Wie sieht denn der Rest von dem Code aus der dazugehört?
So macht der Code ja keinen Sinn, aber ich kann dir auch nicht sagen wie es richtig ist, da ich nicht weiß was du dahinter vor hast. -
Oh, dann ändere es zu
mysql_fetch_field_row(val,"wins"); -
output ist die Variable in die die Farbe gespeichert wird.
new output[8];
format = Formatierung
output = wir geben an in welche Variable geschrieben werden soll
8 = wie viele Zeichen reserviert werden, in "output". Man nimmt eigentlich immer die Größe des Strings. -
Ändere alle mysql_fetch_field zu mysql_get_field.
-
Starte mal die pawno.exe die in deinem Server Ordner ist. Dann gehe dort auf öffnen und öffne deinen Gamemode, dann sollte es klappen.
-
Siehste!
Dann setze das verbuggte Textdraw doch einfach inaktiv, so dass du es keinem mehr anzeigst, und erstelle das Textdraw einfach nochmal, das zeigst du den Spielern dann an. Ist zwar keine schöne Lösung, aber hilft.
-
Nein, du musst das machen um den Index für die Speicherung zurückzusetzen.
Probiere es aus, wirst schon sehen. -
Jetzt sage ich dir zum dritten Mal, dass du den Code den ich dir gegeben habe versuchen sollst.
public UpdateVehicleAnzeigeTimer(playerid)
{
new engine, lights, alarm, doors, bonnet, boot, objective, string[512], Float: health, vehicleid, enginestate[32], lightstate[32], carlockstate[32];
vehicleid = GetPlayerVehicleID(playerid);
if(vehicleid == 0) return 1;
GetVehicleHealth(vehicleid,health);
printf("playerid: %d | vehicleid: %d", playerid, vehicleid);
GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
format(string,sizeof(string),"Fahrzeugname: ~w~%s",VehicleNames[GetVehicleModel(vehicleid) - 400]);
print(string);
PlayerTextDrawSetString(playerid,Fahrzeuganzeige[playerid][0],string);
print("Fahrzeuganzeige[playerid][0] gesetzt.");
format(string,sizeof(string),"Geschwindigkeit: ~r~%i ~y~km/h~",GetVehicleSpeed(vehicleid));
print(string);
PlayerTextDrawSetString(playerid,Fahrzeuganzeige[playerid][1],string);
print("Fahrzeuganzeige[playerid][1] gesetzt");
printf("Tank: %d / %d", VehicleInfo[vehicleid][Tank],VehicleInfo[vehicleid][MaxTank]);
format(string,sizeof(string),"%i%%~n~",VehicleInfo[vehicleid][Tank]/VehicleInfo[vehicleid][MaxTank]);
print(string);
PlayerTextDrawSetString(playerid,Fahrzeuganzeige[playerid][2],string);
print("Fahrzeuganzeige[playerid][2] gesetzt");
return 1;
}Dort habe ich dir Rechnung bereits geändert.
Wie soll ich dir denn helfen, wenn du nicht machst, was ich dir sage? -
//idx = 0;
zu
idx = 0; -
Das ist das was du nach /a eingibst. Das wird dir hier
ocmd:a(playerid,params[])
In die params Variable geschrieben. Da du alles haben willst, nehmen wir einfach die ganze Variable.