Schreibe das bei OnGameModeInit hin:
for(new i=0; i<sizeof(hInfo); i++)
{
hInfo[i][h_text] = Text3D:-1;
hInfo[i][h_pickup] = -1;
}
[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 funktioniert nicht...
bei OnGameModeInit hat der id nicht und i geht auch nicht.
-
Änder das "id" zu "i"
-
-
Achso, du meinst das so. Ok, dann musst du noch das hier ändern zu:
stock UpdateHaus(id)
{
new str[128];
if(hInfo[id][h_pickup] != -1)
{
DestroyPickup(hInfo[id][h_pickup]);
}
if(hInfo[id][h_text] != Text3D:-1)
{
Delete3DTextLabel(hInfo[id][h_text]);
}
if(!strlen(hInfo[id][hBesitzer]))
{
hInfo[id][h_pickup] = CreatePickup(1273, 1, hInfo[id][hX], hInfo[id][hY], hInfo[id][hZ], -1);
format(str,sizeof(str), "HausID: %i\nZu Verkaufen\nPreis: %i$\n/hauskaufen", hInfo[id][hID], hInfo[id][Preis]);
hInfo[id][h_text] = Text3D:Create3DTextLabel(str, WEISS, hInfo[id][hX], hInfo[id][hY], hInfo[id][hZ], 10, 0, 1);
} else {
hInfo[id][h_pickup] = CreatePickup(1272,1,hInfo[id][hX],hInfo[id][hY],hInfo[id][hZ], -1);
format(str,sizeof(str), "HausID: %i\nBesitzer: %s\n'F' zum hinein gehen.", hInfo[id][hID], hInfo[id][hBesitzer]);
hInfo[id][h_text] = Text3D:Create3DTextLabel(str, GELB, hInfo[id][hX], hInfo[id][hY], hInfo[id][hZ], 10, 0, 1);
}
return 1;
}Und natürlich:
for(new i=0; i<sizeof(hInfo); i++)
{
hInfo[i][h_text] = Text3D:-1;
hInfo[i][h_pickup] = -1;
} -
-
Du warst zu schnell mit kopieren, hatte noch was vergessen und hatte es noch editiert. Die Zeile muss so sein:
if(hInfo[id][h_text] != Text3D:-1) -
Jagut dann ists ja klar.. Erstmal keine Warnings teste es mal.
-
Was ist falsch?
public OnPlayerSpawn(playerid)
{
SetSpawnInfo(playerid,0,185,1579.6324,-1327.7070,16.4844,319.4559,0,0,0,0,0,0);
if(IsPlayerInFrakt(playerid,1))
{
SetPlayerPos(playerid,FSpawnInfo[Spieler[playerid][pFraktion][fspawnx],FSpawnInfo[Spieler[playerid][pFraktion][fspawny],FSpawnInfo[Spieler[playerid][pFraktion][fspawnz]);
SetPlayerInterior(playerid,FSpawnInfo[Spieler[playerid][pFraktion][fspawnint]);
SetPlayerVirtualWorld(playerid,FSpawnInfo[Spieler[playerid][pFraktion][fspawnworld]);
return 1;
}
return 1;
}Selfmade.p(288) : error 001: expected token: "]", but found "["
Selfmade.p(289) : error 001: expected token: "]", but found "["
Selfmade.p(290) : error 001: expected token: "]", but found "[" -
Du hast immer vergessen die eckige Klammer wieder zu schließen.
-
-
Eddy:
public OnPlayerSpawn(playerid)
{
SetSpawnInfo(playerid,0,185,1579.6324,-1327.7070,16.4844,319.4559,0,0,0,0,0,0);
if(IsPlayerInFrakt(playerid,1))
{
SetPlayerPos(playerid,FSpawnInfo[Spieler[playerid][pFraktion]][fspawnx],FSpawnInfo[Spieler[playerid][pFraktion]][fspawny],FSpawnInfo[Spieler[playerid][pFraktion]][fspawnz]);
SetPlayerInterior(playerid,FSpawnInfo[Spieler[playerid][pFraktion]][fspawnint]);
SetPlayerVirtualWorld(playerid,FSpawnInfo[Spieler[playerid][pFraktion]][fspawnworld]);
return 1;
}
return 1;
}Einfacher zu sehen wäre es gewesen, wenn du hier mit einer Hilfsvariable für die Fraktions-ID gearbeitet hättest.
-
Also unter enum FraktionsSpawns
{
Float:fspawnx,
Float:fspawny,
Float:fspawnz,
fspawnint,
fspawnworld
}noch zbs. Fraktid hinzufügen?
-
Nein, bei OnPlayerSpawn als Beispiel:
new frak = Spieler[playerid][pFraktion];
SetPlayerVirtualWorld(playerid,FSpawnInfo[frak][fspawnworld]);Dann ist es übersichtlicher.
-
Beitrag von Derakar ()
Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar. -
Bei SQLID ist Auto Increment an...
Wenn AI an ist kannst du da auch keine eigenen Werte reinschreiben, da wenn du schoneinmal die 1 vergeben hast und wieder eine 1 eingetragen wird genau dein Fehler auftritt -
Hey, habe mal eine Frage, hab hier ein TV System (nicht selber geschrieben), dies funktioniert leider nicht. Bekomme zwar im Script keine Fehler, jedoch erhalte ich Ingame, wenn ich den Befehl ausführe nur ein "Bild" vom Blueberry Access.
ocmd:tv(playerid,params[])
{
new pID,string[128];
if(!isAdmin(playerid,1))return SendClientMessage(playerid,COLOR_GREY,"Du darfst diesen Befehl nicht benutzen.");
if(sscanf(params,"i",pID))return SendClientMessage(playerid,COLOR_GREY,"Verwendung: /tv [Spieler]");
if(!IsPlayerConnected(pID))return SendClientMessage(playerid,COLOR_GREY,"Dieser Spieler ist nicht online.");
if(pID == playerid)return SendClientMessage(playerid,COLOR_GREY,"Du kannst dich nicht selbst beobachten.");
TogglePlayerSpectating(playerid,pID);
format(string,sizeof(string),"Du beobachtest nun Spieler: %s.",PlayerName(pID));
SendClientMessage(playerid,COLOR_BLUE,string);
return 1;
}ocmd:tvoff(playerid,params[])
{
if(!isAdmin(playerid,1))return SendClientMessage(playerid,COLOR_GREY,"Du darfst diesen Befehl nicht benutzen.");
TogglePlayerSpectating(playerid,0);
SetCameraBehindPlayer(playerid);
SendClientMessage(playerid,COLOR_BLUE,"Du hast die Beobachtung beendet.");
return 1;
}Vielen Dank im Voraus.
-
Ich glaube da fehlt ein
PlayerSpectatePlayer(playerid, pID); -
Hi, wollte das wenn ein Spieler auf eine bestimmte Position geht er zu einer ausgewählten Position (selbst gemappter Interior) teleportiert wird, doch das ohne ein Pickup.
Und ist es möglich auch die Virtuelle Welt dabei zu setzen?
-
Wie soll das passieren, wenn der Spieler genau auf dieser Position ist?
Wenn ja so:
Einen Timer der die Position überprüft (IsPlayerInRangeOfPoint(...))
Wenn er diese Position beseitzt:
SetPlayerPos(...)
SetPlayerVirtualWorld(...)Auf KEINEN Fall in OnPlayerUpdate
Gruß -
ChristianW: Unter welches Callback soll ich es denn machen?
-