Beiträge von German_ScripterHD

    Hallo Brotfische,


    Seit gestern Abend sitze ich an folgendem Problem: Wenn man ein Object abschießt soll man die Naricht mit der Objectid bekommen, leider funktioniert das nicht ganz.


    Codes:


    public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
    {
    new szString[144];
    GetObjectPos(hitid,fX,fY,fZ);
    format(szString, sizeof(szString), "Objectid: %i",hitid);
    SendClientMessage(playerid, -1, szString);
    return 1;
    }


    Ich hoffe es kann mir jemand helfen :)


    MFG German_ScripterHD

    Log:


    [20:51:16] AlleSpielerKontrollieren:: 450 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 451 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 452 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 453 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 454 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 455 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 456 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 457 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 458 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 459 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 460 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 461 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 462 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 463 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 464 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 465 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 466 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 467 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 468 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 469 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 470 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 471 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 472 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 473 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 474 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 475 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 476 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 477 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 478 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 479 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 480 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 481 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 482 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 483 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 484 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 485 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 486 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 487 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 488 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 489 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 490 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 491 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 492 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 493 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 494 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 495 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 496 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 497 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 498 -> 0
    [20:51:16] AlleSpielerKontrollieren:: 499 -> 0


    passiert immer noch nichts

    Hallo Brotfische,


    Ich habe folgedes Problem: Ich wollte wenn man immer an einer stelle steht, und nichts mach, nach einer Zeit gekickt wird, leider geht das aber nicht.


    Codes:


    #define AntiAFK_Timer 60000
    forward AlleSpielerKontrollieren();
    forward SpielerKontrollieren(playerid);
    new Float:AlteSpielerPos[MAX_PLAYERS][3];
    new IsAFK[MAX_PLAYER_NAME];
    new bool:SpielerIstAFK[MAX_PLAYERS];
    new bool:IstSpielerGespawnt[MAX_PLAYERS];


    //unter OnGameModeInit


    SetTimer("AlleSpielerKontrollieren", AntiAFK_Timer, 0);



    //Befehle
    ocmd:afk(playerid,params[])
    {
    if(IsPlayerConnected(playerid))
    {
    if(SpielerIstAFK[playerid] == false)
    {
    new sttl[228];
    SpielerIstAFK[playerid] = true;
    TogglePlayerControllable(playerid,0);
    IsAFK[playerid] = 1;
    SendClientMessage(playerid,0xFF1E00FF,"Du hast dich in den AFK-Modus begeben!");
    format(sttl, sizeof(sttl), "** %s ist nun abwesend. **", getPlayerName(playerid));
    SendClientMessageToAll(0xF0F0F0FF, sttl);
    SendClientMessage(playerid,0xFF1E00FF,"um AFK wieder Zu verlassen nutze /back");
    }
    else
    {
    SendClientMessage(playerid,0xFF1E00FF,"Du befindest dich schon im AFK-Modus Nutze /back!");
    return 1;
    }
    }
    return 1;
    }
    ocmd:back(playerid,params[])
    {
    if(IsPlayerConnected(playerid))
    {
    if(SpielerIstAFK[playerid] == true)
    {
    new str[128];
    SpielerIstAFK[playerid] = false;
    TogglePlayerControllable(playerid,1);
    IsAFK[playerid] = 0;
    SendClientMessage(playerid,0xF0F0F0FF,"Du bist aus dem AFK-Modus zurückgekehrt!");
    format(str, sizeof(str), "** %s ist nun wieder anwesend. **", getPlayerName(playerid));
    SendClientMessageToAll(0xF0F0F0FF, str);
    }
    else
    {
    SendClientMessage(playerid,0xF0F0F0FF,"Du befindest dich nicht im AFK-Modus!");
    }
    }
    return 1;
    }
    //Spieler laden
    IsAFK[playerid] = 0;
    SpielerIstAFK[playerid] = false;


    //public´s


    public AlleSpielerKontrollieren()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && IstSpielerGespawnt[i] == true)
    {
    if(!IsPlayerNPC(i))
    {
    new Float:PositionX, Float:PositionY, Float:PositionZ;
    GetPlayerPos(i, PositionX, PositionY, PositionZ);
    if(PositionX == AlteSpielerPos[i][0] && PositionY == AlteSpielerPos[i][1] && PositionZ == AlteSpielerPos[i][2])
    {
    SendClientMessage(i,C_Error, "AntiAFK: Du wirst in 10 Sekunden gekickt, wenn du nicht wieder am Spiel teilnimmst."); // Rot
    SetTimerEx("SpielerKontrollieren", 10000, 0, "i", i); //10000 ms = 10 Sekunden
    }
    AlteSpielerPos[i][0] = PositionX;
    AlteSpielerPos[i][1] = PositionY;
    AlteSpielerPos[i][2] = PositionZ;
    }
    }
    }
    return 1;
    }


    public SpielerKontrollieren(playerid)
    {
    if(IsPlayerConnected(playerid) && IstSpielerGespawnt[playerid] == true)
    {
    if(!IsPlayerNPC(playerid))
    {
    new AntiAFKMessage[128];
    new Float:PositionX, Float:PositionY, Float:PositionZ;
    GetPlayerPos(playerid, PositionX, PositionY, PositionZ);
    if(PositionX == AlteSpielerPos[playerid][0] && PositionY == AlteSpielerPos[playerid][1] && PositionZ == AlteSpielerPos[playerid][2])
    {
    SendClientMessage(playerid, C_Error, "AntiAFK: Wegen Untätigkeit gekickt!");
    format(AntiAFKMessage, sizeof(AntiAFKMessage), "AntiAFK: %s wurde wegen Untätigkeit gekickt!", getPlayerName(playerid));
    SendClientMessageToAll(C_Error, AntiAFKMessage);
    Kick(playerid);
    }
    }
    }
    return 1;
    }


    Ich hoffe es kann mir jemand helfen :D


    MFG German_ScripterHD

    Ich habe es jetzt so gemacht:

    public OnPlayerSpawn(playerid)
    {
    if(tot[playerid] == 1)
    {
    switch (GetPVarInt(playerid, "i"))
    {
    case 0:
    {
    SetPlayerPos(playerid, 2034.1149,-1414.9154,16.9922);
    SetPlayerFacingAngle(playerid, 133.3335);
    }
    case 1:
    {
    SetPlayerPos(playerid, 1182.1077,-1324.0918,13.5815);
    SetPlayerFacingAngle(playerid, 270.4434);
    }
    case 2:
    {
    SetPlayerPos(playerid, 1244.3423,331.9934,19.5547);
    SetPlayerFacingAngle(playerid, 335.6859);
    }
    case 3:
    {
    SetPlayerPos(playerid, 1607.6090,1821.0934,10.8280);
    SetPlayerFacingAngle(playerid, 0.7354);
    }
    case 4:
    {
    SetPlayerPos(playerid, -317.0090,1056.6217,19.7422);
    SetPlayerFacingAngle(playerid, 358.9579);
    }
    case 5:
    {
    SetPlayerPos(playerid, -1514.7358,2527.0601,55.7455);
    SetPlayerFacingAngle(playerid, 359.0611);
    }
    case 6:
    {
    SetPlayerPos(playerid, -2661.2441,633.7098,14.4531);
    SetPlayerFacingAngle(playerid, 180.1544);
    }
    case 7:
    {
    SetPlayerPos(playerid, -2198.7803,-2306.5793,30.6250);
    SetPlayerFacingAngle(playerid, 320.6338);
    }
    }
    SetPlayerSkin(playerid,sInfo[playerid][skin]);
    tot[playerid] = 0;
    return 1;
    }
    }
    public OnPlayerDeath(playerid, killerid, reason)
    {
    new Float: KrankenhausDistance[8],Float: tmp_distance = 9999999.0;
    KrankenhausDistance[0] = GetPlayerDistanceFromPoint(playerid, 2034.1149,-1414.9154,16.9922);
    KrankenhausDistance[1] = GetPlayerDistanceFromPoint(playerid, 1182.1077,-1324.0918,13.5815);
    KrankenhausDistance[2] = GetPlayerDistanceFromPoint(playerid, 1244.3423,331.9934,19.5547);
    KrankenhausDistance[3] = GetPlayerDistanceFromPoint(playerid, 1607.6090,1821.0934,10.8280);
    KrankenhausDistance[4] = GetPlayerDistanceFromPoint(playerid, -317.0090,1056.6217,19.7422);
    KrankenhausDistance[5] = GetPlayerDistanceFromPoint(playerid, -1514.7358,2527.0601,55.7455);
    KrankenhausDistance[6] = GetPlayerDistanceFromPoint(playerid, -2661.2441,633.7098,14.4531);
    KrankenhausDistance[7] = GetPlayerDistanceFromPoint(playerid, -2198.7803,-2306.5793,30.6250);


    for (new i; i != sizeof (KrankenhausDistance); ++i)
    {
    if (KrankenhausDistance[i] < tmp_distance)
    {
    tmp_distance = KrankenhausDistance[i];

    }
    SetPVarInt(playerid, "i", i);
    }
    tot[playerid] = 1;
    }


    aber ich spawn immer am gleichen Krankenhaus... warum? :(

    Hallo Brotfische,

    Ich bin momentan dabei ein Krankenhaussystem zu scripten, also so dass man am nähesten Krankenhaus spawnt, aber leider spawn ich immer nur am gleichen :(


    Codes:


    public OnPlayerSpawn(playerid)
    {
    if(tot[playerid] == 1)
    {
    new
    Float: KrankenhausDistance[8],
    closest = -1,
    Float: tmp_distance = -1.0;


    KrankenhausDistance[0] = GetPlayerDistanceFromPoint(playerid, 2034.1149,-1414.9154,16.9922);
    KrankenhausDistance[1] = GetPlayerDistanceFromPoint(playerid, 1182.1077,-1324.0918,13.5815);
    KrankenhausDistance[2] = GetPlayerDistanceFromPoint(playerid, 1244.3423,331.9934,19.5547);
    KrankenhausDistance[3] = GetPlayerDistanceFromPoint(playerid, 1607.6090,1821.0934,10.8280);
    KrankenhausDistance[4] = GetPlayerDistanceFromPoint(playerid, -317.0090,1056.6217,19.7422);
    KrankenhausDistance[5] = GetPlayerDistanceFromPoint(playerid, -1514.7358,2527.0601,55.7455);
    KrankenhausDistance[6] = GetPlayerDistanceFromPoint(playerid, -2661.2441,633.7098,14.4531);
    KrankenhausDistance[7] = GetPlayerDistanceFromPoint(playerid, -2198.7803,-2306.5793,30.6250);


    for (new i; i != sizeof (HospitalDistance); ++i)
    {
    if (KrankenhausDistance[i] > tmp_distance)
    {
    tmp_distance = KrankenhausDistance[i];
    closest = i;
    }
    }


    // set player's pos
    switch (closest)
    {
    case 0:
    {
    SetPlayerPos(playerid, 2034.1149,-1414.9154,16.9922);
    SetPlayerFacingAngle(playerid, 133.3335);
    tot[playerid] = 0;
    }
    case 1:
    {
    SetPlayerPos(playerid, 1182.1077,-1324.0918,13.5815);
    SetPlayerFacingAngle(playerid, 270.4434);
    tot[playerid] = 0;
    }
    case 2:
    {
    SetPlayerPos(playerid, 1244.3423,331.9934,19.5547);
    SetPlayerFacingAngle(playerid, 335.6859);
    tot[playerid] = 0;
    }
    case 3:
    {
    SetPlayerPos(playerid, 1607.6090,1821.0934,10.8280);
    SetPlayerFacingAngle(playerid, 0.7354);
    tot[playerid] = 0;
    }
    case 4:
    {
    SetPlayerPos(playerid, -317.0090,1056.6217,19.7422);
    SetPlayerFacingAngle(playerid, 358.9579);
    tot[playerid] = 0;
    }
    case 5:
    {
    SetPlayerPos(playerid, -1514.7358,2527.0601,55.7455);
    SetPlayerFacingAngle(playerid, 359.0611);
    tot[playerid] = 0;
    }
    case 6:
    {
    SetPlayerPos(playerid, -2661.2441,633.7098,14.4531);
    SetPlayerFacingAngle(playerid, 180.1544);
    tot[playerid] = 0;
    }
    case 7:
    {
    SetPlayerPos(playerid, -2198.7803,-2306.5793,30.6250);
    SetPlayerFacingAngle(playerid, 320.6338);
    tot[playerid] = 0;
    }
    }
    return 1;
    }
    }


    Ich hoffe es kann mir jemand helfen :D


    MFG German_ScriperHD

    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    for(new i=0; i<MAX_ANPFLANZEN; i++)
    {
    if(pickupid == drogenpickup[playerid][i])
    {
    drogenprozent[playerid][i] = 0;
    drogenstatus[playerid][i] = 0;
    angepflanzteDrogen[playerid]--;
    SetPlayerArmour(playerid,25);
    DestroyPickup(drogenpickup[playerid][i]);
    break;
    }
    }
    return 1;
    }

    oh :( ja ich hab es gesehn, Danke :D, das mit dem Pickup klappt jetzt, aber das mit dem Timer klappt immer noch net....


    Wenn man /anpflanzen eingibt, dann wird das Object erstellt und der Timer lauft dann.... wenn ich jetzt nochmal /anpflanzen eintippe wird wieder das Obejct erstellt, aber der Timer 1 wird gestoppt :(


    Ich hoffe es kann mir jemand helfen :D


    MFG German_ScripterHD

    Hallo Brotfische,


    Ich habe 2 Probleme bei meinem Drogensystem, undzwar wenn man /anpflanzen eingibt wird ein CreatObject und ein Timer erstellt, wenn ich jetzt 2 mal /anpflanzen eingeben, wird der erste Timer gestoppt.... und Problem Nummer 2: wenn die Drogen bei 100% sind soll ein Pickup erstellt werden, aber da passiert leider nichts, das Object löscht sich aber es passiert einfach nichts, der Pickup wird nicht ersrtellt :(


    Codes:
    enum drogenenum
    {
    Float:dX,
    Float:dY,
    Float:dZ,
    }
    //new´s
    new dInfo[MAX_PLAYERS][drogenenum];
    new drogentimer[MAX_PLAYERS];
    new drogensamen[MAX_PLAYERS];
    new drogenpickup[MAX_PLAYERS];
    new drogenobject[MAX_PLAYERS];
    new Text3D:drogentext[MAX_PLAYERS];
    new drogenprozent[MAX_PLAYERS];
    new angepflanzteDrogen[MAX_PLAYERS];

    ocmd:anpflanzen(playerid,params[])
    {
    if(drogensamen[playerid]!=1)return SendClientMessage(playerid,C_Error,"Du hast keine Drogensamen!");
    if(GetPlayerInterior(playerid)==0)
    {
    new Float:x,Float:y,Float:z,Float:r;
    GetPlayerPos(playerid,x,y,z);
    GetPlayerFacingAngle(playerid, Float:r);
    dInfo[playerid][dX]=x;
    dInfo[playerid][dY]=y;
    dInfo[playerid][dZ]=z;
    drogenobject[playerid]=CreateObject(647, dInfo[playerid][dX], dInfo[playerid][dY], dInfo[playerid][dZ]-1.2, 0.0, 0.0, r);
    drogentext[playerid]=Create3DTextLabel("0 %",C_Weiß,dInfo[playerid][dX],dInfo[playerid][dY],dInfo[playerid][dZ],10.0,0,0);
    SendClientMessage(playerid,C_Gruen,"Du hast 1 Drogenpflanze angebaut.");
    angepflanzteDrogen[playerid]=1;
    drogenprozent[playerid]=0;
    drogentimer[playerid]=SetTimerEx("drogen",1000,1,"i",playerid);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,C_Error,"Du kannst keine Drogen im Interior anpflanzen!");
    }
    return 1;
    }


    public drogen(playerid)
    {
    if(drogenprozent[playerid]==100)
    {
    DestroyObject(drogenobject[playerid]);
    drogenpickup[playerid]=CreatePickup(19473,0,dInfo[playerid][dX],dInfo[playerid][dX],dInfo[playerid][dX],GetPlayerVirtualWorld(playerid));
    KillTimer(drogentimer[playerid]);
    Delete3DTextLabel(drogentext[playerid]);
    }
    else
    {
    new stringlol[60];
    drogenprozent[playerid]++;
    format(stringlol,sizeof(stringlol),"%i %",drogenprozent[playerid]);
    Update3DTextLabelText(drogentext[playerid],C_Weiß,stringlol);
    }
    return 1;
    }



    Ich hoffe es kann mir jemand helfen :D


    MFG German_ScripterHD