Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #define Barriere "Fraktion" //Ändere den Namen in den Anführungszeichen (" ") in den PVar, welcher für die Fraktionsabfrage genutzt wird.
- stock GetVehicleRights(vehicleid)
- {
- switch(vehicleid)
- {
- //Hier kommt die Abfrage herein, welche Personen den
- //Kofferraum welcher Fahrzeuge benutzen dürfen.
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //----Beispiel: //
- //----switch(vehicleid) //
- //----{ //
- //---- case 1 .. 10: return 1; Der Kofferraum von VehicleID 1 - 10 ist jetzt nur noch für Fraktion 1 verfügbar. //
- //---- case 11 .. 24: return 2; Der Kofferraum von VehicleID 11 - 24 ist jetzt nur noch für Fraktion 2 verfügbar. //
- //----} //
- //----return -1; //
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- }
- return -1;
- }
- /////////////////////////////////////////////////////////////////////////
- //----Ab hier nichts mehr ändern, außer du kennst dich mit Pawn aus----//
- /////////////////////////////////////////////////////////////////////////
- #define Verstauen (1)
- #define Entnehmen (2)
- enum vehdata
- {
- WeaponID,
- Munition
- }
- new VehicleSlot[MAX_VEHICLES][4][vehdata];
- new FormatString[1024];
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print(" WeaponInventar by Darklight ");
- print("--------------------------------------\n");
- for(new i=0;i<MAX_VEHICLES;i++)
- {
- for(new a=0;a!=4;a++)
- {
- VehicleSlot[i][a][WeaponID] = 0;
- VehicleSlot[i][a][Munition] = 0;
- }
- }
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- for(new a=0;a!=4;a++)
- {
- VehicleSlot[vehicleid][a][WeaponID] = 0;
- VehicleSlot[vehicleid][a][Munition] = 0;
- }
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- for(new a=0;a!=4;a++)
- {
- VehicleSlot[vehicleid][a][WeaponID] = 0;
- VehicleSlot[vehicleid][a][Munition] = 0;
- }
- return 1;
- }
- stock Float:GetVehicleBootDistance(vehicle)
- {
- new Float:distance;
- switch(vehicle)
- {
- case 400: distance = 2.90;
- case 401: distance = 3.08;
- case 402: distance = 3.24;
- case 404: distance = 3.26;
- case 405: distance = 3.34;
- case 409: distance = 4.39;
- case 410: distance = 2.77;
- case 411: distance = 2.91;
- case 412: distance = 3.99;
- case 413: distance = 3.15;
- case 415: distance = 2.90;
- case 418: distance = 3.18;
- case 419: distance = 3.46;
- case 420: distance = 3.29;
- case 421: distance = 3.55;
- case 426: distance = 3.30;
- case 429: distance = 2.95;
- case 434: distance = 2.49;
- case 436: distance = 3.11;
- case 438: distance = 3.26;
- case 439: distance = 2.99;
- case 442: distance = 3.66;
- case 445: distance = 3.30;
- case 451: distance = 3.06;
- case 458: distance = 3.42;
- case 466: distance = 3.35;
- case 467: distance = 3.55;
- case 474: distance = 3.38;
- case 475: distance = 3.25;
- case 477: distance = 3.20;
- case 479: distance = 3.43;
- case 480: distance = 2.98;
- case 483: distance = 3.44;
- case 489: distance = 3.16;
- case 490: distance = 3.76;
- case 491: distance = 3.50;
- case 492: distance = 3.44;
- case 495: distance = 2.80;
- case 496: distance = 2.66;
- case 504: distance = 3.40;
- case 505: distance = 3.16;
- case 506: distance = 2.87;
- case 507: distance = 3.36;
- case 516: distance = 3.46;
- case 517: distance = 3.42;
- case 518: distance = 3.33;
- case 526: distance = 2.94;
- case 527: distance = 2.89;
- case 529: distance = 3.20;
- case 533: distance = 3.02;
- case 534: distance = 3.44;
- case 536: distance = 3.51;
- case 540: distance = 3.40;
- case 541: distance = 2.70;
- case 542: distance = 3.49;
- case 545: distance = 2.76;
- case 546: distance = 3.19;
- case 547: distance = 3.25;
- case 549: distance = 3.02;
- case 550: distance = 3.26;
- case 551: distance = 3.66;
- case 555: distance = 2.86;
- case 558: distance = 2.91;
- case 559: distance = 2.76;
- case 560: distance = 2.88;
- case 561: distance = 3.23;
- case 562: distance = 2.82;
- case 565: distance = 2.61;
- case 566: distance = 3.52;
- case 567: distance = 3.67;
- case 575: distance = 3.27;
- case 576: distance = 3.57;
- case 579: distance = 3.46;
- case 580: distance = 3.24;
- case 585: distance = 3.55;
- case 589: distance = 2.83;
- case 596: distance = 3.30;
- case 597: distance = 3.31;
- case 598: distance = 3.26;
- case 599: distance = 3.18;
- case 600: distance = 3.24;
- case 602: distance = 3.08;
- case 603: distance = 3.15;
- case 604: distance = 3.44;
- case 605: distance = 3.15;
- }
- return distance;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if(strcmp("/verstauen",cmdtext,true,10) == 0)
- {
- if(!IsPlayerNearVehicle(playerid)) return SendClientMessage(playerid,0xFFFFFFFF," Du befindest dich nicht in der Nähe eines Vehikels.");
- if(GetPVarInt(playerid,Barriere) != GetVehicleRights(GetClosestVehicle(playerid))) return SendClientMessage(playerid,0xFF9900AA," Du hast keinen Schlüssel für dieses Fahrzeug.");
- new engine,lights,alarm,doors,bonnet,boot,objective,Float:Pos[3],Float:distance,Float:bootdistance;
- SetPVarInt(playerid,"ClosestVehicle",GetClosestVehicle(playerid));
- bootdistance = GetVehicleBootDistance(GetVehicleModel(GetPVarInt(playerid,"ClosestVehicle")));
- GetVehiclePos(GetPVarInt(playerid,"ClosestVehicle"),Pos[0],Pos[1],Pos[2]);
- distance = GetPlayerDistanceFromPoint(playerid,Pos[0],Pos[1],Pos[2]);
- if(bootdistance-0.20 < distance && distance < bootdistance+0.20)
- {
- GetVehicleParamsEx(GetPVarInt(playerid,"ClosestVehicle"),engine,lights,alarm,doors,bonnet,boot,objective);
- SetVehicleParamsEx(GetPVarInt(playerid,"ClosestVehicle"),engine,lights,alarm,doors,bonnet,1,objective);
- ShowPlayerDialog(playerid,Verstauen,DIALOG_STYLE_MSGBOX,"Verstauen - Menü",GetVehicleSlotDataV(playerid),"Verstauen","Abbrechen");
- }
- return 1;
- }
- if(strcmp("/entnehmen",cmdtext,true,10) == 0)
- {
- if(!IsPlayerNearVehicle(playerid)) return SendClientMessage(playerid,0xFFFFFFFF," Du befindest dich nicht in der Nähe eines Vehikels.");
- if(GetPVarInt(playerid,Barriere) != GetVehicleRights(GetClosestVehicle(playerid))) return SendClientMessage(playerid,0xFF9900AA," Du hast keinen Schlüssel für dieses Fahrzeug.");
- new engine,lights,alarm,doors,bonnet,boot,objective,Float:Pos[3],Float:distance,Float:bootdistance;
- SetPVarInt(playerid,"ClosestVehicle",GetClosestVehicle(playerid));
- bootdistance = GetVehicleBootDistance(GetVehicleModel(GetPVarInt(playerid,"ClosestVehicle")));
- GetVehiclePos(GetPVarInt(playerid,"ClosestVehicle"),Pos[0],Pos[1],Pos[2]);
- distance = GetPlayerDistanceFromPoint(playerid,Pos[0],Pos[1],Pos[2]);
- if(bootdistance-0.20 < distance && distance < bootdistance+0.20)
- {
- GetVehicleParamsEx(GetPVarInt(playerid,"ClosestVehicle"),engine,lights,alarm,doors,bonnet,boot,objective);
- SetVehicleParamsEx(GetPVarInt(playerid,"ClosestVehicle"),engine,lights,alarm,doors,bonnet,1,objective);
- ShowPlayerDialog(playerid,Entnehmen,DIALOG_STYLE_INPUT,"Entnehmen - Menü",GetVehicleSlotDataE(playerid),"Entnehmen","Abbrechen");
- }
- return 1;
- }
- return 0;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- case Verstauen:
- {
- new engine,lights,alarm,doors,bonnet,boot,objective;
- if(!response)
- {
- GetVehicleParamsEx(GetPVarInt(playerid,"ClosestVehicle"),engine,lights,alarm,doors,bonnet,boot,objective);
- SetVehicleParamsEx(GetPVarInt(playerid,"ClosestVehicle"),engine,lights,alarm,doors,bonnet,0,objective);
- return DeletePVar(playerid,"ClosestVehicle");
- }
- if(VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][0][WeaponID] == 0)
- {
- VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][0][WeaponID] = GetPlayerWeapon(playerid);
- VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][0][Munition] = GetPlayerAmmo(playerid);
- RemovePlayerWeapon(playerid,GetPlayerWeapon(playerid));
- }
- else if(VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][1][WeaponID] == 0)
- {
- VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][1][WeaponID] = GetPlayerWeapon(playerid);
- VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][1][Munition] = GetPlayerAmmo(playerid);
- RemovePlayerWeapon(playerid,GetPlayerWeapon(playerid));
- }
- else if(VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][2][WeaponID] == 0)
- {
- VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][2][WeaponID] = GetPlayerWeapon(playerid);
- VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][2][Munition] = GetPlayerAmmo(playerid);
- RemovePlayerWeapon(playerid,GetPlayerWeapon(playerid));
- }
- else if(VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][3][WeaponID] == 0)
- {
- VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][3][WeaponID] = GetPlayerWeapon(playerid);
- VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][3][Munition] = GetPlayerAmmo(playerid);
- RemovePlayerWeapon(playerid,GetPlayerWeapon(playerid));
- }
- GetVehicleParamsEx(GetPVarInt(playerid,"ClosestVehicle"),engine,lights,alarm,doors,bonnet,boot,objective);
- SetVehicleParamsEx(GetPVarInt(playerid,"ClosestVehicle"),engine,lights,alarm,doors,bonnet,0,objective);
- DeletePVar(playerid,"ClosestVehicle");
- }
- case Entnehmen:
- {
- new slot,Ammo[4],WName1[64],WName2[64],WName3[64],WName4[64],engine,lights,alarm,doors,bonnet,boot,objective;
- if(!response)
- {
- GetVehicleParamsEx(GetPVarInt(playerid,"ClosestVehicle"),engine,lights,alarm,doors,bonnet,boot,objective);
- return SetVehicleParamsEx(GetPVarInt(playerid,"ClosestVehicle"),engine,lights,alarm,doors,bonnet,0,objective);
- }
- if(IsNumeric(inputtext))
- {
- WName1 = WeaponName(VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][0][WeaponID]);
- WName2 = WeaponName(VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][1][WeaponID]);
- WName3 = WeaponName(VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][2][WeaponID]);
- WName4 = WeaponName(VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][3][WeaponID]);
- Ammo[0] = VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][0][Munition];
- Ammo[1] = VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][1][Munition];
- Ammo[2] = VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][2][Munition];
- Ammo[3] = VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][3][Munition];
- format(FormatString,sizeof(FormatString),"\t!! Ihre Eingabe war keine Ziffer !!\n\nMomentane Waffen im Kofferraum:\n\n\tSlot 1: %s - %d\n\tSlot 2: %s - %d\n\tSlot 3: %s - %d\n\tSlot 4: %s - %d\n\nGib den Slot der Waffe an, welche du entnehmen willst:",WName1,Ammo[0],WName2,Ammo[1],WName3,Ammo[2],WName4,Ammo[3]);
- return ShowPlayerDialog(playerid,Entnehmen,DIALOG_STYLE_INPUT,"Entnehmen - Menü",FormatString,"Entnehmen","Abbrechen");
- }
- slot = strval(inputtext);
- printf("%d",slot);
- if(1 > slot && slot > 4) return SendClientMessage(playerid,0xFFFFFFFF," Ihre Eingabe war kleiner als 1 oder höher als 4. ");
- slot = slot -1;
- GivePlayerWeapon(playerid,VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][slot][WeaponID],VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][slot][Munition]);
- VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][slot][WeaponID] = 0;
- VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][slot][Munition] = 0;
- GetVehicleParamsEx(GetPVarInt(playerid,"ClosestVehicle"),engine,lights,alarm,doors,bonnet,boot,objective);
- SetVehicleParamsEx(GetPVarInt(playerid,"ClosestVehicle"),engine,lights,alarm,doors,bonnet,0,objective);
- }
- }
- return 1;
- }
- stock GetVehicleSlotDataV(playerid)
- {
- new Ammo[4],WName1[64],WName2[64],WName3[64],WName4[64];
- WName1 = WeaponName(VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][0][WeaponID]);
- WName2 = WeaponName(VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][1][WeaponID]);
- WName3 = WeaponName(VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][2][WeaponID]);
- WName4 = WeaponName(VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][3][WeaponID]);
- Ammo[0] = VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][0][Munition];
- Ammo[1] = VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][1][Munition];
- Ammo[2] = VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][2][Munition];
- Ammo[3] = VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][3][Munition];
- format(FormatString,sizeof(FormatString),"Momentane Waffen im Kofferraum:\n\n\tSlot 1: %s - %d\n\tSlot 2: %s - %d\n\tSlot 3: %s - %d\n\tSlot 4: %s - %d\n\nMöchtest du deine %s mit %d Munition verstauen ?",WName1,Ammo[0],WName2,Ammo[1],WName3,Ammo[2],WName4,Ammo[3],WeaponName(GetPlayerWeapon(playerid)),GetPlayerAmmo(playerid));
- return FormatString;
- }
- stock GetVehicleSlotDataE(playerid)
- {
- new Ammo[4],WName1[64],WName2[64],WName3[64],WName4[64];
- WName1 = WeaponName(VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][0][WeaponID]);
- WName2 = WeaponName(VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][1][WeaponID]);
- WName3 = WeaponName(VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][2][WeaponID]);
- WName4 = WeaponName(VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][3][WeaponID]);
- Ammo[0] = VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][0][Munition];
- Ammo[1] = VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][1][Munition];
- Ammo[2] = VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][2][Munition];
- Ammo[3] = VehicleSlot[GetPVarInt(playerid,"ClosestVehicle")][3][Munition];
- format(FormatString,sizeof(FormatString),"Momentane Waffen im Kofferraum:\n\n\tSlot 1: %s - %d\n\tSlot 2: %s - %d\n\tSlot 3: %s - %d\n\tSlot 4: %s - %d\n\nGib den Slot der Waffe an, welche du entnehmen willst:",WName1,Ammo[0],WName2,Ammo[1],WName3,Ammo[2],WName4,Ammo[3]);
- return FormatString;
- }
- stock GetClosestVehicle(playerid, &Float:dis = (Float:0x7F800000))
- {
- dis = (Float:0x7F800000);
- new Float:X, Float:Y, Float:Z;
- if(GetPlayerPos(playerid, X, Y, Z))
- {
- new vehicleid = INVALID_VEHICLE_ID;
- for(new v, Float:temp, Float:VX, Float:VY, Float:VZ; v != MAX_VEHICLES; v++)
- {
- if(GetVehiclePos(v, VX, VY, VZ))
- {
- VX -= X, VY -= Y, VZ -= Z;
- temp = VX * VX + VY * VY + VZ * VZ;
- if(temp < dis) dis = temp, vehicleid = v;
- }
- }
- dis = floatpower(dis, 0.5);
- return vehicleid;
- }
- return INVALID_VEHICLE_ID;
- }
- stock IsPlayerNearVehicle(playerid)
- {
- new Float:Pos[3];
- for(new i=0;i<MAX_VEHICLES;i++)
- {
- GetVehiclePos(i,Pos[0],Pos[1],Pos[2]);
- IsPlayerInRangeOfPoint(playerid,3.5,Pos[0],Pos[1],Pos[2]);
- return 1;
- }
- return -1;
- }
- stock WeaponName(weaponid)
- {
- new string[64];
- GetWeaponName(weaponid,string,64);
- return string;
- }
- stock RemovePlayerWeapon(playerid, weaponid)
- {
- new plyWeapons[12];
- new plyAmmo[12];
- for(new slot=0; slot != 12; slot++)
- {
- new wep, ammo;
- GetPlayerWeaponData(playerid, slot, wep, ammo);
- if(wep != weaponid)
- {
- GetPlayerWeaponData(playerid, slot, plyWeapons[slot], plyAmmo[slot]);
- }
- }
- ResetPlayerWeapons(playerid);
- for(new slot = 0; slot != 12; slot++)
- {
- GivePlayerWeapon(playerid, plyWeapons[slot], plyAmmo[slot]);
- }
- }
- stock IsNumeric(const string[])
- {
- new length=strlen(string);
- if(length==0)
- {
- return 0;
- }
- for (new i=0; i<length; i++)
- {
- if (!((string[i] <= '9' && string[i] >= '0') || (i==0 && (string[i]=='-' || string[i]=='+'))))
- {
- return false;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement