[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
-
-
Alles klar danke, kannst mir noch schnell sagen wie ich das hier definieren muss? Habe Maps in meinem Server eingefügt, per FS.
Doch die gelöschen Objekte sind noch da, hatte ein Fehler beim definieren der Playerid.
RemoveBuildingForPlayer(playerid, 7834, 1064.839, 1869.780, 13.921, 0.250);
Error:
C:\Users\Dave\Desktop\Hoe's Wonderland\filterscripts\Maps.pwn(44) : error 017: undefined symbol "playerid"
Error geht weg wenn ich #define playerid; mache. Doch die Objekte sind immernoch nicht weg..
-
Das RemoveBuildingForPlayer muss unter OnPlayerConnect stehen.
-
Hab ich ganz vergessen danke :)!
Zu meinem Auto das ich erstellen wollte, ist ein paar Posts über uns:
Code sieht so aus [ZCMD]:
CMD:jmbullet(playerid, params[])
{
new tmpobjid;
new carvid;
CreateVehicle(541,-199.906,1221.879,19.324,177.737,0,0,-1);
AddVehicleComponent(carvid, 1010);
AddVehicleComponent(carvid, 1074);
AddVehicleComponent(carvid, 1087);
ChangeVehiclePaintjob(carvid, 1);tmpobjid = CreateDynamicObject(19483,0.0,0.0,-1000.0,0.0,0.0,0.0,-1,-1,-1,300.0,300.0);
SetDynamicObjectMaterialText(tmpobjid, 0, "JustMe.77", 90, "Ariel", 20, 1, -16711936, 0, 1);
AttachDynamicObjectToVehicle(tmpobjid, carvid, 0.000, 1.200, 0.292, 0.000, 270.000, 90.000);
tmpobjid = CreateDynamicObject(1547,0.0,0.0,-1000.0,0.0,0.0,0.0,-1,-1,-1,300.0,300.0);
SetDynamicObjectMaterial(tmpobjid, 0, 7419, "vegasbuild", "vgnwoodenwall_256", 0);
AttachDynamicObjectToVehicle(tmpobjid, carvid, -0.020, -2.211, 0.100, 90.000, 90.000, 270.000);
tmpobjid = CreateDynamicObject(19483,0.0,0.0,-1000.0,0.0,0.0,0.0,-1,-1,-1,300.0,300.0);
SetDynamicObjectMaterialText(tmpobjid, 0, "LnD 77", 120, "Ariel", 20, 1, -65536, 0, 1);
AttachDynamicObjectToVehicle(tmpobjid, carvid, -0.010, -2.220, 0.073, 0.000, 0.000, 270.000);
}0 Errors, Ingame steht da Unkown Command.
EDIT:
Wenn ich den exakten Code in mein FS kopiere kommt:
Spoiler anzeigen
C:\Users\Dave\Desktop\Hoe's Wonderland\filterscripts\Maps.pwn(1310) : warning 219: local variable "carvid" shadows a variable at a preceding level
C:\Users\Dave\Desktop\Hoe's Wonderland\filterscripts\Maps.pwn(1317) : error 017: undefined symbol "CreateDynamicObject"
C:\Users\Dave\Desktop\Hoe's Wonderland\filterscripts\Maps.pwn(1318) : error 017: undefined symbol "SetDynamicObjectMaterialText"
C:\Users\Dave\Desktop\Hoe's Wonderland\filterscripts\Maps.pwn(1319) : error 017: undefined symbol "AttachDynamicObjectToVehicle"
C:\Users\Dave\Desktop\Hoe's Wonderland\filterscripts\Maps.pwn(1320) : error 017: undefined symbol "CreateDynamicObject"
C:\Users\Dave\Desktop\Hoe's Wonderland\filterscripts\Maps.pwn(1321) : error 017: undefined symbol "SetDynamicObjectMaterial"
C:\Users\Dave\Desktop\Hoe's Wonderland\filterscripts\Maps.pwn(1322) : error 017: undefined symbol "AttachDynamicObjectToVehicle"
C:\Users\Dave\Desktop\Hoe's Wonderland\filterscripts\Maps.pwn(1323) : error 017: undefined symbol "CreateDynamicObject"
C:\Users\Dave\Desktop\Hoe's Wonderland\filterscripts\Maps.pwn(1324) : error 017: undefined symbol "SetDynamicObjectMaterialText"
C:\Users\Dave\Desktop\Hoe's Wonderland\filterscripts\Maps.pwn(1325) : error 017: undefined symbol "AttachDynamicObjectToVehicle"
C:\Users\Dave\Desktop\Hoe's Wonderland\filterscripts\Maps.pwn(1323) : warning 204: symbol is assigned a value that is never used: "tmpobjid"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhaseSpoiler anzeigen 9 Errors.
-
Hab ich ganz vergessen danke :)!
Zu meinem Auto das ich erstellen wollte, ist ein paar Posts über uns:
Code sieht so aus [ZCMD]:
CMD:jmbullet(playerid, params[])
{
new tmpobjid;
new carvid;
CreateVehicle(541,-199.906,1221.879,19.324,177.737,0,0,-1);
AddVehicleComponent(carvid, 1010);
AddVehicleComponent(carvid, 1074);
AddVehicleComponent(carvid, 1087);
ChangeVehiclePaintjob(carvid, 1);tmpobjid = CreateDynamicObject(19483,0.0,0.0,-1000.0,0.0,0.0,0.0,-1,-1,-1,300.0,300.0);
SetDynamicObjectMaterialText(tmpobjid, 0, "JustMe.77", 90, "Ariel", 20, 1, -16711936, 0, 1);
AttachDynamicObjectToVehicle(tmpobjid, carvid, 0.000, 1.200, 0.292, 0.000, 270.000, 90.000);
tmpobjid = CreateDynamicObject(1547,0.0,0.0,-1000.0,0.0,0.0,0.0,-1,-1,-1,300.0,300.0);
SetDynamicObjectMaterial(tmpobjid, 0, 7419, "vegasbuild", "vgnwoodenwall_256", 0);
AttachDynamicObjectToVehicle(tmpobjid, carvid, -0.020, -2.211, 0.100, 90.000, 90.000, 270.000);
tmpobjid = CreateDynamicObject(19483,0.0,0.0,-1000.0,0.0,0.0,0.0,-1,-1,-1,300.0,300.0);
SetDynamicObjectMaterialText(tmpobjid, 0, "LnD 77", 120, "Ariel", 20, 1, -65536, 0, 1);
AttachDynamicObjectToVehicle(tmpobjid, carvid, -0.010, -2.220, 0.073, 0.000, 0.000, 270.000);
}0 Errors, Ingame steht da Unkown Command.
EDIT:
Wenn ich den exakten Code in mein FS kopiere kommt:
Spoiler anzeigen
C:\Users\Dave\Desktop\Hoe's Wonderland\filterscripts\Maps.pwn(1310) : warning 219: local variable "carvid" shadows a variable at a preceding level
C:\Users\Dave\Desktop\Hoe's Wonderland\filterscripts\Maps.pwn(1317) : error 017: undefined symbol "CreateDynamicObject"
C:\Users\Dave\Desktop\Hoe's Wonderland\filterscripts\Maps.pwn(1318) : error 017: undefined symbol "SetDynamicObjectMaterialText"
C:\Users\Dave\Desktop\Hoe's Wonderland\filterscripts\Maps.pwn(1319) : error 017: undefined symbol "AttachDynamicObjectToVehicle"
C:\Users\Dave\Desktop\Hoe's Wonderland\filterscripts\Maps.pwn(1320) : error 017: undefined symbol "CreateDynamicObject"
C:\Users\Dave\Desktop\Hoe's Wonderland\filterscripts\Maps.pwn(1321) : error 017: undefined symbol "SetDynamicObjectMaterial"
C:\Users\Dave\Desktop\Hoe's Wonderland\filterscripts\Maps.pwn(1322) : error 017: undefined symbol "AttachDynamicObjectToVehicle"
C:\Users\Dave\Desktop\Hoe's Wonderland\filterscripts\Maps.pwn(1323) : error 017: undefined symbol "CreateDynamicObject"
C:\Users\Dave\Desktop\Hoe's Wonderland\filterscripts\Maps.pwn(1324) : error 017: undefined symbol "SetDynamicObjectMaterialText"
C:\Users\Dave\Desktop\Hoe's Wonderland\filterscripts\Maps.pwn(1325) : error 017: undefined symbol "AttachDynamicObjectToVehicle"
C:\Users\Dave\Desktop\Hoe's Wonderland\filterscripts\Maps.pwn(1323) : warning 204: symbol is assigned a value that is never used: "tmpobjid"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhaseSpoiler anzeigen 9 Errors.
Füg mal ein return 1; ein. -
-
Achso gar nicht gesehen das es beim Filterscript gemeint ist ..
Dann geh unter OnPlayerCommandText und entferne dort das return 1; -
Ich habe das return 1; da gar nicht drin gehabt.
-
Jeffry: Nein daran sollte es nicht liegen, habe ein paar Maps entfernt. Und RWObjects sind 923
Also wie du auf dem Bild siehst geht es bei mir ja, sprich an dem Code liegt es nicht. Du kannst es ja mal auf einem leeren Server (zum Beispiel mit grandlarc Gamemode) versuchen, ob es dann geht.
Lass dir ggf. sonst mal die ID des Objekts per print ausgeben, welche ID bekommst du da? -
Also wie du auf dem Bild siehst geht es bei mir ja, sprich an dem Code liegt es nicht. Du kannst es ja mal auf einem leeren Server (zum Beispiel mit grandlarc Gamemode) versuchen, ob es dann geht.
Lass dir ggf. sonst mal die ID des Objekts per print ausgeben, welche ID bekommst du da?
Habs als dynamic Object hinbekommen -
-
Weiß jemand warum ich keine Bots erstellen kann?
NPC Filterscript wird geladen, aufnehmen kann ich auch und stoppen ebenfalls, nur am Ende ist keine Datei in meinem NPC Ordner (Den Recordings Ordner dadrin musste ich selber erstellen..)
Edit1:
Nebenbei wollte ich fragen wie ich sowas hier erstellen könnte: http://forum.sa-mp.com/showthread.php?t=520393
Ich weiß ich muss ins Callback OnPlayerWeaponShot, habe mir Wiki angeschaut doch habe keine Ahnung wie ich das anstellen soll..
-
Hey Community,
ich habe ein kleines Problem zu dem erstellen von Gangzonen.
Hatte mich damit zuvor noch nie auseinander gesetzt...
Hatte es mit 2 Varianten versucht aber nix klappt davon.
Er zeigt alles an außer die Gangzone.new string[250];
if (fInfo[id][ctf_text] != Text3D:-1)
{
Delete3DTextLabel(fInfo[id][ctf_text]);
}
if (!strlen(fInfo[id][ctf_team]))
{
format(string, sizeof(string), "\
» %s «\n\
TEAM: None",fInfo[id][ctf_name]);
fInfo[id][ctf_pickup] = CreateDynamicPickup(1314, 1, fInfo[id][ctf_x], fInfo[id][ctf_y], fInfo[id][ctf_z], -1);
M_CreateZone(fInfo[id][Min_x], fInfo[id][Min_y], fInfo[id][Max_x], fInfo[id][Max_y], fInfo[id][ctf_color], string, COLOR_RED);
GangZoneShowForAll(fInfo[id][ctf_zone], fInfo[id][ctf_color]);
}
else
{
format(string, sizeof(string), "\
» %s «\n\
TEAM: %s",fInfo[id][ctf_name], fInfo[id][ctf_team]);
fInfo[id][ctf_pickup] = CreateDynamicPickup(1314, 1, fInfo[id][ctf_x], fInfo[id][ctf_y], fInfo[id][ctf_z], -1);
fInfo[id][ctf_text] = Create3DTextLabel(string, COLOR_RED, fInfo[id][ctf_x], fInfo[id][ctf_y], fInfo[id][ctf_z], 10, 0, 1);
fInfo[id][ctf_zone] = GangZoneCreate(fInfo[id][Min_x], fInfo[id][Min_y], fInfo[id][Max_x], fInfo[id][Max_y]);
GangZoneShowForAll(fInfo[id][ctf_zone], fInfo[id][ctf_color]);
} -
Also einmal erstellst du die Zone mit GangZoneCreate und einmal mit M_CreateZone, gibst aber keinen Wert an fInfo[id][ctf_zone] zurück.
Das erscheint mir nicht ganz richtig.new string[64];
if(fInfo[id][ctf_text] != Text3D:-1)
{
Delete3DTextLabel(fInfo[id][ctf_text]);
}
if (!strlen(fInfo[id][ctf_team]))
{
format(string, sizeof(string), "» %s «\nTEAM: None",fInfo[id][ctf_name]);
fInfo[id][ctf_pickup] = CreateDynamicPickup(1314, 1, fInfo[id][ctf_x], fInfo[id][ctf_y], fInfo[id][ctf_z], -1);
printf("M: %f / %f / %f / %f / %d", fInfo[id][Min_x], fInfo[id][Min_y], fInfo[id][Max_x], fInfo[id][Max_y], fInfo[id][ctf_color]);
M_CreateZone(fInfo[id][Min_x], fInfo[id][Min_y], fInfo[id][Max_x], fInfo[id][Max_y], fInfo[id][ctf_color], string, COLOR_RED);
printf("Zone: %d", fInfo[id][ctf_zone]);
GangZoneShowForAll(fInfo[id][ctf_zone], fInfo[id][ctf_color]);
}
else
{
format(string, sizeof(string), "» %s «\nTEAM: %s",fInfo[id][ctf_name], fInfo[id][ctf_team]);
fInfo[id][ctf_pickup] = CreateDynamicPickup(1314, 1, fInfo[id][ctf_x], fInfo[id][ctf_y], fInfo[id][ctf_z], -1);
fInfo[id][ctf_text] = Create3DTextLabel(string, COLOR_RED, fInfo[id][ctf_x], fInfo[id][ctf_y], fInfo[id][ctf_z], 10, 0, 1);
printf("G: %f / %f / %f / %f / %d", fInfo[id][Min_x], fInfo[id][Min_y], fInfo[id][Max_x], fInfo[id][Max_y]);
fInfo[id][ctf_zone] = GangZoneCreate(fInfo[id][Min_x], fInfo[id][Min_y], fInfo[id][Max_x], fInfo[id][Max_y], fInfo[id][ctf_color]);
printf("Zone: %d", fInfo[id][ctf_zone]);
GangZoneShowForAll(fInfo[id][ctf_zone], fInfo[id][ctf_color]);
}Schreibe es und poste dann was im Log steht.
-
Es liegt an der Farbe, ist mir gestern schon aufgefallen.
Danke trotzdem Jeffry. -
Weiß jemand warum ich keine Bots erstellen kann?
NPC Filterscript wird geladen, aufnehmen kann ich auch und stoppen ebenfalls, nur am Ende ist keine Datei in meinem NPC Ordner (Den Recordings Ordner dadrin musste ich selber erstellen..)
Edit1:
Nebenbei wollte ich fragen wie ich sowas hier erstellen könnte: http://forum.sa-mp.com/showthread.php?t=520393
Ich weiß ich muss ins Callback OnPlayerWeaponShot, habe mir Wiki angeschaut doch habe keine Ahnung wie ich das anstellen soll..
Brauche immernoch Hilfe bitte
-
Brauche immernoch Hilfe bitte
public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
if(weaponid == 34) //Damit das nur mit der Sniper geht
{
if(fX == 0.0 || fY == 0.0 || fZ == 0.0) return 1;
SetPlayerPos(playerid,fX,fY,fZ);
}
return 1;
}mfg.
-
public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
if(weaponid == 34) //Damit das nur mit der Sniper geht
{
if(fX == 0.0 || fY == 0.0 || fZ == 0.0) return 1;
SetPlayerPos(playerid,fX,fY,fZ);
}
return 1;
}mfg.
Kaliber: Danke funktioniert so weit so gut, zwar nicht perfekt aber ich glaube besser kann man das nicht machen.
Könntest du mir sagen wie ich das in ein Befehl einbinde, eventuell auch das man das ein und auschalten kann ? ZCMD oder OCMD.
Und könntest du mir verraten wie ich das für mehrere Waffen einstellen kann, z.B nur 2 Stück, und wie alle
Danke nochmal
Edit: Habe hinbekommen mehrere Waffen ID's hinzubekommen. Aber anstatt alle einzelnt hinzuzufügen gibt's da doch bestimmt ein Trick oder?
-
Schreibe es so:
public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
switch(weaponid)
{
case 10..15, 28, 30..32, 34:
{
if(fX != 0.0 && fY != 0.0 && fZ != 0.0)
{
SetPlayerPos(playerid,fX,fY,fZ);
}
}
}
return 1;
}
Den return bei der if-Abfrage zu verwenden ist schlecht, denn wenn danach noch Code folgen sollte irgendwann, dann kann das zu Fehlern führen, an denen du ewig suchst wo das Problem liegt.
Zwecks der mehreren Waffen, nutze den switch. In dem Beispiel gehen die IDs: 10,11,12,13,14,15,28,30,31,32,34
Das ".." heißt "bis". -
Jeffry: Ich habe das anders gelöst, einfach nochmal den Code verwendet und eine andere ID verwendet.
Habe dein Code jetzt nicht ausgetestet, aber wenn ich z.B nur 2 Waffen habe möchte, und das .. bis bedeutet, wie soll's dann aussehen wenn ich nur die ID 24 und 34 haben will? Die ID's dazwischen möchte ich ja nicht.Und offen ist noch wie ich das mit einem Befehl erstelle, was mir am wichtigsten ist weil das sonst jeder kann :l
-
Schreibe es so:
public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
switch(weaponid)
{
case 10..15, 28, 30..32, 34:
{
if(fX != 0.0 && fY != 0.0 && fZ != 0.0)
{
SetPlayerPos(playerid,fX,fY,fZ);
}
}
}
return 1;
}
Den return bei der if-Abfrage zu verwenden ist schlecht, denn wenn danach noch Code folgen sollte irgendwann, dann kann das zu Fehlern führen, an denen du ewig suchst wo das Problem liegt.
Zwecks der mehreren Waffen, nutze den switch. In dem Beispiel gehen die IDs: 10,11,12,13,14,15,28,30,31,32,34
Das ".." heißt "bis".Jeffry: Ich habe das anders gelöst, einfach nochmal den Code verwendet und eine andere ID verwendet.
Habe dein Code jetzt nicht ausgetestet, aber wenn ich z.B nur 2 Waffen habe möchte, und das .. bis bedeutet, wie soll's dann aussehen wenn ich nur die ID 24 und 34 haben will? Die ID's dazwischen möchte ich ja nicht.Und offen ist noch wie ich das mit einem Befehl erstelle, was mir am wichtigsten ist weil das sonst jeder kann :l
Das würdest du dann umsetzen indem du das "case 10..15, 28, 30..32, 34:" einfach ersetzt mit "case 24, 34". Bei Jeffrys Lösung hätte dieses Case für die Waffenids 10, 11, 12, 13, 14, 15, 28, 30, 31, 32 und 34 gegriffen.
Und selbst bei Jeffrys Lösung könntest du noch abfragen, ob der Spieler Admin ist..
-