Probier mal: 1215, 1319 oder gar 19121 ![]()
Beiträge von Kaliber
-
-
Wir hatten mal 419 Häuser gesetzt, da sind dann bei einigen einfach keine Textdraws am Pickup aufgetaucht
Das sind keine TextDraws, sondern 3DTextLabel.
Und diese werden auch separat berechnet. Wie du in den Limits sehen kannst.
Ich weiß nicht, aber vermutlich lag hier ein Skript Fehler vor

-
Dafür gibt es Tutorials, wie z.B.: MySQL R7(+) - Cachefunktionen & Threaded Querys [UPDATED]
-
Warum gibt es eigentlich keine Verlängerung vom Personalausweis ?
Net nötig, du bist auf ewig Personal der Deutschland GmbH

#Reichsbürger Joke
-
Einfach die Kordinanten aus dem Enum nehmen?
Jaa..einfach dich ins Interior setzen, ganz normal halt, so wie du normalerweise auch zu dem Actor kommen würdest

Kann mir einer sagen, warum die Objekte buggen?
Was genau "buggt" da?

Meinst du, weil die Objekte so quer stehen?
Das liegt dann an der Konvertierung zu SA:MP. Versuch es mit einem anderen Objekt oder mit einem anderen Editor
-
Änderst du auch den Interior vom Spieler?
Wenn ja, probier einfach mal folgendes und setze im Callback [wiki]OnPlayerInteriorChange[/wiki] die Position von deinem Actor neu

Wenn du ihn dann immer noch nicht sehen solltest, dann porte dich mal zu ihm, ob er wirklich erstellt wird xD
-
wie soll ich den Actor neu Streamen?
Eigentlich sollte das der Streamer automatisch regeln xD
Probiers einfach mal aus, wenn es nicht geht..eventuell online mal einen anderen streamer verwenden für die Actors, da gibts spezielle

-
Hab ich noch nicht mit gearbeitet, weiß nicht wie der das Aktualisiert und ob es da Zeiten gibt und wie ausgereift das ist.
Aufjedenfall muss, sobald du das Interior betrittst der Actor neu gestreamt werden.
Du solltest das aber anders machen.
Die Actor nicht Interior spezifisch spawnen lassen, sondern VirtualWorld spezifisch.
Das liegt eigentlich in ihrer Natur
-
Soo habe doch nochmal ein kleines Update gemacht, da ich etwas Zeit gefunden habe

Gibt nun noch eine kleine Special Mission, genaueres im Startpost

#Viel Spaß
-
Okay gut, ich hab keine Ahnung, welche Include du verwendest, eventuell mal posten? bzw Link?

-
Wo muss ich es einfügen wen er auf Aussteigen klickt das er raus geworfen wird?
Habe ich doch geschrieben gehabt

So harmonisiert das else mit dem if(response)

-
Das else musst du anders setzen und zwar so, dass es mit dem if von dem response harmoniert

Und da wo du das else jetzt hast schreib darein, dass dem Spieler wieder der Dialog angezeigt werden soll

-
Ich vermute mal, dass in deinem enum GER vor ENG steht

bzw steht GER ganz oben im enum und hat daher die ID 0.
Du setzt also die Sprache für den Spieler erst nachdem du ihm schon einen Dialog anzeigst

Ich vermute da liegt der Fehler

Achso und wie in einem anderen Post schon erwähnt, switch ist eigentlich nur sinnvoll, wenn du mehr als 2 Sprachen hast, bei 2 kannste das auch so machen:
Textdraw23[playerid] = CreatePlayerTextDraw(playerid, 224.333312, 183.348114, ((GetPlayerLanguage(playerid) == GER)?("deutsch"):("german")));
Gebe zu, bisschen umständlich, kannst es dir ja theoretisch in einem Makro kürzen:
#define L(%0,%1,%2) ((GetPlayerLanguage(%0)==GER)?(%1):(%2))
Nutzung:
Textdraw23[playerid] = CreatePlayerTextDraw(playerid, 224.333312, 183.348114, L(playerid,"deutsch","german"));
Somit sparst du dir viel ein

-
Nur noch zur Optimierung, so einfache Funktionen kannst du als Makro schreiben, das ist performanter und einfacher:
#define GetPlayerLanguage(%0) pLanguage[%0]
Das sieht richtig aus, die Frage ist jetzt nur, wie du das gesetzt hast

-
Wozu der delay?
Und wenn, dann SetTimerEx verwenden mit der playerid als Parameter, so würde das nur bei ID 0 funktionieren.
Dann hast du anscheinend schon AddPlayerClass in deinem Skript, dann kannst du dir das SetSpawnInfo natürlich schenken

-
Wie kann man diesen Dialog entfernen?
Unter OnPlayerRequestClass direkt SetSpawnInfo verwenden und dann SpawnPlayer.
Dann spawnt der Spieler direkt. Musst halt deine ganzen Abfragen nach OnPlayerSpawn verlagern und prüfen, ob der Spieler gerade vom connecten kommt

-
Tut mir Leid, dass ich den Post erst so spät gelesen habe

Das kannst du einfach mit der atan2 Funktion machen.
Hier ein Beispiel:
C
Alles anzeigenstock Float:GetRelative2DAngle(playerid,Float:a,Float:b) { new Float:x,Float:y; GetPlayerPos(playerid,x,y,Float:playerid); return floatabs(atan2(x-a,y-b)); } CMD:test(playerid) { new string[128],Float:x,Float:y,Float:z; GetActorPos(ac,x,y,z); format(string,sizeof(string),"Jo m8, auf %.02f Grad ist ein Actor!",GetRelative2DAngle(playerid,x,y)); SCM(playerid,-1,string); return 1; }Mal eben mit einem Actor getestet und funktioniert 1A

Das System basiert halt auf der Position des Spielers, was meines Erachtens ja auch nur Sinn macht. Oder willst du das bezogen auf die Camera alles haben?!
Den reinen Kamera Winkel bekommst du so: https://forum.sa-mp.com/showpost.php?p=3597048&postcount=1
-
Du nutzt die Parameter falsch.
Schau mal, deine Angaben:
ActorInfo[i][aSkin], ActorInfo[i][aPosX], ActorInfo[i][aPosY], ActorInfo[i][aPosZ], ActorInfo[i][aPosA], ActorInfo[i][aInvulnerable], ActorInfo[i][aHealth], -1, 1, -1, 50.0)
Aber das ist die Falsche Belegung, schau mal:
(modelid, Float:x, Float:y, Float:z, Float:angle, worldid = -1, interiorid = -1, bool:invulnerable = true, Float:health = 100.0)
-
Du schreibst Textdraw22[playerid] = Das ist wahrscheinlich vom Typ PlayerText: allerdings returnt deine Funktion nur 1.
Aber ich verstehe nicht genau was du da machst.
Also tLanguage ist ja eine globale Variable. Wenn du das Skript nur Global einsprachig machen willst, dann solltest du mit Defines und Makros arbeiten, eben mit dem Precompiler. Stichwort: [wiki]Keywords:Directives[/wiki]
Wenn du es Spielerbezogen machen willst, dass sich jeder Spieler die Sprache aussuchen soll, dann arbeite mit switch! Oder wenn es nur 2 sprachig ist, kannst du es einfach so machen:
return CreatePlayerTextDraw(playerid, cod1, cod2, (tLanguage==1)?eng4:ger3);
Am besten erstellst du auch für Sprachen Makros bzw nutzt einen enum:
-
Jetzt möchte ich abfragen ob es mehr als 3 Zeichen in diesem String stehen, wie genau geht dies?
Mit [wiki]strlen[/wiki] erhälst du die Länge von dem String

if(strlen(str) > 3)
{
//Mehr als 3 Zeichen
}