public OnFilterScriptInit(playerid)
zu:
public OnFilterScriptInit()
[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
-
-
Manchmal passieren mir solche "dummen" Fehler, danke

Funktioniert perfekt nur ein kleines Problem. Ich habe da wohl ein Fehler eingebaut und da Sachen vertauscht und wenn ich Health verliere, updatet sich das Armor Textdraw.
Hatte einmal die ID's vertauscht doch das hat nix gebracht..
Code nach wie vor:
Spoiler anzeigen
#include <a_samp>Spoiler anzeigen new PlayerText:Textdraw0[MAX_PLAYERS];
new PlayerText:Textdraw1[MAX_PLAYERS];Spoiler anzeigen public OnFilterScriptInit()
{
SetTimer("UpdateHealth", 500, true);
return 1;
}Spoiler anzeigen public OnPlayerConnect(playerid)
{Spoiler anzeigen Textdraw0[playerid] = CreatePlayerTextDraw(playerid,568.000000, 43.000000, "100");
PlayerTextDrawBackgroundColor(playerid,Textdraw0[playerid], 255);
PlayerTextDrawFont(playerid,Textdraw0[playerid], 2);
PlayerTextDrawLetterSize(playerid,Textdraw0[playerid], 0.239999, 1.000000);
PlayerTextDrawColor(playerid,Textdraw0[playerid], 16711935);
PlayerTextDrawSetOutline(playerid,Textdraw0[playerid], 0);
PlayerTextDrawSetProportional(playerid,Textdraw0[playerid], 1);
PlayerTextDrawSetShadow(playerid,Textdraw0[playerid], 1);
PlayerTextDrawSetSelectable(playerid,Textdraw0[playerid], 0);Spoiler anzeigen Textdraw1[playerid] = CreatePlayerTextDraw(playerid,568.000000, 65.000000, "100");
PlayerTextDrawBackgroundColor(playerid,Textdraw1[playerid], 255);
PlayerTextDrawFont(playerid,Textdraw1[playerid], 2);
PlayerTextDrawLetterSize(playerid,Textdraw1[playerid], 0.239999, 1.000000);
PlayerTextDrawColor(playerid,Textdraw1[playerid], 16711935);
PlayerTextDrawSetOutline(playerid,Textdraw1[playerid], 0);
PlayerTextDrawSetProportional(playerid,Textdraw1[playerid], 1);
PlayerTextDrawSetShadow(playerid,Textdraw1[playerid], 1);
PlayerTextDrawSetSelectable(playerid,Textdraw1[playerid], 0);Spoiler anzeigen return 1;Spoiler anzeigen public OnPlayerDisconnect(playerid)
{
PlayerTextDrawDestroy(playerid, Textdraw0[playerid]);
PlayerTextDrawDestroy(playerid, Textdraw1[playerid]);
return 1;
}Spoiler anzeigen public OnPlayerSpawn(playerid)
{
PlayerTextDrawShow(playerid, Textdraw0[playerid]);
PlayerTextDrawShow(playerid, Textdraw1[playerid]);
return 1;
}Spoiler anzeigen forward UpdateHealth();
public UpdateHealth()
{
new Float:health, Float:armour, str[10];
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && !IsPlayerNPC(i))
{
GetPlayerHealth(i, health);
format(str, sizeof(str), "%0.0f", health);
PlayerTextDrawSetString(i, Textdraw0[i], str);
GetPlayerArmour(i, armour);
format(str, sizeof(str), "%0.0f", armour);
PlayerTextDrawSetString(i, Textdraw1[i], str);
}
}
return 1;
} -
Steht Textdraw0 oder Textdraw1 für die Health?
-
-
forward UpdateHealth();
public UpdateHealth()
{
new Float:health, Float:armour, str[10];
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && !IsPlayerNPC(i))
{
GetPlayerHealth(i, health);
format(str, sizeof(str), "%0.0f", health);
PlayerTextDrawSetString(i, Textdraw0[i], str);
GetPlayerArmour(i, armour);
format(str, sizeof(str), "%0.0f", armour);
PlayerTextDrawSetString(i, Textdraw1[i], str);
}
}
return 1;
}
Oder so
forward UpdateHealth();
public UpdateHealth()
{
new Float:health, Float:armour, str[10];
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && !IsPlayerNPC(i))
{
GetPlayerHealth(i, health);
format(str, sizeof(str), "%0.0f", health);
PlayerTextDrawSetString(i, Textdraw1[i], str);
GetPlayerArmour(i, armour);
format(str, sizeof(str), "%0.0f", armour);
PlayerTextDrawSetString(i, Textdraw0[i], str);
}
}
return 1;
}Eines der beiden stimmt dann.
-
Das zweite war meine Wahl und auch die richtige, danke dir sehr Jeffry: :)! Werde das bald in mein Gamemode einbinden.
Doch ich hätte da noch eine Frage:
Ich habe mir da ein Teleport Befehl gebastelt welcher wunderbar funktioniert, doch ich würde gerne wissen wie ich die Funktion einbinde das auch mein Auto mit Teleportiert wird (auch das ich mit drin sitze). Habe das zurzeit noch nicht drinne.
Schaut so aus:
Befehl:
ocmd:teleport(playerid,params[])
{
ShowPlayerDialog(playerid,DIALOG_TELEPORTS, DIALOG_STYLE_LIST, "Teleports", "LS Airport\nSF Airport\nLV Airport\nLnD-GH\nArea51\nAiport Ambadone\nChicken\nLSPD\nAll Saints Hospital\nGlen Park\nHighway\nWhitehouse", "Teleport", "Close");
return 1;
}OnPlayerDialogResponse
//LOGIN ....if(dialogid == DIALOG_TELEPORTS)
{
if(response)
{switch(listitem)
{
case 0: SetPlayerPos(playerid,1922.3157,-2540.7034,13.5469); //LS Airport
case 1: SetPlayerPos(playerid,-1335.9342,-83.0129,14.1484); //SF Airport
case 2: SetPlayerPos(playerid,1433.3839,1726.0897,10.8203); //LV Airport
case 3: SetPlayerPos(playerid,280.9747,1400.6044,10.5796); //LnD Ganghouse
case 4: SetPlayerPos(playerid,91.0602,1920.2573,17.9696); //Area51
case 5: SetPlayerPos(playerid,413.4735,2502.2424,16.4844); //Airportambadone
case 6: SetPlayerPos(playerid,-238.5612,2636.4333,62.6777); //Chicken
case 7: SetPlayerPos(playerid,1546.7340,-1675.7531,13.5629); //LSPD
case 8: SetPlayerPos(playerid,1185.3138,-1325.1349,13.5727); //All Saints Hospital
case 9: SetPlayerPos(playerid,1929.7325,-1408.0227,13.5703); //Glen Park
case 10: SetPlayerPos(playerid,1709.3668,-695.9572,46.1803); //Highway
case 11: SetPlayerPos(playerid,1139.6428,-2037.8634,69.0078); //White House
}
}
return 1;
}return 0;
} -
-
-
Du kannst auch einfach
SetVehiclePos(GetPlayerVehicleID(playerid), x, y, z);
machen.
x, y, z natürlich ersetzen.Ansonsten, das "new vehicleid ..." muss nach der geschweiften Klammer nach "if(response)" stehen.
-
Bekomme leider es nicht hin die Tür so langsam nach links zu bewegen..

tor[78]=CreateDynamicObject(19302,1490.7266800,-1690.6906700,282.9035900,0.0000000,0.0000000,90.3600000);//Knast Gate Zelle 1
if(IsPlayerInRangeOfPoint(playerid,5,1490.7266800,-1690.6906700,282.9035900))
{
if(isPlayerInFrakt(playerid,1) || isPlayerInFrakt(playerid,2) || isPlayerInFrakt(playerid,6) || isPlayerInFrakt(playerid,16) || isPlayerAnAdmin(playerid,6) && Spieler[playerid][pAdminOnduty] == true)
{
if(torstatus[78] == 0)
{
MoveDynamicObject(tor[78],1490.7266800 + 1,-1690.6906700,282.9035900);
torstatus[78] = 1;
PlayerHearMusicInRange(x,y,z,1035,5,1,500);//x,y,z,soundid,radius,timer an = 1 wenn aus = 0,zeit wann timer music/sound beendet
return 1;
}
else
{
MoveDynamicObject(tor[78],1490.7266800,-1690.6906700,282.9035900,3);
torstatus[78] = 0;
PlayerHearMusicInRange(x,y,z,1035,5,1,500);//x,y,z,soundid,radius,timer an = 1 wenn aus = 0,zeit wann timer music/sound beendet
return 1;
}
}
return SendClientMessage(playerid,GRAU,"Du bist nicht in der jeweiligen Fraktion.");
} -
-
Eigentlich solltest du da eine Warnung erhalten, denn bei deinem ersten MoveDynamicObject fehlt hinten der Speed, den musst du noch hinzuzufügen.
Beim zweiten MoveDynamicObject ist der Speed auf 3, das kannst du gegebenenfalls kleiner machen. -
if(!strcmp(VehicleName[vModel-400][carinfo_tankart],"SUPER"))
{
SetPVarInt(vID,"Test",1);
}Könnte da dran was falsch sein? Funktioniert glaube ich nicht.
-
Der Code an sich ist soweit korrekt.
-
if(!strcmp(VehicleName[vModel-400][carinfo_tankart],"SUPER"))
Schreib es evtl mal so:if(!strcmp(VehicleName[vModel-400][carinfo_tankart],"SUPER",true))
Damit die Groß und Kleinschreibung egal ist

-
Beitrag von IceWave ()
Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar. -
Habe hier noch ein kleines Problem jetzt was ich nicht verstehe..
if(!strcmp(VehicleName[vModel-400][carinfo_tankart],"Super"))
{
SetPVarInt(vID,"Test",1);
SendClientMessage(playerid,GRUEN,"Test");
}if(engine==1)
{
engine = 0;
GameTextForPlayer(playerid,"Motor ~r~ausgeschaltet",600,5);
}
else
{
if(GetPVarInt(vID,"Test")==1)return SendClientMessage(playerid,ROT,"Abgesoffen");
engine = 1;
GameTextForPlayer(playerid,"Motor ~g~eingeschaltet",600,5);
}Ich bekomme die Nachricht Test, aber der Motor springt dann trotzdem an.. Wie kann das sein
Die VehicleID ändert sich doch nicht oder ?
-
Du kannst die pVars nur für Spieler nutzen, die im Server online sind, das geht nicht für Fahrzeuge (vID).
Nutze ein Array:
new test[MAX_VEHICLES];Und setze das auf 1, wenn erforderlich:
test[vID] = 1; -
Beitrag von IceWave ()
Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar. -
Objekte editieren.
Bin gerade hierbei: http://wiki.sa-mp.com/wiki/EditAttachedObjectWoher kriege ich jetzt die Koordinaten von dem bearbeitetn Object ?
-
-