Euch ist ja bestimmt bekannt, das [wiki]SetPlayerCameraPos[/wiki] und [wiki]SetPlayerCameraLookAt[/wiki] ein Problem hat wenn man davor [wiki]TogglePlayerSpectating[/wiki] nutzt.
Das ganze möchte ich gerne Gefixt haben, weiß einer vielleicht wie dies möglich ist ?
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Das ganze möchte ich gerne Gefixt haben, weiß einer vielleicht wie dies möglich ist ?
Im wiki steht ja dass es nur spackt, wenn man das direkt danach einsetzt.
Versuch es zu delayn mit [wiki]SetTimerEx[/wiki]
-
Habe eine Kurze frage warum wird nicht der Name gesetzt als kennzeichen der das Fahrzeug gespawnt hat?
Das Kennzeichen wird vor dem Erstellen des Fahrzeugs gesetzt. Es muss danach gesetzt werden, davor existiert das Fahrzeug ja noch nicht.
-
Das Kennzeichen wird vor dem Erstellen des Fahrzeugs gesetzt. Es muss danach gesetzt werden, davor existiert das Fahrzeug ja noch nicht.
Bereits aufgefallen aber dies wird trd nicht gesetzt der rest funktioniert.
Code
Alles anzeigenocmd:veh(playerid, params[]) { new vID, color1, color2, Float:x, Float:y, Float:z, Float:rot, index = 0; if(PlayerInfo[playerid][pAdmin] < 4)return SendClientMessage(playerid, COLOR_WHITE, ERROR_ADMIN); if(sscanf(params, "iii", vID, color1, color2))return SendClientMessage(playerid, COLOR_WHITE, "{247BA6}* Benutze: {00FF00}/veh [Model-ID] [Farbe 1] [Farbe 2]"); if(vID < 400 || vID > 611)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Model ID muss zwischen 400 und 611 liegen."); if(color1 < 0 || color1 > 255)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Farbe 1 muss zwischen 0 und 255 liegen."); if(color2 < 0 || color2 > 255)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Farbe 2 muss zwischen 0 und 255 liegen."); GetPlayerPos(playerid, x, y, z); new Interior = GetPlayerInterior(playerid); GetPlayerFacingAngle(playerid, rot); for(new a=0;a<MAX_ADMINVEHS;a++) { if(spawnedVeh[a] != INVALID_VEHICLE_ID)index++; } if(index == MAX_ADMINVEHS)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Die maximale Anzahl der erstellbaren Fahrzeuge wurde erreicht."); for(new a=0;a<MAX_ADMINVEHS;a++) { if(spawnedVeh[a] == INVALID_VEHICLE_ID) { spawnedVeh[a] = CreateVehicle(vID, x, y, z, rot, color1, color2, -1); PutPlayerInVehicle(playerid, spawnedVeh[a], 0); LinkVehicleToInterior(spawnedVeh[a], Interior); Meters[spawnedVeh[a]] = 0; Gas[spawnedVeh[a]] = 100; new playerName[MAX_PLAYER_NAME+1], nPlate[32]; GetPlayerName(playerid, playerName, sizeof(playerName)); format(nPlate, sizeof(nPlate), "%s", playerName); SetVehicleNumberPlate(spawnedVeh[a], nPlate); break; } } return 1; }
-
Bereits aufgefallen aber dies wird trd nicht gesetzt der rest funktioniert.
Code
Alles anzeigenocmd:veh(playerid, params[]) { new vID, color1, color2, Float:x, Float:y, Float:z, Float:rot, index = 0; if(PlayerInfo[playerid][pAdmin] < 4)return SendClientMessage(playerid, COLOR_WHITE, ERROR_ADMIN); if(sscanf(params, "iii", vID, color1, color2))return SendClientMessage(playerid, COLOR_WHITE, "{247BA6}* Benutze: {00FF00}/veh [Model-ID] [Farbe 1] [Farbe 2]"); if(vID < 400 || vID > 611)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Model ID muss zwischen 400 und 611 liegen."); if(color1 < 0 || color1 > 255)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Farbe 1 muss zwischen 0 und 255 liegen."); if(color2 < 0 || color2 > 255)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Farbe 2 muss zwischen 0 und 255 liegen."); GetPlayerPos(playerid, x, y, z); new Interior = GetPlayerInterior(playerid); GetPlayerFacingAngle(playerid, rot); for(new a=0;a<MAX_ADMINVEHS;a++) { if(spawnedVeh[a] != INVALID_VEHICLE_ID)index++; } if(index == MAX_ADMINVEHS)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Die maximale Anzahl der erstellbaren Fahrzeuge wurde erreicht."); for(new a=0;a<MAX_ADMINVEHS;a++) { if(spawnedVeh[a] == INVALID_VEHICLE_ID) { spawnedVeh[a] = CreateVehicle(vID, x, y, z, rot, color1, color2, -1); PutPlayerInVehicle(playerid, spawnedVeh[a], 0); LinkVehicleToInterior(spawnedVeh[a], Interior); Meters[spawnedVeh[a]] = 0; Gas[spawnedVeh[a]] = 100; new playerName[MAX_PLAYER_NAME+1], nPlate[32]; GetPlayerName(playerid, playerName, sizeof(playerName)); format(nPlate, sizeof(nPlate), "%s", playerName); SetVehicleNumberPlate(spawnedVeh[a], nPlate); break; } } return 1; }
[wiki]SetVehicleNumberPlate[/wiki]
- The vehicle must be re-spawned or re-streamed for the changes to take effect.
Probier es mal so:
Code
Alles anzeigenocmd:veh(playerid, params[]) { new vID, color1, color2, Float:x, Float:y, Float:z, Float:rot, index = 0; if(PlayerInfo[playerid][pAdmin] < 4)return SendClientMessage(playerid, COLOR_WHITE, ERROR_ADMIN); if(sscanf(params, "iii", vID, color1, color2))return SendClientMessage(playerid, COLOR_WHITE, "{247BA6}* Benutze: {00FF00}/veh [Model-ID] [Farbe 1] [Farbe 2]"); if(vID < 400 || vID > 611)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Model ID muss zwischen 400 und 611 liegen."); if(color1 < 0 || color1 > 255)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Farbe 1 muss zwischen 0 und 255 liegen."); if(color2 < 0 || color2 > 255)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Farbe 2 muss zwischen 0 und 255 liegen."); GetPlayerPos(playerid, x, y, z); new Interior = GetPlayerInterior(playerid); GetPlayerFacingAngle(playerid, rot); for(new a=0;a<MAX_ADMINVEHS;a++) { if(spawnedVeh[a] != INVALID_VEHICLE_ID)index++; } if(index == MAX_ADMINVEHS)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Die maximale Anzahl der erstellbaren Fahrzeuge wurde erreicht."); for(new a=0;a<MAX_ADMINVEHS;a++) { if(spawnedVeh[a] == INVALID_VEHICLE_ID) { spawnedVeh[a] = CreateVehicle(vID, x, y, z, rot, color1, color2, -1); new playerName[MAX_PLAYER_NAME+1], nPlate[32]; GetPlayerName(playerid, playerName, sizeof(playerName)); format(nPlate, sizeof(nPlate), "%s", playerName); SetVehicleNumberPlate(spawnedVeh[a], nPlate); SetVehicleToRespawn(spawnedVeh[a]); LinkVehicleToInterior(spawnedVeh[a], Interior); PutPlayerInVehicle(playerid, spawnedVeh[a], 0); Meters[spawnedVeh[a]] = 0; Gas[spawnedVeh[a]] = 100; break; } } return 1; }
-
CreateVehicle(FcarInfo[i][fCarid], FcarInfo[i][fPos_x], FcarInfo[i][fPos_y], FcarInfo[i][fPos_z], FcarInfo[i][fPos_r], FcarInfo[i][fColor1], FcarInfo[i][fColor2], -1, FcarInfo[i][fSirene]);
Der Code wird mir 4 Mal Tag Misstag aus. Ich habe die Positionen als Float definiert. Habt ihr eine Idee?
public Load_Fraktionscars()
{
new rows;
cache_get_row_count(rows);
if(rows){
for(new i=0; i<rows; i++)
{
cache_get_value_name_int(0, "f_id", FcarInfo[i][f_id]);
cache_get_value_name_int(0, "c_id", FcarInfo[i][fCarid]);
cache_get_value_name_int(0, "pos_x", FcarInfo[i][fPos_x]);
cache_get_value_name_int(0, "pos_y", FcarInfo[i][fPos_y]);
cache_get_value_name_int(0, "pos_z", FcarInfo[i][fPos_z]);
cache_get_value_name_int(0, "pos_r", FcarInfo[i][fPos_r]);
cache_get_value_name_int(0, "color1", FcarInfo[i][fColor1]);
cache_get_value_name_int(0, "color2", FcarInfo[i][fColor2]);
cache_get_value_name_int(0, "sirene", FcarInfo[i][fSirene]);
print("Fraktionsfahrzeug geladen");
CreateVehicle(FcarInfo[i][fCarid], FcarInfo[i][fPos_x], FcarInfo[i][fPos_y], FcarInfo[i][fPos_z], FcarInfo[i][fPos_r], FcarInfo[i][fColor1], FcarInfo[i][fColor2], -1, FcarInfo[i][fSirene]);
}
}else{ print("Keine Fraktionsfahrzeuge geladen."); }
}enum fDataEnum
{
f_id,
fCarid,
float:fPos_x,
float:fPos_y,
float:fPos_z,
float:fPos_r,
fColor1,
fColor2,
fSirene
} -
-
dann werden mir aber 8 Warnings angezeigt.
-
-
Beitrag von Dr. Frauenarzt ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Fehler gefunden (). -
Ich habe kurz eine Frage hab ein klein fehler warum auch immer.
Also wen ich das Haus zu schließe und auschließe steht immer bei beiden das es abgeschlossen ist warum?
Code
Alles anzeigenif(listitem == 2) // Tür { if(Haus[haus][hLock] == 1) { Haus[haus][hLock] = 0; GameTextForPlayer(playerid, "~w~Haus ~g~aufgeschlossen", 3000, 6); UpdateHouseLabel(haus, Haus[haus][hOwned]); } if(Haus[haus][hLock] == 0) { Haus[haus][hLock] = 1; GameTextForPlayer(playerid, "~w~Haus ~r~abgeschlossen", 3000, 6); UpdateHouseLabel(haus, Haus[haus][hOwned]); } }
-
printe dir den Wert doch und schau, ob er geändert wird
-
Geht direkt wieder zu ?
Haustür -> AufHaustür -> Zu
Code
Alles anzeigenif(listitem == 2) // Tür { if(Haus[haus][hLock] == 1) { Haus[haus][hLock] = 0; printf("Haustür -> Auf", Haus[haus][hLock]); GameTextForPlayer(playerid, "~w~Haus ~g~aufgeschlossen", 3000, 6); UpdateHouseLabel(haus, Haus[haus][hOwned]); } if(Haus[haus][hLock] == 0) { Haus[haus][hLock] = 1; printf("Haustür -> Zu", Haus[haus][hLock]); GameTextForPlayer(playerid, "~w~Haus ~r~abgeschlossen", 3000, 6); UpdateHouseLabel(haus, Haus[haus][hOwned]); } }
//E:
& Wie lasse ich Name und eine Beschreibung auslesen aus der DB?
Habe es so versucht:
cache_get_value_name(i, "Besitzer", Haus[houseID][hBesitzer]);
cache_get_value_name(i, "Name", Haus[houseID][hName]);Und so versucht:
cache_get_value_name_int(i, "Besitzer", Haus[houseID][hBesitzer]);
cache_get_value_name_int(i, "Name", Haus[houseID][hName]); -
Geht direkt wieder zu ?
sehr richtig
Der Code stoppt ja nicht. Also nutze ein else if bei der unteren Bedingung
-
Sehr schön verstanden.
cache_get_value_name(i, "Besitzer", Haus[houseID][hBesitzer]);
cache_get_value_name(i, "Name", Haus[houseID][hName]);
cache_get_value_name_int(i, "Besitzer", Haus[houseID][hBesitzer]);
cache_get_value_name_int(i, "Name", Haus[houseID][hName]);Wie lasse ich am besten die 2 auslesen einmal den Besitzername
und einmal die Beschreibung des Hauses.Beim Erstellen wird soweit alles richtig angezeigt nur das Problem ist wen ich den Server neu starte klappt es nicht.
//E:
Habe die Lösung gefunden.
cache_get_value_name(i, "Besitzer", Haus[houseID][hBesitzer], MAX_PLAYER_NAME);
cache_get_value_name(i, "Name", Haus[houseID][hName], 64); -
public Load_Fraktionscars()
{
new rows;
cache_get_row_count(rows);
if(rows){
for(new i=0; i<rows; i++)
{
cache_get_value_name_int(0, "f_id", FcarInfo[i][f_id]);
cache_get_value_name_int(0, "c_id", FcarInfo[i][fCarid]);
cache_get_value_name_float(0, "pos_x", FcarInfo[i][fPos_x]);
cache_get_value_name_float(0, "pos_y", FcarInfo[i][fPos_y]);
cache_get_value_name_float(0, "pos_z", FcarInfo[i][fPos_z]);
cache_get_value_name_float(0, "pos_r", FcarInfo[i][fPos_r]);
cache_get_value_name_int(0, "color1", FcarInfo[i][fColor1]);
cache_get_value_name_int(0, "color2", FcarInfo[i][fColor2]);
cache_get_value_name_int(0, "sirene", FcarInfo[i][fSirene]);
print("Fraktionsfahrzeug geladen");
CreateVehicle(FcarInfo[i][fCarid], FcarInfo[i][fPos_x], FcarInfo[i][fPos_y], FcarInfo[i][fPos_z], FcarInfo[i][fPos_r], FcarInfo[i][fColor1], FcarInfo[i][fColor2], -1, FcarInfo[i][fSirene]);
continue;
}
}else{ print("Keine Fraktionsfahrzeuge geladen."); }
}Es wird nur ein Auto erstellt, aber alle geladen? -
Es wird nur ein Auto erstellt, aber alle geladen?
Also das continue; in der Schleife macht da keinen Sinn
cache_get_value_name_int(0,
und das muss cache_get_value_name_int(i, heißen, weil du sonst doch immer auf den selben Index zugreifen würdest
-
Morgen,
meine Frage gehört hier nicht wirklich hin, wollte aber dafür kein extra Theread aufmachen:
Was ist derzeit die aktuelle samp Version? Offiziell scheint es noch 0.3.7 zu sein aber soweit ich weiß, wurde eine neue Version veröffentlicht. Zudem würde es mich interessieren was sich so verändert hat (sofern man mich auf die Dokumentation o.ä. weiterleitet reicht mir das schon ) und ob es sich schon lohnt auf der neusten Version zu arbeiten.Danke und bitte steinigt mich nicht, da es keine direkte scripting Frage ist
MfG
-
Morgen,
meine Frage gehört hier nicht wirklich hin, wollte aber dafür kein extra Theread aufmachen:
Was ist derzeit die aktuelle samp Version? Offiziell scheint es noch 0.3.7 zu sein aber soweit ich weiß, wurde eine neue Version veröffentlicht. Zudem würde es mich interessieren was sich so verändert hat (sofern man mich auf die Dokumentation o.ä. weiterleitet reicht mir das schon ) und ob es sich schon lohnt auf der neusten Version zu arbeiten.Danke und bitte steinigt mich nicht, da es keine direkte scripting Frage ist
MfG
Es gibt derzeit eine zweite branch die server sided custom models unterstützt
Hier ist der RC Thread mit der Changelog und hier ist der Release Thread -
Morgen,
meine Frage gehört hier nicht wirklich hin, wollte aber dafür kein extra Theread aufmachen:
Was ist derzeit die aktuelle samp Version? Offiziell scheint es noch 0.3.7 zu sein aber soweit ich weiß, wurde eine neue Version veröffentlicht. Zudem würde es mich interessieren was sich so verändert hat (sofern man mich auf die Dokumentation o.ä. weiterleitet reicht mir das schon ) und ob es sich schon lohnt auf der neusten Version zu arbeiten.Danke und bitte steinigt mich nicht, da es keine direkte scripting Frage ist
MfG
http://forum.sa-mp.com/showthread.php?t=644105
Im großen und ganzen kann man in der 0.3.DL eigene Skins und Objekte ins Spiel intigrieren. Der Objektstreamer wurde von 1000 objekte auf 2000 erhöht. Viel mehr ist es eigentlich nicht.
-