[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
-
-
und was wenn ich jetzt ein drittes reinballern will? dann einfach switch(random(3)) und bei case 2 : bsp. givemoney wieder?
Richtig.
-
irgendwie plaziert er keine Pflanze warum?
if(strcmp(cmdtext,"/pflanzen", true) == 0){PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);new Float:plocx,Float:plocy,Float:plocz,Float:ploca;GetPlayerPos(playerid, plocx, plocy, plocz);GetPlayerFacingAngle(playerid,ploca);CreateSpice(792,plocx,plocy,plocz+0.6,ploca);GameTextForPlayer(playerid,"~w~Spice ~g~plaziert",3000,1);return 1;}if(strcmp(cmdtext,"/pflanzeweg", true) == 0){DeleteClosestSpice(playerid);GameTextForPlayer(playerid,"~w~Spice ~r~verbrannt!",3000,1);}
und definiert sind die hier :
stock CreateSpice(Object,Float:x,Float:y,Float:z,Float:Angle){for(new i = 0; i < sizeof(Spices); i++){if(Spices[i][sCreated] == 0){Spices[i][sCreated] = 1;Spices[i][sX] = x;Spices[i][sY] = y;Spices[i][sZ] = z-0.7;Spices[i][sObject] = CreateObject(Object, x, y, z-0.9, 0, 0, Angle);return 1;}}return 0;}stock DeleteClosestSpice(playerid){for(new i = 0; i < sizeof(Spices); i++){if(IsPlayerInRangeOfPoint(playerid, 5.0, Spices[i][sX], Spices[i][sY], Spices[i][sZ])){if(Spices[i][sCreated] == 1){Spices[i][sCreated] = 0;Spices[i][sX] = 0.0;Spices[i][sY] = 0.0;Spices[i][sZ] = 0.0;DestroyObject(Spices[i][sObject]);return 1;}}}return 0;}
//EDIT : Doch hat sich geklärt die werden plaziert

-
Eine Frage, funktioniert der TDEditor eig nur für Windows?
Finde leider nur eine .dll und keine .so in dem Plugins Ordner.
Nur auf Windows, musst jedoch den Server als Administrator starten.
-
Hey, ich habe eine Frage,
Gibt es ein Editor der Speziell für Fahrzeuge gedacht ist um Sachen darauf zu machen und das man die Koordinaten raus findet?
Also auf Deutsch Objekte auf ein Fahrzeuge Attacken
-
Fahrzeuge Attacken
Bitte keine Fahrzeuge angreifen hahaha

-
Gibt es ein Editor der Speziell für Fahrzeuge gedacht ist um Sachen darauf zu machen und das man die Koordinaten raus findet?
http://forum.sa-mp.com/showthread.php?t=282883
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. -
Dnakeschön,
Möchte gerne Verschiedene Tankarten erstellen "Die man Tanken Kann nur weiß ich nicht wie ich das am besten mache im Befehl (Sollte man per Dialog Auswählen Könn.
Befehl;
Code
Alles anzeigenocmd:fill(playerid) { if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, COLOR_GRAU, "Du befindest dich in keinem Fahrzeug."); if(GetPlayerVehicleSeat(playerid) != 0)return SendClientMessage(playerid, COLOR_GRAU, "Du bist nicht der Fahrer eines Fahrzeuges."); new vehicleid = GetPlayerVehicleID(playerid); for(new i=1;i<MAX_TANKEN;i++) { if(Tanke[i][tCreated] == 1) { if(IsPlayerInRangeOfPoint(playerid, 5.0, Tanke[i][tPickupX], Tanke[i][tPickupY], Tanke[i][tPickupZ])) { if(Tanke[i][tOwned] == 0)return SendClientMessage(playerid, COLOR_GRAU, "Diese Tankstelle hat keinen Besitzer."); if(Tanke[i][tLiter] <= 0.0)return SendClientMessage(playerid, COLOR_GRAU, "Die Tankstelle hat kein Benzin mehr."); if(Vehicle[vehicleid][vehFuel] == VehicleData[GetVehicleModel(vehicleid)-400][vehMaxTank])return SendClientMessage(playerid, COLOR_GRAU, "Dein Fahrzeug ist bereits befüllt."); if(pRefillVehicle[playerid] == 1)return SendClientMessage(playerid, COLOR_GRAU, "Das Fahrzeug wird bereits befüllt."); if(Vehicle[vehicleid][vehMotor] == true)return SendClientMessage(playerid, COLOR_GRAU, "Der Motor muss ausgeschaltet sein."); FreezePlayer(playerid); SendClientMessage(playerid, COLOR_WHITE, "Dein Fahrzeug wird getankt ..."); SetTimerEx("FillVehicle", 5000, 0, "iii", playerid, vehicleid, i); pRefillVehicle[playerid] = 1; return 1; } } } return SendClientMessage(playerid, COLOR_GRAU, "Du befindest dich an keiner Tankstelle."); }
<- Momentan ganz normales Tanken ohne Tankart.//Derzeitiger Timer Dafür.
Code
Alles anzeigenforward FillVehicle(playerid, vehicleid, bizid); public FillVehicle(playerid, vehicleid, bizid) { if(!IsPlayerConnected(playerid))return 1; if(!IsPlayerInRangeOfPoint(playerid, 5.0, Tanke[bizid][tPickupX], Tanke[bizid][tPickupY], Tanke[bizid][tPickupZ]))return SendClientMessage(playerid, COLOR_GRAU, "Du befindest dich an keiner Tankstelle."); if(GetPlayerVehicleSeat(playerid) != 0)return SendClientMessage(playerid, COLOR_GRAU, "Du bist nicht der Fahrer eines Fahrzeuges."); new Float:pBenzin = (VehicleData[GetVehicleModel(vehicleid)-400][vehMaxTank] - Vehicle[vehicleid][vehFuel]); new string[128], zPreis; if(Tanke[bizid][tLiter] < pBenzin) { pBenzin = Tanke[bizid][tLiter]; zPreis = (floatround(pBenzin*Tanke[bizid][tPreisProLiter])); format(string, sizeof(string), "Es konnten nur %.02f Liter aufgetankt werden. Die Tankstelle hat kein Benzin mehr. (-$%d)", pBenzin, zPreis); SendClientMessage(playerid, COLOR_LIGHTBLUE, string); Vehicle[vehicleid][vehFuel] += pBenzin; SafeGivePlayerMoney(playerid, -zPreis); Tanke[bizid][tKasse] += zPreis; Tanke[bizid][tLiter] -= pBenzin; } else { zPreis = (floatround(pBenzin*Tanke[bizid][tPreisProLiter])); format(string, sizeof(string), "* Du hast %.02f Liter getankt für %d$.", pBenzin, zPreis); SendClientMessage(playerid, COLOR_LIGHTBLUE, string); Vehicle[vehicleid][vehFuel] += pBenzin; SafeGivePlayerMoney(playerid, -zPreis); Tanke[bizid][tKasse] += zPreis; Tanke[bizid][tLiter] -= pBenzin; } pRefillVehicle[playerid] = 0; UnfreezePlayer(playerid); UpdateTankLabel(bizid, Tanke[bizid][tOwned]); return 1; }
Gibt derzeit: Benzin, Diesel, Super, Kerosin(natürlich nur für Flugzeuge?)
-
Du nimmst diesen Teil aus dem Befehl:
FreezePlayer(playerid);
SendClientMessage(playerid, COLOR_WHITE, "Dein Fahrzeug wird getankt ...");
SetTimerEx("FillVehicle", 5000, 0, "iii", playerid, vehicleid, i);
pRefillVehicle[playerid] = 1;
und öffnest dort stattdessen den ShowPlayerDialog mit den verschiedenen Tankarten.Im dazugehörigen OnDialogResponse kommt dann obiger Code rein (mitsamt der Schleife aus dem Befehl), sowie nochmal die Plausi-Prüfungen aus dem Befehl (Spieler könnte sich ja bewegt haben).
Über das listitem gibts du dann die Tankart mit, und zwar in dem Timer:
SetTimerEx("FillVehicle", 5000, 0, "iii", playerid, vehicleid, i);
zu:
SetTimerEx("FillVehicle", 5000, 0, "iiii", playerid, vehicleid, i, listitem);Der Kopf des Timers sieht dann so aus:
forward FillVehicle(playerid, vehicleid, bizid, tankart);
public FillVehicle(playerid, vehicleid, bizid, tankart)Und dann kannst du darin einen switch über die tankart machen.
-
Wie kann man am einfachsten die Gradzahl oder Radiant herrausfinden, die der Spieler tätigen muss (Links schwenken mit der Kamera) um das Objekt im Sichtfeld zuhaben.

-
-
Also den exakten Winkel bekommst du so raus, dann schaut der Spieler direkt dahin.
Mit [wiki]GetPlayerFacingAngle[/wiki] könntest du ja einfach die Differenz zum eigentlichen Winkel bilden und dann weißt du es

-
Ich habe eine Kurze Frage:
ormat(Gutschein[i][gCode], 64, "%c%d%c%d-%c%d%c%d-%c%d%c%d",getRandomLetter(),getRandomNumber(10), getRandomLetter(),getRandomNumber(10),getRandomLetter(),getRandomNumber(10), getRandomLetter(),getRandomNumber(10),getRandomLetter(),getRandomNumber(10), getRandomLetter(),getRandomNumber(10));
So wird der Gutschein in die Datenbank eingetragen.
Aber ich wollte mit den Code noch zusätzlich auslesen lassen das ich den Ingame sehen kann:
//Gutschein Code Anzeigen lassen
format(string, sizeof(string), "%c%d%c%d-%c%d%c%d-%c%d%c%d", Gutschein[playerid][gCode]);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);ABer irgendwie zeigt er mir kein Code an...
-
-
Das problem ist er gibt mir trd kein Code aus:
Code
Alles anzeigenelse if(strcmp(str, "Gutschein", true) == 0) { for(new i=1;i<MAX_GUTSCHEINE;i++) { if(Gutschein[i][gErstellt] != 1) { new pYear, pMonth, pDay, pHour, pMinute, pSecond; format(query, sizeof(query), "INSERT INTO `script_gutscheine` (id) VALUES ('%d')", i); mysql_function_query(sqlHandle, query, false, "", ""); pCreateGutschein[playerid] = i; Gutschein[i][gID] = i; Gutschein[i][gErstellt] = 1; Gutschein[i][gWert] = 0; format(Gutschein[i][gErsteller], 16, "%s", GetName(playerid)); strmid(Gutschein[i][gEingeloestVon], "-", 0, strlen("-"), 32); getdate(pYear, pMonth, pDay); gettime(pHour, pMinute, pSecond); new value = gettime()+31536000; Gutschein[i][gAblauf] = value; format(Gutschein[i][gDatumErstellt], 32, "%02d.%02d.%02d %02d:%02d:%02d", pDay, pMonth, pYear, pHour, pMinute, pSecond); format(Gutschein[i][gCode], 64, "%c%d%c%d-%c%d%c%d-%c%d%c%d",getRandomLetter(),getRandomNumber(10), getRandomLetter(),getRandomNumber(10),getRandomLetter(),getRandomNumber(10), getRandomLetter(),getRandomNumber(10),getRandomLetter(),getRandomNumber(10), getRandomLetter(),getRandomNumber(10)); Gutschein[i][gEingeloest] = 0; ShowPlayerDialog(playerid, DIALOG_GUTSCHEIN1, DIALOG_STYLE_LIST, "Gutschein erstellen", ""HTML_WHITE"Gebundenen Gutschein erstellen\nUngebundenen Gutschein erstellen", "Auswählen", "Abbrechen"); return 1; } } return SendClientMessage(playerid, COLOR_GRAU, "Maximale Anzahl an Gutscheinen erreicht!"); }Code
Alles anzeigencase 0: //24 Stunden Premium { Gutschein[pCreateGutschein[playerid]][gTyp] = 1; SaveGutschein(pCreateGutschein[playerid]); pCreateGutschein[playerid] = INVALID_GUTSCHEIN_KEY; SendClientMessage(playerid, COLOR_LIGHTBLUE, "Du hast erfolgreich einen Gutschein erstellt!"); //Gutschein Code Anzeigen lassen format(string, sizeof(string), "%s", Gutschein[playerid][gCode]); SendClientMessage(playerid, COLOR_LIGHTBLUE, string); } -
-
Gibt mir der Log aus:
Code[debug] Run time error 4: "Array index out of bounds" [debug] Accessing element at negative index -255 [debug] AMX backtrace: [debug] #0 002bba04 in public OnDialogResponse (playerid=0, dialogid=347, response=1, listitem=8, inputtext[]=@0x0444b5a0 "UBB Fahrzeug") at C:\Users\ASUS\Desktop\GTA - San Andreas Daten\Scripts (SAMP)\Gaming-Board\gamemodes\Bearbeitetes.pwn:40334 -
Weil du 2 Zeilen den Code zu INVALID setzt.
Mach das doch bitte erst nachdem du das genutzt hast

-
Beitrag von Dr. Frauenarzt ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Verstanden Fehler entdeckt (). -
Kurze Frage;
format(PrivateVehicle[playerid][slot][vehNumberPlate], 32, "%c%c %d", toupper(playerName[0]), toupper(playerName[1]), randomex(100000, 999999));
SetVehicleNumberPlate(PrivateVehicle[playerid][slot][vehID], PrivateVehicle[playerid][slot][vehNumberPlate]);Möchte gerne das die erste zahl immer eine 1 ist aber das ist random warum?
-
Alles anzeigen
Kurze Frage;
format(PrivateVehicle[playerid][slot][vehNumberPlate], 32, "%c%c %d", toupper(playerName[0]), toupper(playerName[1]), randomex(100000, 999999));SetVehicleNumberPlate(PrivateVehicle[playerid][slot][vehID], PrivateVehicle[playerid][slot][vehNumberPlate]);
Möchte gerne das die erste zahl immer eine 1 ist aber das ist random warum?
mach es doch einfach so easy xD:
- format(PrivateVehicle[playerid][slot][vehNumberPlate], 32, "%c%c 1%d", toupper(playerName[0]), toupper(playerName[1]), randomex(10000, 99999));
- SetVehicleNumberPlate(PrivateVehicle[playerid][slot][vehID], PrivateVehicle[playerid][slot][vehNumberPlate]);
-