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

  • Hey,

    Kurze frage die wartezeit bei selbstmord funktioniert nicht irgendwie man kann ständig selbstmord machen?

    Spoiler anzeigen


    C-Quellcode

    1. ocmd:selbstmord(playerid,params[])
    2. {
    3. new Float:Pos[3], SelbstmordStatusTimer;
    4. if(!(Spieler[playerid][pFraktion] == 18))return SendClientMessage(playerid, COLOR_WHITE, ERROR_FRAKTION);
    5. if((Spieler[playerid][pSprengstoff] - 2) < 0)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Es ist nicht genügend Sprengstoff vorhanden.");
    6. if(gettime() > SelbstmordStatusTimer)
    7. {
    8. SelbstmordStatusTimer = gettime() + (60*60);
    9. GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
    10. new randompos = random(20),randexploderadius = random(40)+10;
    11. CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
    12. randexploderadius = random(30)+10;
    13. randompos = random(10);
    14. CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
    15. randexploderadius = random(30)+10;
    16. randompos = random(10);
    17. CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
    18. randexploderadius = random(30)+10;
    19. randompos = random(10);
    20. CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
    21. randexploderadius = random(30)+10;
    22. randompos = random(10);
    23. CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
    24. randexploderadius = random(30)+10;
    25. randompos = random(10);
    26. CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
    27. randexploderadius = random(30)+10;
    28. randompos = random(10);
    29. CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
    30. randexploderadius = random(30)+10;
    31. randompos = random(10);
    32. CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
    33. randexploderadius = random(30)+10;
    34. randompos = random(10);
    35. CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
    36. randexploderadius = random(30)+10;
    37. randompos = random(10);
    38. CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
    39. randexploderadius = random(30)+10;
    40. randompos = random(10);
    41. CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
    42. randexploderadius = random(30)+10;
    43. randompos = random(10);
    44. CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
    45. randexploderadius = random(30)+10;
    46. randompos = random(10);
    47. CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
    48. SetPlayerHealth(playerid, 0);
    49. Spieler[playerid][pSprengstoff] -= 2;
    50. ForEachPlayer(i)
    51. {
    52. if(IsPlayerInRangeOfPoint(i, 20.0, Pos[0], Pos[1], Pos[2]))
    53. {
    54. if(playerid != i)
    55. {
    56. Spieler[playerid][pKills]++;
    57. SetPlayerHealth(i, 0);
    58. new string[256];
    59. OnWantedChange(playerid, Spieler[playerid][pWanteds], (Spieler[playerid][pWanteds]+2));
    60. Spieler[playerid][pWanteds] += 2;
    61. UpdateWantedTD(playerid);
    62. format(string, sizeof(string), "{AA3333}Du hast ein Verbrechen begangen. (%s) Reporter: %s", "Mord", "Niemand");
    63. SendClientMessage(playerid, COLOR_WHITE, string);
    64. format(string, sizeof(string), "{FFFF00}Dein aktuelles Wanted Level: %d", Spieler[playerid][pWanteds]);
    65. SendClientMessage(playerid, COLOR_WHITE, string);
    66. }
    67. }
    68. }
    69. }
    70. else
    71. {
    72. new SelbstmordTime = SelbstmordStatusTimer-gettime(), string[128];
    73. format(string,sizeof(string),"{AFAFAF}Du kannst erst in %i:%02d Minuten Selbstmord machen.", floatround(SelbstmordTime/60), floatround(SelbstmordTime%60));
    74. SendClientMessage(playerid, COLOR_WHITE, string);
    75. return 1;
    76. }
    77. return 1;
    78. }
    Alles anzeigen
  • BrightLeaN schrieb:

    Ich meinte ob man den random switch vorhersagen kann mit Techniken
    Ja, kannst du so doch...weil du doch weißt, was x für einen Wert hat ^^

    Also nur Serverseitig per skritping...als User kannst du da gar nichts vorhersagen..sonst wäre die random Funktion ziemlich nutzlos :D

    Das steht doch gerade für zufällig ^^


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

    Hey,

    Kurze frage die wartezeit bei selbstmord funktioniert nicht irgendwie man kann ständig selbstmord machen?

    Spoiler anzeigen


    C-Quellcode

    1. ocmd:selbstmord(playerid,params[])
    2. {
    3. new Float:Pos[3], SelbstmordStatusTimer;
    4. if(!(Spieler[playerid][pFraktion] == 18))return SendClientMessage(playerid, COLOR_WHITE, ERROR_FRAKTION);
    5. if((Spieler[playerid][pSprengstoff] - 2) < 0)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Es ist nicht genügend Sprengstoff vorhanden.");
    6. if(gettime() > SelbstmordStatusTimer)
    7. {
    8. SelbstmordStatusTimer = gettime() + (60*60);
    9. GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
    10. new randompos = random(20),randexploderadius = random(40)+10;
    11. CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
    12. randexploderadius = random(30)+10;
    13. randompos = random(10);
    14. CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
    15. randexploderadius = random(30)+10;
    16. randompos = random(10);
    17. CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
    18. randexploderadius = random(30)+10;
    19. randompos = random(10);
    20. CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
    21. randexploderadius = random(30)+10;
    22. randompos = random(10);
    23. CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
    24. randexploderadius = random(30)+10;
    25. randompos = random(10);
    26. CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
    27. randexploderadius = random(30)+10;
    28. randompos = random(10);
    29. CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
    30. randexploderadius = random(30)+10;
    31. randompos = random(10);
    32. CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
    33. randexploderadius = random(30)+10;
    34. randompos = random(10);
    35. CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
    36. randexploderadius = random(30)+10;
    37. randompos = random(10);
    38. CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
    39. randexploderadius = random(30)+10;
    40. randompos = random(10);
    41. CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
    42. randexploderadius = random(30)+10;
    43. randompos = random(10);
    44. CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
    45. randexploderadius = random(30)+10;
    46. randompos = random(10);
    47. CreateExplosion(Pos[0]+randompos, Pos[1]+randompos, Pos[2]+randompos, 7, randexploderadius);
    48. SetPlayerHealth(playerid, 0);
    49. Spieler[playerid][pSprengstoff] -= 2;
    50. ForEachPlayer(i)
    51. {
    52. if(IsPlayerInRangeOfPoint(i, 20.0, Pos[0], Pos[1], Pos[2]))
    53. {
    54. if(playerid != i)
    55. {
    56. Spieler[playerid][pKills]++;
    57. SetPlayerHealth(i, 0);
    58. new string[256];
    59. OnWantedChange(playerid, Spieler[playerid][pWanteds], (Spieler[playerid][pWanteds]+2));
    60. Spieler[playerid][pWanteds] += 2;
    61. UpdateWantedTD(playerid);
    62. format(string, sizeof(string), "{AA3333}Du hast ein Verbrechen begangen. (%s) Reporter: %s", "Mord", "Niemand");
    63. SendClientMessage(playerid, COLOR_WHITE, string);
    64. format(string, sizeof(string), "{FFFF00}Dein aktuelles Wanted Level: %d", Spieler[playerid][pWanteds]);
    65. SendClientMessage(playerid, COLOR_WHITE, string);
    66. }
    67. }
    68. }
    69. }
    70. else
    71. {
    72. new SelbstmordTime = SelbstmordStatusTimer-gettime(), string[128];
    73. format(string,sizeof(string),"{AFAFAF}Du kannst erst in %i:%02d Minuten Selbstmord machen.", floatround(SelbstmordTime/60), floatround(SelbstmordTime%60));
    74. SendClientMessage(playerid, COLOR_WHITE, string);
    75. return 1;
    76. }
    77. return 1;
    78. }
    Alles anzeigen

    Das liegt daran, dass SelbstmordStatusTimer eine lokale Variable ist, beim ausführen des Befehls also immer 0 ist.
    Du musst dies zu einer globalen Variable ändern, die du dem Spieler zuweist.
    Die globale Variable erstellst du einfach ganz oben in deinem Script so: new SelbstmordStatusTimer[MAX_PLAYERS];
    Und in deinem Befehl ersetzt du jedes SelbstmordStatusTimer mit SelbstmordStatusTimer[playerid]
    Ich helfe zu allen Fragen bezüglich PAWN Scripting gerne weiter.
    Auch im Bereich JavaScript und dort der RageMP API helfe ich gern.

    Konversation: Konversation starten
    Discord: LeonMrBonnie#2251

    Beitrag von Chiller.502 ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Dr. Frauenarzt schrieb:

    Hey,

    Kurze frage lade meine Objecte per Filterscript.. weiß nicht ob das so schlau ist...
    Aber wen der Server neu startet sind die Gebäude immer weg und muss die Filterscripts neu laden weiß jemand eine andere Lösung?
    Ein gmx lädt die filterscripts nicht neu.
    Ich gehe mal davon aus dass du im Filterscript OnFilterScriptInit verwendest, änder das doch mal in OnGameModeInit.

    Beitrag von arjanit0484 ()

    Dieser Beitrag wurde von Canna aus folgendem Grund gelöscht: Falsches Thema/Spam ().

  • Infra schrieb:

    Ich gehe mal davon aus dass du im Filterscript OnFilterScriptInit verwendest, änder das doch mal in OnGameModeInit.
    Nein, das geht leider nicht :)

    Nimm die Filterskripte aus der server.cfg.

    Und pack stattdessen unter OnGameModeInit

    PAWN-Quellcode

    1. SendRconCommand("reloadfs meinSkriptA");
    2. SendRconCommand("reloadfs meinSkriptB");


    Da packst du einfach alle rein...

    Und in den Filterskripten natürlich OnFilterScriptInit verwenden, dann sollte das immer alles automatisch gehen :)


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

    1. ocmd:findowner(playerid, params[])
    2. {
    3. new ling[16];
    4. if(sscanf(params,"s[16]",ling))return SendClientMessage(playerid, COLOR_GRAY, "[Hinweis]: /findowner [Kennzeichen]");
    5. for(new z=0; z<MAX_PLAYERS; z++)
    6. {
    7. if(strcmp(ling, numberplatenoob[z])==1)continue;
    8. new test[128];
    9. format(test, 128, "Spieler: %s | Kennzeichen: %s", PlayerName(z), numberplatenoob[z]);
    10. SendClientMessage(playerid, COLOR_DARKGREEN, test);
    11. break;
    12. }
    13. return 1;
    14. }
    Alles anzeigen


    Einer eine Ahnung wie ich da eine Fehlermeldung rein kriege und die Abfrage vernünftiger hinkriege?
    Würde gerne durch die Abfrage des Kennzeichens den Besitzer des Fahrzeugs finden.

    Liebe Grüße,
    Genadj_Andrenov

    Art: Roleplay
    Script-Fortschritt: 25%
    Script-Features: Bleibt Geheim
    Script-Zeilen: -Muss man nicht wissen den die Features sind das wichtigste!-
    Projektname: -Bleibt derzeit Geheim!-



    Uhrheberrechtshinweis: Die Symbole(Icons) sind nicht selbst erstellt sondern gehören IconArchive.com
  • PAWN-Quellcode

    1. ocmd:findowner(playerid, params[])
    2. {
    3. new ling[16], bool:ownerFound = false;
    4. if(sscanf(params,"s[16]",ling))return SendClientMessage(playerid, COLOR_GRAY, "[Hinweis]: /findowner [Kennzeichen]");
    5. for(new z=0; z<MAX_PLAYERS; z++)
    6. {
    7. if(strcmp(ling, numberplatenoob[z])==1)continue;
    8. new test[128];
    9. format(test, 128, "Spieler: %s | Kennzeichen: %s", PlayerName(z), numberplatenoob[z]);
    10. SendClientMessage(playerid, COLOR_DARKGREEN, test);
    11. ownerFound = true;
    12. break;
    13. }
    14. If(ownerFound == false) return Sendclientmessage(playerid, -1, “Kennzeichen/Owner nicht gefunden“);
    15. return 1;
    16. }
    Alles anzeigen


    So eine „Fehlermeldung“ meinst du?
  • Apokrate schrieb:

    PAWN-Quellcode

    1. ocmd:findowner(playerid, params[]){new ling[16], bool:ownerFound = false;if(sscanf(params,"s[16]",ling))return SendClientMessage(playerid, COLOR_GRAY, "[Hinweis]: /findowner [Kennzeichen]");for(new z=0; z<MAX_PLAYERS; z++){if(strcmp(ling, numberplatenoob[z])==1)continue;new test[128];format(test, 128, "Spieler: %s | Kennzeichen: %s", PlayerName(z), numberplatenoob[z]);SendClientMessage(playerid, COLOR_DARKGREEN, test);ownerFound = true;break;}If(ownerFound == false) return Sendclientmessage(playerid, -1, “Kennzeichen/Owner nicht gefunden“);return 1;}


    So eine „Fehlermeldung“ meinst du?
    Ja genau. Hoffe das diese ohne einen Bug funktioniert habe schon ewig nicht mehr gescriptet und wollte mich wieder einfinden.

    Liebe Grüße,
    Genadj_Andrenov

    Art: Roleplay
    Script-Fortschritt: 25%
    Script-Features: Bleibt Geheim
    Script-Zeilen: -Muss man nicht wissen den die Features sind das wichtigste!-
    Projektname: -Bleibt derzeit Geheim!-



    Uhrheberrechtshinweis: Die Symbole(Icons) sind nicht selbst erstellt sondern gehören IconArchive.com
  • Hallo,
    Weiß nicht was sein Problem ist, egal in welchem Biz ich gehe ich spawne mitten im nirgendwo und falle aus der Welt

    C-Quellcode

    1. new bInfo[sizeof(BizInts)][bizinfo];



    C-Quellcode

    1. stock const BizInts[][bizinteriors]={
    2. {"24/7",4,1,1,/*InteriorPos*/-27.312300,29.277599,1003.549988},
    3. {"24/7",4,1,1,/*InteriorPos*/-27.312300,29.277599,1003.549988},
    4. {"24/7",4,1,1,/*InteriorPos*/-27.312300,29.277599,1003.549988},
    5. {"24/7",4,1,1,/*InteriorPos*/-27.312300,29.277599,1003.549988},
    6. {"24/7",4,1,1,/*InteriorPos*/-27.312300,29.277599,1003.549988},
    7. {"24/7",4,1,1,/*InteriorPos*/-27.312300,29.277599,1003.549988},
    8. {"24/7",4,1,1,/*InteriorPos*/-27.312300,29.277599,1003.549988},
    9. {"24/7",4,1,1,/*InteriorPos*/-27.312300,29.277599,1003.549988}
    10. };
    Bizinteriors



    C-Quellcode

    1. enum buildungs{
    2. Name[35],
    3. Interior,
    4. Welt,
    5. Float:EX,Float:EY,Float:EZ,// Enter Position
    6. Float:IX,Float:IY,Float:IZ// Exit Position
    7. }

    C-Quellcode

    1. if(GetPVarInt(playerid,"InBiz")!=-1)
    2. {
    3. new b=GetPVarInt(playerid,"InBiz");
    4. new bi=bInfo[b][bInterior];
    5. if(IsPlayerInRangeOfPoint(playerid,3.0,BizInts[bi][IX],BizInts[bi][IY],BizInts[bi][IZ]))
    6. {
    7. SetPlayerPos(playerid,bInfo[b][bX],bInfo[b][bY],bInfo[b][bZ]);
    8. SetPlayerInterior(playerid,0);
    9. SetPlayerVirtualWorld(playerid,0);
    10. SetPVarInt(playerid,"InBiz",-1);
    11. return 1;
    12. }
    13. }
    14. else
    15. {
    16. for(new b;b<sizeof(bInfo);b++)
    17. {
    18. if(IsPlayerInRangeOfPoint(playerid,5.0,bInfo[b][bX],bInfo[b][bY],bInfo[b][bZ]))
    19. {
    20. if(bInfo[b][biztype]==7)return 1;
    21. new bi=bInfo[b][bInterior];
    22. SetPlayerPos(playerid,BizInts[bi][IX],BizInts[bi][IY],BizInts[bi][IZ]);
    23. SetPlayerInterior(playerid,BizInts[bi][Interior]);
    24. SetPlayerVirtualWorld(playerid,BizInts[bi][Welt]);
    25. SetPVarInt(playerid,"InBiz",b);
    26. return 1;
    27. }
    28. }
    29. }
    Alles anzeigen

    Ich weiß, dass ich weiß, dass ich nichts weiß.

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

  • C-Quellcode

    1. if(IsPlayerInRangeOfPoint(playerid, 5.0, Tanke[i][tPickupX], Tanke[i][tPickupY], Tanke[i][tPickupZ]))
    2. {
    3. if(model != 514 && model != 515) return SendClientMessage(playerid, COLOR_WHITE,"{AFAFAF}Du befindest dich in einem keinem Tanker oder Roadtrain.");
    4. if(!IsTrailerAttachedToVehicle(veh)) return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du hast dein Tank Anhänger nicht angeschlossen!");
    5. if(GetVehicleModel(trailer) != 584) return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du hast den falschen Anhänger. Du brauchst den Tank Anhänger!");
    6. if(Vehicle[vehicleid][vehGeladen][2] == 3)
    7. {
    8. new gebraucht = floatround(Tanke[i][tMaxLiterBenzin] - Tanke[i][tLiterBenzin]);
    9. new kosten = Tanke[i][tBenzinAnkauf]*gebraucht;
    10. if(Tanke[i][tKasse] < kosten) return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Die Tankstelle hat nicht genügend Geld für den Benzin.");
    11. if(!gebraucht) return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Dieses Tankstelle benötigt keinen Benzin mehr.");
    12. if(Vehicle[vehicleid][vehGeladen][2] == 0) return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Dein Tank Anhänger hat kein Benzin mehr geladen.");
    13. if(Vehicle[trailer][vehProds] > gebraucht)
    14. {
    15. Vehicle[trailer][vehProds] -= gebraucht, Tanke[i][tLiterBenzin] = Tanke[i][tMaxLiterBenzin];
    16. format(string, sizeof(string), "{21DD00}Es konnten nur %d Liter Benzin abgeliefert werden, die Tankstelle ist voll.", gebraucht);
    17. SendClientMessage(playerid, COLOR_WHITE, string);
    18. }
    19. else Tanke[i][tLiterBenzin] += Vehicle[trailer][vehProds], Vehicle[vehicleid][vehGeladen][2] = 0, Vehicle[trailer][vehProds] = 0;
    20. format(string, sizeof(string), "{21DD00}Gehalt: %d$", kosten);
    21. SendClientMessage(playerid, COLOR_WHITE, string);
    22. format(string, sizeof(string), "{21DD00}Benzin: %d/2500", Vehicle[trailer][vehProds]);
    23. SendClientMessage(playerid, COLOR_WHITE, string);
    24. Tanke[i][tKasse] -= kosten, GiveMoney(playerid, kosten);
    25. UpdateTankLabel(i, Tanke[i][tOwned]);
    26. printf("Tankstelle: Diese Tankstelle hat %d Bentin erhalten.", floatround(floatsub(gebraucht, Tanke[i][tLiterBenzin])));
    27. }
    Alles anzeigen

    PAWN-Quellcode

    1. Tankstelle: Diese Tankstelle hat -1165786112 Benzin erhalten.


    Hey,

    Ich suche ganze zeit den fehler weiß jemand warum die Tankstelle soviel Benzin erhält?
    Obwohl nur 1000 benötigt werden?