[SAMMELTHREAD] Kleine Scripting Fragen

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
  • Hi, habe nen PayDay system wie mache ich das 0.1% zinsen sind?:
    if(PlayerInfo[i][pDonateRank] == 1){zinss = 2/10;}
    if(PlayerInfo[i][pDonateRank] == 2 || PlayerInfo[i][pAdmin] >=2){zinss = 4/10;}
    else{zinss = 1/10;}
    new zinsen = PlayerInfo[i][pBank]/100*zinss;
    PlayerInfo[i][pBank] += zinsen;
    format(string, sizeof(string), " Zinssatz: %d Zinsen : $%d",zinss,zinsen);

  • Wieso 0.001 und wie mach ich dann 0,2 und 0,4?


    new zinsen = PlayerInfo[i][pBank]*1.0; //wären 100%
    new zinsen = PlayerInfo[i][pBank]*0.1; //wären 10%
    new zinsen = PlayerInfo[i][pBank]*0.01; //wären 1%
    new zinsen = PlayerInfo[i][pBank]*0.001; //wären 0.1%


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • if(PlayerInfo[i][pDonateRank] == 1){zinsen = PlayerInfo[i][pBank]*0.002;}
    if(PlayerInfo[i][pDonateRank] == 2 || PlayerInfo[i][pAdmin] >=2){zinsen = PlayerInfo[i][pBank]*0.004;}
    else{zinsen = PlayerInfo[i][pBank]*0.001;}

  • Ups, ja das sind jetzt Floats, also mach folgendes:


    new zinsen = floatround(PlayerInfo[i][pBank]*0.001); //wären 0.1%


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • Wieso geht man immer nur OnDuty?
    Offduty wird nie aufgerufen.

    ocmd:aduty(playerid,params[])
    {
    new string[128],atext[128];
    if(!IsPlayerAnAdmin(playerid,1)) return SendClientMessage(playerid,rot,"[Fehler]: Du hast nicht das nötige Adminlevel!");
    if(SpielerInfo[playerid][pAdminlevel]==5000) { atext = "Serverleitung"; }
    else { atext = "Admin"; }
    format(string,sizeof(string),"%s \nOnDuty",atext);
    new Text3D:adminduty = Create3DTextLabel(string, orange, 30.0, 40.0, 50.0, 100.0, 0, 0);
    if(aduty[playerid]==0)
    {
    new string2[128];
    format(string2,sizeof(string2),"[AdminOnDuty]: %s ist als Admin %d in den Dienst gegangen!",SpielerName(playerid),SpielerInfo[playerid][pAdminlevel]);
    SendClientMessageToAll(orange,string2);
    Attach3DTextLabelToPlayer(adminduty, playerid, 0.0, 0.0, 0.7);
    aduty[playerid] = 1;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    SetPlayerMarkerForPlayer( i, playerid, orange );
    return 1;
    }
    return 1;
    }
    else if(aduty[playerid]==1)
    {
    new string3[128];
    format(string3,sizeof(string3),"[AdminOffDuty]: %s ist als Admin %d in aus dem Dienst gegangen!",SpielerName(playerid),SpielerInfo[playerid][pAdminlevel]);
    SendClientMessageToAll(grau,string3);
    Delete3DTextLabel(adminduty);
    aduty[playerid] = 0;
    SetPlayerColor(playerid,weiß);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    SetPlayerMarkerForPlayer( i, playerid, 0xFFFFFF00 );
    return 1;
    }
    return 1;
    }
    return 1;
    }

  • Könnte mir jemand helfen, habe 4 Errors mit denen ich nicht weiterkomme...



    C:\Users\???\Desktop\SA_MP\Scripts\Selfmade\gamemodes\selfmade.pwn(43223) : error 029: invalid expression, assumed zero
    C:\Users\???\Desktop\SA_MP\Scripts\Selfmade\gamemodes\selfmade.pwn(43223 -- 43226) : error 029: invalid expression, assumed zero
    C:\Users\???\Desktop\SA_MP\Scripts\Selfmade\gamemodes\selfmade.pwn(43226 -- 43227) : error 029: invalid expression, assumed zero
    C:\Users\???\Desktop\SA_MP\Scripts\Selfmade\gamemodes\selfmade.pwn(43226 -- 43227) : fatal error 107: too many error messages on one line

  • Nabend.
    Ich wollte mal fragen, ob einer weiß, warum ich diese Errors rausbekomme und ob einer dafür eine Lösung hätte. Habe schon viel hin und her probiert, kriege immer die selben raus (Zeilen sind mackiert)

    Code
    XXXXX(8351) : error 035: argument type mismatch (argument 3)
    XXXXX(8352) : error 035: argument type mismatch (argument 3)
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    
    
    2 Errors.



    dcmd_strafzettel(playerid,params[]){
    if((pInfo[playerid][leader] == 1 || pInfo[playerid][leader] == 2 || pInfo[playerid][leader] == 5
    || pInfo[playerid][member] == 1 || pInfo[playerid][member] == 2 || pInfo[playerid][member] == 5) && pInfo[playerid][duty] == true){
    new minute, stunde,sekunde,monat,tag,jahr,pID,grund[128], Float:x, Float:z, Float:y,string[128],preis;
    if(sscanf(params,"uis",pID,preis,grund))return SendClientMessage(playerid,COLOR_HELLBLAU,"Benutze: /straftzettel [ID] [Preis] [Grund]");
    if(IsPlayerConnected(pID)){
    GetPlayerPos(pID,x, y, z);
    if(IsPlayerInRangeOfPoint(playerid, 10.0, x, y, z)){
    new str[128];
    if(playerid == pID)return SendClientMessage(playerid,COLOR_DUNKELROT,"Ungültiger Spieler");
    gettime(stunde,minute,sekunde);
    getdate(jahr,monat,tag);
    GetZoneName(IsPlayerInArea(playerid),str);
    pInfo[pID][StrafzettelPlayerID] = playerid;
    pInfo[pID][StrafzettelPreis] = preis;
    format(string,sizeof(string),"(%d)%s hat Ihnen ein Strafzettel geschrieben.\n\n",playerid,SpielerName(playerid));
    strcat(string,"Datum: %02d:",tag);
    strcat(string,"%02d:",monat);
    strcat(string,"%02d\n",jahr);
    strcat(string,"Uhrzeit: %02d:",stunde);
    strcat(string,"%02d:",minute);
    strcat(string,"%02d\n\n",sekunde);
    strcat(string,"Grund: %s\n",grund); //<---- 8351
    strcat(string,"Ort: %s\n",str); //<----- 8352
    strcat(string,"Preis: %i",preis);
    ShowPlayerDialog(playerid,DIALOG_STRAFZETTEL,DIALOG_STYLE_MSGBOX,"Strafzettel",string,"Bezahlen","");
    SendClientMessage(playerid,-1,string);
    }else{
    SendClientMessage(playerid,COLOR_DUNKELROT,"Sie sind nicht in der nähe von diesem Spieler!");
    }
    }else{
    SendClientMessage(playerid,COLOR_DUNKELROT,"Ungültiger Spieler!");
    }
    }
    return 1;
    }


    Einmal editiert, zuletzt von Sebastian. ()

  • Also meiner meinung nach geht das.
    Einfach abfragen, ob der spieler in der nähe eines Objectes ist (Die selbstgemappte Türe) und dann lässt du diese dann bewegen mit MoveObject und lässt dabei noch die dazugehörige Animation ausführen


    Ja aber so wie im Singleplayer kriegt man es nicht hin vllt eine schlechtere abgucke aber nicht genauso.

  • Mein Hirn ist für das, was ich machen will zu sehr kaputt D:
    Also, ich will ein Handysystem basteln, hab ich auch schon, aber beim Geben des Guthabens komm ich zu einem Problem. Die Cents gehen in Bereich höher als 99 Cent, aber ich will, dass man ab 100 einen Euro bekommt.



    Lg.


    /E:
    Das was ich gemacht hab, was aber vermutlich nicht funktioniert ( derzeit keine Testmöglichkeit :(
    stock SetHandyGuthaben(pld,euro,cent){
    SetPVarInt(pld,"HandyEuro",GetPVarInt(pld,"HandyEuro")+euro);
    if(cent > 99){
    SetPVarInt(pld,"HandyEuro",GetPVarInt(pld,"HandyEuro")+1);
    SetPVarInt(pld,"HandyCent",GetPVarInt(pld,"HandyCent"));
    }
    rtu;
    }

  • Kann mir vielleicht jemand Zeigen wie ich mit MySQL das Geburtsdatum abfrage so das er das Geburtsdatum und das Alter Speichert. Zbs wenn ich ich 18.11.1994 eingebe, soll er das Speichern und halt das Alter auch. In dem fall halt 18 Jahre. Ich nutze das Tutorial von maddin. Es wäre echt Cool wenn mir jemand Helfen würde. Ich bin langsam am verzweifeln. -.-


    Tutorial von maddin: [ SCRIPTING ] MySQL (Installation, Zugriff, Einstellungen, Login & Register Beispiel)

    Die Kritik an anderen hat noch keinem die eigene Leistung erspart.

    – Noël Coward