SetPlayerSpawn ist keine Standard-Funktion, daher kann ich das nicht beurteilen. Kommt drauf an, was in der SetPlayerSpawn-Funktion steht.
OnPlayerSpawn wird auf jeden Fall aufgerufen, wenn SpawnPlayer ausgeführt wird.
Beiträge von Jeffry
-
-
Also:
Beispiel dieses Textdraw:
SkinTD[1] = TextDrawCreate(333.333343, 327.703582, "Weiter");Du erstellst es an X = 333.3 und Y = 327.7.
Ich schätze jetzt (das wird nicht richtig sein!), dass dein Textdraw von der Breite her 15 mal nebeneinander auf den Bildschirm passt, also:
640 / 15 = 42.6 => Somit ist TextDrawTextSize-X: 333.3 + 42.6 = 375.9Dann schätze ich, dass dein Textdraw 20 mal übereinander von oben nach unten in den Bildschirm gestapelt werden kann, also:
480 / 20 = 24.0 => Somit ist TextDrawTextSize-Y: 24.0Das ergibt:
TextDrawTextSize(SkinTD[1], 375.9, 24.0);Achtung: Die Schätzungen, dass es 15 mal nebeneinander und 20 mal übereinander in den Bildschirm passt sind komplett geraten, dass musst du selbst anhand der Größe abschätzen, und gegebenenfalls die Rechnung ändern.
Kommst du damit so klar?
-
Irgendwie scheint das mit strcat etc nicht wirklich gut zu klappen, nachvollziehen warum es nicht klappt kann ich es aber nicht, der würfelt das Query irgendwie durcheinander.
Versuche es mal so:
stock SaveAccount(playerid)
{
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid) && GetPVarInt(playerid,"Eingeloggt") == 1) //wir überprüfen ob der Spieler überhaupt noch Connected ist und ob er nicht ein NPC ist.
{
new query[4000],Float:Pos[3];
for (new i = 0; i < 13; i++)
{
GetPlayerWeaponData(playerid, i, Spieler[playerid][pPlayerWeapon][i], Spieler[playerid][pPlayerWeaponAmmo][i]);
}
//GEFIXXT BY SYNTRO!
GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
format(query,sizeof(query),"UPDATE "#DATENBANKTAG"_account_main SET Online='0',Tutorial='%d',Admin='%d',Verwarnungen='%d',EventMotor='%d',FLeaderRechte='%d',Fraktion='%d',FraktionsRang='%d',FraktionsURang='%d',FraktionsSperre='%d',FraktionsGehalt='%d',Job='%d',JobWarns='%d',JobSperre='%d',ArbeitslosenGeld='%d',",
Spieler[playerid][pViewTutorial],Spieler[playerid][pAdmin],Spieler[playerid][pWarns],Spieler[playerid][pEventMotor],Spieler[playerid][pLeader],Spieler[playerid][pFraktion],Spieler[playerid][pFraktRang],Spieler[playerid][pFraktURang],Spieler[playerid][pFraktionSperre],
Spieler[playerid][pFraktionsGehalt],Spieler[playerid][pJob],Spieler[playerid][JobWarns],Spieler[playerid][pJobSperre],Spieler[playerid][pWorkLess]);
format(query,sizeof(query),"%sGeschlecht='%d',SpielerAlter='%d',Level='%d',Geld='%d',GWD='%d',ZiviNote='%d',FAbteilung='%d',Bankguthaben='%d',BankPin='%d',WantedSterne='%d',WantedPunkte='%d',Suspects='%d',Wanted_Grund1='%s',Wanted_Grund2='%s',Wanted_Grund3='%s',Wanted_Grund4='%s',Wanted_Grund5='%s',",query
Spieler[playerid][pSex],Spieler[playerid][pYearsOld],GetPlayerLevel(playerid),GetACMoney(playerid),Spieler[playerid][pGrundwehrdienst],Spieler[playerid][pZiviNote],Spieler[playerid][pFraktABTInvite],Spieler[playerid][pBank],Spieler[playerid][pBankPin],GetPlayerWantedLevel(playerid),Spieler[playerid][pWantedPoints],Spieler[playerid][pSuspectPoints],
pWantedReason1[playerid],pWantedReason2[playerid],pWantedReason3[playerid],pWantedReason4[playerid],pWantedReason5[playerid]);
format(query,sizeof(query),"%sCrimes='%d',STVOcrimes='%d',KampfStyle='%d',Handy='%d',Handycoins='%d',HandyStatus='%d',HandyAkku='%f',HandyNummer='%d',Handyflat='%d',Handyflatbuyinbiz='%d',Letzte_X='%f',Letzte_Y='%f',Letzte_Z='%f',Letzte_Interior='%d',Letzte_VirtualWorld='%d',",query,
Spieler[playerid][pLastSuspects],Spieler[playerid][pSTVOpoints],GetPlayerFightingStyle(playerid),Spieler[playerid][pHandy],Spieler[playerid][pHandyCoins],Spieler[playerid][pHandystate],Spieler[playerid][pHandyakku],Spieler[playerid][pPhonenumber],Spieler[playerid][pHandyFlat],Spieler[playerid][pHandyBuyByBiz],
Pos[0],Pos[1],Pos[2],GetPlayerInterior(playerid),GetPlayerVirtualWorld(playerid));
format(query,sizeof(query),"%spSelectHome='%d',HausMieter='%d',Spawn='%d',Hotel='%d',Tod='%d',Tot_X='%f',Tot_Y='%f',Tot_Z='%f',Tot_Interior='%d',Tot_VirtualWorld='%d',TotZeit='%d',Friedhof='%d',FriedhofZeit='%d',ImKnast='%d',KnastZeit='%d',KnastKaution='%d' WHERE Name='%s'",query,
Spieler[playerid][pSelectHome],Spieler[playerid][pRentHome],Spieler[playerid][pSpawn],Spieler[playerid][pHotel],Spieler[playerid][pDeath],Spieler[playerid][tot_x],Spieler[playerid][tot_y],Spieler[playerid][tot_z],Spieler[playerid][tot_int],Spieler[playerid][tot_world],Spieler[playerid][pDeathTime],Spieler[playerid][pFriedhof],Spieler[playerid][pFriedhofTime],
Spieler[playerid][pJailed],Spieler[playerid][pJailTime],Spieler[playerid][pKaution],Spieler[playerid][pName]);
mysql_function_query(MySqlConnection,query,false,"","");
format(query,sizeof(query),"UPDATE "#DATENBANKTAG"_account_main SET Muted='%d',MuteZeit='%d',ImPrison='%d',PrisonCheckPointsAbgelaufen='%d',PrisonCheckPointsGegeben='%d',Morde='%d',Tode='%d',SkinID='%d',FraktionSkinID='%d',PaintBallKills='%d',PaintBallTode='%d',PaintBallRang='%d',PaintBallBesuche='%d',AngenommeneReports='%d',KopfGeld='%d',",
Spieler[playerid][pMuted],Spieler[playerid][pMuteTime],Spieler[playerid][pInPrison],Spieler[playerid][pPrisonCPsgelaufen],Spieler[playerid][pPrisonCPsgegeben],Spieler[playerid][pMorde],Spieler[playerid][pTode],Spieler[playerid][pSkin],Spieler[playerid][pFraktSkin],Spieler[playerid][pPBKills],Spieler[playerid][pPBDeaths],
Spieler[playerid][pPBRang],Spieler[playerid][pPBVisits],Spieler[playerid][Reports],Spieler[playerid][pHeadMoney]);
format(query,sizeof(query),"%spWantedDeaths='%d',pBuyTickets='%d',pJailedCount='%d',Bankkonto='%d',pArmyPlaneOrder='%d',pArmyHeliOrder='%d',pArmyWaffenOrder='%d',LevelUPKosten='%d',RespectForLevelUp='%d',RespectFromPayday='%d',TimeAfterRegister='%d',",query,
Spieler[playerid][pWantedDeaths],Spieler[playerid][pBuyTickets],Spieler[playerid][pJailedCount],Spieler[playerid][pBankkonto],Spieler[playerid][pArmyPlaneOrder],Spieler[playerid][pArmyHeliOrder],Spieler[playerid][pArmyWaffenOrder],
Spieler[playerid][pLevelKosten],Spieler[playerid][pRespektToLevelUp],Spieler[playerid][pRespektFromPayday],Spieler[playerid][pTimeAfterRegister]);
format(query,sizeof(query),"%sTime4Payday='%d',TimeoutCrashExeorKick='%d',HabGeworben='%d',RpChat='%d',pPremium='%d',GeworbenerSpieler='%s',pScheinSperre='%d',DigiHud='%d',Bonus='%d',Gutschein='%d',pCoins='%d',",query,
Spieler[playerid][pMinutesAfterPayday],Spieler[playerid][pAntiOfflineFlucht],Spieler[playerid][HatGeworben],Spieler[playerid][RpChat],Spieler[playerid][pPremium],Spieler[playerid][GeworbenPlaya],Spieler[playerid][pScheinSperre],
Spieler[playerid][DigiHud],Spieler[playerid][pStartbonus],Spieler[playerid][pGutschein],Spieler[playerid][pCoins]);
format(query,sizeof(query),"%spFirmaLeader='%d',pFirmaMember='%d',pOrgLeader='%d',pOrgMember='%d',pLohn='%d',WaitPerso='%d',pMarried='%s',pBuyClothes='%d',pIll='%d',pConterminatedTime='%d',pBitchSkill='%d',pBitchFuckCount='%d',pMedicHealplayerSkill='%d',pMedicHealCount='%d' WHERE Name='%s'",query,
Spieler[playerid][pFirmaLeader],Spieler[playerid][pFirmaMember],Spieler[playerid][pOrgLeader],Spieler[playerid][pOrgMember],Spieler[playerid][pLohn],Spieler[playerid][WaitPerso],
Spieler[playerid][pMarried],Spieler[playerid][pBuyClothes],Spieler[playerid][pIll],Spieler[playerid][pConterminatedTime],Spieler[playerid][pBitchSkill],Spieler[playerid][pBitchFuckCount],Spieler[playerid][pMedicHealplayerSkill],Spieler[playerid][pMedicHealCount],Spieler[playerid][pName]);
mysql_function_query(MySqlConnection,query,false,"","");
format(query,sizeof(query),"UPDATE "#DATENBANKTAG"_account_weapons SET Waffen0='%d',Waffen1='%d',Waffen2='%d',Waffen3='%d',Waffen4='%d',Waffen5='%d',Waffen6='%d',Waffen7='%d',Waffen8='%d',Waffen9='%d',Waffen10='%d',Waffen11='%d',Waffen12='%d',Ammo0='%d',Ammo1='%d',Ammo2='%d',Ammo3='%d',Ammo4='%d',Ammo5='%d',Ammo6='%d',Ammo7='%d',Ammo8='%d',Ammo9='%d',Ammo10='%d',Ammo11='%d',Ammo12='%d' WHERE Name='%s'",
Spieler[playerid][pPlayerWeapon][0],Spieler[playerid][pPlayerWeapon][1],Spieler[playerid][pPlayerWeapon][2],Spieler[playerid][pPlayerWeapon][3],Spieler[playerid][pPlayerWeapon][4],Spieler[playerid][pPlayerWeapon][5],Spieler[playerid][pPlayerWeapon][6],
Spieler[playerid][pPlayerWeapon][7],Spieler[playerid][pPlayerWeapon][8],Spieler[playerid][pPlayerWeapon][9],Spieler[playerid][pPlayerWeapon][10],Spieler[playerid][pPlayerWeapon][11],Spieler[playerid][pPlayerWeapon][12],
Spieler[playerid][pPlayerWeaponAmmo][0]/2,Spieler[playerid][pPlayerWeaponAmmo][1]/2,Spieler[playerid][pPlayerWeaponAmmo][2]/2,Spieler[playerid][pPlayerWeaponAmmo][3]/2,Spieler[playerid][pPlayerWeaponAmmo][4]/2,Spieler[playerid][pPlayerWeaponAmmo][5]/2,Spieler[playerid][pPlayerWeaponAmmo][6]/2,
Spieler[playerid][pPlayerWeaponAmmo][7]/2,Spieler[playerid][pPlayerWeaponAmmo][8]/2,Spieler[playerid][pPlayerWeaponAmmo][9]/2,Spieler[playerid][pPlayerWeaponAmmo][10]/2,Spieler[playerid][pPlayerWeaponAmmo][11]/2,Spieler[playerid][pPlayerWeaponAmmo][12]/2,Spieler[playerid][pName]);
mysql_function_query(MySqlConnection,query,false,"","");
format(query,sizeof(query),"UPDATE "#DATENBANKTAG"_account_fish SET FishID1='%d',FishID2='%d',FishID3='%d',FishID4='%d',FishID5='%d',Fishweight1='%d',Fishweight2='%d',Fishweight3='%d',Fishweight4='%d',Fishweight5='%d' WHERE Name='%s'",
Spieler[playerid][pFishID][1],Spieler[playerid][pFishID][2],Spieler[playerid][pFishID][3],Spieler[playerid][pFishID][4],Spieler[playerid][pFishID][5],Spieler[playerid][pFischgewicht][1],Spieler[playerid][pFischgewicht][2],Spieler[playerid][pFischgewicht][3],Spieler[playerid][pFischgewicht][4],Spieler[playerid][pFischgewicht][5],Spieler[playerid][pName]);
mysql_function_query(MySqlConnection,query,false,"","");
format(query,sizeof(query),"UPDATE "#DATENBANKTAG"_account_koffer SET Slot0='%d',Slot1='%d',Slot2='%d',Slot3='%d',Slot4='%d',Slot5='%d',Slot6='%d',Slot7='%d',Slot8='%d',Slot9='%d',Slot10='%d' WHERE Name='%s'",
Spieler[playerid][pKofferItems][0],Spieler[playerid][pKofferItems][1],Spieler[playerid][pKofferItems][2],Spieler[playerid][pKofferItems][3],Spieler[playerid][pKofferItems][4],Spieler[playerid][pKofferItems][5],Spieler[playerid][pKofferItems][6],
Spieler[playerid][pKofferItems][7],Spieler[playerid][pKofferItems][8],Spieler[playerid][pKofferItems][9],Spieler[playerid][pKofferItems][10],Spieler[playerid][pName]);
mysql_function_query(MySqlConnection,query,false,"","");
query = "";
strcat(query,"UPDATE "#DATENBANKTAG"_account_blacklist SET ");
for(new fID=0;fID<MAX_FRAKTIONNEN;fID++)
{
if(fID > 0) strcat(query,",");
format(query,sizeof(query),"%sblacklist%i='%d'",query,fID,Spieler[playerid][pBL][fID]);
strcat(query,",");
format(query,sizeof(query),"%sblacklistreason%i='%s'",query,fID,pBLReason[playerid][fID]);
}
format(query,sizeof(query),"%s WHERE Name='%s'",query,Spieler[playerid][pName]);
mysql_function_query(MySqlConnection,query,false,"","");
format(query,sizeof(query),"UPDATE "#DATENBANKTAG"_account_inventar SET c4='%d',materials='%d',material_packs='%d',lunchpackets='%d',navi='%d',helm='%d',angel='%d',angelkoeder='%d',repairboxxes='%d',refillgalons='%d',koffer='%d',zigarrets='%d',alcohol='%d',ganja='%d',kokain='%d',opium='%d',spice='%d',ganjaseats='%d',kokainseats='%d',opiumseats='%d',spiceseats='%d',callbook='%d',condoms='%d',duenger='%d' WHERE Name='%s'",
Spieler[playerid][pC4],Spieler[playerid][pMaterials],Spieler[playerid][MatsPackete],Spieler[playerid][pLunchpaket],Spieler[playerid][pNavi],Spieler[playerid][pMotorradhelm],Spieler[playerid][pAngel],Spieler[playerid][pAngelKoeder],Spieler[playerid][pRepairVehBoxes],Spieler[playerid][pTankFillBoxes],Spieler[playerid][pKoffer],Spieler[playerid][pZigarets],
Spieler[playerid][pAlc],Spieler[playerid][pGanja],Spieler[playerid][pKokain],Spieler[playerid][pOpium],Spieler[playerid][pSpice],Spieler[playerid][pGanjaSammen],Spieler[playerid][pKokainSammen],Spieler[playerid][pOpiumSammen],Spieler[playerid][pSpiceSammen],Spieler[playerid][pCallBook],Spieler[playerid][pCondoms],Spieler[playerid][pDuenger],Spieler[playerid][pName]);
mysql_function_query(MySqlConnection,query,false,"","");
format(query,sizeof(query),"UPDATE "#DATENBANKTAG"_account_licenses SET car='%d',bike='%d',roller='%d',boat='%d',plane='%d',helicopter='%d',weapon='%d',fishing='%d',personality='%d' WHERE Name='%s'",
Spieler[playerid][pAutoLic],Spieler[playerid][pBikeLic],Spieler[playerid][pRollerLic],Spieler[playerid][pBoatLic],Spieler[playerid][pPlaneLic],Spieler[playerid][pHeliLic],Spieler[playerid][pWaffenLic],Spieler[playerid][pFishingLic],Spieler[playerid][pPersoLic],Spieler[playerid][pName]);
mysql_function_query(MySqlConnection,query,false,"","");
format(query,sizeof(query),"UPDATE "#DATENBANKTAG"_account_banksafe SET safetresor='%d',ganja='%d',kokain='%d',opium='%d',spice='%d',materials='%d',c4='%d',lunchpaket='%d',matspackete='%d',bier='%d',zigaretten='%d',werkzeugkaesten='%d',benzinkanister='%d',koeder='%d',kondome='%d',duenger='%d' WHERE Name='%s'",
Spieler[playerid][pBankSafeSafe],Spieler[playerid][pBankSafeGanja],Spieler[playerid][pBankSafeKokain],Spieler[playerid][pBankSafeOpium],Spieler[playerid][pBankSafeSpice],Spieler[playerid][pBankSafeMaterials],Spieler[playerid][pBankSafeC4],
Spieler[playerid][pBankSafeLunchpaket],Spieler[playerid][pBankSafeMatspackete],Spieler[playerid][pBankSafeAlc],Spieler[playerid][pBankSafeZigarets],Spieler[playerid][pBankSafeRepairVehBoxes],
Spieler[playerid][pBankSafeTankFillBoxes],Spieler[playerid][pBankSafeAngelkoeder],Spieler[playerid][pBankSafeCondoms],Spieler[playerid][pBankSafeDuenger],Spieler[playerid][pName]);
mysql_function_query(MySqlConnection,query,false,"","");
new slot = 0;
for(;slot<MAX_PLAYER_VEHS;slot++)
{
if(!strcmp(Spieler[playerid][pName],Pfahrzeug[slot][playerid][Besitzer],true))
{
if(Pfahrzeug[slot][playerid][modelid] != 0)
{
GetVehicleHealth(Pfahrzeug[slot][playerid][Vehicle],Pfahrzeug[slot][playerid][HP]);
format(query,sizeof(query),"UPDATE "#DATENBANKTAG"_account_vehicle SET modelid='%d',x='%f',y='%f',z='%f',a='%f',interior='%d',world='%d',cc1='%d',cc2='%d',paintjob='%d',vehhp='%f',abgeschlossen='%d',t1='%d',t2='%d',t3='%d',t4='%d',t5='%d',t6='%d',t7='%d',t8='%d',t9='%d',t10='%d',t11='%d',t12='%d',t13='%d',t14='%d',",
Pfahrzeug[slot][playerid][modelid],Pfahrzeug[slot][playerid][posx],Pfahrzeug[slot][playerid][posy],Pfahrzeug[slot][playerid][posz],Pfahrzeug[slot][playerid][posa],Pfahrzeug[slot][playerid][Interior],Pfahrzeug[slot][playerid][VirtualWorld],Pfahrzeug[slot][playerid][Colour1],Pfahrzeug[slot][playerid][Colour2],
Pfahrzeug[slot][playerid][Paintjob],Pfahrzeug[slot][playerid][HP],Pfahrzeug[slot][playerid][Abgeschlossen],Pfahrzeug[slot][playerid][Spoiler],Pfahrzeug[slot][playerid][Hood],Pfahrzeug[slot][playerid][Roof],
Pfahrzeug[slot][playerid][Sideskirt],Pfahrzeug[slot][playerid][Lamps],Pfahrzeug[slot][playerid][Nitro],Pfahrzeug[slot][playerid][Exhaust],Pfahrzeug[slot][playerid][Wheels],Pfahrzeug[slot][playerid][Stereo],
Pfahrzeug[slot][playerid][Hydraulics],Pfahrzeug[slot][playerid][FrontBumper],Pfahrzeug[slot][playerid][RearBumper],Pfahrzeug[slot][playerid][VentRight],Pfahrzeug[slot][playerid][VentLeft]);
format(query,sizeof(query),"%sangemeldet='%d',atime='%d',atAnmeldung='%d',preis='%d',nummernschild='%s',neon='%d',motordown='%d',tank='%f',km='%d',towed='%d',towedfreeprice='%d',towedreason='%s',kganja='%d',kkokain='%d',kopium='%d',kspice='%d',kmats='%d',klunch='%d',kc4='%d',",query,
Pfahrzeug[slot][playerid][Angemeldet],Pfahrzeug[slot][playerid][AnmeldeTime],Pfahrzeug[slot][playerid][AnAnmeldung],Pfahrzeug[slot][playerid][Preis],Pfahrzeug[slot][playerid][Nummernschild],vFahrzeug[Pfahrzeug[slot][playerid][Vehicle]][Neon],
MotorDown[Pfahrzeug[slot][playerid][Vehicle]],vFahrzeug[Pfahrzeug[slot][playerid][Vehicle]][Tank],vFahrzeug[Pfahrzeug[slot][playerid][Vehicle]][Kilometer],vFahrzeug[Pfahrzeug[slot][playerid][Vehicle]][Abgeschleppt],vFahrzeug[Pfahrzeug[slot][playerid][Vehicle]][AbgeschlepptPreis],
vFahrzeug[Pfahrzeug[slot][playerid][Vehicle]][AbgeschlepptGrund],vFahrzeug[Pfahrzeug[slot][playerid][Vehicle]][KofferraumGanja],vFahrzeug[Pfahrzeug[slot][playerid][Vehicle]][KofferraumKokain],vFahrzeug[Pfahrzeug[slot][playerid][Vehicle]][KofferraumOpium],
vFahrzeug[Pfahrzeug[slot][playerid][Vehicle]][KofferraumSpice],vFahrzeug[Pfahrzeug[slot][playerid][Vehicle]][KofferraumMaterials],vFahrzeug[Pfahrzeug[slot][playerid][Vehicle]][KofferraumLunchpakete],vFahrzeug[Pfahrzeug[slot][playerid][Vehicle]][KofferraumC4]);
format(query,sizeof(query),"%skwkanister='%d',kkanister='%d',handbrake='%d' WHERE name='%s' AND slot='%d'",query,vFahrzeug[Pfahrzeug[slot][playerid][Vehicle]][KofferraumWerkzeugkasten],vFahrzeug[Pfahrzeug[slot][playerid][Vehicle]][KofferraumBenzinkanister],vFahrzeug[Pfahrzeug[slot][playerid][Vehicle]][Handbremse],Pfahrzeug[slot][playerid][Besitzer],slot);
mysql_function_query(MySqlConnection,query,false,"","");
}
}
}
printf("SAVE: %s Account hat gespeichert!",Spieler[playerid][pName]);
}
return 1;
} -
Du musst die Abfragen einbauen, ob killerid nicht INVALID_VEHICLE_ID ist.
Versuche es so:
public OnPlayerDeath(playerid, killerid, reason)
{
if(IsPlayerNPC(killerid))return true;
new string[600],Float:Pos[3],string2[350], dropcount = 0, hrank[25],
Float: fDistance;
GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
Spieler[playerid][Funkgerat] = 0;
Spieler[playerid][TotKord][0] = Pos[0];
Spieler[playerid][TotKord][1] = Pos[1];
Spieler[playerid][TotKord][2] = Pos[2];
RemovePlayerAttachedObject(playerid,9);
RemovePlayerAttachedObject(playerid,7);
RemovePlayerAttachedObject(playerid,1);
RemovePlayerAttachedObject(playerid,2);
ImShamalInterior[playerid] = 0;
ShamalID[playerid] = -1;
CreateErfolg(playerid,20,"Von wegen Unsterblich","Stirb 1x","",0,10);
if(Spieler[playerid][pBankRaubSumme] > 1)
{
RemovePlayerAttachedObject(playerid,0); Spieler[playerid][pBankRaubSumme] = 0;
}
if(killerid != INVALID_PLAYER_ID)
{
fDistance = GetPlayerDistanceFromPoint(killerid,Pos[0],Pos[1],Pos[2]);
if(fDistance > 149.99)
{
CreateErfolg(killerid,0,"Wie ein Geist","Ein Kill aus 150","Meter Entfernung",1,25);
}
}
if(rustungan[playerid] != 0)
{
RemovePlayerAttachedObject(playerid,9); rustungan[playerid] = 0;
}
if(IsPlayerConnected(killerid) && killerid != INVALID_PLAYER_ID && Paintball[playerid] == 0)
{
format(string,sizeof(string),"Mord : Angreifer: %s * Opfer: %s",Spieler[killerid][pName],Spieler[playerid][pName]);
Log("DeathMatchLogsqllog",string);
}
if(Spieler[playerid][pJobStart] == 1)
{
DestroyVehicle(AngelVeh[playerid]);
DisablePlayerCheckpoint(playerid);
Spieler[playerid][KeinCPMehr] = 0;
Spieler[playerid][pJobStart] = 0;
JobMarker[playerid] = 0;
KillTimer(JobTimer[playerid]);
for(new i=0;i<4;i++)
{
PlayerTextDrawHide(playerid,Anzeige[playerid][i]);
}
SetPlayerSkinEx(playerid,Spieler[playerid][pSkin]);
EntfernungJobVariable(playerid);
UnFreeze(playerid);
SetCameraBehindPlayer(playerid);
RemovePlayerMapIcon(playerid, 1);
RemovePlayerMapIcon(playerid, 2);
RemovePlayerMapIcon(playerid, 3);
RemovePlayerMapIcon(playerid, 6);
imHolzfaller[playerid] = false;
if(Spieler[playerid][pJob] == 3)
{
DestroyVehicle(BackerCarPlayer[playerid]); BackerStartCP[playerid] = 0; DisablePlayerCheckpoint(playerid); BackerCARVar[playerid] = -1;
}
if(Spieler[playerid][pJob] != 4)
{
SetPlayerVirtualWorld(playerid,0); SetPlayerInterior(playerid,0);
}
if(Spieler[playerid][pJob] == 4)
{
EntfernungObjekteHolz(playerid); DeleteVehicle(holzauto[playerid]);
}
if(Spieler[playerid][pJob] == 5)
{
SchiffEntfernung(playerid); DeleteVehicle(gabelauto[playerid]);
}
if(Spieler[playerid][pJob] == 6)
{
RemovePlayerFromVehicle(playerid); SetVehicleToRespawn(GetPlayerVehicleID(playerid));
}
if(Spieler[playerid][pJob] == 1)
{
DeleteVehicle(AngelVeh[playerid]); Fischbestand[playerid] = 0;
}
}
for(new i=0;i<sizeof(Shark);i++)
{
if(Shark[i][sh_targetid] != playerid) continue;
RandPosInZone(Shark[i][sh_minx],Shark[i][sh_miny],Shark[i][sh_maxx],Shark[i][sh_maxy],Shark[i][sh_rpos][0],Shark[i][sh_rpos][1]);
MoveDynamicObject(Shark[i][sh_obj],Shark[i][sh_rpos][0],Shark[i][sh_rpos][1],Shark[i][sh_z],MIN_SHARK_SWIMSPEED,Shark[i][sh_xr],Shark[i][sh_yr],Shark[i][sh_zr]);
Shark[i][sh_targetid] = -1;
}
if(IsPlayerConnected(killerid) && IsPlayerConnected(playerid) && !IsPlayerNPC(playerid) && !IsPlayerNPC(killerid))
{
Spieler[killerid][pMorde] += 1;
Spieler[playerid][pTote] += 1;
if(Spieler[killerid][pMorde] > 24)
{
CreateErfolg(killerid,37,"Einer nach dem Anderen","Toete 25 Spieler","",0,2);
}
if(Spieler[killerid][pMorde] > 99)
{
CreateErfolg(killerid,17,"Menschenjaeger","Toete 100 Spieler","",0,10);
}
if(Spieler[killerid][pMorde] > 999)
{
CreateErfolg(killerid,19,"Totesengel","Toete 1000 Spieler","",0,50);
}
if(Spieler[playerid][pTote] > 99)
{
CreateErfolg(killerid,21,"Opfer der Gewalt","Sterbe 100x","",0,10);
}
}
if(killerid != INVALID_PLAYER_ID)
{
for(new i = 0; i < MAX_TOTENINFO; i++)
{
if(TotenInfo[i][tccreate] != 1 && Paintball[playerid] == 0 && Spieler[killerid][pFraktion] != 1 || Spieler[killerid][pFraktion] != 2 && Spieler[killerid][pDuty] != 1)
{
TotenInfo[i][tcid] = i;
TotenInfo[i][tccreate] = 1;
TotenInfo[i][tctime] = 30;
TotenInfo[i][tcpos][0] = Pos[0]; TotenInfo[i][tcpos][1] = Pos[1]; TotenInfo[i][tcpos][2] = Pos[2];
TotenInfo[i][tcpickup] = CreatePickup(1254,1,TotenInfo[i][tcpos][0],TotenInfo[i][tcpos][1],TotenInfo[i][tcpos][2]);
TotenInfo[i][tclabel] = Create3DTextLabel(""#HTML_RED"/search",WEISS,Pos[0],Pos[1],Pos[2]+1,15.0,0,0);
if(Spieler[killerid][pHitman] == 1 && Spieler[playerid][pContract][0] == 1)
{
strmid(TotenInfo[i][tckiller],"Unbekannt",0,strlen("Unbekannt"),MAX_PLAYER_NAME+1);
strmid(TotenInfo[i][tctoter],Spieler[playerid][pName],0,strlen(Spieler[playerid][pName]),MAX_PLAYER_NAME+1);
format(string,sizeof(string),"%s",WaffenName(GetPlayerWeapon(killerid)));
strmid(TotenInfo[i][tcwaffe],string,0,strlen(string),25);
break;
}
else
strmid(TotenInfo[i][tckiller],Spieler[killerid][pName],0,strlen(Spieler[killerid][pName]),MAX_PLAYER_NAME+1);
strmid(TotenInfo[i][tctoter],Spieler[playerid][pName],0,strlen(Spieler[playerid][pName]),MAX_PLAYER_NAME+1);
format(string,sizeof(string),"%s",WaffenName(GetPlayerWeapon(killerid)));
strmid(TotenInfo[i][tcwaffe],string,0,strlen(string),25);
break;
}
}
if(Spieler[playerid][pFraktion] == 1 && Spieler[playerid][pDuty] == 1 && Spieler[killerid][pLevel] > 0 && Paintball[playerid] == 0)
{
Spieler[killerid][pWanteds] += 1;
for(new draw=0;draw<3;draw++) PlayerTextDrawShow(killerid,Wanteddraw[killerid][draw]);
format(string,sizeof(string),"%i",Spieler[killerid][pWanteds]);
PlayerTextDrawSetString(killerid,Wanteddraw[killerid][1],string);
switch(Spieler[killerid][pWanteds])
{
case 1,2,3:
{
hrank="(Kleinverbrecher)";
}
case 4,5,6,7:
{
hrank="(Schurke)";
}
case 8,9,10,11,12:
{
hrank="(Strassengauner)";
}
case 13,14,15,16,17:
{
hrank="(Drahtzieher)";
}
case 18,19,20,21,22:
{
hrank="(Schwer Verbrecher)";
}
case 23,24,25,26,27:
{
hrank="(Ex-Knacki)";
}
case 28,29,30:
{
hrank="(Staatsfeind)";
}
default:
{
hrank="Fehlerhaft";
}
}
format(string,sizeof(string),"%s",hrank);
PlayerTextDrawSetString(killerid,Wanteddraw[killerid][2],string);
strmid(Spieler[killerid][pWantedGrund],"Polizisten Mord",0,strlen("Polizisten Mord"),35);
strmid(Spieler[killerid][pWantedZeuge],"Unbekannt",0,strlen("Unbekannt"),MAX_PLAYER_NAME+1);
UpdateWantedTextLabel(killerid,Spieler[killerid][pWanteds]);
Spieler[killerid][LastWanted] = 120;
format(string,sizeof(string),""#HTML_RED"Wanted: "#HTML_WHITE"%s hat 1 Wanted wegen Polizisten Mord erhalten",Spieler[killerid][pName]);
WantedChat(WEISS,string);
SendClientMessage(killerid,WEISS,""#HTML_RED"Wanted: "#HTML_WHITE"Du hast 1 Wanted wegen Polizisten Mord erhalten!");
CreateErfolg(killerid,15,"Gesucht","Toete einen Polizisten","",0,10);
}
if(Spieler[playerid][pFraktion] == 2 && Spieler[playerid][pDuty] == 1 && Spieler[killerid][pLevel] > 0 && Paintball[playerid] == 0)
{
Spieler[killerid][pWanteds] += 2;
for(new draw=0;draw<3;draw++) PlayerTextDrawShow(killerid,Wanteddraw[killerid][draw]);
format(string,sizeof(string),"%i",Spieler[killerid][pWanteds]);
PlayerTextDrawSetString(killerid,Wanteddraw[killerid][1],string);
switch(Spieler[killerid][pWanteds])
{
case 1,2,3:
{
hrank="(Kleinverbrecher)";
}
case 4,5,6,7:
{
hrank="(Schurke)";
}
case 8,9,10,11,12:
{
hrank="(Strassengauner)";
}
case 13,14,15,16,17:
{
hrank="(Drahtzieher)";
}
case 18,19,20,21,22:
{
hrank="(Schwer Verbrecher)";
}
case 23,24,25,26,27:
{
hrank="(Ex-Knacki)";
}
case 28,29,30:
{
hrank="(Staatsfeind)";
}
default:
{
hrank="Fehlerhaft";
}
}
format(string,sizeof(string),"%s",hrank);
PlayerTextDrawSetString(killerid,Wanteddraw[killerid][2],string);
strmid(Spieler[killerid][pWantedGrund],"FBI Beamten Mord",0,strlen("FBI Beamten Mord"),35);
strmid(Spieler[killerid][pWantedZeuge],"Unbekannt",0,strlen("Unbekannt"),MAX_PLAYER_NAME+1);
UpdateWantedTextLabel(killerid,Spieler[killerid][pWanteds]);
Spieler[killerid][LastWanted] = 120;
format(string,sizeof(string),""#HTML_RED"Wanted: "#HTML_WHITE"%s hat 2 Wanteds wegen FBI Beamten Mord erhalten",Spieler[killerid][pName]);
WantedChat(WEISS,string);
SendClientMessage(killerid,WEISS,""#HTML_RED"Wanted: "#HTML_WHITE"Du hast 2 Wanteds wegen FBI Beamten Mord erhalten!");
CreateErfolg(killerid,15,"Gesucht","Toete einen Polizisten","",0,10);
}
}
if(runterseil[playerid] == 1)
{
for(new sh=0;sh<=MAX_HOHE;sh++)
{
DestroyObject(seil[playerid][sh]);
DisablePlayerCheckpoint(playerid);
}
runterseil[playerid] = 0;
}
for(new i_slot=0,gun,ammo;i_slot<13;i_slot++)
{
GetPlayerWeaponData(playerid,i_slot,gun,ammo);
if(gun != 0 && ammo != 0 && Paintball[playerid] == 0 && GetPlayerInterior(playerid) == 0 && GetPlayerVirtualWorld(playerid) == 0)
{
dropcount++;
CreateDroppedGun(playerid,gun,ammo,Pos[0]+random(2)-random(2),Pos[1]+random(2)-random(2),Pos[2]);
}
}
if(killerid != INVALID_PLAYER_ID)
{
if(Spieler[playerid][pWanteds] > 0 && Spieler[killerid][pFraktion] == 1 || Spieler[killerid][pFraktion] == 2 && Spieler[playerid][pArrestZeit] > 0 && Paintball[playerid] == 0)
{
new arresttime = Spieler[playerid][pWanteds]*5;
new geldleave = floatround(Spieler[playerid][pWanteds]*100);
Spieler[playerid][pArrestZeit] = arresttime;
Spieler[playerid][pKaution] = 1;
if(Spieler[killerid][pFraktion] == 2)
{
Spieler[playerid][pEingesperrt] = 2;
}
if(Spieler[killerid][pFraktion] == 1)
{
Spieler[playerid][pEingesperrt] = 1;
}
Spieler[playerid][pWanteds] = 0;
for(new draw=0;draw<3;draw++) PlayerTextDrawHide(playerid,Wanteddraw[playerid][draw]);
UpdateWantedTextLabel(playerid,Spieler[playerid][pWanteds]);
strmid(Spieler[playerid][pWantedGrund],"Unbekannt",0,strlen("Unbekannt"),35);
strmid(Spieler[playerid][pWantedZeuge],"Unbekannt",0,strlen("Unbekannt"),MAX_PLAYER_NAME+1);
format(string,sizeof(string),""#HTML_RED"Knast: "#HTML_WHITE"Beamter %s hat %s erwischt! Kaution: Nein",SpielerName(killerid),SpielerName(playerid));
WantedChat(WEISS,string);
format(string,sizeof(string),""#HTML_RED"Knast: "#HTML_WHITE"Beamter %s hat dich erschossen. (Geldstrafe: %d$)! Kaution: Nein",SpielerName(killerid),geldleave);
SendClientMessage(playerid,GRAU,string);
ACMoney(playerid,-geldleave);
Spieler[killerid][pGeld] += geldleave/2;
staatskasse += geldleave;
SaveAccount(playerid);
return true;
}
}
if(Paintball[playerid] != 0)
{
if(IsPlayerConnected(killerid) && !IsPlayerNPC(killerid))
{
if(Paintball[killerid] == 1)
{
GameTextForPlayer(killerid,"~g~Kill",1000,4);
GameTextForPlayer(playerid,"~r~Tot",1000,4);
for(new i = 0; i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i) && !IsPlayerNPC(i) && Spieler[i][Eingeloggt] == 1)
{
if(Paintball[i] == 1)
{
format(string,sizeof(string),""#HTML_RED"Paintball "#HTML_WHITE"%s wurde von %s gekillt",Spieler[playerid][pName],Spieler[killerid][pName]);
SendClientMessage(i,GRAU,string);
}
}
}
return true;
}
if(Paintball[killerid] == 2)
{
new team[6];
if(TDPPaintballTeam[killerid] != TDPPaintballTeam[playerid])
{
GameTextForPlayer(killerid,"~g~Team Kill",1000,4);
GameTextForPlayer(playerid,"~r~Team Kill",1000,4);
switch(TDPPaintballTeam[playerid])
{
case 1:
{
team="Weiß"; TDMPaintballTeamPoints[1]++;
}
case 2:
{
team="Blau"; TDMPaintballTeamPoints[0]++;
}
}
}
else
{
GameTextForPlayer(killerid,"~r~Team Kill",1000,4);
GameTextForPlayer(playerid,"~r~Team Kill",1000,4);
switch(TDPPaintballTeam[playerid])
{
case 1:
{
team="Weiß"; TDMPaintballTeamPoints[1] += 2;
}
case 2:
{
team="Blau"; TDMPaintballTeamPoints[0] += 2;
}
}
}
for(new i = 0; i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i) && !IsPlayerNPC(i) && Paintball[i] == 2 && Spieler[i][Eingeloggt] == 1)
{
format(string,sizeof(string),""#HTML_RED"Paintball (Team): "#HTML_WHITE"%s wurde von %s getötet",Spieler[playerid][pName],Spieler[killerid][pName]);
SendClientMessage(i,GRAU,string);
format(string,sizeof(string),""#HTML_RED"Team Weiß: "#HTML_WHITE"%d/40 | "#HTML_RED"Team Blau: "#HTML_WHITE"%d/40",TDMPaintballTeamPoints[0],TDMPaintballTeamPoints[1]);
SendClientMessage(i,GRAU,string);
if(TDMPaintballTeamPoints[0] >= 40)
{
TDMPaintballTeamPoints[0] = 0;
TDMPaintballTeamPoints[1] = 0;
SendClientMessage(i,GRAU,""#HTML_RED"Paintball Sieg: "#HTML_WHITE"Team Weiß hat gewonnen");
CreateErfolg(i,6,"Duellist","Gewinne ein Paintball","Match",1,10);
if(Spieler[i][pFraktion] != 0)
{
SetPlayerSkinEx(i,Spieler[i][pFraktSkin]);
SetPlayerPosEx(i,PAINTBALLARENA);
SetPlayerInterior(i,0);
SetPlayerVirtualWorld(i,0);
}
else if(Spieler[i][pFraktion] == 0)
{
SetPlayerSkinEx(i,Spieler[i][pSkin]);
SetPlayerPosEx(i,PAINTBALLARENA);
SetPlayerInterior(i,0);
SetPlayerVirtualWorld(i,0);
}
Paintball[i] = 0;
}
if(TDMPaintballTeamPoints[1] >= 40)
{
TDMPaintballTeamPoints[0] = 0;
TDMPaintballTeamPoints[1] = 0;
SendClientMessage(i,GRAU,""#HTML_RED"Paintball Sieg: "#HTML_WHITE"Team Blau hat gewonnen");
CreateErfolg(i,6,"Duellist","Gewinne ein Paintball","Match",1,10);
if(Spieler[i][pFraktion] != 0)
{
SetPlayerSkinEx(i,Spieler[i][pFraktSkin]);
SetPlayerPosEx(i,PAINTBALLARENA);
SetPlayerInterior(i,0);
SetPlayerVirtualWorld(i,0);
}
else if(Spieler[i][pFraktion] == 0)
{
SetPlayerSkinEx(i,Spieler[i][pSkin]);
SetPlayerPosEx(i,PAINTBALLARENA);
SetPlayerInterior(i,0);
SetPlayerVirtualWorld(i,0);
}
Paintball[i] = 0;
}
}
}
}
return true;
}
return true;
}
if(killerid != INVALID_PLAYER_ID)
{
if(GetPlayerState(killerid) == 2 && Paintball[playerid] == 0)
{
if(GetPlayerState(killerid) == PLAYER_STATE_DRIVER)
{
format(string,sizeof(string),""#HTML_RED""#ANTI" "#HTML_WHITE"Der Spieler %s wurde vom Server gekickt. Grund: Totparken",Spieler[killerid][pName]);
SendClientMessageToAll(ROT,string);
format(string,sizeof(string),"Hallo %s\ndu wurdest vom "#SERVERTAG" System gekickt!\nDer Grund dafür war: Totparken\nSolltest du zu Unrecht gekickt wurden sein, melde dich im Forum oder im Teamspeak 3 Server\nForum: "#WEBURL"\nTeamspeak: "#TSIP"\nMit freundlichen Grüßen\nDein "#SERVERTAG" Team",Spieler[killerid][pName]);
ShowPlayerDialog(killerid,DIALOG_SONSTIGES,DIALOG_STYLE_MSGBOX,""#SERVERNAME"",string,"Ok","");
SetTimerEx("FixKick",2500,0,"i",killerid);
}
}
if(istEinAdmin(playerid,1) && Spieler[playerid][pAdminOnduty] == 1 && Paintball[playerid] == 0)
{
if(Spieler[killerid][pAdmin] > 0)
{
format(string,sizeof(string),""#HTML_RED"Kill Info: "#HTML_WHITE"Team Mitglied %s hat dich abgeschossen!",Spieler[killerid][pName]);
SendClientMessage(playerid,GRAU,string);
format(string,sizeof(string),""#HTML_RED"Kill Info: "#HTML_WHITE"Du hast das Team Mitglied %s (Aduty) abgeschossen, passe besser auf!",Spieler[playerid][pName]);
SendClientMessage(killerid,GRAU,string);
}
else
{
format(string,sizeof(string),""#HTML_RED""#SERVERTAG": "#HTML_WHITE"Das System hat den Spieler %s bestraft (50 Checkpoints). Grund: DM/SDM auf Admin im Dienst",Spieler[killerid][pName]);
SendClientMessageToAll(GRAU,string);
}
Spieler[killerid][pChecksGesamt] = 50;
Spieler[killerid][pChecksGelaufen] = 0;
Spieler[killerid][pInStrafe] = 1;
SpawnPlayer(killerid);
}
if(Spieler[killerid][pHitman] == 1)
{
RemovePlayerAttachedObject(playerid,0);
SetPlayerName(playerid,Spieler[playerid][pName]);
}
if(Spieler[killerid][pHitman] == 1 && maskehat[killerid] == true && Paintball[playerid] == 0)
{
if(Spieler[playerid][pContract][0] == 1)
{
format(string,sizeof(string),""#HTML_RED"Auftragskill: "#HTML_WHITE"Du wurdest soeben von einem Hitman ausgeschaltet!");
SendClientMessage(playerid,GRAU,string);
ACMoney(killerid,Spieler[playerid][pContract][0]);
Spieler[playerid][pContract][0] = 0;
Spieler[playerid][pContract][1] = 0;
CreateErfolg(killerid,39,"Guter Auftrag","Kille ein Contract","als Hitman",1,35);
CreateErfolg(playerid,3,"Unbeliebt","Werde von einem","Hitman ausgeschaltet",1,25);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && !IsPlayerNPC(i) && Spieler[i][pHitman] == 1)
{
format(string,sizeof(string),""#HTML_RED"Auftragskill erledigt: "#HTML_WHITE"Der Spieler %s (Auftragssumme: %d$) wurde soeben von einem Hitman ausgeschaltet!",
Spieler[playerid][pName],Spieler[playerid][pContract][1]);
}
}
}
}
if(Spieler[playerid][pInStrafe] == 1)
{
format(string,sizeof(string),""#HTML_RED""#SERVERTAG": "#HTML_WHITE"Das System hat den Spieler %s bestraft (50 Checkpoints). Grund: DM/SDM auf Prison Sträfling",Spieler[killerid][pName]);
SendClientMessageToAll(GRAU,string);
Spieler[killerid][pChecksGesamt] = 50;
Spieler[killerid][pChecksGelaufen] = 0;
Spieler[killerid][pInStrafe] = 1;
SpawnPlayer(killerid);
}
}
if(Spieler[playerid][imEvent] == 1)
{
SetPlayerPosEx(playerid,Spieler[playerid][PosVorEvent][0],Spieler[playerid][PosVorEvent][1],Spieler[playerid][PosVorEvent][2]);
SetPlayerFacingAngle(playerid,Spieler[playerid][PosVorEvent][3]);
SetPlayerInterior(playerid,Spieler[playerid][VorEventInt]);
SetPlayerVirtualWorld(playerid,Spieler[playerid][VorEventWelt]);
DestroyVehicle(DerbyAuto[playerid]);
SendClientMessage(playerid,GRAU,""#HTML_RED"Info: "#HTML_WHITE"Da du gestorben bist, bist du nun disqualifiziert!");
Spieler[playerid][imEvent] = 0;
}
if(killerid != INVALID_PLAYER_ID)
{
if(InNoDMZone(playerid) != -1)
{
if(KickBereitsNO[killerid] == true) return true;
format(string,sizeof(string),""#HTML_RED""#ANTI" "#HTML_WHITE"Der Spieler %s wurde vom Server gekickt. Grund: No DM Zonen Kill",Spieler[killerid][pName]);
SendClientMessageToAll(ROT,string);
format(string,sizeof(string),"Hallo %s\ndu wurdest vom "#SERVERTAG" System gekickt!\nDer Grund dafür war: No DM Zonen Kill\nSolltest du zu Unrecht gekickt wurden sein, melde dich im Forum oder im Teamspeak 3 Server\nForum: "#WEBURL"\nTeamspeak: "#TSIP"\nMit freundlichen Grüßen\nDein "#SERVERTAG" Team",Spieler[killerid][pName]);
ShowPlayerDialog(killerid,DIALOG_SONSTIGES,DIALOG_STYLE_MSGBOX,""#SERVERNAME"",string,"Ok","");
SetTimerEx("FixKick",2500,0,"i",killerid);
KickBereitsNO[killerid] = true;
return true;
}
if(Spieler[killerid][pEingesperrt] != 0)
{
SendClientMessage(killerid,WEISS,""#HTML_RED"Info: "#HTML_WHITE"Knast DM! Strafe +2 Minuten");
Spieler[killerid][pArrestZeit] += 2;
knastDM[killerid] += 1;
if(knastDM[killerid] == 3)
{
Spieler[killerid][pArrestZeit] += 10;
format(string,sizeof(string),""#HTML_RED""#ANTI" "#HTML_WHITE"Der Spieler %s wurde vom Server gekickt. Grund: Knast Deathmatch",Spieler[killerid][pName]);
SendClientMessageToAll(ROT,string);
format(string,sizeof(string),"Hallo %s\ndu wurdest vom "#SERVERTAG" System gekickt!\nDer Grund dafür war: Knast DM\nZudem erhältst du eine Strafe von +10 Minuten\nSolltest du zu Unrecht gekickt wurden sein, melde dich im Forum oder im Teamspeak 3 Server\nForum: "#WEBURL"\nTeamspeak: "#TSIP"\nMit freundlichen Grüßen\nDein "#SERVERTAG" Team",Spieler[killerid][pName]);
ShowPlayerDialog(killerid,DIALOG_SONSTIGES,DIALOG_STYLE_MSGBOX,""#SERVERNAME"",string,"Ok","");
SaveAccount(killerid);
SetTimerEx("FixKick",2500,0,"i",killerid);
return true;
}
}
if(IstNixGutWaffe(GetPlayerWeapon(killerid)) == 1 && GetPlayerWeapon(killerid) != 0)
{
if(Paintball[killerid] != 0) return true;
if(!istEinAdmin(killerid,6))
{
format(string,sizeof(string),""#HTML_RED""#ANTI" "#HTML_WHITE"Das System hat den Spieler %s gebannt. Grund: Fakekill",Spieler[killerid][pName]);
SendClientMessageToAll(LEUCHTENDESROT,string);
format(string,sizeof(string),"%s,\nDu wurdest so eben wegen Fakekill vom Server gebannt.\nSolltest du zu Unrecht gebannt wurden sein, melde dich bitte im Teamspeak Server oder im Forum.\nMit freundlichen Grüssen\n"#SERVERTAG" Team\n\nForum: "#WEBURL"\nTeamspeak: "TSIP"",Spieler[killerid][pName]);
ShowPlayerDialog(killerid,DIALOG_SONSTIGES,DIALOG_STYLE_MSGBOX,""#SERVERNAME"",string,"Verlassen","");
BanUser(killerid,"System","Fakekill");
BansHeute +=1;
return true;
}
}
}
if(inFS[playerid] == 1)
{
KillTimer(TaxiTimer[playerid]); inFS[playerid] = 0;
for(new i = 0; i<5;i++)
{
DriveschoolQuestion[playerid][i] = 0;
}
for(new i = 0; i<4;i++)
{
DriveschoolQuestion2[playerid][i] = 0;
}
for(new i = 0; i<3;i++)
{
DriveschoolQuestion3[playerid][i] = 0;
}
for(new i = 0; i<3;i++)
{
DriveschoolQuestion4[playerid][i] = 0;
}
for(new i = 0; i<2;i++)
{
DriveschoolQuestion5[playerid][i] = 0;
}
for(new i = 0; i<16;i++)
{
fscp[playerid][i] = 0;
}
for(new i = 0; i<14;i++)
{
fscp2[playerid][i] = 0;
}
for(new i = 0; i<14;i++)
{
fscp3[playerid][i] = 0;
}
for(new i = 0; i<8;i++)
{
fscp4[playerid][i] = 0;
}
for(new i = 0; i<5;i++)
{
fscp6[playerid][i] = 0;
}
PlayerTextDrawHide(playerid,Anzeige[playerid][0]);
PlayerTextDrawHide(playerid,Anzeige[playerid][1]);
PlayerTextDrawHide(playerid,Anzeige[playerid][3]);
PlayerTextDrawHide(playerid,Anzeige[playerid][2]);
fahrschulauto[playerid] = 0;
DestroyVehicle(fahrschulauto[playerid]);
fahrschulauto2[playerid] = 0;
DestroyVehicle(fahrschulauto2[playerid]);
FSFehler[playerid] = 0;
SendClientMessage(playerid,GRAU,""#HTML_RED"Durchgefallen: "#HTML_WHITE"Du bist gestorben, daher hast du die Prüfung nicht bestanden!");
}
for(new i= 0;i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i) && !IsPlayerNPC(i))
{
if(GetPlayerState(i) == PLAYER_STATE_SPECTATING && Spieler[i][pTV] == playerid)
{
TogglePlayerSpectating(i,0);
Spieler[i][pTV] = -1;
}
}
}
for(new ctf=0;ctf<MAX_CTF_GEBIETE;ctf++)
{
if(IsPlayerInZone(playerid,CTFInfo[ctf][cPos1X],CTFInfo[ctf][cPos1Y],CTFInfo[ctf][cPos2X],CTFInfo[ctf][cPos2Y]))
{
if(Spieler[playerid][FlaggeAufgenommen] == 1)
{
CTFInfo[ctf][flPosX1_2] = Pos[0];
CTFInfo[ctf][flPosY1_2] = Pos[1];
CTFInfo[ctf][flPosZ1_2] = Pos[2];
CTFInfo[ctf][flaggeverteidigerliegen] = 1;
RemovePlayerAttachedObject(playerid,5);
CTFInfo[ctf][CTFPickup] = CreateDynamicObject(2993,CTFInfo[ctf][flPosX1_2],CTFInfo[ctf][flPosY1_2],CTFInfo[ctf][flPosZ1_2]+0.3,0,0,0);
format(string,sizeof(string),""#HTML_GREEN"Flagge der Verteidiger\n"#HTML_WHITE"Verteidiger: %s\nFallen gelassen durch: %s",FraktionsCTFName(CTFInfo[ctf][ctffid]),Spieler[playerid][pName]);
CTFSystem3DText[ctf] = Create3DTextLabel(string,WEISS,CTFInfo[ctf][flPosX1_2],CTFInfo[ctf][flPosY1_2],CTFInfo[ctf][flPosZ1_2]+1,15.0,0,0);
Spieler[playerid][FlaggeAufgenommen] = 0;
format(string2,sizeof(string2),""#HTML_RED"CTF: "#HTML_WHITE"Flagge der Gegner wurde fallen gelassen!");
FraktionsChat(Spieler[playerid][pFraktion],WEISS,string2);
format(string2,sizeof(string2),""#HTML_RED"CTF: "#HTML_WHITE"Eure Flagge wurde fallen gelassen!");
FraktionsChat(CTFInfo[ctf][ctffid],WEISS,string2);
}
else if(Spieler[playerid][FlaggeAufgenommen2] == 1)
{
CTFInfo[ctf][flPosX2_2] = Pos[0];
CTFInfo[ctf][flPosY2_2] = Pos[1];
CTFInfo[ctf][flPosZ2_2] = Pos[2];
CTFInfo[ctf][flaggeangreiferliegen] = 1;
RemovePlayerAttachedObject(playerid,5);
CTFInfo[ctf][CTFPickup2] = CreateDynamicObject(2993,CTFInfo[ctf][flPosX2_2],CTFInfo[ctf][flPosY2_2],CTFInfo[ctf][flPosZ2_2]+0.3,0,0,0);
SetDynamicObjectMaterial(CTFInfo[ctf][CTFPickup2],1, 10357, "tvtower_sfs", "ws_transmit_red", 0xFFFFFFFF);
format(string,sizeof(string),""#HTML_RED"Flagge der Angreifer\n"#HTML_WHITE"Angreifer: %s\nFallen gelassen durch: %s",FraktionsCTFName(CTFInfo[ctf][angreifer]),Spieler[playerid][pName]);
CTFSystem3DText2[ctf] = Create3DTextLabel(string,WEISS,CTFInfo[ctf][flPosX2_2],CTFInfo[ctf][flPosY2_2],CTFInfo[ctf][flPosZ2_2]+1,15.0,0,0);
Spieler[playerid][FlaggeAufgenommen2] = 0;
format(string2,sizeof(string2),""#HTML_RED"CTF: "#HTML_WHITE"Flagge der Gegner wurde fallen gelassen!");
FraktionsChat(Spieler[playerid][pFraktion],WEISS,string2);
format(string2,sizeof(string2),""#HTML_RED"CTF: "#HTML_WHITE"Eure Flagge wurde fallen gelassen!");
FraktionsChat(CTFInfo[ctf][angreifer],WEISS,string2);
}
}
}
/*
if(GetPlayerLevel(playerid) == NEULINGLEVEL && Paintball[playerid] == 0)
{
if(istEinAdmin(playerid,1)) return SendClientMessage(killerid,WEISS,"Du hast so eben ein Neuling getötet!");
format(string,sizeof(string),""#HTML_RED""#ANTI" "#HTML_WHITE"Der Spieler %s wurde vom Server gekickt. Grund: Neulings Kill",Spieler[killerid][pName]);
SendClientMessageToAll(ROT,string);
format(string,sizeof(string),"Hallo %s\ndu wurdest vom "#SERVERTAG" System gekickt!\nDer Grund dafür war: DM / SDM auf einen Neuling\nSolltest du zu Unrecht gekickt wurden sein, melde dich im Forum oder im Teamspeak 3 Server\nForum: "#WEBURL"\nTeamspeak: "#TSIP"\nMit freundlichen Grüßen\nDein "#SERVERTAG" Team",Spieler[killerid][pName]);
ShowPlayerDialog(killerid,DIALOG_SONSTIGES,DIALOG_STYLE_MSGBOX,""#SERVERNAME"",string,"Ok","");
SetTimerEx("FixKick",2500,0,"i",killerid);
KickBereits[playerid] = true;
}
if(GetPlayerLevel(killerid) == NEULINGLEVEL && Paintball[killerid] == 0)
{
if(KickBereits[playerid] == true) return true;
format(string,sizeof(string),""#HTML_RED""#ANTI" "#HTML_WHITE"Der Spieler %s wurde vom Server gekickt. Grund: Kill als Neuling",Spieler[killerid][pName]);
SendClientMessageToAll(ROT,string);
format(string,sizeof(string),"Hallo %s\ndu wurdest vom "#SERVERTAG" System gekickt!\nDer Grund dafür war: DM / SDM als Neuling\nSolltest du zu Unrecht gekickt wurden sein, melde dich im Forum oder im Teamspeak 3 Server\nForum: "#WEBURL"\nTeamspeak: "#TSIP"\nMit freundlichen Grüßen\nDein "#SERVERTAG" Team",Spieler[killerid][pName]);
ShowPlayerDialog(killerid,DIALOG_SONSTIGES,DIALOG_STYLE_MSGBOX,""#SERVERNAME"",string,"Ok","");
SetTimerEx("FixKick",2500,0,"i",killerid);
KickBereits[killerid] = false;
}
*/
return true;
} -
Ok, ich habe es jetzt mal bei mir vom Prinzip her ausprobiert. Das Attachen funktioniert mit AttachTrailerToVehicle.
Problem bei dir wird sein, dass du AttachTrailerToVehicle nicht erneut aufrufst, wenn die beiden Fahrzeuge eingestreamt werden.

https://wiki.sa-mp.com/wiki/AttachTrailerToVehicle
[wiki]AttachTrailerToVehicle[/wiki]Jetzt natürlich die Frage der Funktionalität, wie du es haben willst, denn wenn man die Teile bei OnVehicleStreamIn attachen lässt, dann springen die Anhänger immer wieder an den Traktor, wenn sie für einen Spieler eingestreamt werden, angenommen also Spieler A lässt den Anhänger fallen, und dann kommt Spieler B in den Server und geht zu Spieler A, dann wird der Anhänger wieder attached. Man könnte versuchen die Position abzufragen, und sie nur dann direkt zu attachen, wenn sie am Spawn stehen.
Gegebenenfalls kann man es auch mit einem Befehl machen (/attach), der den nächsten Anhänger attached.
Ich weiß jetzt nicht, wie du es machen willst, bzw. wie es sein soll.
-
Meinst du den ganz ganz kurzen Moment, wo der Spieler hier steht?

-
Lade dir das Crashdetect Plugin herunter und füge es in deinen Server ein:
http://forum.sa-mp.com/showthread.php?t=262796Dann poste was im Server Log steht, wenn der Server abstürzt.
-
Achso.
Dann so:
if(weaponid >= 24 && weaponid <= 30) -
Der Timer kann so mit jeder Waffe verwendet werden, da du die Waffen ID ja variabel mitgibst (GetPlayerWeapon).
-
Für SetWeaponAgain fehlt das forward, das musst du noch drüber einfügen.
-
Nutze stattdessen am besten die nativenative Funktion http://wiki.sa-mp.com/wiki/IsPlayerInRangeOfPoint
Tausche dann eben noch die 2 und die playerid in deinem Code oben jeweils.
Und entferne das ,358.4466 bei der einen Abfrage, das wird die Warnung verursachen.
-
SetTimerEx("OldWeapon", 1500, false, "playerid",playerid);
Zu
SetTimerEx("SetWeaponAgain", 1500, false, "dd",playerid, GetPlayerWeapon(playerid));Und im SetWeaponAgain (forward-Funktion nicht vergessen) dann wieder SetPlayerArmedWeapon.
-
https://wiki.sa-mp.com/wiki/GetPlayerWeapon
https://wiki.sa-mp.com/wiki/SetPlayerArmedWeapon zu 0
=>
SetTimerEx mit playerid und dem aus GetPlayerWeapon
=>
Im public -> SetPlayerArmedWeapon zu der aus GetPlayerWeaponpublic SetWeaponAgain(playerid, weapon)
Versuche, ob du soweit damit klar kommst. Wenn nicht, poste den Code, den du bis dahin hast.
-
[23:19:42] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'it3' in 'field list'
In deiner Tabelle fehlt diese Spalte.
-
Fangen wir am besten erst mal damit an, dass du die Textdraws anklicken kannst.
Dafür musst du die Größe das anklickbaren Bereiches mit TextDrawTextSize anpassen. https://wiki.sa-mp.com/wiki/TextDrawTextSize
Der X Wert ist die Position PLUS die Größe des nach rechts anklickbaren Bereiches. Der Y Wert ist die geschätzte Höhe.Angenommen du erstellst dein Textdraw bei X = 120 und Y = 90. Dann machst du den Text "Hallo Welt" da rein. Sagen wir, der Text ist so groß, dass er in etwa über ein Zehntel deines Bildschirmes geht (musst du abschätzen, oder mit einem Lineal abmessen), dann heißt das 640 durch 10, das wäre 64. Somit ist TextDrawTextSize-X = 120 + 64 = 184.
Nun misst, bzw. schätzt, du die Höhe des Textdraws, sagen wir mal du bekommst den Text in etwa 20 mal untereinander hin, bis dein Bildschirm von oben nach unten voll damit wäre. Heißt also: 480 durch 20, das gibt 24. Somit wäre TextDrawTextSize-Y = 24.640 und 480 sind die vollen Werte für Breite und Höhe, unabhängig von der Auflösung.
Probiere mal, ob du damit klar kommst.
-
Was sagt denn der MySQL Log, wenn du diesen Code ausführst?
-
Je nach dem wie du es machst, gegebenenfalls so:
dini_IntSet(Player,"Skin",PlayerInfo[playerid][pSkin]);
zu:
dini_IntSet(Player,"Skin",GetPlayerSkin(playerid)); -
Das 1500 ist die Geschwindigkeit. Je kleiner desto langsamer. Setze das mal zu 1.0 oder so, dann wird es eher in die Richtung gehen, die du haben willst.
-
@Kaliber
Die Konstante n ist bei der zweiten Variante nicht notwendig, da z ebenfalls 4 ist.
Also:
new x = _:test-z;Man kann das so mit allen enum-Werten machen, auch wenn der String in der Mitte steht, zum Beispiel bei d in deinem enum:
new x = z - d;Das würde ich so aber nicht machen, denn fügt man zwischen d und z ein e ein, dann muss man die Rechnung überall ändern, dann kann man gleich x direkt auf 32 setzen, daher am besten die Variante mit der Konstante über das Makro (#define).
-
Wird die Datei angelegt? Wenn nein, dann füge das hier nach dem Format ein:
if(!fexist(Player)) dini_Create(Player);Ansonsten prüfe, ob LoggedIn wirklich auf 1 steht.