Help
Remember Me?
Home
Forum
Download
Scripting docs
Wiki
Main
Special Pages
Books
Recent Changes
Blogs
Wiki
Main
NukaScript (Fallout 3)
This site has been archived and made available for preservation purposes. No edits can be made.
If this is your first visit, be sure to check out the
FAQ
by clicking the link above. You may have to
register
before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.
article
discussion
source
history
Viewing source for:
NukaScript (Fallout 3)
This script uses a timer to check for the player being in a special area. If the player is in that area and is sneaking, he will find a hidden nuka cola.[image]NukaScript.jpg|thumb|right|NukaScript in-game[/image] [h="2"] Code [/h] [highlight=cpp] #include "vaultscript.h" #include <cstdio> using namespace std; using namespace vaultmp; Base nuka = (Base) 0x0001519E; Value area[] = {-12630.32, -15715.93, -12728.72, -15834.46}; IDSet player_nuka; Result VAULTSCRIPT NukaArea() noexcept { IDVector players = GetList(Type::ID_PLAYER); for (const ID& id : players) { if (!player_nuka.count(id) && GetActorSneaking(id)) { Value X, Y, Z; GetPos(id, X, Y, Z); if (X < area[0] && X > area[2] && Y < area[1] && Y > area[3]) { UIMessage(id, "You found a hidden nuka cola!"); AddItem(id, nuka, 1, 100.0, False); player_nuka.insert(id); } } } return (Result) 0; } Void VAULTSCRIPT exec() noexcept { if (GetGameCode() != Index::FALLOUT3) { printf("NukaScript is for Fallout 3 only!\n"); terminate(); } CreateTimer(&NukaArea, (Interval) 500); printf("NukaScript for Fallout 3 loaded\n"); } Void VAULTSCRIPT OnPlayerDisconnect(ID player, Reason reason) noexcept { player_nuka.erase(player); } Void VAULTSCRIPT OnSpawn(ID object) noexcept { player_nuka.erase(object); } [/highlight] [category]Script examples[/category] [highlight=c] #include <vaultmp> #define MAX_PLAYERS (4) new PlayerID[MAX_PLAYERS] = [0,...]; new nuka = 0x0001519E, Float:area[] = [-12630.32,-15715.93,-12728.72,-15834.46], bool:event[MAX_PLAYERS] = [false,...]; main() { if(GetMaximumPlayers() > MAX_PLAYERS) printf("Error, your MAX_PLAYERS is too low! Required: %d",GetMaximumPlayers()); switch(GetGameCode()) { case FALLOUT3: { printf("NukaScript for Fallout 3loaded\n"); CreateTimer("NukaSpot",1000); } default: printf("NukaScript is for Fallout 3 only!\n"); } } public OnPlayerDisconnect(ID, reason) { new conID = GetConnection(ID); event[conID] = false; PlayerID[conID] = 0; } forward NukaSpot(); public NukaSpot() { for (new i; i<MAX_PLAYERS; i++) { new ID = PlayerID[i]; if(ID == 0 || event[i] || !GetActorSneaking(ID)) continue; new Float:x,Float:y,Float:z; GetPos(ID,x,y,z); if (x < area[0] && x > area[2] && y < area[1] && y > area[3]) { UIMessage(ID,"You found a hidden nuka cola!"); AddItem(ID,nuka,1,100.0,Bool:false); event[i] = true; } } return 1; } [/highlight]