Ist es möglich einem Checkpoint eine ID zuzuweißen?
[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
-
-
Ja, mit dem Streamer Plugin kannst du mehrere Checkpoints erstellen und damit auch IDs vergeben lassen:
https://forum.sa-mp.com/showthread.php?t=102865 -
Sind dir mysql Daten richtig eingetragen?
MySQL_HOST
MYSQL_USER
MYSQL_DB
MYSQL_PW
Ja ich habe eig. alles Richtig eingetragen.
ich weiß nicht was da jetzt falsch eingetragen werden könnte.@Jeffry hast du vllt. ne Lösung?
-
Wenn ich Dynamische Pickups erstelle spawnt das Pickup nicht oder es ist komplett an der falschen Position bzw falsche höhe.
Die Koordinaten stimmen aber.public CreateGameModePickup(Float:pickupX, Float:pickupY, Float:pickupZ, value_ID)
{
new string[128];for (new i = 0; i < MAX_SPHERES; i++) {
if (strlen(SphereDM[i][sphere_idx]) > 0) continue;
SphereDM[i][sphere_idx] = CreateDynamicPickupEx(1273, 14, pickupX, pickupY, pickupZ+1.0, 100.0, {sizeof(worldsDM)}, {-1}, {-1}, {-1}, 0, 89, -1, -1, -1);
SphereDM[i][sphere_model] = 1273;
SphereDM[i][sphere_x] = pickupX;
SphereDM[i][sphere_y] = pickupY;
SphereDM[i][sphere_z] = pickupZ+1.0;
SphereDM[i][sphere_value] = value_ID;format(string, sizeof(string), "%i: X = %f | Y = %f | Z = %f | VALUE = %i", sIndexDM, pickupX, pickupY, pickupZ+1.0, value_ID);
printf(string);sIndexDM++;
break;}
return true;
}Denn das Textlabel ist auch an der richten Position.
-
Vermutlich ist eine der Koordinate außerhalb von +/-4096.
https://wiki.sa-mp.com/wiki/CreatePickup -
Ja, mit dem Streamer Plugin kannst du mehrere Checkpoints erstellen und damit auch IDs vergeben lassen:
https://forum.sa-mp.com/showthread.php?t=102865Wie muss ich das Callback ins Script einfügen?
-
Das erklärt es direkt. Also wird es wohl nichts mit den Pickups richtig?
-
Das erklärt es direkt. Also wird es wohl nichts mit den Pickups richtig?
So hab ich es damals gemacht, vielleicht hilft dir das ja weiter:
-
So hab ich es damals gemacht, vielleicht hilft dir das ja weiter:
https://pastebin.com/raw/YNrb4dXF
DankeMit "CreateDynamicSphere" hatte ich es auch schon aber da ist das Problem wenn zwei Spieler gleichzeitig in diesen Sphere fahren bzw drin sind kriegt nur einer das Nitro/Repair etc... Deshalb wollte ich auf Pickups wechseln aber wenn Pickups wohl nicht funktionieren muss ich das über OnPlayerUpdate machen ._.
-
Problem wenn zwei Spieler gleichzeitig in diesen Sphere fahren bzw drin sind kriegt nur einer das Nitro/Repair
Warum eigentlich? Das Callback sollte doch für beide Spieler aufgerufen werden, oder löschst du die Sphere direkt, wenn der erste rein gefahren ist?
Pickups kannst du außerhalb der genannten Zonen auf jeden Fall nicht erstellen.
Du kannst aber einen Checkpoint dort erstellen, so habe ich es bei mir auf dem Server damals gelöst. Dieser wird dann auf dem Meeresspiegel angezeigt, erkannt wird er aber dort wo du ihn gesetzt hast, sprich auf Maps, wird er nicht angezeigt, funktioniert aber trotzdem. Das wäre ja sogar genau das, was du haben möchtest. -
Die Sphere lösche ich nicht aber mir ist das einfach öfter aufgefallen. Woran es genau liegt das weiß ich nicht aber es ist öfter schon passiert das nur einer es bekommen hat.
-
Das ist komisch, sollte eigentlich nicht passieren.
Aber versuche es wie gesagt mal mit Checkpoints, vor allem dort, wo Pickups nicht gehen.Alternativ eben OnPlayerUpdate, das geht auch. Du hast ja immer separate Modes, somit halten sich die zu prüfenden Zonen ja im Rahmen.
-
.
-
Weiß jemand was das hier sein könnte ich hatte alle umlaute wie ä,ö,ü,ß verbugt
format(text,sizeof(text),"�\n%s",name);
-
Das ist ein Unicode den musst du zu \uFFFD ändern
-
heißt jetzt was genau ?
das ist aus mein script Pawn da wahr voher was andereshier der ganze code
}
}else{
if(DeathIcon[playerid][dActive]==1){
DestroyDynamicPickup(DeathIcon[playerid][dPickup]);
DestroyDynamic3DTextLabel(DeathIcon[playerid][dLabel]);
KillTimer(DeathIcon[playerid][dTimer]);
DeathIcon[playerid][dPickup]=CreateDynamicPickup(1254,1,pos[0],pos[1],pos[2],GetPlayerVirtualWorld(playerid),GetPlayerInterior(playerid));
new text[32];
format(text,sizeof(text),"�\n%s",name);
DeathIcon[playerid][dLabel]=CreateDynamic3DTextLabel(text,GRAU,pos[0],pos[1],pos[2],7.5,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,1,GetPlayerVirtualWorld(playerid),GetPlayerInterior(playerid));
DeathIcon[playerid][dTimer]=SetTimerEx("deathicontimer",15000,0,"i",playerid);
}else{
DeathIcon[playerid][dActive]=1;
DeathIcon[playerid][dPickup]=CreateDynamicPickup(1254,1,pos[0],pos[1],pos[2],GetPlayerVirtualWorld(playerid),GetPlayerInterior(playerid));
new text[32];
format(text,sizeof(text),"�\n%s",name);
DeathIcon[playerid][dLabel]=CreateDynamic3DTextLabel(text,GRAU,pos[0],pos[1],pos[2],7.5,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,1,GetPlayerVirtualWorld(playerid),GetPlayerInterior(playerid));
DeathIcon[playerid][dTimer]=SetTimerEx("deathicontimer",15000,0,"i",playerid);
}
} -
Ich habe dir in deinem Thread geantwortet.
Alles weitere zu diesem Problem bitte auch in deinem Thread behandeln und noch das Problem überall verteilen. -
Moin Leute ... Ich steh gerade mal (wie so oft) auf dem schlauch ...
ich schreibe gerade mein Motor & Tanksystem um ... Ich möchte, den Tank des jeweiligen Fahrzeugs aus der Datenbank auslesen... Leider funktioniert das nicht so wie ich das will...
Was ich habe:
Codenew tank[MAX_VEHICLES]; cache_get_value_name_int(i, "color2", cInfo[id][c_color2]); ZEILE 996: cache_get_value_name_float(i, "tank", tank[cInfo[id][id_x]]);
Leider kommt beim Compilen folgender Warning:
Code...selfmade.pwn(996) : warning 213: tag mismatch Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase 1 Warning.
MfG
XonarZ -
Du liest es als Float aus aber erstellst es nicht als Float.
new Float:tank[MAX_VEHICLES];
-
Du liest es als Float aus aber erstellst es nicht als Float.
new Float:tank[MAX_VEHICLES];
Ich hab mal eine weitere frage dazu ... Warum erkennt er dann allerdings tank als 0.00 an obwohl in der Datenbank 3.00 (3) steht...
Codecache_get_value_name_float(i, "tank", cInfo[id][c_tank]); cache_get_value_name_float(i, "lpm", cInfo[id][lpm]); cache_get_value_name_float(i, "kmstand", cInfo[id][kmstand]); cInfo[id][id_x] = CreateVehicle(cInfo[id][model], cInfo[id][c_x], cInfo[id][c_y], cInfo[id][c_z], cInfo[id][c_r], cInfo[id][c_color1], cInfo[id][c_color2], -1); tank[cInfo[id][id_x]] = cInfo[id][c_tank]; printf("VehicleID: %i hat %0.2f Liter", cInfo[id][id_x], tank[cInfo[id][id_x]]);
Da kommt dann als VehicleID die ID raus, in der ich gerade sitze (2) aber dann steht 0.00 liter... Obwohl in der Datenbank 3 Liter stehen.
MfG
XonarZ -