Angepinnt [SAMMELTHREAD] Kleine Scripting Fragen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Sub Royal schrieb:

    Ist zumindest toller als eine for Schleife.
    Du kannst das zwar machen, aber es ist schlechter als eine for-Schleife.

    Das liegt daran, wie der Code verarbeitet wird vom Compiler.

    for-Schleifen wurden genau für so einen Zweck gemacht, also solltest du sie auch für diesen Zweck nutzen ^^


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. X/
  • Kaliber schrieb:

    Schreib es so:

    C-Quellcode

    1. CMD:setlevel(playerid,params[])
    2. {
    3. if(!PlayerInfo[playerid][pAdmin]) return SendClientMessage(playerid, 0x00FF00, "[ ! ] Du besitzt keine Rechte um diesen Befehl zu nutzen!");
    4. new string[128], pID, level, name[MAX_PLAYER_NAME];// 'level' ist eine neue Variable für [pLevel]
    5. if(sscanf(params,"ui",pID,level)) return SendClientMessage(playerid, 0x00FF00,"[Info] /setlevel [playerid][level]");
    6. GetPlayerName(playerid, string, MAX_PLAYER_NAME);
    7. GetPlayerName(pID,name,MAX_PLAYER_NAME);
    8. PlayerInfo[pID][pLevel] = level;
    9. format(string,sizeof(string),"Admin %s hat den Rang von Spieler: %s zu %s geändert",string,name,GetLevelRank(pID));
    10. SendClientMessage(playerid, -1, string);
    11. format(string,sizeof(string),"Spieler ist Levelrank: %s",GetLevelRank(pID));
    12. SendClientMessage(playerid, -1, string);
    13. mysql_format(handle, string, sizeof(string), "UPDATE `users` SET `level` = '%d' WHERE `id` = '%d'", level, PlayerInfo[pID][p_id]);
    14. mysql_pquery(handle, string);
    15. return 1;
    16. }
    Alles anzeigen
    Danke für den Tipp / Hinweiß.

    #Edit
    Hab es jetzt über eine andere Funktion hin bekommen und es wird ohne Probleme wiedergegeben.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von PlayEasy ()

  • Guten Tag,
    Wie kann man den Bildschirm weiß machen ?
    Über ein Textdraw oder wäre es auch anders Möglich ?


    Des weiteren suche ich ein Blitz Effekt ( z.b ein kleinen Ball oder so der Leuchtet ) den ich kurz Erstellen und löschen kann um ein Blitz Effekt zu erstellen
    youtube.com/channel/UC5TZUUd86…AZ4dYQ?view_as=subscriber

    Biete Scripting Service an bei Interesse ->Pn
    Verkaufe Selfmade Script bei Interesse -> Pn

    Beitrag von JacLos ()

    Dieser Beitrag wurde von Canna aus folgendem Grund gelöscht: Spam ().
  • reaL. schrieb:

    Wie kann man den Bildschirm weiß machen ?
    Über ein Textdraw oder wäre es auch anders Möglich ?
    Hatte mal so ein System geschrieben gehabt:

    C-Quellcode

    1. static PlayerText:blitz[MAX_PLAYERS];
    2. stock Blitzer_Init(playerid) //z.B. bei OnPlayerConnect aufrufen
    3. {
    4. blitz[playerid] = CreatePlayerTextDraw(playerid,650.000000, 0.000000, !"Neues Textdraw");
    5. PlayerTextDrawBackgroundColor(playerid,blitz[playerid], 255);
    6. PlayerTextDrawFont(playerid,blitz[playerid], 1);
    7. PlayerTextDrawLetterSize(playerid,blitz[playerid], 0.500000, 25.000000);
    8. PlayerTextDrawColor(playerid,blitz[playerid], -1);
    9. PlayerTextDrawSetOutline(playerid,blitz[playerid], 0);
    10. PlayerTextDrawSetProportional(playerid,blitz[playerid], 1);
    11. PlayerTextDrawSetShadow(playerid,blitz[playerid], 1);
    12. PlayerTextDrawUseBox(playerid,blitz[playerid], 1);
    13. PlayerTextDrawBoxColor(playerid,blitz[playerid], -120);
    14. PlayerTextDrawTextSize(playerid,blitz[playerid], -10.000000, 0.000000);
    15. return 1;
    16. }
    17. stock Blitz_Player(playerid) //Wenn der Spieler geblitzt wurde
    18. {
    19. PlayerTextDrawShow(playerid,blitz[playerid]);
    20. GameTextForPlayer(playerid,!"~r~Geblitzt!",5000,5);
    21. PlayerPlaySound(playerid, 1132, 0.0, 0.0, 0.0); //Süßer sound
    22. SetTimerEx(!"@remove",1500,0,!"i",playerid);
    23. }
    24. static @remove(i);@remove(i) return PlayerTextDrawHide(i,blitz[i]);
    Alles anzeigen
    Mir würde auch kein anderer vernünftiger Weg einfallen das ohne TextDraw zu lösen...wüsste aber auch nicht wieso


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. X/

    Beitrag von PlayEasy ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Fehler Gefunden ^^ ().
  • @Kaliber:

    Danke dir :D
    Hab nur gedacht kannst man auch anders Lösen, man kann Ja fragen :)



    Habe eine andere frage wie mache ich das dass der Blitzer den Spieler angucken muss ?
    Sprich habe Links und Rechts ein Blitzer und will dass der Blitzer der für meine Fahrbahn zuständig ist ( der zur mir gerichtet ist ) dann auch meine Fahrbahn Blitzt.
    So erstelle ich meine Blitzer

    Quellcode

    1. Blitzi[i][blitz_ID] = CreateDynamicObject(18880, Blitzi[i][blitz_x], Blitzi[i][blitz_y], Blitzi[i][blitz_z], 0.0, 0.0, Blitzi[i][blitz_r]);

    Habe noch ein Problem festgestellt.
    Irgendwie wird die Kilometer Anzeige "über dem Weißen angezeigt"
    Bilder
    • sa-mp-012.png

      1,88 MB, 1.920×1.080, 22 mal angesehen
    youtube.com/channel/UC5TZUUd86…AZ4dYQ?view_as=subscriber

    Biete Scripting Service an bei Interesse ->Pn
    Verkaufe Selfmade Script bei Interesse -> Pn
  • reaL. schrieb:

    Irgendwie wird die Kilometer Anzeige "über dem Weißen angezeigt"
    Du musst das TextDraw als letztes erstellen mit dem Blitzer, dann wird es auch über allen angezeigt :)


    reaL. schrieb:

    Habe eine andere frage wie mache ich das dass der Blitzer den Spieler angucken muss ?
    Wäre es nicht einfacher....den Blitzer Trigger point nur auf der einen Spur zu halten, wo er auch in die Richtung fährt? ^^

    Ansonsten kannst du das anhand der GetVehicleZAngle ja einfach prüfen, in welche Richtung das Auto zeigen sollte, damit der Blitzer reagiert :)


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. X/
  • pastebin.com/Zd4cbTSm

    Bekomme hier immer den Befehl das HX, HY HZ und hInterior nie benutzt wurden in der letzten Zeile wo es benutzt wurde.

    Den Widerspruch hört man schon raus



    warning 204: symbol is assigned a value that is never used: "hInterior"
    warning 204: symbol is assigned a value that is never used: "HZ"
    warning 204: symbol is assigned a value that is never used: "HY"
    warning 204: symbol is assigned a value that is never used: "HX"
    Programmieren: 1% Programmieren, 99% Bugs Fixen

  • reaL. schrieb:

    Also meinst du einfach nur abfragen ob das Auto in die Richtung fährt über die Z Rotation ?
    Jaa...das ist doch das, was du wissen wolltest ^^

    Darüber kannst du prüfen, ob das Auto auf den Blitzer zu fährt...oder eben nicht :)


    JacLos schrieb:

    Den Widerspruch hört man schon raus
    Da ist kein Widerspruch, du benutzt es nicht.

    Du hast die Variablen deklariert und gibst ihnen einen Wert.

    Aber du fragst den Wert ja nirgends ab, also benutzt du die Variable nicht, du weist ihnen nur einen Wert zu :)


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. X/
  • PlayEasy schrieb:

    Wie kann ich am besten ein Erfahrungslevel System erstellen, wo die User Erfahrungspunkte bekommen und dadurch das Level steigt ?
    Das kommt darauf an, wie sie diese Erfahrungspunkte erhalten sollen.

    Aber üblicherweise passiert das ja über dein "PayDay".

    Du kannst also einfach eine Spieler-Variable wie das Level machen, die nennst du dann z.b. pExp.

    C-Quellcode

    1. //Damit gibst du an, dass der Spieler Pro Level 4 XP braucht
    2. //Also um auf Level 2 zu kommen 4
    3. //Um auf level 3 zu kommen 8
    4. //Um auf Level 4 zu kommen 16
    5. //Kannst den Faktor natürlich beliebig Variieren
    6. stock GetXPNeeded(playerid)
    7. {
    8. return 4*SpielerInfo[playerid][pLevel];
    9. }

    Dann gibst du dem Spieler pro PayDay einfach immer einen Xp..


    C-Quellcode

    1. SpielerInfo[playerid][pExp]++; //Erhöht immer die XP um 1
    2. if(SpielerInfo[playerid][pExp] >= GetXPNeeded(playerid)) //Prüft ob er genug XP hat
    3. {
    4. //Level Up! :)
    5. SpielerInfo[playerid][pExp] = 0;
    6. SpielerInfo[playerid][pLevel]++;
    7. }


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. X/
  • Hey,

    Habe mal eine Frage ich möchte gerne verschiedene Autohaus Bizen machen..

    So käuft man ein Fahrzeug:

    Spoiler anzeigen


    C-Quellcode

    1. case DIALOG_BUYPRIVATEVEHICLE:
    2. {
    3. new string[128];
    4. if(!response)
    5. {
    6. UnfreezePlayer(playerid);
    7. RemovePlayerFromVehicle(playerid);
    8. return 1;
    9. }
    10. if(response)
    11. {
    12. for(new i=0;i<sizeof(autoVehicles);i++)
    13. {
    14. if(GetPlayerVehicleID(playerid) == autoVehicles[i])
    15. {
    16. if(Spieler[playerid][pLevel] < VehicleShop[i][Level])
    17. {
    18. format(string, sizeof(string), "{33CCFF}Dieses Fahrzeug kannst du erst ab Level %d kaufen.", VehicleShop[i][Level]);
    19. SendClientMessage(playerid, COLOR_WHITE, string);
    20. UnfreezePlayer(playerid);
    21. RemovePlayerFromVehicle(playerid);
    22. return 1;
    23. }
    24. if((GetMoney(playerid) - VehicleShop[i][Preis]) < 0)
    25. {
    26. SendClientMessage(playerid, COLOR_WHITE, ERROR_MONEY);
    27. UnfreezePlayer(playerid);
    28. RemovePlayerFromVehicle(playerid);
    29. return 1;
    30. }
    31. if(GetPlayerVehicleCount(playerid) >= MAX_PLAYER_VEHICLES)
    32. {
    33. SendClientMessage(playerid, COLOR_WHITE, "Du kannst keine weiteren Fahrzeuge kaufen!");
    34. SetCameraBehindPlayer(playerid);
    35. UnfreezePlayer(playerid);
    36. RemovePlayerFromVehicle(playerid);
    37. GetVehicleParamsEx(GetPlayerVehicleID(playerid), engine, lights, alarm, doors, bonnet, boot, objective);
    38. SetVehicleParamsEx(GetPlayerVehicleID(playerid), VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, alarm, doors, bonnet, boot, objective);
    39. return 1;
    40. }
    41. new playerName[MAX_PLAYER_NAME+1], nPlate[32];
    42. GetPlayerName(playerid, playerName, sizeof(playerName));
    43. format(nPlate, sizeof(nPlate), "%c%c 1%d", toupper(playerName[0]), toupper(playerName[1]), randomex(10000, 99999));
    44. GiveMoney(playerid, -VehicleShop[i][Preis]);
    45. Others[Staatskasse] += VehicleShop[i][Preis];
    46. format(string, sizeof(string), "{33CCFF}Dein Fahrzeug (%s) steht am Autohaus bereit.", VehicleShop[i][Name]);
    47. SendClientMessage(playerid, COLOR_WHITE, string);
    48. CreatePlayerVehicle(playerid, VehicleShop[i][modelid], VehicleShop[i][buySpawnX], VehicleShop[i][buySpawnY], VehicleShop[i][buySpawnZ], VehicleShop[i][buySpawnA], nPlate, (VehicleShop[i][Preis]/2), 0, 1, 1);
    49. SetCameraBehindPlayer(playerid);
    50. UnfreezePlayer(playerid);
    51. RemovePlayerFromVehicle(playerid);
    52. GetVehicleParamsEx(GetPlayerVehicleID(playerid), engine, lights, alarm, doors, bonnet, boot, objective);
    53. SetVehicleParamsEx(GetPlayerVehicleID(playerid), VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, alarm, doors, bonnet, boot, objective);
    54. return 1;
    55. }
    56. }
    57. }
    58. }
    Alles anzeigen


    Wie kann ich den Autohaus mit der zugewiesenen ID das geld in die Biz kasse geben?

    abfrage für den kauf:

    PAWN-Quellcode

    1. VehicleShop[i][AutohausID] //Um die ID zu erfahren des Autohauses


    PAWN-Quellcode

    1. Biz[1][bKasse] += VehicleShop[i][Preis]; //Die eins ist dafür das es in das Biz ein soll. aber da es verschiedene Bizen gibt kann man ja nicht allen das Geld geben nur da wo er halt das Fahrzeug gekauft hat wäre ja unfair
  • Du weißt ja, an welchem Biz er sich das Auto gekauft hat, als er es sich kauft...

    Du hast also 2 Möglichkeiten...

    Entweder du speicherst das in einem PVar und fügst das da einfach ein..

    oooder du prüfst die Positionen von dem Biz und checkst, an welchem er sich befindet..und hast so die ID.


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. X/
  • Neu

    E:

    PAWN-Quellcode

    1. AddPlayerClass(283,2067.0037,1367.3481,10.6719,308.5652,0,0,0,0,0,0); // Autohaus OldTimer Ecke 1
    2. AddPlayerClass(283,2237.4001,1523.3188,10.8125,145.5911,0,0,0,0,0,0); // Autohaus OldTimer Ecke 2
    3. AddPlayerClass(283,1025.1053,-1787.5189,13.8612,28.0382,0,0,0,0,0,0); // Autohaus Intercars Ecke 1
    4. AddPlayerClass(283,924.6554,-1579.4823,13.5469,224.4016,0,0,0,0,0,0); // Autohaus Intercars Ecke 2


    Hab dazu auch eine Zone erstellen lassen um zu schaun ob dies auch soweit korrekt ist.

    Dies sind die Abfragen der Area und zugleich die Bizen dabei.
    Habe die Bizen geprüft die sind korrekt und Funktionieren auch.

    C-Quellcode

    1. if(IsPlayerInArea(playerid, 1025.1053, -1579.4823, 924.6554, -1787.5189)) //Intercars Autohaus
    2. {
    3. Biz[9][bKasse] += VehicleShop[i][Preis]/2;
    4. Biz[9][bProdukte] --;
    5. UpdateBizLabel(9, Biz[9][bOwned]);
    6. }
    7. if(IsPlayerInArea(playerid, 2067.0037, 1523.3188, 2237.4001, 1367.3481)) //Oldtimer Autohaus
    8. {
    9. Biz[10][bKasse] += VehicleShop[i][Preis]/2;
    10. Biz[10][bProdukte] --;
    11. UpdateBizLabel(10, Biz[10][bOwned]);
    12. }
    Alles anzeigen


    Nun kommen wir zu den Teil vom stock siehe hier:

    C-Quellcode

    1. stock IsPlayerInArea(playerid, Float:zminX, Float:zminY, Float:zmaxX, Float:zmaxY)
    2. {
    3. new Float:zoneX, Float:zoneY, Float:zoneZ;
    4. GetPlayerPos(playerid, zoneX, zoneY, zoneZ);
    5. if(zoneX >= zminX && zoneX <= zmaxX && zoneY >= zminY && zoneY <= zmaxY)
    6. {
    7. return 1;
    8. }
    9. return 0;
    10. }
    Nun zu erklärung:

    Ich habe nun beide Autohäuser eingefügt und die Area dazu.
    Nun Versuche ich Frustrierend ein Auto zu kaufen in der hoffung das die hälte davon in die Biz kasse fließt.
    Aber dies ist nicht der fall..

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Dr. Frauenarzt ()