Beiträge von Pablo Borsellino

    if(strcmp(cmdtext,"/explode",true)==0)
    {
    if(!isPlayerInFrakt(playerid,9))return SendClientMessage(playerid, COLOR_ROT,"Du bist in keiner Gang!");
    if(GetPVarInt(playerid,"Bomb") == 1)
    {
    SetTimerEx("CreateExplosionEx",1000,false,BombeX[playerid],BombeY[playerid],BombeZ[playerid],6,999);
    SetTimerEx("CreateExplosionEx",2000,false,BombeX[playerid]+5,BombeY[playerid],BombeZ[playerid],6,999);
    SetTimerEx("CreateExplosionEx",2500,false,BombeX[playerid]-5,BombeY[playerid],BombeZ[playerid],6,999);
    SetTimerEx("CreateExplosionEx",3000,false,BombeX[playerid],BombeY[playerid],BombeZ+5[playerid],6,999);
    SetTimerEx("CreateExplosionEx",3500,false,BombeX[playerid],BombeY[playerid],BombeZ-5[playerid],6,999);
    SetTimerEx("CreateExplosionEx",4500,false,BombeX[playerid]+5,BombeY[playerid],BombeZ+5[playerid],6,999);
    SetTimerEx("CreateExplosionEx",5000,false,BombeX[playerid]-5,BombeY[playerid],BombeZ-5[playerid],6,999);
    SetTimerEx("CreateExplosionEx",5500,false,BombeX[playerid]+5,BombeY[playerid],BombeZ-5[playerid],6,999);
    SetTimerEx("CreateExplosionEx",6000,false,BombeX[playerid]-5,BombeY[playerid],BombeZ+5[playerid],6,999);
    SetTimerEx("CreateExplosionEx",5000,false,BombeX[playerid],BombeY[playerid],BombeZ[playerid]+5,6,999);
    SendClientMessage(playerid,COLOR_GRÜN1,"Du hast die Bombe gezündet.");
    plantedbomb[playerid]=0;
    DestroyObject(object123);
    return 1;
    }
    SendClientMessage(playerid,COLOR_ROT,"Du hast keine Bombe platziert.");
    return 1;
    }


    stock CreateExplosionEx(Float:X,Float:Y,Float:Z,Typ,Range)
    {
    CreateExplosion(X,Y,Z,Typ,Range);
    return 1;
    }
    So vielleicht? ;)

    Seid wann gibt es Explosions Typ 164 & co. über 6? Wenn ich dich richtig verstehe, ist das deine Lösung:
    if(strcmp(cmdtext,"/explode",true)==0)
    {
    if(!isPlayerInFrakt(playerid,9))return SendClientMessage(playerid, COLOR_ROT,"Du bist in keiner Gang!");
    if(GetPVarInt(playerid,"Bomb") == 1)
    {
    CreateExplosion(BombeX[playerid],BombeY[playerid],BombeZ[playerid],6,999);
    CreateExplosion(BombeX[playerid]+5,BombeY[playerid],BombeZ[playerid],6,999);
    CreateExplosion(BombeX[playerid]-5,BombeY[playerid],BombeZ[playerid],6,999);
    CreateExplosion(BombeX[playerid],BombeY[playerid],BombeZ+5[playerid],6,999);
    CreateExplosion(BombeX[playerid],BombeY[playerid],BombeZ-5[playerid],6,999);
    CreateExplosion(BombeX[playerid]+5,BombeY[playerid],BombeZ+5[playerid],6,999);
    CreateExplosion(BombeX[playerid]-5,BombeY[playerid],BombeZ-5[playerid],6,999);
    CreateExplosion(BombeX[playerid]+5,BombeY[playerid],BombeZ-5[playerid],6,999);
    CreateExplosion(BombeX[playerid]-5,BombeY[playerid],BombeZ+5[playerid],6,999);
    CreateExplosion(BombeX[playerid],BombeY[playerid],BombeZ[playerid]+5,6,999);
    SendClientMessage(playerid,COLOR_GRÜN1,"Du hast die Bombe gezündet.");
    plantedbomb[playerid]=0;
    DestroyObject(object123);
    return 1;
    }
    SendClientMessage(playerid,COLOR_ROT,"Du hast keine Bombe platziert.");
    return 1;
    }

    Alle gleich, nicht sehr kreativ. Bei Scripter hätte ein Codestück/die Pawno Figur z.B. gepasst. Ich sage hiermit NICHT das die schlecht sind - sondern nur eine Kritisierung. Sonst gefallen mir deine Grafiken, fehlen noch ein paar aber sonst schick!

    Ja, das ist normal. Ich glaube - nicht sicher - das kommt wenn eine Externe Funktion innerhalb eines Public's ist. Aber naja, hat schon seine richtigkeit. ;)

    Folgendes auch ins Script, eben vergessen mitzuposten - entschuldige:
    stock FB_mktime(hour,minute,second,day,month,year)
    {
    new timestamp2; timestamp2 = second + (minute * 60) + (hour * 3600); new days_of_month[12];
    if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) )
    {
    days_of_month = {31,29,31,30,31,30,31,31,30,31,30,31};
    }
    else
    {
    days_of_month = {31,28,31,30,31,30,31,31,30,31,30,31};
    }
    new days_this_year = 0; days_this_year = day;
    if(month > 1)
    {
    for(new i=0; i<month-1;i++)
    {
    days_this_year += days_of_month[i];
    }
    }
    timestamp2 += days_this_year * 86400; for(new j=1970;j<year;j++)
    {
    timestamp2 += 31536000; if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) )
    timestamp2 += 86400;
    }
    return timestamp2;
    }

    Die Formatierung deines Beitrages geht meistens, wenn du nicht den Quellcode Editor benutzt in den Eimer. Deshalb verwende bitte immer bei posten von mehrzeiligen Code Ausschnitten den Quellcode Editor, anstatt dem WYSIWYG Editor (What you see, is what you get > Was du siehst, ist was du bekommst). Um es dir grafisch darzulegen, wie dein Post im WYSIWYG Editor und Quellcode Editor aussieht - habe ich folgende Grafik erstellt: » Klick mich «. Dies ist nur ein Hinweis, ich hoffe nächstes mal erinnerst du dich beim posten daran.


    In dein Script außerhalb von anderen Funktionen/Publics folgendes einfügen (z.B. ganz nach unten):
    stock FB_Time()
    {
    new fxban_int_hour,fxban_int_minute,fxban_int_second,fxban_int_year,fxban_int_month,fxban_int_day;
    gettime(fxban_int_hour, fxban_int_minute, fxban_int_second);
    getdate(fxban_int_year, fxban_int_month, fxban_int_day);
    return FB_mktime(fxban_int_hour,fxban_int_minute,fxban_int_second,fxban_int_day,fxban_int_month,fxban_int_year);
    }

    Hmm ne Es Geht immernoch nicht

    Deine Post ist nicht aussagekräftig genug, und liefert uns somit nicht genug Informationen um dein Problem zu lösen. Ich bitte darum, dir für nächstes mal zu merken - dein Problem genauer zu erklären und die jeweiligen Codeabschnitte zu liefern. Dies ist nicht böse gemeint, nur eine Kritisierung - damit du schneller Hilfe erwarten kannst, und es für uns einfacher ist!


    Wenn Errors/Warnings (Fehler/Warnungen) entstehen durch den Compiler - dann poste diese bitte inkl. der Zeilen (&umliegende).

    Warum schreibst du spawnen wenn du respawnen meinst. ;) Naja passiert - Fehler sind menschlich.


    Ohne den Code (Script Ausschnitt), kann dir hier kaum jemand helfen. Wenn du lieber Fernwartung via TeamViewer o.ä. möchtest - solltest du dies erwähnen. Niemand kann dein Problem lösen, wenn er nicht mal einsehen kann - wo das Problem/der Fehler steckt. Bitte denk nächstes mal daran, den benötigten Code mit zu posten, damit es zu keiner erhöten Wartezeit deiner sowie unserer Seite gibt. Betreffende Zeilen: Fahrzeugerstellung, der Fraktions Fahrzeuge u. alle Zeilen im Script (&umliegende) in denen die Funktion SetVehicleToRespawn verwendet wird.

    Überdenk mal folgenden Code:
    new pID;
    Orter[playerid] = SetTimerEx("OrtenTimer",100,1,"ii",playerid,pID);
    Eine Variable mit dem namen 'pID' wird erstellt, automatisch auf 0 - da sie nicht gesetzt wird bei der Erstellung (z.B. new pID=1;). Dann wird der Timer erstellt, dem Spieler der den Befehl eingibt wird IMMER ID 0 angezeigt, ganz einfach: Benutz nicht pID für den Timer sondern giveplayerid! Oder änder die Zeile:
    new pID;
    zu:
    new pID=giveplayerid;


    Das der Checkpoint nicht weggeht, ist auch lösbar:
    Function OrtenTimer(playerid,ortid)
    {
    if(Orten[playerid]==1)
    {
    new Float:X,Float:Y,Float:Z;
    new giveplayerid;
    GetPlayerPos(giveplayerid, X,Y,Z);
    SetPlayerCheckpoint(playerid, X,Y,Z, 6);
    }
    else DisablePlayerCheckpoint(playerid);
    return 1;
    }


    Und zur Sicherheit nochmal folgendes:
    if(strcmp(cmd,"/dc",true)==0)
    {
    if(Orten[playerid]==0)return SendClientMessage(playerid, COLOR_LIGHTBLUE, "*Kein Checkpoint vorhanden!");
    Orten[playerid]=0;
    DisablePlayerCheckpoint(playerid);
    KillTimer(Orter[playerid]);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "*Checkpoint gelöscht!");
    return 1;
    }[/i]

    Ohne den Code (Script Ausschnitt), kann dir hier kaum jemand helfen. Wenn du lieber Fernwartung via TeamViewer o.ä. möchtest - solltest du dies erwähnen. Niemand kann dein Problem lösen, wenn er nicht mal einsehen kann - wo das Problem/der Fehler steckt. Bitte denk nächstes mal daran, den benötigten Code mit zu posten, damit es zu keiner erhöten Wartezeit deiner sowie unserer Seite gibt. Betreffende Zeilen: GF Tacho


    Anstatt GameTextForPlayer beim Tacho TextDrawSetString benutzen - dafür musst du erstmal ein Textdraw an der gewünschten Position mit gewünschten Eigenschaften (Farbe, Hintergrund, Box, Größe & co.) erstellen und in dein Script einfügen.

    Die Funktion überarbeitet:
    forward adtextdraws(playerid, Text[]);
    public adtextdraws(playerid, Text[])
    {
    new adtextdrawstring[256],Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Name,sizeof Name);
    format(adtextdrawstring, sizeof(adtextdrawstring), "Werbung: %s, Von: %s PH: %d", Text, Name,PlayerInfo[playerid][pPnumber]);
    TextDrawSetString(adtextdraw[playerid],Text);
    return 1;
    }


    Anwendbar z.B.:
    adtextdraws(playerid,"Himmel blau? Ruf mich an, ich änder das - 10$/Gramm");


    Unn der Befehl, falls du DCMD & sscanf hast:
    dcmd(ad,2,cmdtext);
    dcmd_ad(playerid, params[])
    {
    new Text[150];
    if(sscanf(params, "s[150]",Text)) return SendClientMessage(playerid, 0xAFAFAFFF,"Benutze: /ad [Werbungs Text]");
    adtextdraws(playerid,Text);
    return 1;
    }

    Das ist dann ein Bug von GTA - und erneut gilt:

    Zitat

    Das sowas möglich ist habe ich noch nie gehört, sollte ein Sa:Mp Bug sein. Bei SetPlayerSkin(..); wird automatisch der Skin von einem Spieler - für jeden anderen Spieler ebenso sichtbar - verändert.


    Hast du einen /setskin o.ä. Befehl im Script? Wenn ja, änder mal dein Skin wenn du den Ziviskin hast - und die anderen dich als Vagos sehen, und schau ob du immernoch den Ziviskin hast - und ob die anderen dich dann auch richtig sehen, so wie du dich siehst.

    Einfach Abfragen ob er in Fahrzeug Model 408 (Job 1) o. Model 574 (Job 2) sitzt. Also wie folgt:
    public OnPlayerEnterCheckpoint(playerid)
    {
    new string[128];
    Checkpoint1[playerid]++;
    if(Checkpoint1[playerid]==sizeof(Muellabfuhr_Stationen)&&GetVehicleModel(GetPlayerVehicleID(playerid))==408)
    {
    SendClientMessage(playerid, COLOR_RED, "Job erfolgreich ausgeführt. Der Bürgermeister dankt dir, dass du hilfst, die Stadt sauberzuhalten.");
    DisablePlayerCheckpoint(playerid);
    GivePlayerMoney(playerid, 250);
    SendClientMessage(playerid, COLOR_RED, "Hier ist dein Gehalt. (+$250)");
    }
    else
    {
    new trinkgeld = random(9);
    SendClientMessage(playerid, COLOR_RED, "Müll aufgeladen, weiter gehts.");
    format(string, sizeof(string), "** Du hast $%d Trinkgeld bekommen. **",trinkgeld);
    GivePlayerMoney(playerid,trinkgeld);
    SendClientMessage(playerid, COLOR_GREEN, string);
    DisablePlayerCheckpoint(playerid);
    SetPlayerCheckpoint(playerid,Muellabfuhr_Stationen[Checkpoint1[playerid]][X],Muellabfuhr_Stationen[Checkpoint1[playerid]][Y],Muellabfuhr_Stationen[Checkpoint1[playerid]][Z],Muellabfuhr_Stationen[Checkpoint1[playerid]][Rad]);
    return 1;
    }
    Checkpoint2[playerid]++;
    if(Checkpoint2[playerid]==sizeof(Strassenfeger_Stationen)&&GetVehicleModel(GetPlayerVehicleID(playerid))==574)
    {
    SendClientMessage(playerid, COLOR_RED, "Job erfolgreich ausgeführt. Der Bürgermeister dankt dir, dass du hilfst, die Stadt sauberzuhalten.");
    DisablePlayerCheckpoint(playerid);
    GivePlayerMoney(playerid, 230);
    SendClientMessage(playerid, COLOR_RED, "Hier ist dein Gehalt. (+$230)");
    }
    else
    {
    new trinkgeld = random(9);
    SendClientMessage(playerid, COLOR_RED, "Abschnitt erfolgreich gesäubert, weiter gehts.");
    format(string, sizeof(string), "** Du hast $%d Trinkgeld bekommen. **",trinkgeld);
    GivePlayerMoney(playerid,trinkgeld);
    SendClientMessage(playerid, COLOR_GREEN, string);
    DisablePlayerCheckpoint(playerid);
    SetPlayerCheckpoint(playerid,Strassenfeger_Stationen[Checkpoint2[playerid]][X],Strassenfeger_Stationen[Checkpoint2[playerid]][Y],Strassenfeger_Stationen[Checkpoint2[playerid]][Z],Strassenfeger_Stationen[Checkpoint2[playerid]][Rad]);
    }
    return 1;
    }