ob es Fehlgeschlagen ist
Inwiefern sollte es fehlschlagen?
ob es Fehlgeschlagen ist
Inwiefern sollte es fehlschlagen?
pwn(3598) : error 017: undefined symbol "GetName"
pwn(3599) : error 017: undefined symbol "ProxDetector"
public OnPlayerText(playerid, text[])
{
new string[128];
format(string, sizeof(string), "%s sagt: %s", GetName(playerid), text);
ProxDetector(20.0, playerid, string, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4, COLOR_FADE5);
return 0;
}
Kann jemand mir weiter helfen bitte?
forward ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5);
public ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
{
if(IsPlayerConnected(playerid))
{
new Float:posx, Float:posy, Float:posz;
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && !IsPlayerNPC(i) && i != INVALID_PLAYER_ID)
{
GetPlayerPos(i, posx, posy, posz);
tempposx = (oldposx -posx);
tempposy = (oldposy -posy);
tempposz = (oldposz -posz);
if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
{
SendClientMessage(i, col1, string);
}
else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
{
SendClientMessage(i, col2, string);
}
else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
{
SendClientMessage(i, col3, string);
}
else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
{
SendClientMessage(i, col4, string);
}
else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
SendClientMessage(i, col5, string);
}
}
}
}
return 1;
}
stock GetName(playerid){new name[MAX_PLAYER_NAME];GetPlayerName(playerid,name,MAX_PLAYER_NAME);return name;}
Hab noch ein Problem.
Ich wollte versuchen das der Spieler im Interior spawnt. Der Spieler fällt durch die Welt.
Habs so ausprobiert.
forward SetPlayerSpawn(playerid);
public SetPlayerSpawn(playerid)
{
SetPlayerInterior(playerid, 10);
}
[list=1][*]forward SetPlayerSpawn(playerid);
[*]public SetPlayerSpawn(playerid)
[*]{
[*]SetPlayerPos(playerid,x,y,z);
[*]SetPlayerInterior(playerid, 10);
[*]}
[/list]
Bei X,Y,Z verständlich deine Coords rein wo er Spawnen soll.
forward SetPlayerSpawn(playerid);
public SetPlayerSpawn(playerid)
{
SetPlayerPos(playerid,0,1729.2349,-1668.2310);
SetPlayerInterior(playerid, 10);
}
Der Spieler spawnt in Blueberry? Der sollte eig. woanders spawn..
Du hast die X Coordinate vergessen.
Der Spieler spawnt in Blueberry? Der sollte eig. woanders spawn..
Du scheinst dich ja noch nicht wirklich mit der Funktion auseinandergesetzt zu haben, grundsetztlich ist hier immer das Wiki ganz ratsam, teilweise gibt es dies auch auf Deutsch, ansonsten auf Englisch. (http://wiki.sa-mp.com/wiki/SetPlayerPos)
[PS: Das englische Wiki ist meistens Informativer, da Zusatzinformationen enthalten sind!]
Nun solltest du genug über die Funktion wissen, du brauchst also nur die drei Koordinaten. Du kannst standardmäßig Ingame den Befehl /save verwenden, dieser speichert deine aktuellen Koordinaten in die savedpositions.txt, die findest du in folgendem Ordner C:\Users\DEIN_NAME\Documents\GTA San Andreas User Files\SAMP, dort wird AddPlayerClass oder AddStaticVehicle verwendet, die erste Variable ist also für dich irrelevant (Dies ist entweder der Skin oder das Fahrzeug [ModelID]). Du nimmst also den zweiten bis vierten Parameter und fügst sie bei der Funktion SetPlayerPos in deinem Script ein.
Eventuell möchtest du nun doch den Spieler in eine bestimmte Richtung drehen, dies erreichst du mit der Funktion SetPlayerFacingAngle, jene findest du auch im Wiki, hier benötigst du die fünfte Koordinate in der savedpositions.txt.
Viele benutzen nun noch SetCameraBehindPlayer, jene Funktion setzt die Kamera hinder den Spieler, so guckt auch die Kamera in die richtige Richtung.
Du scheinst dich ja noch nicht wirklich mit der Funktion auseinandergesetzt zu haben, grundsetztlich ist hier immer das Wiki ganz ratsam, teilweise gibt es dies auch auf Deutsch, ansonsten auf Englisch. (http://wiki.sa-mp.com/wiki/SetPlayerPos)[PS: Das englische Wiki ist meistens Informativer, da Zusatzinformationen enthalten sind!]
Nun solltest du genug über die Funktion wissen, du brauchst also nur die drei Koordinaten. Du kannst standardmäßig Ingame den Befehl /save verwenden, dieser speichert deine aktuellen Koordinaten in die savedpositions.txt, die findest du in folgendem Ordner C:\Users\DEIN_NAME\Documents\GTA San Andreas User Files\SAMP, dort wird AddPlayerClass oder AddStaticVehicle verwendet, die erste Variable ist also für dich irrelevant (Dies ist entweder der Skin oder das Fahrzeug [ModelID]). Du nimmst also den zweiten bis vierten Parameter und fügst sie bei der Funktion SetPlayerPos in deinem Script ein.
Eventuell möchtest du nun doch den Spieler in eine bestimmte Richtung drehen, dies erreichst du mit der Funktion SetPlayerFacingAngle, jene findest du auch im Wiki, hier benötigst du die fünfte Koordinate in der savedpositions.txt.
Viele benutzen nun noch SetCameraBehindPlayer, jene Funktion setzt die Kamera hinder den Spieler, so guckt auch die Kamera in die richtige Richtung.
Der zweite Absatz kenne ich schon. Trotzdem danke es wurde gefixxt dank @Daniel_Waynee
Inwiefern sollte es fehlschlagen?
Wenn es nicht geladen werden konnte aus irgendeinem Grund.
Wenn es nicht geladen werden konnte aus irgendeinem Grund.
Ja, das ist doch aber der Punkt.
Es kann ja nur nicht geladen werden, wegen einem Skript Fehler oder weil der Name nicht stimmt.
Also beim Skripten musste halt testen, da sollte kein Fehler passieren und beim Namen ja auch nicht, da du den ja statisch angibst.
Wenn es dynamisch gemacht wird mit /rcon loadfs filterscript kommt ja eine Nachricht, ob es geladen wurde oder nicht
Also es sollte zu 100% eig immer geladen werden
Guten Abend,
ich habe in einem Enum einen "String", jetzt möchte ich gerne Abfragen ob etwas in diesem String steht.
Wie kann ich dies am besten Abfragen?
zB. format(str, 128, "Test");
Jetzt möchte ich abfragen ob es mehr als 3 Zeichen in diesem String stehen, wie genau geht dies?
MfG.
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
}
Guten Abend,
bin gerade an einem Sprachsystem dran, nun spuckt er mir nen Warning aus.
warning 213: tag mismatch
Textdraw22[playerid] = LanguageTextDraw(playerid, 416.000000, 230.222106, "ger", "eng");
stock LanguageTextDraw(playerid, Float:cod1, Float:cod2, ger3[], eng4[])
{
if(tLanguage == 1) {CreatePlayerTextDraw(playerid, cod1, cod2, eng4);}
if(tLanguage == 2) {CreatePlayerTextDraw(playerid, cod1, cod2, ger3);}
return 1;
}
MfG
Zreeq
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:
Guten Abend/Morgen,
hab noch einmal ein Problem mit meinem Actor.
Der Actor ist in einem Interior, leider wird er dort aber nichts Gespawnt, ich erstelle den Actor via Streamer Plugin (Aktuelle Version).
// Actor Erstellen via Enum
enum ActorDaten{
aName[256],
aSkin,
Float:aPosX,
Float:aPosY,
Float:aPosZ,
Float:aPosA,
aHealth,
aInvulnerable
}
new ActorInfo[][ActorDaten] = {
{""#FARBE_ORANGE"Akira:"#FARBE_WEISS"\nEgal was du brauchst vom Bürgerbüro\nich besorge es dir!\n\n"#FARBE_ORANGE"'N' zum Interagieren.", 186, -2159.4829, 639.6165, 1057.5861, 36.5559, 100, 1} // -> Bürger Büro Actor
};
// Actor Erstellen bei OnGameModeInit
for(new i = 0; i < sizeof(ActorInfo[]); i++)
{
//CreateActor(ActorInfo[i][aSkin], ActorInfo[i][aPosX], ActorInfo[i][aPosY], ActorInfo[i][aPosZ], ActorInfo[i][aPosA]);
CreateDynamicActor(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);
CreateDynamic3DTextLabel(ActorInfo[i][aName], -1, ActorInfo[i][aPosX], ActorInfo[i][aPosY], ActorInfo[i][aPosZ], 15.0);
}
Mit freundlichen Grüßen,
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)
Wie kann man diesen Dialog entfernen?
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
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
Jo danke. Habe es so gemacht es klappt auch so.
public OnPlayerRequestClass(playerid, classid)
{
SetTimer("Spawn", 10, false);
return 1;
}
forward Spawn(playerid);
public Spawn(playerid)
{
SpawnPlayer(playerid);
return 1;
}