Das kommt darauf an was du machen willst. Syntaktisch geht es, wenn es so sein soll, wüsste ich nichts was dagegen spricht.
[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
-
-
-
-
Hey,
ich möchte gerne ein "Wanted" befehl schreiben wo alle Spieler aufgelistet werden die Wanteds haben.
Habe ein anfang gemacht, weiß aber nicht wie weiter.HTMLocmd:wanteds(playerid, params[]) { new string[128]; if(IstSpielerInFraktion(playerid, 1))return SendClientMessage(playerid, FARBE_ROT, "Du bist kein Staatsbeamter!"); for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i))continue; } return 1; }
MfG. Black_Air -
Du musst nun einfach einen String formatieren, wo du z.B. den Namen von dem Spieler (i) angibst, welcher Wanteds hat.
Den String musst du immer wieder neu formatieren, sprich den String in den String vorher mit rein formatieren, damit die Liste nicht immer überschrieben wird.
( Hinweis: Der Spoiler ist eigentlich nur dazu da, damit du gucken kannst, falls du das nicht verstehen solltest. Es wird geraten es vorher selbst zu versuchen. )C
Alles anzeigenocmd:wanteds(playerid, params[]) { new string[500],name[MAX_PLAYER_NAME]; if(IstSpielerInFraktion(playerid, 1))return SendClientMessage(playerid, FARBE_ROT, "Du bist kein Staatsbeamter!"); for(new i = 0; i < MAX_PLAYERS; i++) { if(!GetPlayerName(i,name,sizeof(name)))continue;//Wenn GetPlayerName 0 zurück gibt, ist der Spieler nicht online, deswegen kann man die Abfrage so schreiben. format(string,sizeof string,"%s%s - %i Wanteds\n",string,name,GetPlayerWantedLevel(i)); } ShowPlayerDialog(playerid,DIALOG_WANTEDS,DIALOG_STYLE_LIST,"Wanted Liste",string,"Ok","Ok"); return 1; }
-
C
Alles anzeigenocmd:wanteds(playerid, params[]) { new string[512], pname[MAX_PLAYER_NAME]; if(IstSpielerInFraktion(playerid, 1))return SendClientMessage(playerid, FARBE_ROT, "Du bist kein Staatsbeamter!"); for(new i = 0; i < MAX_PLAYERS; i++) { if(!IsPlayerConnected(i))continue; if(!GetPlayerWantedLevel(i)) continue; GetPlayerName(i, pname, MAX_PLAYER_NAME); format(string, sizeof(string), "%s%s (%d)\n", string, pname, GetPlayerWantedLevel(i)); } if(!strlen(string)) return SendClientMessage(playerid, FARBE_ROT, "Es hat kein Spieler ein Wanted Level."); ShowPlayerDialog(playerid, DIALOG_WANTEDS, DIALOG_STYLE_MSGBOX, "Wanteds", str, "Ok", ""); return 1; }
-
Hallo, ich habe ein Problem mit meinem /car lock Befehl:
Ich habe das ganze so geschrieben:
Code
Alles anzeigenocmd:car(playerid,params[]) { new var[30]; if(sscanf(params,"s",var)) return SCM(playerid,frot,"[FEHLER]:{FFFFFF} /car (lock/park)"); if(!strcmp(var,"park",true)) { if(!IsPlayerInAnyVehicle(playerid))return SCM(playerid,frot,"[FEHLER]:{FFFFFF} Du sitzt in keinem Auto"); new vID = GetPlayerVehicleID(playerid); if(!IsPlayerOwnerOfCar(playerid,vID))return SCM(plyerid,frot,"[FEHLER]:{FFFFFF} Das Auto gehört nicht dir!"); for(new i=0; i<sizeof(pCar[]); i++) { if(pCar[playerid][i][pc_vID] == vID) { new Float:pos_x,Float:pos_y,Float:pos_z,Float:pos_r; GetVehiclePos(vID,pos_x,pos_y,pos_z); GetVehicleZAngle(vID,pos_r); pCar[playerid][i][s_x] = pos_x; pCar[playerid][i][s_y] = pos_y; pCar[playerid][i][s_z] = pos_z; pCar[playerid][i][s_r] = pos_r; return 1; } } return 1; } if(!strcmp(var,"lock",true)) { new for(new i = 0; i<sizeof(pCar[]); i++) { new Float:distance = GetPlayerDistanceFromPoint(playerid,pCar[playerid][i][s_x],pCar[playerid][i][s_y],pCar[playerid][i][s_z]); if(distance <= 5) { if(lockstat[pCar[playerid][i][pc_vID] == 0) { lockstat[pCar[playerid][i][pc_vID]] = 1; return 1; } else { lockstat[pCar[playerid][i][pc_vID]] = 0; return 1; } } else { continue; } } return 1; } return 1: }
Ein Spieler kann 2 Autos haben, ich frage halt ab wie weit der Spieler von dem Auto entfernt ist, wenn er unter 5 Meter entfernt ist (Muss noch ausprobieren ob 5 Meter passt) dann kann er das auto auf/zusperren, ist er es nicht, wird das nächste auto abgefragt usw.
Nur wie beende ich die Schleife wenn alle autos durch sind? Also, dass dann ausgegeben wird, dass er sich nicht in der Nähe eines seiner Autos befindet?
Offtopic frage: Welchen Mapping Editor würdet ihr mir empfehlen?
-
C
Alles anzeigenocmd:car(playerid,params[]) { new var[30]; if(sscanf(params,"s",var)) return SCM(playerid,frot,"[FEHLER]:{FFFFFF} /car (lock/park)"); if(!strcmp(var,"park",true)) { if(!IsPlayerInAnyVehicle(playerid))return SCM(playerid,frot,"[FEHLER]:{FFFFFF} Du sitzt in keinem Auto"); new vID = GetPlayerVehicleID(playerid); if(!IsPlayerOwnerOfCar(playerid,vID))return SCM(plyerid,frot,"[FEHLER]:{FFFFFF} Das Auto gehört nicht dir!"); for(new i=0; i<sizeof(pCar[]); i++) { if(pCar[playerid][i][pc_vID] == vID) { new Float:pos_x,Float:pos_y,Float:pos_z,Float:pos_r; GetVehiclePos(vID,pos_x,pos_y,pos_z); GetVehicleZAngle(vID,pos_r); pCar[playerid][i][s_x] = pos_x; pCar[playerid][i][s_y] = pos_y; pCar[playerid][i][s_z] = pos_z; pCar[playerid][i][s_r] = pos_r; return 1; } } return 1; } if(!strcmp(var,"lock",true)) { new Float:distance; for(new i = 0; i<sizeof(pCar[]); i++) { distance = GetPlayerDistanceFromPoint(playerid,pCar[playerid][i][s_x],pCar[playerid][i][s_y],pCar[playerid][i][s_z]); if(distance <= 5) { if(lockstat[pCar[playerid][i][pc_vID] == 0) { lockstat[pCar[playerid][i][pc_vID]] = 1; } else { lockstat[pCar[playerid][i][pc_vID]] = 0; } return 1; } } return SendClientMessage(playerid, 0xFF0000FF, "Error: Keines deiner Fahrzeuge ist in der Nähe."); } return 1: }
@OT: Größtenteils wird der MTA Editor verwendet, alternativ der SA-MP Map Editor.
-
Yo, hab mal ne mini Frage:
Ich möchte mein Admin Chat in diesem Format:
# (12) JustMe.77:Hey, alles klar?
Ich habe da nach GetPlayerColor gefunden doch kriege das irgendwie mit der Farbe nicht hin, die ist dann immer Schwarz. Die Farbe soll immer die sein die der Spieler auch in der Online Liste hat.
Cif(GetPlayerGAdminLevel(playerid) >= 1) { if(text[0] == '#') { new string[144]; format(string, sizeof(string), "# (%i) %s {%06x} %s ", playerid ,GetPlayerColor(playerid) >>> 8 , ReturnPlayerName(playerid), text[1]); SendClientMessageForAdmins(0xF209E1FF, string); return 0; } }
-
Hast du die Spieler Farbe zuvor mit SetPlayerColor gesetzt? Wenn nicht, dann gibt GetPlayerColor nur 0 (also schwarz) zurück.
Ein Fix ist hier verlinkt: https://wiki.sa-mp.com/wiki/GetPlayerColor -
-
Die Farbe habe ich nicht gesetzt, nein. Ich habe dein Fix nun eingebunden, hat sich zwar was verändert aber nicht im positivem Sinne.
Schaut so aus:
[17:34:39] # (1) ÿ {00005B}ttttttt
Code so:
-
Schau dir mal dein format an...du hast vergessen den Namen von dem Spieler da einzufügen
-
du hast vergessen den Namen von dem Spieler da einzufügen
Du meinst sicherlich er hat ReturnPlayerName und GetPlayerColor in der Argumentslist vertauscht.
-
[17:34:39] # (1) ÿ {00005B}ttttttt
Du musst es so machen, sonst passt es mit der Farbe nicht, außerdem waren, wie BlackAce auch gesagt hat, Name und Farbe in den Parametern vertauscht.
-
kleine frage weis einer woran der cj skin bug liegt beim pRP script?
-
-
Beitrag von AirM4X ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: hat sich erledigt (). -
[14:19:21] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE Name='Bugatti31' LIMIT 1' at line 1
[14:19:33] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE Name='Karakan' LIMIT 1' at line 1Weis einer was diese Errors zu bedeuten haben?
-
Du hast einen Syntaxfehler in dem MySQL Query.
Poste bitte den Code dazu oder einen print von dem gesamten Query. -