abfragen ob er die Taste C gedrückt hat?
[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
-
-
Hi, ich mache grade ein Fahrzeug System. Das Problem ist der /Parken Befehl geht nicht das Auto Spawnt nicht da wo mann es Parkt
hier der Code dazu
ocmd:parken(playerid,params[])
{
if(!IsPlayerInAnyVehicle(playerid)) return SCM(playerid,ROT,"Du bist nicht in einem Auto!");
new veh;
veh = GetPlayerVehicleID(playerid);
for(new i=0;i<MAX_VEHICLES;i++)
{
if(FahrzeugInfo[i][fz_ID] == veh)
{
if(FahrzeugInfo[i][fz_Typ] != 1)return SCM(playerid,ROT,"Dies ist nicht dein Fahrzeug!");
if(FahrzeugInfo[i][fz_Opark] == 1)return SCM(playerid,ROT,"Dieses Fahrzeug ist abgeschleppt! Du musst es erst freikaufen!");
new Float:x,Float:y,Float:z,Float:a;
GetVehiclePos(veh,x,y,z);
GetVehicleZAngle(veh,a);
FahrzeugInfo[i][fz_X] = x;
FahrzeugInfo[i][fz_Y] = y;
FahrzeugInfo[i][fz_Z] = z;
FahrzeugInfo[i][fz_A] = a;
AutosysSaveplayer(playerid,0);
SCM(playerid,GER,"[FRAKTIONS-FAHRZEUG]"#WEIß" Fahrzeug geparkt!");
}
}
return 1;
} -
Hallo,
Ich suche eine Formel oder ein Codeschnipsel um folgendes herauszubekommen:
Ich befinde mich irgentwo und mir wird irgentwo ein Checkpoint angezeigt. Die Positionen sind mir bekannt.
Nun möchte ich die Richtung des Spielers (angle) ausrechnen, die der Spieler haben muss, um direkt den Checkpoint anzugucken.
Ich denke man kann das mit Vektoren lösen, mir fehlt da aber das wissen. Eine Formel würde jedoch reichen.
Ich hoffe ihr habt da was für mich

-
Suchfunktionen sind was feines:
C
Alles anzeigenstock GetAngleToXY(Float:X, Float:Y, Float:CurrentX, Float:CurrentY, &Float:Angle) { Angle = atan2(Y-CurrentY, X-CurrentX); Angle = floatsub(Angle, 90.0); if(Angle < 0.0) Angle = floatadd(Angle, 360.0); } //Benutzung: new Float:x,Float:y,Float:z,Float:a; GetPlayerPos(playerid,x,y,z); GetAngleToXY(checkX,checkY,x,y,a); SetPlayerFacingAngle(playerid,a);Quelle: http://forum.sa-mp.com/showthread.php?t=127404&langid=5
-
Hi, ich möchte jedem Spieler einen eigenen 3D Text geben. Ab ungefähr 30+ Spielern haben einige einen 3D Text, andere wiederum nicht.
new Text3D:RankLabels[MAX_PLAYERS] = {Text3D:INVALID_3DTEXT_ID, ...};
public OnPlayerSpawn(playerid)
{
if(!IsValidDynamic3DTextLabel(RankLabels[playerid])) RankLabels[playerid] = CreateDynamic3DTextLabel(lrank, 0x009900BB, 0.0, 0.0, 0.60, 25.0, .attachedplayer=playerid);
return 1;
}public OnPlayerDisconnect(playerid, reason)
{
DestroyDynamic3DTextLabel(RankLabels[playerid]), RankLabels[playerid] = Text3D:INVALID_3DTEXT_ID;
return 1;
} -
if(IsCopCarEx(GetPlayerVehicleID(playerid)) != 1 || PoliceEquip[playerid][pe_Funkgerat] == false)return SendClientMessage(playerid, COLOR_GREY, " Du bist in keinem Polizeifahrzeug oder du hast kein Funkgerät.");
Wenn ich ein Funkgerät habe kommt trotzdem die Fehlermeldung.
Es soll aber nur so sein:
Kein Funkgerät & in keinem Polizei Auto = Fehler. -
Kein Funkgerät & in keinem Polizei Auto = Fehler.
Hast es ja schon richtig gesagt.

(oder)
zu
&& (und) -
Ja stimmt! War der Meinung das ist es schon mit && ausprobiert habe, deswegen wollte ich euch um Rat bitten.
Jetzt funktioniert es natürlich, danke dir Jeffry. -
Kannst du mir noch bitte einmal zeigen wie ich Gettime in einem Befehl benutze? Sprich den Befehl erst nach einiger Zeit wieder erlauben zu benutzen.
Als Beispiel ein einfacher Teleport Befehl
CMD:teleport(playerid,params[])
{
SetPlayerPos(playerid, 815.5878,-3582.2156,61.7797);return 1;
}
-
Unter den Includes:
new nextTele[MAX_PLAYERS];Im Befehl, vor SetPlayerPos:
if(nextTele[playerid] > gettime()) return SendClientMessage(playerid, 0xFF0000FF, "Error: Du kannst diesen Befehl nur alle 10 Sekunden nutzen.");
nextTele[playerid] = gettime() + 10; -
Hey
Suche für mein Cuff system ein Handschellen teil hinter den armen!Code
Alles anzeigenif(strcmp("/cuff", cmd, true) == 0) { if(IsPlayerConnected(playerid)) { if(IsACop(playerid)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_BENUTZETEXT, "Benutze: /cuff [SpielerName/ID]"); return 1; } giveplayerid = ReturnUser(tmp); if(IsPlayerConnected(giveplayerid)) { if(giveplayerid != INVALID_PLAYER_ID) { if(IsACop(giveplayerid) && OnDuty[giveplayerid] == 1) { SendClientMessage(playerid, COLOR_ERRORTEXT, " Du kannst keinen Cop Handschellen anlegen !"); return 1; } if(PlayerTied[playerid] == 1) { SendClientMessage(playerid, COLOR_BENUTZETEXT, "Du kannst das nicht, du bist gefesselt!"); return 1; } if(PlayerCuffed[giveplayerid] == 2) { SendClientMessage(playerid, COLOR_ERRORTEXT, " Spieler wurden bereits Handschellen angelegt !"); return 1; } if(GetPlayerState(giveplayerid) == PLAYER_STATE_DRIVER) { SendClientMessage(playerid, COLOR_ERRORTEXT, " Dieser Spieler ist der Fahrer eines Autos !"); return 1; } if(PlayerTied[playerid] == 1) { SendClientMessage(playerid, COLOR_ERRORTEXT, " Du kannst diesen Befehl nicht nutzen, du bist gefesselt !"); return 1; } if(IsPlayerInAnyVehicle(giveplayerid) && !IsPlayerInAnyVehicle(playerid)) { SendClientMessage(playerid, COLOR_ERRORTEXT, " Du musst in dem Fahrzeug sein wo der Spieler ist. !"); return 1; } if(!IsPlayerInAnyVehicle(giveplayerid) && IsPlayerInAnyVehicle(playerid)) { SendClientMessage(playerid, COLOR_ERRORTEXT, " Du Kannst niemanden aus dem Fahrzeug herraus Cuffen!"); return 1; } if(ProxDetectorS(4.0, playerid, giveplayerid)) { if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_ERRORTEXT, " Du kannst dir nicht selbst Handschellen anlegen !"); return 1; } GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); format(string, sizeof(string), "* Officer %s hat dir Handschellen angelegt.", sendername); SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string); format(string, sizeof(string), "* Du hast %s Handschellen angelegt.", giveplayer); SendClientMessage(playerid, COLOR_LIGHTBLUE, string); format(string, sizeof(string), "* Officer %s hat %s Handschellen angelegt.", sendername ,giveplayer); ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); GameTextForPlayer(giveplayerid, "~r~Handschellen angelegt", 2500, 3); TogglePlayerControllable(giveplayerid, 0); //SetPlayerSpecialAction(giveplayerid,SPECIAL_ACTION_CUFFED); PlayerCuffed[giveplayerid] = 2; PlayerCuffedTime[giveplayerid] = 300; SendClientMessage(giveplayerid, COLOR_YELLOW, " Du wurdest gecufft. Wenn du einen Wheelman benötigst, benutze /service wheelman."); format(string,sizeof(string),"* Officer %s hat %s Handschellen angelegt.", sendername ,giveplayer); EnterToLog("cuff",string); if(WantedHackZeit[giveplayerid] > 0) { format(string, sizeof(string), "* Officer %s hat den Hacker festgenommen.", sendername); SendCopMessage(COLOR_RADIO, string); WantedHackZeit[giveplayerid] = -1; SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, " Hackversuch fehlgeschlagen!"); } } else { SendClientMessage(playerid, COLOR_ERRORTEXT, " Dieser Spieler ist nicht in deiner Nähe!"); return 1; } } } else { SendClientMessage(playerid, COLOR_ERRORTEXT, " Dieser Spieler ist Offline !"); return 1; } } else { SendClientMessage(playerid, COLOR_ERRORTEXT, " Du bist kein Polizist / FBI Agent !"); } } return 1; }Kann mir jemand helfen?
-
Beitrag von Jeffry ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Wollte Abbrechen drücken :< (). -
-
Sobald sie erstellt sind, und sobald sie wieder respawnen (nachdem sie kaputt waren)?, oder nur einmalig?
-
-
Dann füge das hier unter den Includes ein (Funktions-Hook):
stock my_CreateVehicle(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay)
{
new id = CreateVehicle(modelid, x, y, z, angle, color1, color2, respawn_delay);
SetVehicleHealth(id, 995);
return id;
}#if defined _ALS_CreateVehicle
#undef CreateVehicle
#else
#define _ALS_CreateVehicle
#endif
#define CreateVehicle my_CreateVehicle
(Analog für AddStaticVehicle etc, falls du die nutzt).Und bei OnVehicleSpawn dann zusätzlich:
SetVehicleHealth(vehicleid, 995); -
Dankesehr, funktioniert gut. Ich habe nun versucht abzufragen ob das Health über 995 ist und dann den Spieler kicken lassen, das kommt aber jedes mal wenn ich in ein Fahrzeug einsteige.
(Habe ich ein falsches Callback benutzt ? )public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
new Float:health;
new name[MAX_PLAYER_NAME], string[50+MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
if(health > 995)
format(string, sizeof(string), "%s has been banned by the System for Vehicle Health Hack.", name);
SendClientMessageToAll(RED,string);
GetVehicleHealth(vehicleid, health);
SetVehicleHealth(vehicleid, 995);
Kick(playerid);
return 1;
} -
Wenn du willst das nur der Fahrer gekickt wird, musst du davor abfragen ob playerid als passenger einsteigt.
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(!ispassenger)
{
new Float:health;
new name[MAX_PLAYER_NAME], string[50+MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
if(health > 995)
format(string, sizeof(string), "%s has been banned by the System for Vehicle Health Hack.", name);
SendClientMessageToAll(RED,string);
GetVehicleHealth(vehicleid, health);
SetVehicleHealth(vehicleid, 995);
Kick(playerid);
}
return 1;
} -
Die Reihenfolge und die Klammersetzung hat nicht ganz gepasst.
Du musst es so machen:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
new Float:health;
GetVehicleHealth(vehicleid, health);
if(health > 995)
{
new name[MAX_PLAYER_NAME], string[50+MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "%s has been banned by the System for Vehicle Health Hack.", name);
SendClientMessageToAll(RED,string);
SetVehicleHealth(vehicleid, 995);
Kick(playerid);
}
return 1;
} -
HI ich habe einen MySql Fehler was soll das Bedeuten? hier der Code
[00:01:09] [debug] Run time error 19: "File or function is not found"
[00:01:09] [debug] mysql_escape_string
[00:01:09] [debug] mysql_tquery
[00:01:09] [debug] mysql_log
[00:01:09] [debug] Run time error 19: "File or function is not found"
[00:01:09] [debug] mysql_escape_string
[00:01:09] [debug] mysql_tquery
[00:01:09] [debug] mysql_log
[00:01:09] Script[gamemodes/truelife.amx]: Run time error 19: "File or function is not found"
[00:01:09] Number of vehicle models: 0
