Beiträge von Simon

    Naja OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid)
    wird aufgerufen wenn die "playerid" in dem fall derjenige der schießt der "damagedid" Schaden ("amount") hinzufügt und zwar mit der entsprechenden "weaponid".


    Nun musst du ganz einfach abfragen ob die damagerid denn als Beifahrer im autositzt und dann ihm das entsprechende leben abziehen

    Ist möglich aber um dir zu erklären wie das geht, könnte man es besser selbst scripten
    Weil die wirklich alles zu erklären wäre viel zu viel. Versuch es doch einfach mal und wenn du irgendwo festhängst, wird dir bestimmt weiter geholfen ;)

    Ich habe zu den 6 normalen Sternen noch 6 fast identische gemacht.
    Den Code habe ich hier.


    Du musst die halt deinem script passend anzeigen lassen.


    Dark Und Light also Dunkel und Hell, da wenn du zum beispiel ein Wantedstern hast, werden im standard die 5 weiteren sterne (dunkel) bereits angezeigt.
    du sollstest dann auch die dunklen anzeigen lassen. und sobald du das entsprechende Wantedlevel erreicht hast den hellen anzeigen lassen.



    Liebe Grüße
    Simon

    Wenn der Spieler stirbt, wird das public OnPlayerDeath aufgerufen.
    Anschließend wird er automatisch neu gespawnt und das public OnPlayerSpawn aufgerufen.


    in keinen von beiden wird er in die Skinauswahl zurueckgesetzt, ich benutze auch kein f4.


    Ich habe immer Probleme mit der Skinasuwahl, da die unnötig ist für mich und ich diese umgehen will, jedoch klappt das nie so ganz. Aber diesen Bug hatte ich noch nie.

    die variable ist beim connecten auf "falsch"
    das soll bewirken das er während er im register/login dialog steckt, welches in der class selection stattfindet, nicht einfach spawnen kann.
    Sobald er dann sich eingeloggt hat wird diese auf wahr gesetzt und er wird gespawnt. anschließend bleibt diese variable unverändert, habe zum Test sie nocheinmal unter OnPlayerSpawn auf wahr gesetzt, ändert jedoch nichts.


    Habe aus anderen Beiträgen gesehen, dass dieser Fehler durch die Funktion SetSpawnInfo entsteht.


    ich habe Keine Ahnung wie ich einen schönen login gestalten kann, ohne vorher zu spawnen und ohne das die class selection dort rumspinnt.

    Guten Tag


    Ich fange gerade an, nach langer Pause mal wieder bisschen rumzubasteln.
    Nun habe ich erfolgreich das mysql Plugin R6 installiert und treffe auch gleich auf einen Fehler.
    ich denke ist eine kleinigkeit, eventuell gibt es die Funktion aber ist nicht in der include definiert.


    Da ich aber nicht einfach dran rumspielen will oder es eventuell ein andere Fehler ist, weil sich was am Plugin geändert hat möchte ich lieber noch einmal Fragen warum die Funktion
    mysql_query( query[] [,resultid = (-1), extraid = (-1), connectionHandle = 1] )
    undefiniert ist.


    Liebe Grüße
    Simon


    //Edit: Fehler gefunden

    Ja genau da war was mit dieser nervenden Skinselection die man anscheinend immernoch nicht manuel abschalten kann.


    Wie genau sollte ich da vorgehen wenn man nun mal als beispiel das einloggen nimmt. In Zukunft wird mein Spieler viel mehr Spawninfo haben als nur position und was diese Funktion halt beinhaltet.
    Sollte ich die einfach nutzen und das übrige mit weiteren funktionen setzen? Also als Beispiel das Interior oder die virtuelle Welt.

    Guten Tag


    Habe mich ewig nicht mehr mit PAWN und SAMP beschäftigt, bin jedoch wieder ein bisschen am rumwerkeln.
    Ich brauche deswegen wohl in der nächsten Zeit ein paar kleine Anfahrtshilfen um wieder reinzukommen.


    Zur zeit interessiert mich jedoch nur, ob es Sinnvoll ist die SetSpawnInfo Funktion zu nutzen und welche Streamer zur Zeit aktuell sind.


    Liebe Grüße
    Simon

    stimmt mach ich mal


    //edit: Es liegt nicht an der Version


    Ich benutze die Spawninfo und habe sie ein wenig erweitert. Hier mal meine Spawninfo:
    enum spInfo
    {
    Inter,
    Virt,
    Float:spHp,
    Float:spArm,
    bool:Parachute
    }
    new SpawnInfo[MAX_PLAYERS][spInfo];
    public OnPlayerSpawn(playerid)
    {
    if(IsPlayerNPC(playerid))
    {
    StopAudioStreamForPlayer(playerid);
    if(!strcmp(PlayerName(playerid), "Intro", true))
    {
    SetPlayerSkin(playerid,255);
    SetPlayerVirtualWorld(playerid,100);
    return PutPlayerInVehicle(playerid, Botcar, 0);
    }
    if(!strcmp(PlayerName(playerid), "GodMode_Tester", true))
    {
    SetPlayerSkin(playerid,217);
    SetPlayerVirtualWorld(playerid,100);
    SetPlayerInterior(playerid,1);
    GivePlayerWeapon(playerid, 38, 99999);
    return SetPlayerArmedWeapon(playerid,38);
    }
    }

    if(pregister[playerid]) //dort wird er in den Zug gesteckt
    {
    PutPlayerInVehicle(playerid, Botcar, 1);
    p_TogglePlayerControllable(playerid,0);
    tuttimer[playerid] = SetTimerEx("tutorial", 5000, 0, "i", playerid);
    return CreateIntroBox(playerid);
    }

    if(!login[playerid])
    {
    SetPlayerPos(playerid, 0.0, 0.0, 0.0);
    SetPlayerFacingAngle(playerid, 0.0);
    TogglePlayerControllable(playerid,0);
    return SetPlayerVirtualWorld(playerid,100);
    }

    SetPlayerInterior(playerid, SpawnInfo[playerid][Inter]);
    SetPlayerVirtualWorld(playerid, SpawnInfo[playerid][Virt]);
    SetPlayerHealth(playerid, SpawnInfo[playerid][spHp]);
    SetPlayerArmour(playerid, SpawnInfo[playerid][spArm]);
    if(SpawnInfo[playerid][Parachute]) GivePlayerWeapon(playerid, 46, 1);
    return 1;
    }
    public tutorial(playerid)
    {
    if(Spieler[playerid][Intro] > 0)
    {
    Spieler[playerid][Intro]--;
    if(Spieler[playerid][Intro] == 10)
    {
    TextDrawHideForPlayer(playerid,gTextDraw[IntroText1]);
    TextDrawShowForPlayer(playerid,gTextDraw[IntroText2]);
    tuttimer[playerid] = SetTimerEx("tutorial", 7000, 0, "i", playerid);
    }
    else if(Spieler[playerid][Intro] == 9)
    {
    TextDrawHideForPlayer(playerid,gTextDraw[IntroText1]);
    TextDrawHideForPlayer(playerid,gTextDraw[IntroText2]);
    TextDrawShowForPlayer(playerid,gTextDraw[IntroText3]);
    tuttimer[playerid] = SetTimerEx("tutorial", 4500, 0, "i", playerid);
    }
    else if(Spieler[playerid][Intro] == 8)
    {
    ShowPlayerDialog(playerid, Dialog_Zugbot,DIALOG_STYLE_LIST,"{0000FF}Neue Heimatstadt?","Los Santos\nSan Fierro\nLas Venturas", "Weiter", "");
    }
    else if(Spieler[playerid][Intro] == 7)
    {
    TextDrawHideForPlayer(playerid,gTextDraw[IntroText1]);
    TextDrawHideForPlayer(playerid,gTextDraw[IntroText2]);
    TextDrawHideForPlayer(playerid,gTextDraw[IntroText3]);
    TextDrawShowForPlayer(playerid,gTextDraw[IntroText4]);
    tuttimer[playerid] = SetTimerEx("tutorial", 5000, 0, "i", playerid);
    }
    else if(Spieler[playerid][Intro] == 6) ShowPlayerDialog(playerid,Dialog_Sex,DIALOG_STYLE_MSGBOX,"{0000FF}Geschlecht","Sind Sie Männlich oder Weiblich?","Männlich","Weiblich");
    else if(Spieler[playerid][Intro] == 5)
    {
    TextDrawHideForPlayer(playerid,gTextDraw[IntroText1]);
    TextDrawHideForPlayer(playerid,gTextDraw[IntroText2]);
    TextDrawHideForPlayer(playerid,gTextDraw[IntroText3]);
    TextDrawHideForPlayer(playerid,gTextDraw[IntroText4]);
    TextDrawShowForPlayer(playerid,gTextDraw[IntroText5]);
    tuttimer[playerid] = SetTimerEx("tutorial", 4500, 0, "i", playerid);
    }
    else if(Spieler[playerid][Intro] == 4)
    {
    ShowPlayerDialog(playerid,Dialog_Alter,DIALOG_STYLE_INPUT,"{0000FF}Alter","Wie alt sind Sie eigentlich?\nBitte geben Sie Ihr Geburtsdatum ein\n\nFormat: dd.mm.jjjjj","Weiter","Zurück");
    }
    else if(Spieler[playerid][Intro] == 3)
    {
    TextDrawHideForPlayer(playerid,gTextDraw[IntroText1]);
    TextDrawHideForPlayer(playerid,gTextDraw[IntroText2]);
    TextDrawHideForPlayer(playerid,gTextDraw[IntroText3]);
    TextDrawHideForPlayer(playerid,gTextDraw[IntroText4]);
    TextDrawHideForPlayer(playerid,gTextDraw[IntroText5]);
    TextDrawShowForPlayer(playerid,gTextDraw[IntroText6]);
    tuttimer[playerid] = SetTimerEx("tutorial", 5000, 0, "i", playerid);
    }
    else if(Spieler[playerid][Intro] == 2)
    {
    for(new i = 0; i < 30; i++) SendClientMessage(playerid,0x000000FF,"");
    new Float:vx, Float:vy, Float:vz;
    GetVehiclePos(Botcar,vx,vy,vz);
    SetPlayerCameraPos(playerid,vx,vy,vz);
    SetPlayerCameraLookAt(playerid,vx,vy,vz, CAMERA_MOVE);
    TextDrawHideForPlayer(playerid,gTextDraw[IntroText1]);
    TextDrawHideForPlayer(playerid,gTextDraw[IntroText2]);
    TextDrawHideForPlayer(playerid,gTextDraw[IntroText3]);
    TextDrawHideForPlayer(playerid,gTextDraw[IntroText4]);
    TextDrawHideForPlayer(playerid,gTextDraw[IntroText5]);
    TextDrawHideForPlayer(playerid,gTextDraw[IntroText6]);
    TextDrawShowForPlayer(playerid,gTextDraw[blackscreen]);
    tuttimer[playerid] = SetTimerEx("tutorial", 7500, 0, "i", playerid);
    SendClientMessage(playerid,0xFFFFFFFF,"Einige Stunden später.....");
    for(new i = 0; i < 9; i++) SendClientMessage(playerid,0x000000FF,"");
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    tutCP[playerid][0] = p_CreateDynamicCP(Stadthallen[Spieler[playerid][Stadt]-1][posx],Stadthallen[Spieler[playerid][Stadt]-1][posy],Stadthallen[Spieler[playerid][Stadt]-1][posz],3.0,-1, -1, playerid, 10000);
    Spieler[playerid][Intro] = 0;
    pregister[playerid] = false; //HIer wird die Variable auf false gestellt, sie OnPlayerSpawn > Damit er nicht in den Zug gesteckt wird
    firstspawn[playerid] = false; //Ist nicht mehr der erste spawn
    Spieler[playerid][pregistriert] = true; //er ist registriert
    Spieler[playerid][Tutorial] = 1; //Tutorial
    p_ChangeSpawnInfo(playerid); //Hier wird die Spawninfo gesetzt
    TextDrawHideForPlayer(playerid,gTextDraw[IntroText1]);
    TextDrawHideForPlayer(playerid,gTextDraw[IntroText2]);
    TextDrawHideForPlayer(playerid,gTextDraw[IntroText3]);
    TextDrawHideForPlayer(playerid,gTextDraw[IntroText4]);
    TextDrawHideForPlayer(playerid,gTextDraw[IntroText5]);
    TextDrawHideForPlayer(playerid,gTextDraw[IntroText6]); //Textdraws gesetzt
    SpawnPlayer(playerid); //er wird gespawnt > siehe OnPlayerSpawn
    SendClientMessage(playerid,0xFFFFFFFF,"Willkommen auf {FF0000}BLUBB{FFFFFF}.");
    }
    }
    return 1;
    }
    stock p_ChangeSpawnInfo(playerid)
    {
    //Es wird geschaut obs 1. spawn ist, wenn ja dann wird geguckt ob er nen relogg gemacht hat (15 Minuten nach logout)
    new day,month,year,second,minute,hour, spSkin;
    if(firstspawn[playerid])
    {
    new bool:relogtimer = false;
    getdate(year,month,day);
    gettime(hour,minute,second);
    if(month == Spieler[playerid][LastMonth] && day == Spieler[playerid][LastDay] && year == Spieler[playerid][LastYear])
    {
    if(hour-Spieler[playerid][LastHour] == 0)
    {
    if(minute - Spieler[playerid][LastMinute] <= 15 || Spieler[playerid][LastMinute] == minute) relogtimer = true; //Er hat relog gemacht
    }
    else if(hour-Spieler[playerid][LastHour] == 1)
    {
    if(Spieler[playerid][LastMinute] > 45)
    {
    if(minute-Spieler[playerid][LastMinute] >= -59 && minute-Spieler[playerid][LastMinute] <= -45) relogtimer = true;
    }
    }
    }
    else if(month == Spieler[playerid][LastMonth] && year == Spieler[playerid][LastYear])
    {
    if(CheckDateDifference(Spieler[playerid][LastDay],Spieler[playerid][LastMonth],Spieler[playerid][LastYear],day,month,year,0) == 1)
    {
    if(Spieler[playerid][LastHour] == 23 && hour == 0 && Spieler[playerid][LastMinute] > 45 && minute < 15)
    {
    if(minute-Spieler[playerid][LastMinute] >= -59 && minute-Spieler[playerid][LastMinute] <= -45) relogtimer = true;
    }
    }
    }
    if(relogtimer) //wenn er relog gemacht hat
    {
    new bool:needpara = false;
    if(Spieler[playerid][Duty] == 1) spSkin = Spieler[playerid][Fraktionsskin];
    else if(Spieler[playerid][Duty] == 2 && Spieler[playerid][Ziviljob] > 0) spSkin = Nebenjobs[Spieler[playerid][Ziviljob]][jSkin];
    else if(Spieler[playerid][Duty] == 2 && Spieler[playerid][Fraktionsjob] > 0) spSkin = Nebenjobs[Spieler[playerid][Fraktionsjob]][jSkin];
    else spSkin = Spieler[playerid][Zivilskin];
    if(Spieler[playerid][ZPos] >= 75.0) needpara = true;
    return p_SetSpawnInfo(playerid, spSkin, Spieler[playerid][XPos],Spieler[playerid][YPos],Spieler[playerid][ZPos], Spieler[playerid][APos], Spieler[playerid][Interior],Spieler[playerid][Virtualworld], Spieler[playerid][PlayerHealth], Spieler[playerid][PlayerArmour], needpara); //Spawninfo wird gesetzt
    }
    else
    {
    Spieler[playerid][Duty] = 0;
    Spieler[playerid][Spawnchange] = -1;
    }
    }
    if(IsAGang(GetPlayerFrak(playerid)) && Spieler[playerid][Duty] <= 1) Spieler[playerid][Duty] = 1;
    if(Spieler[playerid][Duty] == 1) spSkin = Spieler[playerid][Fraktionsskin];
    else if(Spieler[playerid][Duty] == 2 && Spieler[playerid][Ziviljob] > 0) spSkin = Nebenjobs[Spieler[playerid][Ziviljob]][jSkin];
    else if(Spieler[playerid][Duty] == 2 && Spieler[playerid][Fraktionsjob] > 0) spSkin = Nebenjobs[Spieler[playerid][Fraktionsjob]][jSkin];
    else spSkin = Spieler[playerid][Zivilskin];
    if(Spieler[playerid][Spawnchange] >= 0) return p_SetSpawnInfo(playerid, spSkin, Fraktionen[Spieler[playerid][Spawnchange]][pickx],Fraktionen[Spieler[playerid][Spawnchange]][picky],Fraktionen[Spieler[playerid][Spawnchange]][pickz],Fraktionen[Spieler[playerid][Spawnchange]][picka],Fraktionen[Spieler[playerid][Spawnchange]][pickinter], Fraktionen[Spieler[playerid][Spawnchange]][pickvirt]);
    if(Spieler[playerid][Hotelzimmer] >= 0) return p_SetSpawnInfo(playerid,spSkin, pHotelzimmer[Spieler[playerid][Hotelzimmer]][hzx2],pHotelzimmer[Spieler[playerid][Hotelzimmer]][hzy2],pHotelzimmer[Spieler[playerid][Hotelzimmer]][hzz2],pHotelzimmer[Spieler[playerid][Hotelzimmer]][hza2],pHotelzimmer[Spieler[playerid][Hotelzimmer]][inter2],pHotelzimmer[Spieler[playerid][Hotelzimmer]][virt2]);
    if(Spieler[playerid][Haus] >= 0) return p_SetSpawnInfo(playerid, spSkin, Haeuser[Spieler[playerid][Haus]][pick2x],Haeuser[Spieler[playerid][Haus]][pick2y],Haeuser[Spieler[playerid][Haus]][pick2z],Haeuser[Spieler[playerid][Haus]][pick2a],Haeuser[Spieler[playerid][Haus]][inter],Haeuser[Spieler[playerid][Haus]][virt]);
    if(Spieler[playerid][Stadt] == 1) p_SetSpawnInfo(playerid, spSkin, 823.9938,-1361.9373,-0.5078, 314.8367);
    else if(Spieler[playerid][Stadt] == 2) p_SetSpawnInfo(playerid, spSkin, -1964.9036,137.8082,27.6875,89.5713);
    else if(Spieler[playerid][Stadt] == 3) p_SetSpawnInfo(playerid, spSkin, 1433.6573,2620.4934,11.3926, 180.1021);
    else p_SetSpawnInfo(playerid, spSkin, 823.9938,-1361.9373,-0.5078, 314.8367);
    return 1;
    }
    stock p_SetSpawnInfo(playerid, skin, Float:x, Float:y, Float:z, Float:a, interior = 0, virtualworld = 0, Float:spHealth = 100.0, Float:spArmour = 0.0, bool:spPara = false)
    {
    SetSpawnInfo(playerid, 0, skin, x, y, z, a, 0, 0, 0, 0, 0, 0);
    SpawnInfo[playerid][Inter] = interior;
    SpawnInfo[playerid][Virt] = virtualworld;
    SpawnInfo[playerid][spHp] = spHealth;
    SpawnInfo[playerid][spArm] = spArmour;
    SpawnInfo[playerid][Parachute] = spPara;
    return 1;
    }


    Ich weiß nicht ob ihr dort etwas erkennt..

    Guten Tag
    sobald ich die postion änderen möchte, wird er zu den koordinaten 50.0 und 50.0 gesetzt und kurze Zeit später auf seine alte position gesetzt..
    Man registriert sich und wird in ein Zug gesteckt, nachdem man dort Fragen beantwortet hat, soll man gespawnt werden.
    Es ist egal ob ich ihn spawnen lasse, nur die Position verändere oder hinterher durch irgentwelche Befehle die Position ändern möchte, es passiert das was ich im 1. Satz gesagt habe.
    Er wird an die 50.0 50.0 koordinaten gesetzt und 2-5 Sekunen später wieder in den Zug.
    Der Code wird ganz normal ausgeführt, nur die Position wird nicht gesetzt..


    Ich hoffe ihr könnt mir helfen. Ich habe den Fehler seit 0.3e, ärgerlich ist das ich gleichzeitig auf mysql umgeschrieben habe und nicht weiß obs nur an 0.3e liegt.
    Mein Code habe ich schon öfters überprüft und umgeschrieben, probiert und versucht jedoch immer das selbe Problem.


    Liebe Grüße
    Simon