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

  • Neu

    Hey, ich habe den "stay with the world boundaries" Fehler.
    Ich habe keine Errors/Warnings und mein OnPlayerSpawn sieht wie folgt aus:

    PAWN-Quellcode

    1. public OnPlayerSpawn(playerid)
    2. {
    3. if(PlayerInfo[playerid][pSpawntyp] == 1){
    4. SetPlayerPos(playerid, fInfo[PlayerInfo[playerid][pFraction]][fSpawn_X], fInfo[PlayerInfo[playerid][pFraction]][fSpawn_Y], fInfo[PlayerInfo[playerid][pFraction]][fSpawn_Z]);
    5. SetPlayerFacingAngle(playerid, fInfo[PlayerInfo[playerid][pFraction]][fSpawn_R]);
    6. }else{
    7. //SetPlayerPos(playerid, -2446.1797,2512.5159,15.7003);
    8. //SetPlayerFacingAngle(playerid, 279.0161);
    9. SetPlayerPos(playerid, 0.0,0.0,0.0);
    10. SetPlayerFacingAngle(playerid, 0.0);
    11. }
    12. if(PlayerInfo[playerid][pPremium] == 1){
    13. GivePlayerWeapon(playerid, 24, 50);
    14. }
    15. SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
    16. return 1;
    17. }
    Alles anzeigen


    Wobei man sagen muss das mein Spawntyp = 0 ist.
    Ich hoffe ihr habt Ideen.
  • Neu

    Sieht nun so aus.
    Dennoch der selbe Fehler...
    Hab ich was falsch gemacht @Kaliber

    PAWN-Quellcode

    1. public OnPlayerSpawn(playerid)
    2. {
    3. if(PlayerInfo[playerid][pSpawntyp] == 1){
    4. SetSpawnInfo(playerid, 0, PlayerInfo[playerid][pSkin], fInfo[PlayerInfo[playerid][pFraction]][fSpawn_X], fInfo[PlayerInfo[playerid][pFraction]][fSpawn_Y], fInfo[PlayerInfo[playerid][pFraction]][fSpawn_Z], fInfo[PlayerInfo[playerid][pFraction]][fSpawn_R], 0, 0, 0, 0, 0, 0);
    5. }else{
    6. SetSpawnInfo(playerid, 0, PlayerInfo[playerid][pSkin], -2446.1797, 2512.5159, 15.7003, 279.0161, 0, 0, 0, 0, 0, 0);
    7. }
    8. if(PlayerInfo[playerid][pPremium] == 1){
    9. GivePlayerWeapon(playerid, 24, 50);
    10. }
    11. return 1;
    12. }
    Alles anzeigen
  • Neu

    Weiß jemand wieso mein /set nicht funktioniert?
    Er speichert überhaupt nichts.

    PAWN-Quellcode

    1. COMMAND:set(playerid, params[])
    2. {
    3. new id, item[25], ammount;
    4. if(!isPlayerAnAdmin(playerid,1))return SendClientMessage(playerid, COLOR_ERROR, "Keine Berechtigung");
    5. SendClientMessage(playerid, -1, "Verfügbare Items: Adminlevel, Bargeld, Bankkonto, Festgeld, Leben, Rüstung, Premium");
    6. SendClientMessage(playerid, -1, "Verfügbare Items: Skin, Level, Kills, Tode, Fraktion, Rang");
    7. if(sscanf(params, "us[25]i", id, item, ammount))return SendClientMessage(playerid, COLOR_TIP,"Tippe: /set [playerid] [item] [wert] ");
    8. if(strcmp(item, "Adminlevel", true) == 0)
    9. {
    10. if(!isPlayerAnAdmin(playerid,5))return SendClientMessage(playerid, COLOR_ERROR, "Keine Berechtigung");
    11. {
    12. new string[128];
    13. format(string,sizeof(string),"Das System hat dir das Adminlevel %s(Adminlevel: %d) gegeben.", a_rang[ammount],ammount);
    14. SendClientMessage(id, COLOR_SYSTEM, string);
    15. PlayerInfo[id][pAdmin] = ammount;
    16. SaveUserStats(id);
    17. return 1;
    18. }
    19. }
    20. if(strcmp(item, "Bargeld", true) == 0)
    21. {
    22. if(!isPlayerAnAdmin(playerid,4))return SendClientMessage(playerid, COLOR_ERROR, "Keine Berechtigung");
    23. {
    24. new string[128];
    25. format(string,sizeof(string),"Das System hat dein Bargeld auf %d$ gesetzt.", ammount);
    26. SendClientMessage(id, COLOR_SYSTEM, string);
    27. PlayerInfo[id][pMoney] = ammount;
    28. SaveUserStats(id);
    29. return 1;
    30. }
    31. }
    32. if(strcmp(item, "Bankkonto", true) == 0)
    33. {
    34. if(!isPlayerAnAdmin(playerid,4))return SendClientMessage(playerid, COLOR_ERROR, "Keine Berechtigung");
    35. {
    36. new string[128];
    37. format(string,sizeof(string),"Das System hat dein Bankkonto auf %d$ gesetzt.", ammount);
    38. SendClientMessage(id, COLOR_SYSTEM, string);
    39. PlayerInfo[id][pBmoney] = ammount;
    40. SaveUserStats(id);
    41. return 1;
    42. }
    43. }
    44. if(strcmp(item, "Festgeld", true) == 0)
    45. {
    46. if(!isPlayerAnAdmin(playerid,4))return SendClientMessage(playerid, COLOR_ERROR, "Keine Berechtigung");
    47. {
    48. if(ammount >= 1250000)return SendClientMessage(playerid, COLOR_ERROR, "Du kannst nur 1.250.000$ als Festgeld anlegen");
    49. new string[128];
    50. format(string,sizeof(string),"Das System hat dein Festgeld auf %d$ gesetzt.", ammount);
    51. SendClientMessage(id, COLOR_SYSTEM, string);
    52. PlayerInfo[id][pFmoney] = ammount;
    53. SaveUserStats(id);
    54. return 1;
    55. }
    56. }
    57. if(strcmp(item, "Leben", true) == 0)
    58. {
    59. if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid, COLOR_ERROR, "Keine Berechtigung");
    60. {
    61. new string[128];
    62. format(string,sizeof(string),"Das System hat dein Leben auf %d gesetzt.", ammount);
    63. SendClientMessage(id, COLOR_SYSTEM, string);
    64. SetPlayerHealth(id,ammount);
    65. SaveUserStats(id);
    66. return 1;
    67. }
    68. }
    69. if(strcmp(item, "Rüstung", true) == 0)
    70. {
    71. if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid, COLOR_ERROR, "Keine Berechtigung");
    72. {
    73. new string[128];
    74. format(string,sizeof(string),"Das System hat deine Rüstugn auf %d gesetzt.", ammount);
    75. SendClientMessage(id, COLOR_SYSTEM, string);
    76. SetPlayerArmour(id, ammount);
    77. SaveUserStats(id);
    78. return 1;
    79. }
    80. }
    81. if(strcmp(item, "Premium", true) == 0)
    82. {
    83. if(!isPlayerAnAdmin(playerid,5))return SendClientMessage(playerid, COLOR_ERROR, "Keine Berechtigung");
    84. {
    85. new string[128];
    86. format(string,sizeof(string),"Das System hat dein Premiumstatus auf %d gesetzt.", ammount);
    87. SendClientMessage(id, COLOR_SYSTEM, string);
    88. PlayerInfo[id][pPremium] = ammount;
    89. SaveUserStats(id);
    90. return 1;
    91. }
    92. }
    93. if(strcmp(item, "Skin", true) == 0)
    94. {
    95. if(!isPlayerAnAdmin(playerid,4))return SendClientMessage(playerid, COLOR_ERROR, "Keine Berechtigung");
    96. {
    97. new string[128];
    98. format(string,sizeof(string),"Das System hat deinen Skin auf %d gesetzt.", ammount);
    99. SendClientMessage(id, COLOR_SYSTEM, string);
    100. PlayerInfo[id][pSkin] = ammount;
    101. SetPlayerSkin(id, ammount);
    102. SaveUserStats(id);
    103. return 1;
    104. }
    105. }
    106. if(strcmp(item, "Level", true) == 0)
    107. {
    108. if(!isPlayerAnAdmin(playerid,4))return SendClientMessage(playerid, COLOR_ERROR, "Keine Berechtigung");
    109. {
    110. new string[128];
    111. format(string,sizeof(string),"Das System hat deinen Level auf %d gesetzt.", ammount);
    112. SendClientMessage(id, COLOR_SYSTEM, string);
    113. PlayerInfo[id][pLevel] = ammount;
    114. SaveUserStats(id);
    115. return 1;
    116. }
    117. }
    118. if(strcmp(item, "Kills", true) == 0)
    119. {
    120. if(!isPlayerAnAdmin(playerid,4))return SendClientMessage(playerid, COLOR_ERROR, "Keine Berechtigung");
    121. {
    122. new string[128];
    123. format(string,sizeof(string),"Das System hat deine Kills auf %d gesetzt.", ammount);
    124. SendClientMessage(id, COLOR_SYSTEM, string);
    125. PlayerInfo[id][pKills] = ammount;
    126. SaveUserStats(id);
    127. return 1;
    128. }
    129. }
    130. if(strcmp(item, "Tode", true) == 0)
    131. {
    132. if(!isPlayerAnAdmin(playerid,4))return SendClientMessage(playerid, COLOR_ERROR, "Keine Berechtigung");
    133. {
    134. new string[128];
    135. format(string,sizeof(string),"Das System hat deine Tode auf %d gesetzt.", ammount);
    136. SendClientMessage(id, COLOR_SYSTEM, string);
    137. PlayerInfo[id][pDeaths] = ammount;
    138. SaveUserStats(id);
    139. return 1;
    140. }
    141. }
    142. if(strcmp(item, "Fraktion", true) == 0)
    143. {
    144. if(!isPlayerAnAdmin(playerid,4))return SendClientMessage(playerid, COLOR_ERROR, "Keine Berechtigung");
    145. {
    146. new string[128];
    147. format(string,sizeof(string),"Das System hat deine Fraktion auf %d gesetzt.", ammount);
    148. SendClientMessage(id, COLOR_SYSTEM, string);
    149. PlayerInfo[id][pFraction] = ammount;
    150. SaveUserStats(id);
    151. return 1;
    152. }
    153. }
    154. if(strcmp(item, "Rang", true) == 0)
    155. {
    156. if(!isPlayerAnAdmin(playerid,4))return SendClientMessage(playerid, COLOR_ERROR, "Keine Berechtigung");
    157. {
    158. new string[128];
    159. format(string,sizeof(string),"Das System hat deinen Fraktionsrang auf %d gesetzt.", ammount);
    160. SendClientMessage(id, COLOR_SYSTEM, string);
    161. PlayerInfo[id][pRang] = ammount;
    162. SaveUserStats(id);
    163. return 1;
    164. }
    165. }
    166. return 1;
    167. }
    Alles anzeigen


    PAWN-Quellcode

    1. stock SaveUserStats(playerid)
    2. {
    3. //Wenn der Spieler nicht eingeloggt ist, dann speichere seine Statistiken nicht
    4. if(!PlayerInfo[playerid][pLoggedIn]) return 1;
    5. //Ansonsten speichere sie
    6. new query[1024];
    7. mysql_format(handle, query, sizeof(query), "UPDATE users SET level = '%d', money = '%d', bmoney = '%d', fmoney = '%d', kills = '%d', deaths = '%d', admin = '%d', skin = '%d', spawntyp = '%d', fraction = '%d', rang = '%d', leader = '%d', wanted = '%d', wantedreason = '%s', premium = '%d', banned = '%d', banadmin = '%s', banreason = '%s', contracted = '%d', kaution = '%d' WHERE name = '%e'",
    8. PlayerInfo[playerid][pLevel], GetPlayerMoney(playerid), PlayerInfo[playerid][pBmoney], PlayerInfo[playerid][pFmoney], PlayerInfo[playerid][pKills], PlayerInfo[playerid][pDeaths], PlayerInfo[playerid][pAdmin], PlayerInfo[playerid][pSkin], PlayerInfo[playerid][pSpawntyp], PlayerInfo[playerid][pFraction], PlayerInfo[playerid][pRang], PlayerInfo[playerid][pLeader], PlayerInfo[playerid][pWanted], PlayerInfo[playerid][pWantedreason], PlayerInfo[playerid][pPremium],
    9. PlayerInfo[playerid][pBanned], PlayerInfo[playerid][pBanadmin], PlayerInfo[playerid][pBanreason], PlayerInfo[playerid][pContracted], PlayerInfo[playerid][pKaution], PlayerInfo[playerid][pName]);
    10. //Das Query wird abgesendet
    11. mysql_pquery(handle, query);
    12. printf("Account gespeichert - Name: %s", PlayerInfo[playerid][pName]);
    13. return 1;
    14. }
    Alles anzeigen
  • Neu

    BrightLeaN schrieb:

    Wenn ich einem Anhänger eine Respawntime gebe, heißt ja wenn niemand im Fahrzeug ist...
    Oder respawnt mein Anhänger nicht, wenn dieser an einem LKW dran ist?
    Sagen wir mal aus Spaß du gibst ihm eine Respawn-Zeit von 5 Sekunden, dann gilt folgendes:

    1. Verschiebst du den Anhänger, respawnt dieser nicht, diese ganze respawn Zeit wird erst getriggert durch das Anhängen an ein Fahrzeug.
    2. 5 Sekunden nachdem der Anhänger entkuppelt wurde, respawnt er.
    3. 5 Sekunden nachdem der Fahrer ausgestiegen ist, respawnt der Anhänger.
    4. Ist der Spieler im Fahrzeug, aber 5 Sekunden AFK, respawnt der Anhänger leider auch.


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

    Vielen Dank Sir,
    Warum auch immer man den 4. Punkt eingeführt hat, sehr fragwürdig...
    Aber was, wenn jemand so lustig ist und meine Anhänger weg schiebt oder sogar mit Modifkationen wohin schießt :D.
    Währe es sinnvoll so alle 5 Minuten einen Timer laufen zu lassen der die Sachen respawnt?

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

  • Neu

    BrightLeaN schrieb:

    Warum auch immer man den 4. Punkt eingeführt hat, sehr fragwürdig...
    Naja technisch betrachtet, wenn man auf dem Desktop ist, befindet man sich nicht wirklich im Fahrzeug (deshalb greift Punkt 3)

    Ob das mit dem respawn sinnvoll ist oder nicht, das musst du entscheiden xD

    Aber klingt ganz plausibel ;)


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

    Beitrag von FutureStunt ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Selbst gefixxt ().
  • Neu

    Hey, die vorherigen Probleme konnte ich lösen. Es hat eine Spalte in der Tabelle gefehlt. @Kaliber

    Kannst du mir mal nen Denkanstoß geben wieso mein Befehl nicht funktioniert?
    Ich erstelle eine Schleife und gehe Schritt für Schritt durch alle Pickups durch(Pickup ist erstellt).
    Leider kann ich es nicht betreten.

    PAWN-Quellcode

    1. COMMAND:enter(playerid)
    2. {
    3. for(new i=0; i<MAX_ENTERPICKUPS; i++)
    4. {
    5. if(IsPlayerInRangeOfPoint(playerid, pickInfo[i][pickEnter_X], pickInfo[i][pickEnter_Y], pickInfo[i][pickEnter_Z], 5.0)){
    6. SetPlayerPos(playerid, pickInfo[i][pickExit_X], pickInfo[i][pickExit_Y], pickInfo[i][pickExit_Z]);
    7. SetPlayerInterior(playerid, pickInfo[i][pickInterior]);
    8. }else{
    9. SendClientMessage(playerid, -1, "Du bist an keinem Eingang");
    10. }
    11. }
    12. return 1;
    13. }
    Alles anzeigen

    Beitrag von itsMagic. ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Neu

    Du hast die Parameter in IsPlayerInRangeOfPoint vertauscht.

    Mach es so:


    C-Quellcode

    1. COMMAND:enter(playerid)
    2. {
    3. new i = GetInteriorEnterIndex(playerid);
    4. if(i == -1) return SendClientMessage(playerid, -1, "Du bist an keinem Eingang");
    5. SetPlayerPos(playerid, pickInfo[i][pickExit_X], pickInfo[i][pickExit_Y], pickInfo[i][pickExit_Z]);
    6. SetPlayerInterior(playerid, pickInfo[i][pickInterior]);
    7. return 1;
    8. }
    9. stock GetInteriorEnterIndex(playerid)
    10. {
    11. for(new i; i<MAX_ENTERPICKUPS; i++)
    12. {
    13. if(IsPlayerInRangeOfPoint(playerid, 5.0, pickInfo[i][pickEnter_X], pickInfo[i][pickEnter_Y], pickInfo[i][pickEnter_Z])) return i;
    14. }
    15. return -1;
    16. }
    Alles anzeigen
    Das hat den Vorteil, dass du die Funktion immer wieder verwenden kannst.


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

    Ja, aber auf was soll er jetzt Zinsen bekommen?

    Mach das mal ein Pseudo-Beispiel..

    Zum Beispiel:

    pFestgeld = 5$
    Festegld = 100$
    Zinsen auf beides?! 105$ davon 3% Zinsen = 3.15$ die er zusätzlich bekommt?!


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

    Kaliber schrieb:

    Ja, aber auf was soll er jetzt Zinsen bekommen?

    Mach das mal ein Pseudo-Beispiel..

    Zum Beispiel:

    pFestgeld = 5$
    Festegld = 100$
    Zinsen auf beides?! 105$ davon 3% Zinsen = 3.15$ die er zusätzlich bekommt?!

    PAWN-Quellcode

    1. floatround(Spieler[playerid][pFestgeld]/3.5);
    2. Spieler[playerid][pKonto] += Spieler[playerid][pFestgeld];
    3. format(string,sizeof(string),"* SYSTEM hat dir %d$ überwiesen. Betreff: Festgeld Auszahlung (3.50% Zinsen)",Spieler[playerid][pFestgeld]);
    4. SendClientMessage(playerid,Gruen,string);


    Er soll nur auf das Festgeld die 3.5 Prozent Zinsen bekommen.
    Mit freundlichen Grüßen
    ArcadioN