Ja glaube schon. Aber empfehle dir den Ingame Map Editor. Du musst das nur hinmapppen und den Material per Mausklicks setzen, exportieren und den Code findest du in einer Datei
[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
-
-
Also soweit ich weiß ein kleiner Geheimnis von einem mapper der mappt z.b. Ein interior und den boden macht er aus glas und mappt das nochmal spiegelverkehrt unter der map dann sieht das so reflektiert aus. Eine Textur dafür habe ich auch noch nie gesehen.
-
Danke iTsMaho so geht es danke

-
Du kannst das nicht in der normalen Welt machen, bitte map dein ganzes Mapping nicht Spiegelverkehrt unter dem Boden. Damit verschwendest du nur die max. streambaren Objekte.
Externer Inhalt www.youtube.comInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.Schau dir das Video an, dort wird es ganz einfach erklärt.

-
Achso ok verständlich. Ich danke dir

Weißt jemand vlt welche Sound ID die doppelte Klinge ist??
Es gibt ja einmal die Normale als Hitsound wenn man trifft aber ich würde gerne die doppelte Klinge als Kill Hitsound scripten.
MFG
-
Moin habe nen kleines Problem mit sscanf. Vielleicht hat da ja einer von euch ne Lösung.
Ich habe ein Command zum Spawnen von Fahrzeugen:
Code
Alles anzeigenCMD:veh(playerid, params[]) { if(!IsAdmin(playerid, 4)) return NO_PERM; new vName[18]; if(sscanf(params, "s[18]", vName)) return Usage("Benutzung: /veh [Vehicle Name]"); if(IsPlayerInAnyVehicle(playerid)) return SCM(playerid, COLOR_INFO, "Fehler: Du darfst in keinem Fahrzeug sein!"); new string[128], vID = GetVehicleModelIDFromName(vName), Float:Pos[4]; if(vID < 400 || vID > 611) return SCM(playerid, COLOR_INFO, "Fehler: Das Fahrzeug wurde nicht gefunden!"); GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]); GetPlayerFacingAngle(playerid, Pos[3]); format(string, sizeof(string), "> Du hast dir erfolgreich das Vehicle: %s gespawnt!", VehicleName(vID)); SCM(playerid, COLOR_INFO, string); new veh = CreateVehicle(vID, Pos[0], Pos[1], Pos[2], Pos[3], 211, 211, -1, 1); SetVehicleNumberPlate(veh, "ADMIN"); PutPlayerInVehicle(playerid, veh, 0); format(string, sizeof(string), "VEH | %s (%i) WERT NEU: %s (%i) POS: (%0.1f | %0.1f | %0.1f | %0.1f)", GetName(playerid), playerid, vName, vID, Pos[0], Pos[1], Pos[2], Pos[3]); Log("cmd_log", string); return 1; } GetVehicleModelIDFromName(vname[]) { for(new i = 0; i < 211; i++) { if(strfind(VehicleNames[i], vname, true) != -1) return i + 400; } return -1; }Dort habe ich bei Zeile 4 (sscanf Abfrage) das Problem, das ich eine String Länge 's[18]' angeben muss, sonst bekomme ich einen Fehler.
sscanf warning: Strings without a length are deprecated, please add a destination size.
Wenn ich jedoch eine Länge angebe bekomme ich den Fehler das der Befehl nicht gefunden wurde. (Ich nehme an weil die 18 nicht erreicht wurde, sondern ich nur 'inf' eingegeben habe.)
Hat hier jemand eine Lösung, wo mein Fehler ist?
-
Lade mal crashdetect und schau, was dir da so ausgegeben wird

(das s[18] schön drinnen lassen xD)
-
Lade mal crashdetect und schau, was dir da so ausgegeben wird
Code: crashdetect ausgabe[13:36:50] [debug] Run time error 4: "Array index out of bounds" [13:36:50] [debug] Attempted to read/write array element at negative index -400 [13:36:50] [debug] AMX backtrace: [13:36:50] [debug] #0 00011af0 in ?? (411) in xxx [13:36:50] [debug] #1 0000ebac in public cmd_veh (0, 302220) in xxx [13:36:50] [debug] #2 native CallLocalFunction () in samp-server.exe [13:36:50] [debug] #3 0000052c in public OnPlayerCommandText (0, 302184) in xxxOnPlayerCommandText benutze ich nicht, da ich ZCMD nutze.
Code
Alles anzeigenpublic OnPlayerCommandPerformed(playerid, cmdtext[], success) { if(!success) { new string[132]; format(string, sizeof(string), "Fehler: Der Befehl '%s' wurde nicht gefunden!", cmdtext); return SCM(playerid, COLOR_INFO, string); } return 1; } public OnPlayerCommandReceived(playerid, cmdtext[]) { if(!IsLogged(playerid)) { SCM(playerid, COLOR_INFO, "Fehler: Du bist nicht eingeloggt!"); return 0; } return 1; } -
Beitrag von Xtreme.Gamer ()
Dieser Beitrag wurde vom Autor gelöscht (). -
ShowPlayerDialog(playerid, DIALOG_ADMINS, DIALOG_STYLE_TABLIST_HEADERS, "Teammitglieder online","Faction ID\tName\tOnline",result,"OK", "");
ShowPlayerDialog hat nur 7 Parameter, du hast 8.
Schau dir mal hier an, wie man die Tablist Headers verwendet: https://wiki.sa-mp.com/wiki/Dialog_Styles
-
OnPlayerCommandText benutze ich nicht, da ich ZCMD nutze.
ZCMD greift trotzdem auf den Callback OnPlayerCommandText zu und verteilt über CallLocalFunction die Commands

Der Fehler liegt glaube ich in GetVehicleModelIDFromName.
Dort fragst du VehicleNames[i] ab, kann es sein, dass das ein Makro ist?

Würdest du mal zeigen, wie das definiert ist?

-
Würdest du mal zeigen, wie das definiert ist?
Code
Alles anzeigennew VehicleNames[][] = { "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana", "Infernus", "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam", "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BF Injection", "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach", "Cabbie", "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral", "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair", "Berkley's RC Van", "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale", "Oceanic","Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy", "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX", "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper", "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking", "Blista Compact", "Police Maverick", "Boxville", "Benson", "Mesa", "RC Goblin", "Hotring Racer A", "Hotring Racer B", "Bloodring Banger", "Rancher", "Super GT", "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster", "Stunt", "Tanker", "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra", "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck", "Fortune", "Cadrona", "FBI Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer", "Remington", "Slamvan", "Blade", "Freight", "Streak", "Vortex", "Vincent", "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder", "Primo", "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite", "Windsor", "Monster", "Monster", "Uranus", "Jester", "Sultan", "Stratium", "Elegy", "Raindance", "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito", "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper", "Broadway", "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400", "News Van", "Tug", "Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club", "Freight Box", "Trailer", "Andromada", "Dodo", "RC Cam", "Launch", "Police Car", "Police Car", "Police Car", "Police Ranger", "Picador", "S.W.A.T", "Alpha", "Phoenix", "Glendale", "Sadler", "Luggage", "Luggage", "Stairs", "Boxville", "Tiller", "Utility Trailer" }; -
VehicleName(vID)
Ahhh und wie ist das definiert? :3
-
Ahhh und wie ist das definiert? :3
Hab ich grade rausgenommen und durch
#define GetVehicleName(%0) VehicleNames[GetVehicleModel(%0) - 400]
ersetzte, geht aber beides net

-
geht aber beides net
Alsooo wie sieht dein Code jetzt aus und was sagt crashdetect?

-
Alsooo wie sieht dein Code jetzt aus und was sagt crashdetect?

Also nochmal
Code
Alles anzeigen#define GetVehicleName(%0) VehicleNames[GetVehicleModel(%0) - 400] new VehicleNames[][] = { "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana", "Infernus", "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam", "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BF Injection", "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach", "Cabbie", "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral", "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair", "Berkley's RC Van", "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale", "Oceanic","Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy", "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX", "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper", "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking", "Blista Compact", "Police Maverick", "Boxville", "Benson", "Mesa", "RC Goblin", "Hotring Racer A", "Hotring Racer B", "Bloodring Banger", "Rancher", "Super GT", "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster", "Stunt", "Tanker", "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra", "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck", "Fortune", "Cadrona", "FBI Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer", "Remington", "Slamvan", "Blade", "Freight", "Streak", "Vortex", "Vincent", "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder", "Primo", "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite", "Windsor", "Monster", "Monster", "Uranus", "Jester", "Sultan", "Stratium", "Elegy", "Raindance", "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito", "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper", "Broadway", "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400", "News Van", "Tug", "Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club", "Freight Box", "Trailer", "Andromada", "Dodo", "RC Cam", "Launch", "Police Car", "Police Car", "Police Car", "Police Ranger", "Picador", "S.W.A.T", "Alpha", "Phoenix", "Glendale", "Sadler", "Luggage", "Luggage", "Stairs", "Boxville", "Tiller", "Utility Trailer" }; public OnPlayerCommandPerformed(playerid, cmdtext[], success) { if(!success) { new string[132]; format(string, sizeof(string), "Fehler: Der Befehl '%s' wurde nicht gefunden!", cmdtext); return SCM(playerid, COLOR_INFO, string); } return 1; } public OnPlayerCommandReceived(playerid, cmdtext[]) { if(!IsLogged(playerid)) { SCM(playerid, COLOR_INFO, "Fehler: Du bist nicht eingeloggt!"); return 0; } return 1; } CMD:veh(playerid, params[]) { if(!IsAdmin(playerid, 4)) return NO_PERM; new vName[18]; if(sscanf(params, "s[18]", vName)) return Usage("Benutzung: /veh [Vehicle Name]"); if(IsPlayerInAnyVehicle(playerid)) return SCM(playerid, COLOR_INFO, "Fehler: Du darfst in keinem Fahrzeug sein!"); new string[128], vID = GetVehicleModelIDFromName(vName), Float:Pos[4]; if(vID < 400 || vID > 611) return SCM(playerid, COLOR_INFO, "Fehler: Das Fahrzeug wurde nicht gefunden!"); GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]); GetPlayerFacingAngle(playerid, Pos[3]); format(string, sizeof(string), "> Du hast dir erfolgreich das Vehicle: %s gespawnt!", GetVehicleName(vID)); SCM(playerid, COLOR_INFO, string); new veh = CreateVehicle(vID, Pos[0], Pos[1], Pos[2], Pos[3], 211, 211, -1, 1); SetVehicleNumberPlate(veh, "ADMIN"); PutPlayerInVehicle(playerid, veh, 0); format(string, sizeof(string), "VEH | %s (%i) WERT NEU: %s (%i) POS: (%0.1f | %0.1f | %0.1f | %0.1f)", GetName(playerid), playerid, vName, vID, Pos[0], Pos[1], Pos[2], Pos[3]); Log("cmd_log", string); return 1; } GetVehicleModelIDFromName(vname[]) { for(new i = 0; i < 211; i++) { if(strfind(VehicleNames[i], vname, true) != -1) return i + 400; } return -1; } /* CRASHDETECT */ [15:16:15] [debug] Run time error 4: "Array index out of bounds" [15:16:15] [debug] Attempted to read/write array element at negative index -400 [15:16:15] [debug] AMX backtrace: [15:16:15] [debug] #0 0000ef60 in public cmd_veh (0, 302964) in x.amx [15:16:15] [debug] #1 native CallLocalFunction () in samp-server.exe [15:16:15] [debug] #2 0000052c in public OnPlayerCommandText (0, 302928) in x.amx -
GetVehicleName(vID)
Ja, der clue ist, vID hier ist nicht die vehicleID, sondern die modelid.
Und du fragst von der modelid die modelid ab xD
Du musst das direkt nutzen, ohne das GetVehicleModel

-
Ja, der clue ist, vID hier ist nicht die vehicleID, sondern die modelid.
Das kommt wohl dabei raus, wenn man Code schreibt und nach 6 Monaten weitermachen will^^
Danke dir , klappt soweit

-
Kennt vlt einer die doppelte Glocke Sound ID??
-
HI. Wie stell ich das denn am elegantesten an..
Also ich Frage /vinfo Autos im Besitz ab, natürlich mehr als 1. Jetzt möchte ich nicht für 5 Slots 5x alles in meinen Script kopieren.
Irgendwie müsste man doch was schreiben können dass für jedes der 5 Autos "pVehicle1ID" zu "pVehicle2ID" und so weiter macht. Wie geht das?
Hier meine Abfrage für das erste Auto
Code
Alles anzeigenocmd:vinfo(playerid) { new vehmodelname[32]; switch(cInfo[pInfo[playerid][pVehicle1ID]][carmodel]) { case 411: vehmodelname = "Infernus"; case 414: vehmodelname = "Mule"; } new vehtype[32]; switch(cInfo[pInfo[playerid][pVehicle1ID]][carmodel]) { case 411: vehtype = "Supersport"; case 414: vehtype = "Boxed Van"; } new vehcondition[32]; switch(cInfo[pInfo[playerid][pVehicle1ID]][carcondition]) { case 0: vehcondition = "Brand New"; case 1: vehcondition = "New"; case 2: vehcondition = "Healthy"; case 3: vehcondition = "Good"; case 4: vehcondition = "Regular"; case 5: vehcondition = "Moderate"; case 6: vehcondition = "Used"; case 7: vehcondition = "Worn"; case 8: vehcondition = "Bad"; case 9: vehcondition = "Horrible"; case 10: vehcondition = "Critical"; case 11: vehcondition = "Scrapworthy"; case 12: vehcondition = "Driving-Dead"; } new vehinsured[128]; switch(cInfo[pInfo[playerid][pVehicle1ID]][insured]) { case 0: vehinsured = "No"; case 1: vehinsured = "Yes"; case 2: vehinsured = "2x"; case 3: vehinsured = "3x"; } new vehregistered[128]; switch(cInfo[pInfo[playerid][pVehicle1ID]][registered]) { case 0: vehregistered = "No"; case 1: vehregistered = "Yes"; } new string[512]; SendClientMessage(playerid, COLOR_WHITE, "------------------------------------------------------------------------"); format(string, sizeof(string), "[FIRST VEHICLE]:{FF4500} %s | Type: %s | Milage: %i | Condition: %s | Insured: %s | Registered: %s",vehmodelname,vehtype,cInfo[pInfo[playerid][pVehicle1ID]][milage],vehcondition,vehinsured,vehregistered); SendClientMessage(playerid, COLOR_SYSTEM, string); format(string, sizeof(string), "[SECOND VEHICLE]:{FF4500} %s | Type: %s | Milage: %i | Condition: %s | Insured: %s | Registered: %s",vehmodelname,vehtype,cInfo[pInfo[playerid][pVehicle2ID]][milage],vehcondition,vehinsured,vehregistered); SendClientMessage(playerid, COLOR_SYSTEM, string); /* format(string, sizeof(string), "[THIRD VEHICLE]:{FF4500} %s | Type: %s | Milage: %i | Condition: %s | Insured: %s | Registered: %s",vehmodelname,vehtype,cInfo[pInfo[playerid][pVehicle3ID]][milage],vehcondition,vehinsured,vehregistered); SendClientMessage(playerid, COLOR_SYSTEM, string); format(string, sizeof(string), "[FOURTH VEHICLE]:{FF4500} %s | Type: %s | Milage: %i | Condition: %s | Insured: %s | Registered: %s",vehmodelname,vehtype,cInfo[pInfo[playerid][pVehicle4ID]][milage],vehcondition,vehinsured,vehregistered); SendClientMessage(playerid, COLOR_SYSTEM, string); format(string, sizeof(string), "[FIFHT VEHICLE]:{FF4500} %s | Type: %s | Milage: %i | Condition: %s | Insured: %s | Registered: %s",vehmodelname,vehtype,cInfo[pInfo[playerid][pVehicle5ID]][milage],vehcondition,vehinsured,vehregistered); SendClientMessage(playerid, COLOR_SYSTEM, string); SendClientMessage(playerid, COLOR_WHITE, "------------------------------------------------------------------------"); */ return 1; } -
